Package jadex.javaparser.javaccimpl
Class ReflectNode
- java.lang.Object
 - 
- jadex.javaparser.javaccimpl.SimpleNode
 - 
- jadex.javaparser.javaccimpl.ExpressionNode
 - 
- jadex.javaparser.javaccimpl.ReflectNode
 
 
 
 
- 
- All Implemented Interfaces:
 IParsedExpression,Node,java.io.Serializable
public class ReflectNode extends ExpressionNode
A node for a constructor or method invocation or field access.- See Also:
 - Serialized Form
 
 
- 
- 
Field Summary
Fields Modifier and Type Field Description protected java.lang.reflect.MethodaccessorThe field accessor method (for static and nonstatic fields).protected java.lang.Object[]argsThe argument values (for constructors and methods).protected java.lang.Class[]argtypesThe argument types (for constructors and methods).protected java.lang.ClassclazzThe clazz.static intCONSTRUCTORThe constructor type.protected java.lang.reflect.Constructor[]constructorsThe possible constructors (for constructor nodes).protected java.lang.reflect.FieldfieldThe field (for static and nonstatic fields).static intFIELDThe field type.static intMETHODThe method type.protected java.lang.reflect.Method[]methodsThe possible methods (for static and nonstatic methods).protected booleanreloadableFlag indicating that this node is a candidate dynamic class reloading (currently only supported for plan constructors).protected java.lang.ClassreloadedclassThe dynamically reloaded class (currently only for constructor nodes).static intSTATIC_FIELDThe static field type.static intSTATIC_METHODThe static method type.protected inttypeThe reflect node type.- 
Fields inherited from class jadex.javaparser.javaccimpl.ExpressionNode
constant, constant_value, expressiontext, imports, static_type, text 
- 
Fields inherited from class jadex.javaparser.javaccimpl.SimpleNode
children, id, parent 
 - 
 
- 
Constructor Summary
Constructors Constructor Description ReflectNode(jadex.javaparser.javaccimpl.ParserImpl p, int id)Create an expression node. 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.ObjectaccessField(java.lang.Object ref, java.lang.Class clazz, IValueFetcher fetcher)Access a field.booleanequals(java.lang.Object o)Test if two nodes are equal.protected java.lang.reflect.Constructor[]findConstructors(java.lang.Class clazz, java.lang.Class[] argtypes)Find all matching constructors of a given class.protected java.lang.reflect.Method[]findMethods(java.lang.Class clazz, java.lang.Class[] argtypes)Find all matching methods of a given class.protected java.lang.reflect.MethodgetMethodForMethod(java.lang.reflect.Method method)Find method declared in public class for a given method.intgetType()Get the constructor type.java.lang.ObjectgetValue(IValueFetcher fetcher)Evaluate the expression in the given state with respect to given parameters.inthashCode()Get the hash code for the node.protected java.lang.ObjectinvokeConstructor(java.lang.Class clazz, java.lang.Class[] argtypes, java.lang.Object[] args)Find and invoke a constructor.protected java.lang.ObjectinvokeMethod(java.lang.Object ref, java.lang.Class clazz, java.lang.Class[] argtypes, java.lang.Object[] args)Find and invoke a method.voidprecompile()Precompute the set of matching constructors if possible.voidsetType(int type)Set the constructor type.java.lang.StringtoPlainString()Create a string representation of this node and its subnodes.- 
Methods inherited from class jadex.javaparser.javaccimpl.ExpressionNode
appendText, getConstantValue, getExpressionText, getParameters, getStaticType, getText, getUnboundParameterNodes, isConstant, precompileTree, setConstant, setConstantValue, setExpressionText, setStaticType, setText, subnodeToString, throwEvaluationException, throwParseException, toString, toString 
- 
Methods inherited from class jadex.javaparser.javaccimpl.SimpleNode
dump, jjtAddChild, jjtClose, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtOpen, jjtSetParent 
 - 
 
 - 
 
- 
- 
Field Detail
- 
CONSTRUCTOR
public static final int CONSTRUCTOR
The constructor type.- See Also:
 - Constant Field Values
 
 
- 
STATIC_METHOD
public static final int STATIC_METHOD
The static method type.- See Also:
 - Constant Field Values
 
 
- 
STATIC_FIELD
public static final int STATIC_FIELD
The static field type.- See Also:
 - Constant Field Values
 
 
- 
METHOD
public static final int METHOD
The method type.- See Also:
 - Constant Field Values
 
 
