ABLE 2.0.0 07/02/2003 10:25:01

com.ibm.able.data
Class AbleContinuousVariable

java.lang.Object
  |
  +--com.ibm.able.data.AbleLhs
        |
        +--com.ibm.able.data.AbleVariable
              |
              +--com.ibm.able.data.AbleContinuousVariable
All Implemented Interfaces:
AbleRd, AbleWr, java.io.Serializable
Direct Known Subclasses:
AbleContinuousField, AbleFuzzyVariable

public class AbleContinuousVariable
extends AbleVariable
implements java.io.Serializable

This class wraps a value of the primitive type double in an object. An object of type AbleContinuousVariable contains a single, mutable field whose type is double. Instances of AbleContinuousVariable are used by the Able rules classes in clauses and expressions. In addition, this class provides methods for converting a double to other datatypes, setting a double value using other datatypes, as well as other logical comparison and math operator methods useful when dealing with a double. *

See Also:
Serialized Form

Field Summary
protected  double myDiscourseHi
          The maximum value that this variable can assume.
protected  double myDiscourseLo
          The minimum value that this variable can assume.
protected  double myInitialValue
          The initial double value used to reset this variable
protected  double myValue
          The current value of the variable.
 
Fields inherited from class com.ibm.able.data.AbleVariable
myBoundFlag, myChgSupport, myComment, myContext, myDataType, myGlobalFlag, myId, myName, myPrompt, myReferences, myStaticFlag, myTemplateFlag, myValueInitial
 
Constructor Summary
AbleContinuousVariable(double theDiscourseLo, double theDiscourseHi)
          Create a new AbleContinuousVariable to be used as an initializer with the specified universe of discourse.
AbleContinuousVariable(double theDiscourseLo, double theDiscourseHi, double theInitialValue)
          Create a new AbleContinuousVariable to be used as an initializer with the specified universe of discourse and initial value.
AbleContinuousVariable(java.lang.String theName, boolean theStaticFlag, boolean theGlobalFlag, double theDiscourseLo, double theDiscourseHi)
          Create a new continuous variable with the specified universe of discourse.
AbleContinuousVariable(java.lang.String theName, double theDiscourseLo, double theDiscourseHi)
          Create a new continuous variable with the specified universe of discourse.
 
Method Summary
 java.lang.String arlDclString()
          Return a formal ARL "declaration" string that describes this data object.
 void asgnEq(AbleRd theRhs)
          Assignment: assign the current value of theRhs to this data object.
protected  boolean chkRange(double theNumber)
           
 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.
 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.
 AbleLiteral compDivide(AbleRd theRhs)
          Compute, divide the current value of this data object by the current value of theRhs.
 AbleLiteral compMinus(AbleRd theRhs)
          Compute, subtract the current value of theRhs from the current value of this object.
 AbleLiteral compMultiply(AbleRd theRhs)
          Compute, multiply the current value of this data object to the current value of theRhs.
 AbleLiteral compPlus(AbleRd theRhs)
          Compute, add or concatenate the current value of this data object to the current value of theRhs.
 AbleLiteral compUnaryMinus(AbleRd theRhs)
          Compute, the unary minus of the current value of this object.
 boolean getBooleanValue()
          Retrieve the value of this data object as a boolean value.
 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.
 java.lang.String getDataTypeName()
          Retrieve the data type name.
 double getDiscourseHi()
          Retrieve the variable's maximum allowed value..
 double getDiscourseLo()
          Retrieve the variable's minimum allowed value.
 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.
 java.lang.Class getLiteralClass()
          Retrieve the class of this variable's related AbleLiteral data type.
 double getNumericValue()
          Retrieve the value of this data object as a numeric value.
 java.lang.String getStringValue()
          Retrieve the value of this data object as a string value.
 AbleLiteral getValue()
          Retrieve the value of this data object as a literal.
 java.lang.String getValueString()
          Retrieve the variable's current value as a string.
 void init()
          Init the variable to its initial state.
 void reset()
          Reset the variable to its intial state.
 void setBooleanValue(boolean theNewValue)
          Set the value of this data object from a boolean value.
 void setDiscourseHi(double theValue)
          Set the variable's maximum allowed value.
 void setDiscourseLo(double theValue)
          Set the variable's minimum allowed value.
 void setFuzzyValue(AbleFuzzySet theNewValue)
          Set the value of this data object from a fuzzy value.
 void setGenericValue(java.lang.Object theNewValue)
          Set the value of this data object from an object.
 void setInitialValue(AbleRd theInitialValue)
          Set the initial value (literal or expression) for this variable
 void setNumericValue(double theNewValue)
          Set the value of this data object from a numeric value.
 void setStringValue(java.lang.String theNewValue)
          Set the value of this data object from a string value.
 void setValue(AbleLiteral theNewValue)
          Set the value of this data object from a literal object.
 void setValueString(java.lang.String theNewValue)
          Set the variable's current value from a string.
 java.lang.String toString()
          Retrieve a string describing (the contents of) the object.
 java.lang.String traceString(int theTraceStringFlavor)
          Retrieve a string describing (the contents of) the object.
 boolean withinUniverseOfDiscourse(double theValue)
          Determine whether a particular value is within the universe of discourse (between the low and high values inclusive) for this variable.
 java.lang.String xmlDclString()
          Return a formal XML "declaration" string that describes this data object.
 
