Overview | Package | Class | Use | Tree | Serialized | Deprecated | Index | Help
| ABLE 2.3.0 07/13/2005 14:21:00
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.ibm.able.data
Class AbleNewObjectLiteral

    java.lang.Object
      com.ibm.able.data.AbleLiteral
          com.ibm.able.data.AbleNewObjectLiteral

All Implemented Interfaces:
  AbleRd, java.io.Serializable

public class AbleNewObjectLiteral
extends AbleLiteral

This class dynamically creates a new instance of an object by performing a method invocation to a constructor on the class. Each time this class is called, it will return a new object. Instances of this class are used to create initial values on AbleVariables and to dynamically create instances of objects as part of rules in AbleRuleSets.

The data type name and corresponding data type class name must be provided on the constructor of this class.

See Also:
  Serialized Form

Field Summary
`protected java.util.Vector` | `myArgs` The arguments to the constructor (A vector of AbleRd objects)
`protected AbleDataContext` | `myContext`
`protected java.lang.reflect.Constructor` | `myCtor` The constructor we call to create the new object
`protected java.lang.String` | `myDataType` The data type.
`protected java.lang.String` | `myDataTypeClassName` The data type class name.
`protected AbleRd` | `myIndexExpression` The array index expression (if any).

Constructor Summary
`AbleNewObjectLiteral(AbleDataContext theContext, java.lang.String theDataType, java.lang.String theDataTypeClassName, java.util.Vector theArgs, AbleRd theIndexExpression)` Create a new Able new object literal with the specified information.
`AbleNewObjectLiteral(AbleNewObjectLiteral theLiteral, java.util.Vector theArgs, AbleRd theIndexExpression)` Create a copy of this method literal with replacement args

Method Summary
`java.lang.String` | `arlCRdString()` Return a formal ARL "clause read" string that describes this data object.
`boolean` | `cmpEq(AbleRd theRhs)` Comparison, equal to: compare the current value of this data object to the current value of theRhs.
`boolean` | `cmpGt(AbleRd theRhs)` Comparison, greater than: compare the current value of this data object to the current value of theRhs.
`boolean` | `cmpGtEq(AbleRd theRhs)` Comparison, greater than or equal to: compare the current value of this data object to the current value of theRhs.
`double` | `cmpIs(AbleRd theRhs)` Comparison, fuzzy equal to: compare the current value of this data object to the current value of theRhs.
`boolean` | `cmpLt(AbleRd theRhs)` Comparison, less than: compare the current value of this data object to the current value of theRhs.
`boolean` | `cmpLtEq(AbleRd theRhs)` Comparison, less than or equal to: compare the current value of this data object to the current value of theRhs.
`boolean` | `cmpNeq(AbleRd theRhs)` Comparison, not equal to: compare the current value of this data object to the current value of theRhs.
`java.lang.Object` | `createInstance()` Create the new object instance
`void` | `ctorBuiltInHelper()`
`protected java.lang.Object[]` | `cvtArgs(java.util.Vector theArgs)`
`protected java.lang.Class[]` | `getArgClasses(java.util.Vector theArgs)`
`boolean` | `getBooleanValue()` Retrieve the value of this data object as a boolean value.
`int` | `getDataType()` Retrieve the data type of this data object.
`java.lang.Class` | `getDataTypeClass()` Retrieve the actual class of this object's underlying data type.
`java.lang.String` | `getDataTypeClassName()` Retrieve the name of the class of this object's underlying data type.
`AbleFuzzySet` | `getFuzzyValue()` Retrieve the value of this data object as a fuzzy value.
`java.lang.Object` | `getGenericValue()` Retrieve the value of this data object as an Object.
`double` | `getNumericValue()` Retrieve the value of this data object as a numeric value.
`java.util.BitSet` | `getReferents()` Retrieve the Ids of the variables to which this data object refers, if any.
`java.lang.Class` | `getReturnType()` Get the data type of the value returned from the associated method invocation.
`java.lang.String` | `getStringValue()` Retrieve the value of this data object as a string value.
`java.lang.String` | `getTemplateString(java.util.Vector theTemplateVars)` Retrieve a text format string for use by rule templates.
`AbleLiteral` | `getValue()` Retrieve the value of this data object as a literal.
`java.util.HashSet` | `getVariableReferences()` Retrieve the set of variables (if any) referenced by this expression (and subexpressions)
`boolean` | `isConstant()` Returns true if this AbleRd object is a constant value false, if it does not.
`protected void` | `resolveConstructor(java.lang.Object[] theArgs)` Find the constructor to use to create new instances.
`java.lang.String` | `traceString(int theTraceStringFlavor)` Retrieve a string describing (the contents of) the object.
`java.lang.String` | `xmlCRdString()` Return a formal XML "clause read" string that describes this data object.

