|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectbsh.Reflect
All of the reflection API code lies here. It is in the form of static utilities. Maybe this belongs in LHS.java or a generic object wrapper class.
| Constructor Summary | |
(package private) |
Reflect()
|
| Method Summary | |
(package private) static java.lang.Object |
constructObject(java.lang.Class clas,
java.lang.Object[] args)
Primary object constructor This method is simpler than those that must resolve general method invocation because constructors are not inherited. |
(package private) static java.lang.reflect.Method |
findAccessibleMethod(java.lang.Class clas,
java.lang.String name,
java.lang.Class[] types)
Locate a version of the method with the exact signature specified that is accessible via a public interface or through a public superclass or - if accessibility is on - through any interface or superclass. |
(package private) static java.lang.reflect.Constructor |
findMostSpecificConstructor(java.lang.Class[] idealMatch,
java.lang.reflect.Constructor[] constructors)
|
(package private) static int |
findMostSpecificConstructorIndex(java.lang.Class[] idealMatch,
java.lang.reflect.Constructor[] constructors)
|
(package private) static java.lang.reflect.Method |
findMostSpecificMethod(java.lang.String name,
java.lang.Class[] idealMatch,
java.lang.reflect.Method[] methods,
boolean publicOnly)
Implement JLS 15.11.2 for method resolution |
(package private) static int |
findMostSpecificSignature(java.lang.Class[] idealMatch,
java.lang.Class[][] candidates)
Implement JLS 15.11.2 Return the index of the most specific arguments match or -1 if no match is found. |
static java.lang.Class |
getArrayBaseType(java.lang.Class arrayClass)
Returns the base type of an array Class. |
static int |
getArrayDimensions(java.lang.Class arrayClass)
returns the dimensionality of the Class returns 0 if the Class is not an array class |
static java.lang.Object |
getIndex(java.lang.Object array,
int index)
|
(package private) static LHS |
getLHSObjectField(java.lang.Object object,
java.lang.String fieldName)
Get an LHS reference to an object field. |
(package private) static LHS |
getLHSStaticField(java.lang.Class clas,
java.lang.String fieldName)
|
static java.lang.Object |
getObjectField(java.lang.Object object,
java.lang.String fieldName)
|
static java.lang.Object |
getObjectProperty(java.lang.Object obj,
java.lang.String propName)
|
static java.lang.Object |
getStaticField(java.lang.Class clas,
java.lang.String fieldName)
|
static boolean |
hasObjectPropertyGetter(java.lang.Class clas,
java.lang.String propName)
|
static boolean |
hasObjectPropertySetter(java.lang.Class clas,
java.lang.String propName)
|
static java.lang.Object |
invokeCompiledCommand(java.lang.Class commandClass,
java.lang.Object[] args,
Interpreter interpreter,
CallStack callstack)
A command may be implemented as a compiled Java class containing one or more static invoke() methods of the correct signature. |
static java.lang.Object |
invokeObjectMethod(java.lang.Object object,
java.lang.String methodName,
java.lang.Object[] args,
Interpreter interpreter,
CallStack callstack,
SimpleNode callerInfo)
Invoke method on arbitrary object. |
(package private) static java.lang.Object |
invokeOnMethod(java.lang.reflect.Method method,
java.lang.Object object,
java.lang.Object[] args)
Invoke the Java method on the specified object. |
static java.lang.Object |
invokeStaticMethod(BshClassManager bcm,
java.lang.Class clas,
java.lang.String methodName,
java.lang.Object[] args)
Invoke a method known to be static. |
static java.lang.String |
normalizeClassName(java.lang.Class type)
Return a more human readable version of the type name. |
protected static java.lang.reflect.Field |
resolveExpectedJavaField(java.lang.Class clas,
java.lang.String fieldName,
boolean onlyStatic)
|
protected static java.lang.reflect.Method |
resolveExpectedJavaMethod(BshClassManager bcm,
java.lang.Class clas,
java.lang.Object object,
java.lang.String name,
java.lang.Object[] args,
boolean onlyStatic)
This method expects a non-null method from resolveJavaMethod(). |
protected static java.lang.reflect.Field |
resolveJavaField(java.lang.Class clas,
java.lang.String fieldName,
boolean onlyStatic)
|
protected static java.lang.reflect.Method |
resolveJavaMethod(BshClassManager bcm,
java.lang.Class clas,
java.lang.Object object,
java.lang.String name,
java.lang.Object[] args,
boolean onlyStatic)
Deprecated. |
protected static java.lang.reflect.Method |
resolveJavaMethod(BshClassManager bcm,
java.lang.Class clas,
java.lang.String name,
java.lang.Class[] types,
boolean onlyStatic)
|
static void |
setIndex(java.lang.Object array,
int index,
java.lang.Object val)
|
static void |
setObjectProperty(java.lang.Object obj,
java.lang.String propName,
java.lang.Object value)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
Reflect()
| Method Detail |
public static java.lang.Object invokeObjectMethod(java.lang.Object object,
java.lang.String methodName,
java.lang.Object[] args,
Interpreter interpreter,
CallStack callstack,
SimpleNode callerInfo)
throws ReflectError,
EvalError,
java.lang.reflect.InvocationTargetException
ReflectError
EvalError
java.lang.reflect.InvocationTargetException
public static java.lang.Object invokeStaticMethod(BshClassManager bcm,
java.lang.Class clas,
java.lang.String methodName,
java.lang.Object[] args)
throws ReflectError,
UtilEvalError,
java.lang.reflect.InvocationTargetException
ReflectError
UtilEvalError
java.lang.reflect.InvocationTargetException
static java.lang.Object invokeOnMethod(java.lang.reflect.Method method,
java.lang.Object object,
java.lang.Object[] args)
throws ReflectError,
java.lang.reflect.InvocationTargetException
args - may be null
ReflectError
java.lang.reflect.InvocationTargetException
public static java.lang.Object getIndex(java.lang.Object array,
int index)
throws ReflectError,
UtilTargetError
ReflectError
UtilTargetError
public static void setIndex(java.lang.Object array,
int index,
java.lang.Object val)
throws ReflectError,
UtilTargetError
ReflectError
UtilTargetError
public static java.lang.Object getStaticField(java.lang.Class clas,
java.lang.String fieldName)
throws UtilEvalError,
ReflectError
UtilEvalError
ReflectError
public static java.lang.Object getObjectField(java.lang.Object object,
java.lang.String fieldName)
throws UtilEvalError,
ReflectError
UtilEvalError
ReflectError
static LHS getLHSStaticField(java.lang.Class clas,
java.lang.String fieldName)
throws UtilEvalError,
ReflectError
UtilEvalError
ReflectError
static LHS getLHSObjectField(java.lang.Object object,
java.lang.String fieldName)
throws UtilEvalError,
ReflectError
UtilEvalError
ReflectError
protected static java.lang.reflect.Field resolveJavaField(java.lang.Class clas,
java.lang.String fieldName,
boolean onlyStatic)
throws UtilEvalError
UtilEvalError
protected static java.lang.reflect.Field resolveExpectedJavaField(java.lang.Class clas,
java.lang.String fieldName,
boolean onlyStatic)
throws UtilEvalError,
ReflectError
ReflectError - if the field is not found.
UtilEvalError
protected static java.lang.reflect.Method resolveExpectedJavaMethod(BshClassManager bcm,
java.lang.Class clas,
java.lang.Object object,
java.lang.String name,
java.lang.Object[] args,
boolean onlyStatic)
throws ReflectError,
UtilEvalError
ReflectError
UtilEvalError
protected static java.lang.reflect.Method resolveJavaMethod(BshClassManager bcm,
java.lang.Class clas,
java.lang.Object object,
java.lang.String name,
java.lang.Object[] args,
boolean onlyStatic)
throws UtilEvalError
onlyStatic - The method located must be static, the object param may be null.
UtilEvalError
protected static java.lang.reflect.Method resolveJavaMethod(BshClassManager bcm,
java.lang.Class clas,
java.lang.String name,
java.lang.Class[] types,
boolean onlyStatic)
throws UtilEvalError
UtilEvalError
static java.lang.reflect.Method findAccessibleMethod(java.lang.Class clas,
java.lang.String name,
java.lang.Class[] types)
throws UtilEvalError
UtilEvalError
static java.lang.Object constructObject(java.lang.Class clas,
java.lang.Object[] args)
throws ReflectError,
java.lang.reflect.InvocationTargetException
ReflectError
java.lang.reflect.InvocationTargetException
static java.lang.reflect.Method findMostSpecificMethod(java.lang.String name,
java.lang.Class[] idealMatch,
java.lang.reflect.Method[] methods,
boolean publicOnly)
static java.lang.reflect.Constructor findMostSpecificConstructor(java.lang.Class[] idealMatch,
java.lang.reflect.Constructor[] constructors)
static int findMostSpecificConstructorIndex(java.lang.Class[] idealMatch,
java.lang.reflect.Constructor[] constructors)
static int findMostSpecificSignature(java.lang.Class[] idealMatch,
java.lang.Class[][] candidates)
public static boolean hasObjectPropertyGetter(java.lang.Class clas,
java.lang.String propName)
public static boolean hasObjectPropertySetter(java.lang.Class clas,
java.lang.String propName)
public static java.lang.Object getObjectProperty(java.lang.Object obj,
java.lang.String propName)
throws UtilEvalError,
ReflectError
UtilEvalError
ReflectError
public static void setObjectProperty(java.lang.Object obj,
java.lang.String propName,
java.lang.Object value)
throws ReflectError,
UtilEvalError
ReflectError
UtilEvalErrorpublic static java.lang.String normalizeClassName(java.lang.Class type)
public static int getArrayDimensions(java.lang.Class arrayClass)
public static java.lang.Class getArrayBaseType(java.lang.Class arrayClass)
throws ReflectError
ReflectError
public static java.lang.Object invokeCompiledCommand(java.lang.Class commandClass,
java.lang.Object[] args,
Interpreter interpreter,
CallStack callstack)
throws UtilEvalError
UtilEvalError
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||