Methods inherited from class com.ibm.able.data.AbleVariable
arlCRdString, arlInitializerString, getArlComment, getChgSupport, getComment, getContext, getDataType, getDataTypeAsString, getId, getName, getPrompt, getPromptString, getReferences, getReferent, getReferents, getTemplateString, isBound, isConstant, isGlobal, isLocal, isStatic, isTemplate, notStatic, setChgSupport, setComment, setContext, setId, setPrompt, setReferences, setStatic, setTemplate, xmlCRdString, xmlCWrString, xmlInitializerString
 
Methods inherited from class com.ibm.able.data.AbleLhs
asgnIs, asgnIs, bitwiseAND, bitwiseNOT, bitwiseOR, bitwiseShiftLeft, bitwiseShiftRight, bitwiseShiftRightZeroFill, bitwiseXOR, cmpIs, compModulo, Copyright, logicalAND, logicalNOT, logicalOR
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

myDiscourseLo

protected double myDiscourseLo
The minimum value that this variable can assume. Together with myDiscourseHi, determines the universe of discourse over this variable.

myDiscourseHi

protected double myDiscourseHi
The maximum value that this variable can assume. Together with myDiscourseLo, determines the universe of discourse over this variable.

myValue

protected double myValue
The current value of the variable. The value, unless undetermined (in which case it is Double.NaN), is always within the universe of discourse for this variable.

Initialized to Double.NaN.


myInitialValue

protected double myInitialValue
The initial double value used to reset this variable
Constructor Detail

AbleContinuousVariable

public AbleContinuousVariable(double theDiscourseLo,
                              double theDiscourseHi)
Create a new AbleContinuousVariable to be used as an initializer with the specified universe of discourse.

The initial value of this variable cannot be specified and is set to Double.NaN.

Parameters:
theDiscourseLo - The lowest value that this variable may assume.

theDiscourseHi - The highest value that this variable may assume.


AbleContinuousVariable

public AbleContinuousVariable(double theDiscourseLo,
                              double theDiscourseHi,
                              double theInitialValue)
Create a new AbleContinuousVariable to be used as an initializer with the specified universe of discourse and initial value.
Parameters:
theDiscourseLo - The lowest value that this variable may assume.

theDiscourseHi - The highest value that this variable may assume.

theInitialValue - The initial value for this variable

AbleContinuousVariable

public AbleContinuousVariable(java.lang.String theName,
                              double theDiscourseLo,
                              double theDiscourseHi)
Create a new continuous variable with the specified universe of discourse.

The initial value of this variable cannot be specified and is set to Double.NaN.

Parameters:
theName - The unique name of the variable.

theDiscourseLo - The lowest value that this variable may assume.

theDiscourseHi - The highest value that this variable may assume.


AbleContinuousVariable

public AbleContinuousVariable(java.lang.String theName,
                              boolean theStaticFlag,
                              boolean theGlobalFlag,
                              double theDiscourseLo,
                              double theDiscourseHi)
Create a new continuous variable with the specified universe of discourse.

The initial value of this variable cannot be specified and is set to Double.NaN.

Parameters:
theName - The unique name of the variable.

theStaticFlag - Use true if this variable is to be marked as static, which means that it will ignore future reset requests; use false if the variable can be reset to its initial value when requested.

theGlobalFlag - Use true if this variable is to be considered global; use false if the variable is to be considered local.

theDiscourseLo - The lowest value that this variable may assume.

theDiscourseHi - The highest value that this variable may assume.

Method Detail

getBooleanValue

public boolean getBooleanValue()
                        throws AbleDataException
Retrieve the value of this data object as a boolean value.
Overrides:
getBooleanValue in class AbleLhs
Returns:
A boolean, if the value of this object can be represented as a boolean value. If the current value is 0.0, false is returned; any other numeric value returns true.
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.
Overrides:
getFuzzyValue in class AbleLhs
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.
Overrides:
getGenericValue in class AbleLhs
Returns:
A Double 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.
Overrides:
getNumericValue in class AbleLhs
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.
Overrides:
getStringValue in class AbleLhs
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.

getValue

public AbleLiteral getValue()
                     throws AbleDataException
