User: mulder  
  Date: 00/07/28 07:00:52

  Modified:    src/main/org/jboss/metadata/plugins AbstractBean.java
                        AbstractMethod.java
  Log:
  Change metadata to use Strings instead of Classes.
  Prevents icky ClassNotFoundExceptions and NoClassDefFoundErrors.
  Added convenience methods that take Classes and convert them to Strings.
  
  Revision  Changes    Path
  1.2       +18 -3     jboss/src/main/org/jboss/metadata/plugins/AbstractBean.java
  
  Index: AbstractBean.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/metadata/plugins/AbstractBean.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractBean.java 2000/07/04 00:10:11     1.1
  +++ AbstractBean.java 2000/07/28 14:00:52     1.2
  @@ -59,7 +59,11 @@
           fields.add(field);
       }
   
  -    public MethodMetaData getMethod(String name, Class[] paramTypes) {
  +    public MethodMetaData getMethod(String name, Class[] params) {
  +        return getMethod(name, getClassNames(params));
  +    }
  +
  +    public MethodMetaData getMethod(String name, String[] paramTypes) {
           Iterator it = methods.iterator();
           while(it.hasNext()) {
               MethodMetaData mmd = (MethodMetaData)it.next();
  @@ -68,8 +72,12 @@
           }
           throw new IllegalArgumentException("No such method!");
       }
  +
  +    public MethodMetaData getHomeMethod(String name, Class[] params) {
  +        return getHomeMethod(name, getClassNames(params));
  +    }
   
  -    public MethodMetaData getHomeMethod(String name, Class[] paramTypes) {
  +    public MethodMetaData getHomeMethod(String name, String[] paramTypes) {
           Iterator it = homeMethods.iterator();
           while(it.hasNext()) {
               MethodMetaData mmd = (MethodMetaData)it.next();
  @@ -89,11 +97,18 @@
           throw new IllegalArgumentException("No such field!");
       }
   
  -    private boolean sameParams(Class[] list1, Class[] list2) {
  +    private boolean sameParams(String[] list1, String[] list2) {
           if(list1.length != list2.length) return false;
           for(int i=0; i<list1.length; i++)
               if(!list1[i].equals(list2[i]))
                   return false;
           return true;
  +    }
  +
  +    private static String[] getClassNames(Class[] source) {
  +        String out[] = new String[source.length];
  +        for(int i=0; i<out.length; i++)
  +            out[i] = source[i].getName();
  +        return out;
       }
   }
  
  
  
  1.2       +4 -4      jboss/src/main/org/jboss/metadata/plugins/AbstractMethod.java
  
  Index: AbstractMethod.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/metadata/plugins/AbstractMethod.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractMethod.java       2000/07/04 00:10:12     1.1
  +++ AbstractMethod.java       2000/07/28 14:00:52     1.2
  @@ -5,10 +5,10 @@
   
   public abstract class AbstractMethod extends AbstractMetaData implements 
MethodMetaData {
       private String name;
  -    private Class[] paramTypes;
  +    private String[] paramTypes;
   
       public AbstractMethod() {
  -        paramTypes = new Class[0];
  +        paramTypes = new String[0];
       }
   
       public String getName() {
  @@ -19,11 +19,11 @@
           this.name = name;
       }
   
  -    public Class[] getParameterTypes() {
  +    public String[] getParameterTypes() {
           return paramTypes;
       }
   
  -    public void setParameterTypes(Class[] paramTypes) {
  +    public void setParameterTypes(String[] paramTypes) {
           this.paramTypes = paramTypes;
       }
   }
  
  
  

Reply via email to