ClassNewInstance Class

com.bea.p13n.expression.operator
ClassNewInstance Class

public final class ClassNewInstance

    extends Operator

Implementation of the ClassNewInstance operator. Returns an newly constructed object by invoking a specified constructor.
Input 1: A Class object (or expression that evaluates to a Class) that defines the Class that should be created.
Input 2: A Class[] (or expression that evaluates to a Class[]) that defines the signature of the constructor that should be invoked. If input 2 is null the operator will attempt to deduce the constructor to call from the arguments (input 3).
Input 3: A Object[] (or expression that evaluates to a Object[]) that contains the arguments that should be passed to the constructor.
Returns: A new instance of the class, instantiated with the constructor of the provided signature using the supplied arguments..


Hierarchy
Object
  ComplexExpressionImpl
    Operator
      ClassNewInstance
All Implemented Interfaces

Cloneable, Expression, Serializable

Constructor Summary

ClassNewInstance()

Constructs an empty operator and operands can be added later by calling addSubExpression() on this.
ClassNewInstance(Object clazz, Object constructorSignature, Object args)

Constructs this with the given clazz, constructorSignature
 

Method Summary

public Class[]
getParameterSignature()
Returns the parameter signature for this Expression.
 
Methods from  com.bea.p13n.expression.operator.Operator
leftHandSide, operand, rightHandSide
 
Methods from  com.bea.p13n.expression.internal.ComplexExpressionImpl
addListener, addSubExpression, clearCache, clone, createProxyExpression, equals, getCachedValue, getParent, getSource, getSubExpression, getSubExpressionCount, getUserData, hashCode, isCached, isCacheEnabled, isEqualitySubExpression, notifyListeners, removeAllSubExpressions, removeListener, removeSubExpression, removeSubExpression, setCachedValue, setCacheEnabled, setParent, setSource, setSubExpression, setUserData, toString, write
 
Methods from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
   
Methods from interface com.bea.p13n.expression.Expression
accept, addListener, addSubExpression, clearCache, clone, getCachedValue, getParameterSignature, getParent, getSource, getSubExpression, getSubExpressionCount, getUserData, isCached, isCacheEnabled, removeAllSubExpressions, removeListener, removeSubExpression, removeSubExpression, setCachedValue, setCacheEnabled, setSource, setSubExpression, setUserData, write
 

Constructor Detail

ClassNewInstance

public ClassNewInstance()
Constructs an empty operator and operands can be added later by calling addSubExpression() on this.

ClassNewInstance

public ClassNewInstance(Object clazz, 
                        Object constructorSignature, 
                        Object args)
Constructs this with the given clazz, constructorSignatureargs parameters.
 

Method Detail

getParameterSignature() Method

public Class[] getParameterSignature()
Description copied from Expression.getParameterSignature()
Returns the parameter signature for this Expression. Because the sub-expressions within the Expression are typically arguments or operands, some type validation is performed by examining the class types of the sub-expressions against the Expression's parameter signature.
The tests that are performed are:
1. The number of sub-expressions must equals the number of parameter entries.
2. The class type of any sub-expression (or the result of evaluating the sub-expresssion) must equal the class type of the corresponding parameter entry.
3. Any null parameter entries are ignored and are considered optional sub-expressions.

Returns

the Class array containing the parameter signature.