Methods inherited from class com.ibm.able.data.AbleLiteral
`bitwiseAND, bitwiseNOT, bitwiseOR, bitwiseShiftLeft, bitwiseShiftRight, bitwiseShiftRightZeroFill, bitwiseXOR, compDivide, compMinus, compModulo, compMultiply, compPlus, compUnaryMinus, getDataTypeAsString, getReferent, logicalAND, logicalNOT, logicalOR, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### myDataType

    protected java.lang.String myDataType

  The data type.

  The name of the data type.

### myDataTypeClassName

    protected java.lang.String myDataTypeClassName

  The data type class name. Note: names ending with "[]" indicate that an array of myArgs length should be created (myArgs are the array initializer)

  The fully-qualified class name of the data type.

### myArgs

    protected java.util.Vector myArgs

  The arguments to the constructor (A vector of AbleRd objects)

### myIndexExpression

    protected AbleRd myIndexExpression

  The array index expression (if any). Note: non-null value indicates that an array of myIndexExpression length should be created.

### myContext

    protected AbleDataContext myContext

### myCtor

    protected transient java.lang.reflect.Constructor myCtor

  The constructor we call to create the new object

Constructor Detail

### AbleNewObjectLiteral

    public AbleNewObjectLiteral(AbleDataContext theContext,
                                java.lang.String theDataType,
                                java.lang.String theDataTypeClassName,
                                java.util.Vector theArgs,
                                AbleRd theIndexExpression)
                         throws AbleDataException

  Create a new Able new object literal with the specified information. The initial value of this literal is null, and it remains null until this literal is requested to give up a value (create a new instance of the specified class At that time, the appropriate constructor is called to produce a value. Each time a value is requested from this literal, the constructor is called again; be aware that the current value may thus change from time to time.

Parameters:
  `theContext` - The context object (used for inner classes only)

  `theDataType` - The name of the data type.

  `theDataTypeClassName` - The fully-qualified .class name of the data type.

  `theArgs` - A list of AbleRd objects whose runtime values will be passed to the constructor as arguments. Each converted argument will be a Boolean, a Double, a String, or an Object, depending on the type of each AbleRd object in the argument list. The list can be empty, but it must never be null.

  `theIndexExpression` - An index expression for new array literals

### AbleNewObjectLiteral

    public AbleNewObjectLiteral(AbleNewObjectLiteral theLiteral,
                                java.util.Vector theArgs,
                                AbleRd theIndexExpression)
                         throws AbleDataException

  Create a copy of this method literal with replacement args

Method Detail

### ctorBuiltInHelper

    public void ctorBuiltInHelper()

### getValue

    public AbleLiteral getValue()
                         throws AbleDataException

  Retrieve the value of this data object as a literal.

  Specified by:
    `getValue` in interface `AbleRd`
  Specified by:
    `getValue` in class `AbleLiteral`
  Returns:
    An AbleLiteral object.
  Throws:
    `AbleDataException` - If the value of this object cannot be represented as a literal.

### createInstance

    public java.lang.Object createInstance()
                                    throws AbleDataException

  Create the new object instance

  Returns:
    An AbleLiteral object.
  Throws:
    `AbleDataException` - If the value of this object cannot be represented as a literal.

### resolveConstructor

    protected void resolveConstructor(java.lang.Object[] theArgs)
                               throws AbleDataException

  Find the constructor to use to create new instances.

  Parameters:
    `theArgs` - The dereferenced argument objects (returned by cvtArgs())
  Throws:
    `AbleDataException` - If the value of this object cannot be represented as a literal.

### getDataTypeClass

    public java.lang.Class getDataTypeClass()

  Description copied from class: `AbleLiteral`
  Retrieve the actual class of this object's underlying data type.

  Specified by:
    `getDataTypeClass` in interface `AbleRd`
  Specified by:
    `getDataTypeClass` in class `AbleLiteral`
  Returns:
    The class of the underlying data type.

### getDataTypeClassName

    public java.lang.String getDataTypeClassName()

  Description copied from class: `AbleLiteral`
  Retrieve the name of the class of this object's underlying data type.

  Specified by:
    `getDataTypeClassName` in interface `AbleRd`
  Specified by:
    `getDataTypeClassName` in class `AbleLiteral`
  Returns:
    A String that is the name of the class of the underlying data type.

### getBooleanValue

    public boolean getBooleanValue()
                            throws AbleDataException

  Retrieve the value of this data object as a boolean value.

  Specified by:
    `getBooleanValue` in interface `AbleRd`
  Specified by:
    `getBooleanValue` in class `AbleLiteral`
  Returns:
    A boolean, if the value of this object can be represented as a boolean value.
  Throws:
    `AbleDataException` - If the value of this object cannot be represented as a boolean value.

### getFuzzyValue

    public AbleFuzzySet getFuzzyValue()
                               throws AbleDataException

  Retrieve the value of this data object as a fuzzy value.

  Specified by:
    `getFuzzyValue` in interface `AbleRd`
  Specified by:
    `getFuzzyValue` in class `AbleLiteral`
  Returns:
    A fuzzy set, if the value of this object can be represented as a fuzzy value. This method always throws an exception.
  Throws:
    `AbleDataException` - If the value of this object cannot be represented as a fuzzy value.

### getGenericValue

    public java.lang.Object getGenericValue()
                                     throws AbleDataException

  Retrieve the value of this data object as an Object.

  Specified by:
    `getGenericValue` in interface `AbleRd`
  Specified by:
    `getGenericValue` in class `AbleLiteral`
  Returns:
    Any type of object.
  Throws:
    `AbleDataException` - If the value of this object cannot be represented as an Object.

### getNumericValue

    public double getNumericValue()
                           throws AbleDataException

  Retrieve the value of this data object as a numeric value.

  Specified by:
    `getNumericValue` in interface `AbleRd`
  Specified by:
    `getNumericValue` in class `AbleLiteral`
  Returns:
    A double, if the value of this object can be represented as a numeric value.
  Throws:
    `AbleDataException` - If the value of this object cannot be represented as a numeric value.

### getStringValue

    public java.lang.String getStringValue()
                                    throws AbleDataException

  Retrieve the value of this data object as a string value.

  Specified by:
    `getStringValue` in interface `AbleRd`
  Specified by:
    `getStringValue` in class `AbleLiteral`
  Returns:
    A String, if the value of this object can be represented as a string value.
  Throws:
    `AbleDataException` - If the value of this object cannot be represented as a string value.

### cmpEq

    public boolean cmpEq(AbleRd theRhs)
                  throws AbleDataException

  Comparison, equal to: compare the current value of this data object to the current value of theRhs.

  "==" is used for numeric and boolean compares; equals() is used for Object compares; and Collator.equals() is used for String compares.

  Specified by:
    `cmpEq` in interface `AbleRd`
  Overrides:
    `cmpEq` in class `AbleLiteral`
  Parameters:
    `theRhs` - The right-hand side of the comparison.

  Returns:
    true, if this data object is equal to theRhs; false, otherwise.
  Throws:
    `AbleDataException` - If the right-hand side cannot be converted (if necessary) and compared to this data object.

### cmpGt

    public boolean cmpGt(AbleRd theRhs)
                  throws AbleDataException

  Description copied from class: `AbleLiteral`
  Comparison, greater than: compare the current value of this data object to the current value of theRhs.

  ">" is used for numeric compares; Collator.compare() is used for String compares. Use of other data types on the left-hand side causes an exception.

  Specified by:
    `cmpGt` in interface `AbleRd`
  Overrides:
    `cmpGt` in class `AbleLiteral`
  Parameters:
    `theRhs` - The right-hand side of the comparison.

  Returns:
    true, if this data object is greater than theRhs; false, otherwise.
  Throws:
    `AbleDataException` - If the right-hand side cannot be converted (if necessary) and compared to this data object.

### cmpGtEq

    public boolean cmpGtEq(AbleRd theRhs)
                    throws AbleDataException

  Description copied from class: `AbleLiteral`
  Comparison, greater than or equal to: compare the current value of this data object to the current value of theRhs.

  ">=" is used for numeric compares; Collator.compare() is used for String compares. Use of other data types on the left-hand side causes an exception.

  Specified by:
    `cmpGtEq` in interface `AbleRd`
  Overrides:
    `cmpGtEq` in class `AbleLiteral`
  Parameters:
    `theRhs` - The right-hand side of the comparison.

  Returns:
    true, if this data object is greater than or equal to theRhs; false, otherwise.
  Throws:
    `AbleDataException` - If the right-hand side cannot be converted (if necessary) and compared to this data object.

### cmpIs

    public double cmpIs(AbleRd theRhs)
                 throws AbleDataException

  Description copied from class: `AbleLiteral`
  Comparison, fuzzy equal to: compare the current value of this data object to the current value of theRhs.

  Fuzzy membership is used for the compare.

  Specified by:
    `cmpIs` in interface `AbleRd`
  Overrides:
    `cmpIs` in class `AbleLiteral`
  Parameters:
    `theRhs` - The right-hand side of the comparison. This must be a fuzzy set.

  Returns:
    The membership of the fuzzy variable's crisp value within the fuzzy ste.
  Throws:
    `AbleDataException` - If the right-hand side cannot be converted (if necessary) and compared to this data object.

### cmpLt

    public boolean cmpLt(AbleRd theRhs)
                  throws AbleDataException

  Description copied from class: `AbleLiteral`
  Comparison, less than: compare the current value of this data object to the current value of theRhs.

  "<" is used for numeric compares; Collator.compare() is used for String compares. Use of other data types on the left-hand side causes an exception.

  Specified by:
    `cmpLt` in interface `AbleRd`
  Overrides:
    `cmpLt` in class `AbleLiteral`
  Parameters:
    `theRhs` - The right-hand side of the comparison.

  Returns:
    true, if this data object is less than theRhs; false, otherwise.
  Throws:
    `AbleDataException` - If the right-hand side cannot be converted (if necessary) and compared to this data object.

### cmpLtEq

    public boolean cmpLtEq(AbleRd theRhs)
                    throws AbleDataException

  Description copied from class: `AbleLiteral`
  Comparison, less than or equal to: compare the current value of this data object to the current value of theRhs.

  "<=" is used for numeric compares; Collator.compare() is used for String compares. Use of other data types on the left-hand side causes an exception.

  Specified by:
    `cmpLtEq` in interface `AbleRd`
  Overrides:
    `cmpLtEq` in class `AbleLiteral`
  Parameters:
    `theRhs` - The right-hand side of the comparison.

  Returns:
    true, if this data object is less than or equal to theRhs; false, otherwise.
  Throws:
    `AbleDataException` - If the right-hand side cannot be converted (if necessary) and compared to this data object.

### cmpNeq

    public boolean cmpNeq(AbleRd theRhs)
                   throws AbleDataException

  Description copied from class: `AbleLiteral`
  Comparison, not equal to: compare the current value of this data object to the current value of theRhs.

  "!=" is used for numeric and boolean compares; ! equals() is used for Object compares; and ! Collator.equals() is used for String compares.

  Specified by:
    `cmpNeq` in interface `AbleRd`
  Overrides:
    `cmpNeq` in class `AbleLiteral`
  Parameters:
    `theRhs` - The right-hand side of the comparison.

  Returns:
    true, if this data object is not equal to theRhs; false, otherwise.
  Throws:
    `AbleDataException` - If the right-hand side cannot be converted (if necessary) and compared to this data object.

### isConstant

    public boolean isConstant()

  Description copied from interface: `AbleRd`
  Returns true if this AbleRd object is a constant value false, if it does not.

  Specified by:
    `isConstant` in interface `AbleRd`
  Overrides:
    `isConstant` in class `AbleLiteral`

### arlCRdString

    public java.lang.String arlCRdString()

  Return a formal ARL "clause read" string that describes this data object.

  Specified by:
    `arlCRdString` in interface `AbleRd`
  Specified by:
    `arlCRdString` in class `AbleLiteral`
  Returns:
    A String describing the data object in formal rule language.

### getTemplateString

    public java.lang.String getTemplateString(java.util.Vector theTemplateVars)

  Retrieve a text format string for use by rule templates. The string contains "{n}" strings, where the index 'n' corresponds to the template variables defined in the rule template. This string is based on the standard arlString() representation of the rule. After replacement of the template variable values, the resulting string must be a valid ARL format string that can be parsed.

  Specified by:
    `getTemplateString` in interface `AbleRd`
  Overrides:
    `getTemplateString` in class `AbleLiteral`
  Parameters:
    `theTemplateVars` - An ordered list of template variables referenced by this rule.
  Returns:
    A Text format string used to create a new rule instance.

### xmlCRdString

    public java.lang.String xmlCRdString()

  Return a formal XML "clause read" string that describes this data object.

  Specified by:
    `xmlCRdString` in interface `AbleRd`
  Specified by:
    `xmlCRdString` in class `AbleLiteral`
  Returns:
    A String describing the data object in XML.

### getReferents

    public java.util.BitSet getReferents()

  Retrieve the Ids of the variables to which this data object refers, if any. Must be overriden by subclasses which can refer to variables.

  Specified by:
    `getReferents` in interface `AbleRd`
  Overrides:
    `getReferents` in class `AbleLiteral`
  Returns:
    The Ids of the variables to which this data object refers, or AbleData.VarIdNull if the data object is a literal and therefore refers to no variable.

### getReturnType

    public java.lang.Class getReturnType()
                                  throws java.rmi.RemoteException

  Get the data type of the value returned from the associated method invocation.

  Returns:
    The class representing the return type of the method
  Throws:
    `java.rmi.RemoteException`

### getArgClasses

    protected java.lang.Class[] getArgClasses(java.util.Vector theArgs)
                                       throws AbleDataException

  Throws:
    `AbleDataException`

### cvtArgs

    protected java.lang.Object[] cvtArgs(java.util.Vector theArgs)
                                  throws AbleDataException

  Throws:
    `AbleDataException`

### traceString

    public java.lang.String traceString(int theTraceStringFlavor)

  Retrieve a string describing (the contents of) the object.

  Specified by:
    `traceString` in interface `AbleRd`
  Specified by:
    `traceString` in class `AbleLiteral`
  Parameters:
    `theTraceStringFlavor` - An Able.TraceStringFlavor value.

  Returns:
    A String containing the current contents of the object.

### getDataType

    public int getDataType()

  Description copied from class: `AbleLiteral`
  Retrieve the data type of this data object.

  Specified by:
    `getDataType` in interface `AbleRd`
  Specified by:
    `getDataType` in class `AbleLiteral`
  Returns:
    An AbleData.<DataType> constant.
  See Also:
    `AbleRd.getDataType()`

### getVariableReferences

    public java.util.HashSet getVariableReferences()

  Retrieve the set of variables (if any) referenced by this expression (and subexpressions)

Overview | Package | Class | Use | Tree | Serialized | Deprecated | Index | Help
| ABLE 2.3.0 07/13/2005 14:21:00
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

(C) Copyright IBM Corporation 1999, 2005