User: mulder
Date: 00/07/28 07:00:49
Modified: src/main/org/jboss/metadata/aggregate AggregateBean.java
AggregateMethod.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.3 +19 -4 jboss/src/main/org/jboss/metadata/aggregate/AggregateBean.java
Index: AggregateBean.java
===================================================================
RCS file:
/products/cvs/ejboss/jboss/src/main/org/jboss/metadata/aggregate/AggregateBean.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AggregateBean.java 2000/07/25 17:03:51 1.2
+++ AggregateBean.java 2000/07/28 14:00:49 1.3
@@ -32,7 +32,7 @@
container.addPlugin(plugin.getContainer());
}
- private static MethodMetaData getMethod(Set source, String name, Class[] args) {
+ private static MethodMetaData getMethod(Set source, String name, String[] args)
{
Iterator it = source.iterator();
while(it.hasNext()) {
MethodMetaData mmd = (MethodMetaData)it.next();
@@ -56,7 +56,7 @@
private static AggregateMethod[] mergeMethods(Set incoming, AggregateMethod[]
existing, MetaDataPlugin manager) {
for(int i=0; i<existing.length; i++) {
String name = existing[i].getName();
- Class[] args = existing[i].getParameterTypes();
+ String[] args = existing[i].getParameterTypes();
try {
MethodMetaData mmd = getMethod(incoming, name, args);
existing[i].addPlugin(mmd);
@@ -77,7 +77,7 @@
for(Iterator it = incoming.iterator(); it.hasNext();) {
MethodMetaData mmd = (MethodMetaData)it.next();
String name = mmd.getName();
- Class[] args = mmd.getParameterTypes();
+ String[] args = mmd.getParameterTypes();
MethodMetaData[] list = new
MethodMetaData[MetaDataFactory.getPluginCount()];
for(int i=0; i<list.length; i++) {
Class cls = MetaDataFactory.getPlugin(i).getMethodClass();
@@ -142,6 +142,10 @@
}
public MethodMetaData getMethod(String name, Class[] args) {
+ return getMethod(name, getClassNames(args));
+ }
+
+ public MethodMetaData getMethod(String name, String[] args) {
for(int i=0; i<methods.length; i++)
if(methods[i].getName().equals(name) &&
paramsMatch(methods[i].getParameterTypes(), args))
@@ -150,6 +154,10 @@
}
public MethodMetaData getHomeMethod(String name, Class[] args) {
+ return getHomeMethod(name, getClassNames(args));
+ }
+
+ public MethodMetaData getHomeMethod(String name, String[] args) {
for(int i=0; i<homeMethods.length; i++)
if(homeMethods[i].getName().equals(name) &&
paramsMatch(homeMethods[i].getParameterTypes(), args))
@@ -184,12 +192,19 @@
return container;
}
- private static boolean paramsMatch(Class[] one, Class[] two) {
+ private static boolean paramsMatch(String[] one, String[] two) {
if(one.length != two.length)
return false;
for(int i=0; i<one.length; i++)
if(!one[i].equals(two[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/aggregate/AggregateMethod.java
Index: AggregateMethod.java
===================================================================
RCS file:
/products/cvs/ejboss/jboss/src/main/org/jboss/metadata/aggregate/AggregateMethod.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AggregateMethod.java 2000/07/04 00:10:03 1.1
+++ AggregateMethod.java 2000/07/28 14:00:49 1.2
@@ -5,14 +5,14 @@
public class AggregateMethod extends AggregateMetaData implements MethodMetaData {
private String name;
- private Class[] params;
+ private String[] params;
- public AggregateMethod(String name, Class[] paramTypes) {
+ public AggregateMethod(String name, String[] paramTypes) {
this.name = name;
params = paramTypes;
}
- public AggregateMethod(String name, Class[] paramTypes, MethodMetaData[]
plugins) {
+ public AggregateMethod(String name, String[] paramTypes, MethodMetaData[]
plugins) {
super(plugins);
this.name = name;
params = paramTypes;
@@ -26,7 +26,7 @@
return name;
}
- public Class[] getParameterTypes() {
+ public String[] getParameterTypes() {
return params;
}
}