org.apache.xml.utils.synthetic.reflection
Class Method
java.lang.Object
|
+--org.apache.xml.utils.synthetic.reflection.EntryPoint
|
+--org.apache.xml.utils.synthetic.reflection.Method
- public class Method
- extends EntryPoint
- implements Member
**For internal use only**
A Method provides information about, and access to, a
single method on a class or interface. The reflected
method may be a class method or an instance method
(including an abstract method).
A Method permits widening conversions to occur when
matching the actual parameters to invokewith the
underlying method's formal parameters, but it throws an
IllegalArgumentException if a narrowing conversion
would occur.
Need to add method body, a la Matt's codebuffer.
That may or may not imply retaining the final return value
separately and passing in a how-to-use-it mechanism...?
Constructor Summary |
Method(java.lang.reflect.Method realmethod)
Insert the method's description here. |
Method(java.lang.reflect.Method ctor,
Class declaringclass)
Insert the method's description here. |
Method(java.lang.String name,
Class declaringclass)
Insert the method's description here. |
Method Summary |
int |
hashCode()
Returns a hashcode for this Constructor. |
java.lang.Object |
invoke(java.lang.Object obj,
java.lang.Object[] args)
Invokes the underlying method represented by this
Method object, on the specified object with the
specified parameters. |
void |
setReturnType(Class returntype)
Method setReturnType |
Methods inherited from class org.apache.xml.utils.synthetic.reflection.EntryPoint |
addExceptionType,
addParameter,
equals,
getBody,
getDeclaringClass,
getExceptionTypes,
getLanguage,
getModifiers,
getName,
getParameterNames,
getParameterTypes,
getReturnType,
setBody,
setDeclaringClass,
setModifiers,
setName,
toSource,
toString |
Methods inherited from class java.lang.Object |
getClass,
notify,
notifyAll,
wait,
wait,
wait |
Method
public Method(java.lang.String name,
Class declaringclass)
- Insert the method's description here.
Creation date: (12-27-99 2:31:39 PM)
- Parameters:
realConstructor
- java.lang.reflect.Constructorname
- declaringclass
-
Method
public Method(java.lang.reflect.Method ctor,
Class declaringclass)
- Insert the method's description here.
Creation date: (12-27-99 2:31:39 PM)
- Parameters:
realConstructor
- java.lang.reflect.Constructorctor
- declaringclass
-
Method
public Method(java.lang.reflect.Method realmethod)
- Insert the method's description here.
Creation date: (12-27-99 2:31:39 PM)
- Parameters:
realConstructor
- java.lang.reflect.Constructorrealmethod
-
hashCode
public int hashCode()
- Returns a hashcode for this Constructor. The
hashcode for a Method is the hashcode for the
underlying constructor's declaring class name,
XORed with the name of this method.
- Overrides:
- hashCode in class EntryPoint
invoke
public java.lang.Object invoke(java.lang.Object obj,
java.lang.Object[] args)
throws java.lang.IllegalAccessException,
java.lang.IllegalArgumentException,
java.lang.reflect.InvocationTargetException
- Invokes the underlying method represented by this
Method object, on the specified object with the
specified parameters. Individual parameters are
automatically unwrapped to match primitive
formal parameters, and both primitive and
reference parameters are subject to widening
conversions as necessary. The value returned by
the underlying method is automatically wrapped
in an object if it has a primitive type.
Method invocation proceeds with the following
steps, in order:
If the underlying method is static, then the
specified object argument is ignored. It may be
null.
Otherwise, the method is an instance method. If
the specified object argument is null, the
invocation throws a NullPointerException.
Otherwise, if the specified object argument is not
an instance of the class or interface declaring the
underlying method, the invocation throws an
IllegalArgumentException.
If this Method object enforces Java language access
control and the underlying method is inaccessible,
the invocation throws an IllegalAccessException.
If the number of actual parameters supplied via
args is different from the number of formal
parameters required by the underlying method, the
invocation throws an IllegalArgumentException.
For each actual parameter in the supplied args
array:
If the corresponding formal parameter has a
primitive type, an unwrapping conversion is
attempted to convert the object value to a value of
a primitive type. If this attempt fails, the
invocation throws an IllegalArgumentException.
If, after possible unwrapping, the parameter value
cannot be converted to the corresponding formal
parameter type by an identity or widening
conversion, the invocation throws an
IllegalArgumentException.
If the underlying method is an instance method, it
is invoked using dynamic method lookup as
documented in The Java Language Specification,
section 15.11.4.4; in particular, overriding based
on the runtime type of the target object will occur.
If the underlying method is static, it is invoked as
exactly the method on the declaring class.
Control transfers to the underlying method. If the
method completes abruptly by throwing an
exception, the exception is placed in an
InvocationTargetException and thrown in turn to
the caller of invoke.
If the method completes normally, the value it
returns is returned to the caller of invoke; if the
value has a primitive type, it is first appropriately
wrapped in an object. If the underlying method
return type is void, the invocation returns null.
Throws: IllegalAccessException
if the underlying method is inaccessible.
Throws: IllegalArgumentException
if the number of actual and formal
parameters differ, or if an unwrapping
conversion fails.
Throws: InvocationTargetException
if the underlying method throws an
exception.
Throws: NullPointerException
if the specified object is null.
- Parameters:
obj
- args
- - Throws:
- java.lang.IllegalAccessException -
- java.lang.IllegalArgumentException -
- java.lang.reflect.InvocationTargetException -
setReturnType
public void setReturnType(Class returntype)
throws SynthesisException
- Method setReturnType
- Parameters:
returntype
- - Throws:
- SynthesisException -
Copyright © 2003 Apache XML Project. All Rights Reserved.