public final class Reflect
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static java.lang.Object[] |
ZERO_ARGS |
static java.lang.Class<?>[] |
ZERO_TYPES |
| Constructor and Description |
|---|
Reflect() |
| Modifier and Type | Method and Description |
|---|---|
static BshMethod |
findMostSpecificBshMethod(java.lang.Class<?>[] idealMatch,
java.util.List<BshMethod> methods)
Find the best match for signature idealMatch and return the method.
|
static int |
findMostSpecificBshMethodIndex(java.lang.Class<?>[] idealMatch,
java.util.List<BshMethod> methods)
Find the best match for signature idealMatch and return the position
of the matching signature within the list.
|
static Invocable |
findMostSpecificInvocable(java.lang.Class<?>[] idealMatch,
java.util.List<Invocable> methods)
Find the best match for signature idealMatch and return the method.
|
static int |
findMostSpecificInvocableIndex(java.lang.Class<?>[] idealMatch,
java.util.List<Invocable> methods)
Find the best match for signature idealMatch and return the position
of the matching signature within the list.
|
static This |
getClassInstanceThis(java.lang.Object instance,
java.lang.Class<?> genClass)
Get the instance bsh namespace field from the object instance.
|
static Modifiers |
getClassModifiers(java.lang.Class<?> type) |
static This |
getClassStaticThis(java.lang.Class<?> clas,
java.lang.String className)
Get the static bsh namespace field from the class.
|
static BshMethod |
getDeclaredMethod(java.lang.Class<?> type,
java.lang.String name,
java.lang.Class<?>[] sig) |
static BshMethod[] |
getDeclaredMethods(java.lang.Class<?> type) |
static Variable |
getDeclaredVariable(java.lang.Class<?> type,
java.lang.String name) |
static Variable[] |
getDeclaredVariables(java.lang.Class<?> type) |
static java.util.Map.Entry |
getEntryForKey(java.lang.Object key,
java.util.Map.Entry[] entries) |
static BshMethod |
getMethod(java.lang.Class<?> type,
java.lang.String name,
java.lang.Class<?>[] sig) |
static BshMethod |
getMethod(NameSpace ns,
java.lang.String name,
java.lang.Class<?>[] sig) |
static BshMethod |
getMethod(NameSpace ns,
java.lang.String name,
java.lang.Class<?>[] sig,
boolean declaredOnly) |
static BshMethod |
getMethod(java.lang.Object object,
java.lang.String name,
java.lang.Class<?>[] sig) |
static java.lang.String[] |
getMethodNames(NameSpace ns) |
static BshMethod[] |
getMethods(java.lang.Class<?> type) |
static BshMethod[] |
getMethods(NameSpace ns) |
static BshMethod[] |
getMethods(java.lang.Object object) |
static java.lang.Object |
getNewInstance(java.lang.Class<?> type) |
static java.lang.Object |
getObjectFieldValue(java.lang.Object object,
java.lang.String fieldName)
Check for a field with the given name in a java object or scripted object
if the field exists fetch the value, if not check for a property value.
|
static java.lang.Object |
getObjectProperty(java.lang.Object obj,
java.lang.Object propName) |
static java.lang.Object |
getObjectProperty(java.lang.Object obj,
java.lang.String propName) |
static java.lang.Object |
getStaticFieldValue(java.lang.Class<?> clas,
java.lang.String fieldName) |
static NameSpace |
getThisNS(java.lang.Class<?> type) |
static NameSpace |
getThisNS(java.lang.Object object) |
static java.lang.Class<?> |
getType(java.lang.Object arg)
Find the type of an object.
|
static Variable |
getVariable(java.lang.Class<?> type,
java.lang.String name) |
static Variable |
getVariable(NameSpace ns,
java.lang.String name) |
static Variable |
getVariable(java.lang.Object object,
java.lang.String name) |
static java.lang.String[] |
getVariableNames(NameSpace ns) |
static Variable[] |
getVariables(java.lang.Class<?> type) |
static Variable[] |
getVariables(NameSpace ns) |
static Variable[] |
getVariables(NameSpace ns,
java.lang.String[] names) |
static Variable[] |
getVariables(java.lang.Object object) |
static boolean |
hasModifier(java.lang.String name,
int modifiers) |
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,
Node callerInfo)
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,
Node callerInfo)
Invoke method on arbitrary object instance.
|
static java.lang.Object |
invokeStaticMethod(BshClassManager bcm,
java.lang.Class<?> clas,
java.lang.String methodName,
java.lang.Object[] args,
Node callerInfo)
Invoke a method known to be static.
|
static boolean |
isGeneratedClass(java.lang.Class<?> type) |
static boolean |
isPackageAccessible(java.lang.Class<?> clazz) |
static boolean |
isPackageScope(java.lang.Class<?> clazz) |
static boolean |
isStatic(java.lang.Class<?> clazz) |
static boolean |
isStatic(java.lang.reflect.Member member) |
protected static Invocable |
resolveExpectedJavaField(java.lang.Class<?> clas,
java.lang.String fieldName,
boolean staticOnly) |
protected static Invocable |
resolveExpectedJavaMethod(BshClassManager bcm,
java.lang.Class<?> clas,
java.lang.Object object,
java.lang.String name,
java.lang.Object[] args,
boolean staticOnly)
This method wraps resolveJavaMethod() and expects a non-null method
result.
|
protected static Invocable |
resolveJavaField(java.lang.Class<?> clas,
java.lang.String fieldName,
boolean staticOnly) |
protected static Invocable |
resolveJavaMethod(java.lang.Class<?> clas,
java.lang.String name,
java.lang.Class<?>[] types,
boolean staticOnly)
The full blown resolver method.
|
static java.lang.Object |
setObjectProperty(java.lang.Object obj,
java.lang.Object propName,
java.lang.Object value) |
static java.lang.Object |
setObjectProperty(java.lang.Object obj,
java.lang.String propName,
java.lang.Object value) |
public static final java.lang.Object[] ZERO_ARGS
public static final java.lang.Class<?>[] ZERO_TYPES
public static java.lang.Object invokeObjectMethod(java.lang.Object object,
java.lang.String methodName,
java.lang.Object[] args,
Interpreter interpreter,
CallStack callstack,
Node callerInfo)
throws EvalError
EvalErrorpublic static java.lang.Object invokeStaticMethod(BshClassManager bcm, java.lang.Class<?> clas, java.lang.String methodName, java.lang.Object[] args, Node callerInfo) throws bsh.ReflectError, UtilEvalError, java.lang.reflect.InvocationTargetException
bsh.ReflectErrorUtilEvalErrorjava.lang.reflect.InvocationTargetExceptionpublic static java.lang.Object getStaticFieldValue(java.lang.Class<?> clas,
java.lang.String fieldName)
throws UtilEvalError,
bsh.ReflectError
UtilEvalErrorbsh.ReflectErrorpublic static java.lang.Object getObjectFieldValue(java.lang.Object object,
java.lang.String fieldName)
throws UtilEvalError,
bsh.ReflectError
UtilEvalErrorbsh.ReflectErrorprotected static Invocable resolveJavaField(java.lang.Class<?> clas, java.lang.String fieldName, boolean staticOnly) throws UtilEvalError
UtilEvalErrorprotected static Invocable resolveExpectedJavaField(java.lang.Class<?> clas, java.lang.String fieldName, boolean staticOnly) throws UtilEvalError, bsh.ReflectError
ReflectError - if the field is not found.UtilEvalErrorprotected static Invocable resolveExpectedJavaMethod(BshClassManager bcm, java.lang.Class<?> clas, java.lang.Object object, java.lang.String name, java.lang.Object[] args, boolean staticOnly) throws bsh.ReflectError, UtilEvalError
bsh.ReflectErrorUtilEvalErrorprotected static Invocable resolveJavaMethod(java.lang.Class<?> clas, java.lang.String name, java.lang.Class<?>[] types, boolean staticOnly) throws UtilEvalError
staticOnly - The method located must be static, the object param may be null.UtilEvalErrorpublic static BshMethod findMostSpecificBshMethod(java.lang.Class<?>[] idealMatch, java.util.List<BshMethod> methods)
idealMatch - the signature to look formethods - the set of candidate BshMethods which
differ only in the types of their arguments.public static int findMostSpecificBshMethodIndex(java.lang.Class<?>[] idealMatch,
java.util.List<BshMethod> methods)
idealMatch - the signature to look formethods - the set of candidate BshMethods which differ only in the
types of their arguments.public static Invocable findMostSpecificInvocable(java.lang.Class<?>[] idealMatch, java.util.List<Invocable> methods)
idealMatch - the signature to look formethods - the set of candidate Invocables which
differ only in the types of their arguments.public static int findMostSpecificInvocableIndex(java.lang.Class<?>[] idealMatch,
java.util.List<Invocable> methods)
idealMatch - the signature to look formethods - the set of candidate method which differ only in the
types of their arguments.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)
public static java.lang.Object getObjectProperty(java.lang.Object obj,
java.lang.Object propName)
public static java.util.Map.Entry getEntryForKey(java.lang.Object key,
java.util.Map.Entry[] entries)
public static java.lang.Object setObjectProperty(java.lang.Object obj,
java.lang.String propName,
java.lang.Object value)
public static java.lang.Object setObjectProperty(java.lang.Object obj,
java.lang.Object propName,
java.lang.Object value)
public static java.lang.Object invokeCompiledCommand(java.lang.Class<?> commandClass,
java.lang.Object[] args,
Interpreter interpreter,
CallStack callstack,
Node callerInfo)
throws UtilEvalError
UtilEvalErrorpublic static boolean isGeneratedClass(java.lang.Class<?> type)
public static This getClassStaticThis(java.lang.Class<?> clas, java.lang.String className)
className - may be the name of clas itself or a superclass of clas.public static This getClassInstanceThis(java.lang.Object instance, java.lang.Class<?> genClass)
public static NameSpace getThisNS(java.lang.Class<?> type)
public static NameSpace getThisNS(java.lang.Object object)
public static java.lang.String[] getVariableNames(NameSpace ns)
public static java.lang.String[] getMethodNames(NameSpace ns)
public static BshMethod getMethod(java.lang.Class<?> type, java.lang.String name, java.lang.Class<?>[] sig)
public static BshMethod getMethod(java.lang.Object object, java.lang.String name, java.lang.Class<?>[] sig)
public static BshMethod getMethod(NameSpace ns, java.lang.String name, java.lang.Class<?>[] sig)
public static BshMethod getMethod(NameSpace ns, java.lang.String name, java.lang.Class<?>[] sig, boolean declaredOnly)
public static BshMethod getDeclaredMethod(java.lang.Class<?> type, java.lang.String name, java.lang.Class<?>[] sig)
public static BshMethod[] getMethods(java.lang.Class<?> type)
public static BshMethod[] getMethods(java.lang.Object object)
public static BshMethod[] getDeclaredMethods(java.lang.Class<?> type)
public static Variable getVariable(java.lang.Class<?> type, java.lang.String name)
public static Variable getVariable(java.lang.Object object, java.lang.String name)
public static Variable getDeclaredVariable(java.lang.Class<?> type, java.lang.String name)
public static Variable[] getVariables(java.lang.Class<?> type)
public static Variable[] getVariables(java.lang.Object object)
public static Variable[] getDeclaredVariables(java.lang.Class<?> type)
public static Modifiers getClassModifiers(java.lang.Class<?> type)
public static java.lang.Object getNewInstance(java.lang.Class<?> type)
public static boolean isStatic(java.lang.reflect.Member member)
public static boolean isStatic(java.lang.Class<?> clazz)
public static boolean hasModifier(java.lang.String name,
int modifiers)
public static boolean isPackageScope(java.lang.Class<?> clazz)
public static boolean isPackageAccessible(java.lang.Class<?> clazz)
public static java.lang.Class<?> getType(java.lang.Object arg)