Retrieve the value of this data object as a literal.
Overrides:
getValue in class AbleLhs
Returns:
An AbleNumericLiteral object.
Throws:
AbleDataException - If the value of this object cannot be represented as a literal.

asgnEq

public void asgnEq(AbleRd theRhs)
            throws AbleDataException
Assignment: assign the current value of theRhs to this data object.
Overrides:
asgnEq in class AbleLhs
Parameters:
theRhs - The right-hand, or source, side of the assignment.

Throws:
AbleDataException - If the right-hand side cannot be converted (if necessary) and assigned to this data object.

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.

Overrides:
cmpEq in class AbleLhs
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
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.

Overrides:
cmpGt in class AbleLhs
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
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.

Overrides:
cmpGtEq in class AbleLhs
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.

cmpLt

public boolean cmpLt(AbleRd theRhs)
              throws AbleDataException
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.

Overrides:
cmpLt in class AbleLhs
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
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.

Overrides:
cmpLtEq in class AbleLhs
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
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.

Overrides:
cmpNeq in class AbleLhs
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.

compPlus

public AbleLiteral compPlus(AbleRd theRhs)
                     throws AbleDataException
Compute, add or concatenate the current value of this data object to the current value of theRhs.

"+" is used for numeric addtion and String concatenation.

Overrides:
compPlus in class AbleLhs
Parameters:
theRhs - The right-hand side of the comparison.

Returns:
The result of the addition or concatenation operation.
Throws:
AbleDataException - If the right-hand side cannot be converted (if necessary) and compared to this data object.

compMinus

public AbleLiteral compMinus(AbleRd theRhs)
                      throws AbleDataException
Compute, subtract the current value of theRhs from the current value of this object.

"-" is used for numeric subtraction.

Overrides:
compMinus in class AbleLhs
Parameters:
theRhs - The right-hand side of the comparison.

Returns:
The result of the subtraction operation.
Throws:
AbleDataException - If the right-hand side cannot be converted (if necessary) and compared to this data object.

compMultiply

public AbleLiteral compMultiply(AbleRd theRhs)
                         throws AbleDataException
Compute, multiply the current value of this data object to the current value of theRhs.

"*" is used for numeric multiplication.

Overrides:
compMultiply in class AbleLhs
Parameters:
theRhs - The right-hand side of the comparison.

Returns:
The result of the multiplication operation.
Throws:
AbleDataException - If the right-hand side cannot be converted (if necessary) and compared to this data object.

compDivide

public AbleLiteral compDivide(AbleRd theRhs)
                       throws AbleDataException
Compute, divide the current value of this data object by the current value of theRhs.

"/" is used for numeric division.

Overrides:
compDivide in class AbleLhs
Parameters:
theRhs - The right-hand side of the comparison.

Returns:
The result of the division operation.
Throws:
AbleDataException - If the right-hand side cannot be converted (if necessary) and compared to this data object.

compUnaryMinus

public AbleLiteral compUnaryMinus(AbleRd theRhs)
                           throws AbleDataException
Compute, the unary minus of the current value of this object.

"-" is used for numeric negation.

Overrides:
compUnaryMinus in class AbleLhs
Parameters:
theRhs - The right-hand side of the operation (ignored).

Returns:
The result of the negation operation.
Throws:
AbleDataException - If the value of this data object cannot be negated.

setBooleanValue

public void setBooleanValue(boolean theNewValue)
                     throws AbleDataException
Set the value of this data object from a boolean value.
Overrides:
setBooleanValue in class AbleLhs
Parameters:
theNewValue - A boolean value. If the new value is true the variable is set to 1.0, but only if that value is within the universe of discourse; if the new value is false the variable is set to 0.0, but only if that value is within the universe of discourse.

Throws:
AbleDataException - If the value of this object cannot be represented as a boolean value.

setFuzzyValue

public void setFuzzyValue(AbleFuzzySet theNewValue)
                   throws AbleDataException
Set the value of this data object from a fuzzy value. This method always throws an exception.
Overrides:
setFuzzyValue in class AbleLhs
Parameters:
theNewValue - A fuzzy set.

Throws:
AbleDataException - If the value of this object cannot be represented as a fuzzy value.

setGenericValue

public void setGenericValue(java.lang.Object theNewValue)
                     throws AbleDataException
Set the value of this data object from an object.
Overrides:
setGenericValue in class AbleLhs
Parameters:
theNewValue - Any type of Object.

Throws:
AbleDataException - If the value of this object cannot be derived from the specified Object.

setNumericValue

public void setNumericValue(double theNewValue)
                     throws AbleDataException
Set the value of this data object from a numeric value.
Overrides:
setNumericValue in class AbleLhs
Parameters:
theNewValue - Any number. If the number is not within the universe of discourse for this variable, an exception is thrown.