- 
FIELD
public static final int FIELD
The field type.- See Also:
 - Constant Field Values
 
 
- 
type
protected int type
The reflect node type. 
- 
clazz
protected java.lang.Class clazz
The clazz. 
- 
argtypes
protected transient java.lang.Class[] argtypes
The argument types (for constructors and methods). 
- 
args
protected transient java.lang.Object[] args
The argument values (for constructors and methods). 
- 
constructors
protected transient java.lang.reflect.Constructor[] constructors
The possible constructors (for constructor nodes). 
- 
reloadedclass
protected transient java.lang.Class reloadedclass
The dynamically reloaded class (currently only for constructor nodes). 
- 
methods
protected transient java.lang.reflect.Method[] methods
The possible methods (for static and nonstatic methods). 
- 
accessor
protected transient java.lang.reflect.Method accessor
The field accessor method (for static and nonstatic fields). 
- 
field
protected transient java.lang.reflect.Field field
The field (for static and nonstatic fields). 
- 
reloadable
protected boolean reloadable
Flag indicating that this node is a candidate dynamic class reloading (currently only supported for plan constructors). 
 - 
 
- 
Method Detail
- 
setType
public void setType(int type)
Set the constructor type.- Parameters:
 type- The constrcutor type.
 
- 
getType
public int getType()
Get the constructor type.- Returns:
 - The constructor type.
 
 
- 
precompile
public void precompile()
Precompute the set of matching constructors if possible.- Overrides:
 precompilein classExpressionNode
 
- 
getValue
public java.lang.Object getValue(IValueFetcher fetcher)
Evaluate the expression in the given state with respect to given parameters.- Specified by:
 getValuein interfaceIParsedExpression- Specified by:
 getValuein classExpressionNode- Parameters:
 params- The parameters (string, value pairs), if any.- Returns:
 - The value of the term.
 
 
- 
toPlainString
public java.lang.String toPlainString()
Create a string representation of this node and its subnodes.- Specified by:
 toPlainStringin interfaceNode- Overrides:
 toPlainStringin classExpressionNode- Returns:
 - A string representation of this node.
 
 
- 
findConstructors
protected java.lang.reflect.Constructor[] findConstructors(java.lang.Class clazz, java.lang.Class[] argtypes)Find all matching constructors of a given class.- Parameters:
 clazz- The class.argtypes- The argument types.- Returns:
 - The matched constructors.
 
 
- 
findMethods
protected java.lang.reflect.Method[] findMethods(java.lang.Class clazz, java.lang.Class[] argtypes)Find all matching methods of a given class.- Parameters:
 clazz- The class.argtypes- The argument types.- Returns:
 - The matched methods.
 
 
- 
invokeConstructor
protected java.lang.Object invokeConstructor(java.lang.Class clazz, java.lang.Class[] argtypes, java.lang.Object[] args) throws java.lang.ExceptionFind and invoke a constructor.- Parameters:
 clazz- The class to instantiate.argtypes- The actual argument types.args- The actual argument values.- Returns:
 - The instantiated object.
 - Throws:
 java.lang.Exception
 
- 
invokeMethod
protected java.lang.Object invokeMethod(java.lang.Object ref, java.lang.Class clazz, java.lang.Class[] argtypes, java.lang.Object[] args) throws java.lang.ExceptionFind and invoke a method.- Parameters:
 ref- The object on which to invoke (may be null for static methods).clazz- The class to instantiate.argtypes- The actual argument types.args- The actual argument values.- Returns:
 - The return value.
 - Throws:
 java.lang.Exception
 
- 
accessField
protected java.lang.Object accessField(java.lang.Object ref, java.lang.Class clazz, IValueFetcher fetcher) throws java.lang.IllegalArgumentException, java.lang.IllegalAccessException, java.lang.NoSuchFieldExceptionAccess a field.- Throws:
 java.lang.IllegalAccessExceptionjava.lang.IllegalArgumentExceptionjava.lang.NoSuchFieldException
 
- 
getMethodForMethod
protected java.lang.reflect.Method getMethodForMethod(java.lang.reflect.Method method)
Find method declared in public class for a given method. 
- 
equals
public boolean equals(java.lang.Object o)
Test if two nodes are equal.- Overrides:
 equalsin classExpressionNode
 
- 
hashCode
public int hashCode()
Get the hash code for the node.- Overrides:
 hashCodein classExpressionNode
 
 - 
 
 -