Constructors Summary |
---|
public MethodDescriptor(Method method)Constructs a MethodDescriptor from a
Method .
this(method, null);
|
MethodDescriptor(MethodDescriptor x, MethodDescriptor y)
super(x,y);
methodRef = x.methodRef;
if (y.methodRef != null) {
methodRef = y.methodRef;
}
params = x.params;
if (y.params != null) {
params = y.params;
}
paramNames = x.paramNames;
if (y.paramNames != null) {
paramNames = y.paramNames;
}
parameterDescriptors = x.parameterDescriptors;
if (y.parameterDescriptors != null) {
parameterDescriptors = y.parameterDescriptors;
}
|
MethodDescriptor(MethodDescriptor old)
super(old);
methodRef = old.methodRef;
params = old.params;
paramNames = old.paramNames;
if (old.parameterDescriptors != null) {
int len = old.parameterDescriptors.length;
parameterDescriptors = new ParameterDescriptor[len];
for (int i = 0; i < len ; i++) {
parameterDescriptors[i] = new ParameterDescriptor(old.parameterDescriptors[i]);
}
}
|
public MethodDescriptor(Method method, ParameterDescriptor[] parameterDescriptors)Constructs a MethodDescriptor from a
Method providing descriptive information for each
of the method's parameters.
setName(method.getName());
setMethod(method);
this.parameterDescriptors = parameterDescriptors;
|
Methods Summary |
---|
public synchronized java.lang.reflect.Method | getMethod()Gets the method that this MethodDescriptor encapsualtes.
Method method = getMethod0();
if (method == null) {
Class cls = getClass0();
if (cls != null) {
Class[] params = getParams();
if (params == null) {
for (int i = 0; i < 3; i++) {
// Find methods for up to 2 params. We are guessing here.
// This block should never execute unless the classloader
// that loaded the argument classes disappears.
method = Introspector.findMethod(cls, getName(), i, null);
if (method != null) {
break;
}
}
} else {
method = Introspector.findMethod(cls, getName(),
params.length, params);
}
setMethod(method);
}
}
return method;
|
private java.lang.reflect.Method | getMethod0()
return (Method)getObject(methodRef);
|
java.lang.String[] | getParamNames()
return paramNames;
|
public java.beans.ParameterDescriptor[] | getParameterDescriptors()Gets the ParameterDescriptor for each of this MethodDescriptor's
method's parameters.
return parameterDescriptors;
|
private synchronized java.lang.Class[] | getParams()
Class[] clss = new Class[params.size()];
for (int i = 0; i < params.size(); i++) {
Reference ref = (Reference)params.get(i);
Class cls = (Class)ref.get();
if (cls == null) {
return null;
} else {
clss[i] = cls;
}
}
return clss;
|
private synchronized void | setMethod(java.lang.reflect.Method method)
if (method == null) {
return;
}
if (getClass0() == null) {
setClass0(method.getDeclaringClass());
}
setParams(method.getParameterTypes());
methodRef = createReference(method, true);
|
private synchronized void | setParams(java.lang.Class[] param)
if (param == null) {
return;
}
paramNames = new String[param.length];
params = new ArrayList(param.length);
for (int i = 0; i < param.length; i++) {
paramNames[i] = param[i].getName();
params.add(new WeakReference(param[i]));
}
|