Throws:
AbleDataException - If the value of this object cannot be represented as a numeric value.

setStringValue

public void setStringValue(java.lang.String theNewValue)
                    throws AbleDataException
Set the value of this data object from a string value.
Overrides:
setStringValue in class AbleLhs
Parameters:
theNewValue - A string. The variable is set to the value of the string, but only if the string can be parsed to a double and that number is within the universe of discourse for this variable. Otherwise an exception is thrown.

Throws:
AbleDataException - If the value of this object cannot be represented as a string value.

setValue

public void setValue(AbleLiteral theNewValue)
              throws AbleDataException
Set the value of this data object from a literal object.
Overrides:
setValue in class AbleLhs
Parameters:
theNewValue - An Able literal of any type. An attempt is made to convert the literal to an appropriate type before assigning it to this "writable" object. The resulting number must be within the universe of discourse for this variable.

Throws:
AbleDataException - If the value of this object cannot be determined from the literal object.

arlDclString

public java.lang.String arlDclString()
Return a formal ARL "declaration" string that describes this data object.
Overrides:
arlDclString in class AbleVariable
Returns:
A String describing the data object in formal rule language.

xmlDclString

public java.lang.String xmlDclString()
Return a formal XML "declaration" string that describes this data object.
Overrides:
xmlDclString in class AbleVariable
Returns:
A String describing the data object in XML.

setValueString

public void setValueString(java.lang.String theNewValue)
                    throws AbleDataException
Set the variable's current value from a string. Note: This method is provided for the use of a rule language parser.
Overrides:
setValueString in class AbleVariable

getValueString

public java.lang.String getValueString()
Retrieve the variable's current value as a string. Note: This method is provided for the use of a rule language parser.
Overrides:
getValueString in class AbleVariable

reset

public void reset()
           throws AbleDataException
Reset the variable to its intial state.
Overrides:
reset in class AbleVariable

init

public void init()
          throws AbleDataException
Init the variable to its initial state.
Overrides:
init in class AbleVariable

getDataTypeClass

public java.lang.Class getDataTypeClass()
Description copied from class: AbleLhs
Retrieve the actual class of this object's underlying data type.
Overrides:
getDataTypeClass in class AbleLhs
Following copied from class: com.ibm.able.data.AbleLhs
Returns:
The class of the underlying data type.

getDataTypeClassName

public java.lang.String getDataTypeClassName()
Description copied from class: AbleLhs
Retrieve the name of the class of this object's underlying data type.
Overrides:
getDataTypeClassName in class AbleLhs
Following copied from class: com.ibm.able.data.AbleLhs
Returns:
A String that is the name of the class of the underlying data type.

getDataTypeName

public java.lang.String getDataTypeName()
Retrieve the data type name. This is the name used in the ABLE Rule Set, for example, Integer, Customer, etc.
Overrides:
getDataTypeName in class AbleVariable

getLiteralClass

public java.lang.Class getLiteralClass()
Retrieve the class of this variable's related AbleLiteral data type.
Overrides:
getLiteralClass in class AbleVariable
Returns:
The class of the literal data type.

setDiscourseLo

public void setDiscourseLo(double theValue)
Set the variable's minimum allowed value.
Parameters:
theValue - The new minimum value that the variable may assume.


getDiscourseLo

public double getDiscourseLo()
Retrieve the variable's minimum allowed value.

setDiscourseHi

public void setDiscourseHi(double theValue)
Set the variable's maximum allowed value.
Parameters:
theValue - The new maximum value that the variable may assume.


getDiscourseHi

public double getDiscourseHi()
Retrieve the variable's maximum allowed value..

withinUniverseOfDiscourse

public boolean withinUniverseOfDiscourse(double theValue)
Determine whether a particular value is within the universe of discourse (between the low and high values inclusive) for this variable.
Parameters:
theValue - A number to be tested.


setInitialValue

public void setInitialValue(AbleRd theInitialValue)
                     throws AbleDataException
Set the initial value (literal or expression) for this variable
Overrides:
setInitialValue in class AbleVariable
Parameters:
theInitialValue - An AbleLiteral or AbleExpression used to set the initial value

chkRange

protected boolean chkRange(double theNumber)

toString

public java.lang.String toString()
Retrieve a string describing (the contents of) the object.
Overrides:
toString in class AbleVariable
Returns:
A String containing the current contents of the object.

traceString

public java.lang.String traceString(int theTraceStringFlavor)
Retrieve a string describing (the contents of) the object.
Overrides:
traceString in class AbleVariable
Parameters:
theFlavor - An Able.TraceStringFlavor value.

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

ABLE 2.0.0 07/02/2003 10:25:01

(C) Copyright IBM Corporation 1999, 2003