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;
}
}