ABLE 2.3.0 07/13/2005 14:21:00

com.ibm.able.data
Class AbleStringLiteral

java.lang.Object
  extended bycom.ibm.able.data.AbleLiteral
      extended bycom.ibm.able.data.AbleStringLiteral
All Implemented Interfaces:
AbleRd, java.io.Serializable

public class AbleStringLiteral
extends AbleLiteral
implements java.io.Serializable

This class wraps a value of the Java type java.lang.String in an object. An object of type AbleStringLiteral contains a single, immutable field whose type is String. Instances of AbleStringLiteral are used by the Able rules classes in clauses and expressions. In addition, this class provides methods for converting a String to a numeric value as well as other logical comparison methods useful when dealing with a String.

See Also:
Serialized Form

Field Summary
static AbleStringLiteral EMPTY_STRING_LITERAL
           
protected static java.util.WeakHashMap internedStrings
          internedStrings: A weak hash map of strings.
static boolean InternStringLiterals
          InternStringLiterals: Flag to indicate if string literals are interned.
protected  java.lang.String myValue
          The immutable value of this literal.
 
Constructor Summary
AbleStringLiteral()
          Create a new literal with an empty string value.
AbleStringLiteral(java.lang.String theValue)
          Create a new literal with the specified value.
 
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.
 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 compPlus(AbleRd theRhs)
          Compute, concatenate the current value of this data object to the current value of theRhs.
 boolean equals(java.lang.Object theOtherObject)
           
static java.lang.String findOrCreateInternedString(java.lang.String token)
          See if the specified string exists, and if it does, return it.
 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.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.
 int hashCode()
           
 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.
static java.lang.String valueOf(java.lang.String theValue)
          Take a string with escape characters and resolve (that is, remove) them.
 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, cmpIs, compDivide, compMinus, compModulo, compMultiply, compUnaryMinus, getDataTypeAsString, getReferent, getReferents, getTemplateString, isConstant, logicalAND, logicalNOT, logicalOR
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

EMPTY_STRING_LITERAL

public static final AbleStringLiteral EMPTY_STRING_LITERAL

InternStringLiterals

public static boolean InternStringLiterals
InternStringLiterals: Flag to indicate if string literals are interned.


internedStrings

protected static volatile java.util.WeakHashMap internedStrings
internedStrings: A weak hash map of strings.


myValue

protected java.lang.String myValue
The immutable value of this literal.

Constructor Detail

AbleStringLiteral

public AbleStringLiteral()
Create a new literal with an empty string value.


AbleStringLiteral

public AbleStringLiteral(java.lang.String theValue)
Create a new literal with the specified value.

Parameters:
theValue - The value to which this literal is to be set.

Method Detail

valueOf

public static java.lang.String valueOf(java.lang.String theValue)
Take a string with escape characters and resolve (that is, remove) them. Used by the ARL parsers. For example "c:\\joe\\test.arl" would be converted to "c:\joe\test.arl".

Parameters:
theValue - The input string that contains valid escape '\' character sequences
Returns:
A string containing no escape char sequences

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. Leading blanks, trailing blanks, and case are all ignored when determining if the value can be represented as a boolean.
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:
A String 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.

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 AbleStringLiteral object.
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.

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.

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. A form similar to "<token value=\"some string\"/>" is returned.

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
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
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.

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.

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
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
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.

compPlus

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

"+" is used for String concatenation.

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

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

equals

public boolean equals(java.lang.Object theOtherObject)

hashCode

public int hashCode()

toString

public java.lang.String toString()
Retrieve a string describing (the contents of) the object.

Overrides:
toString in class AbleLiteral
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.

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()

findOrCreateInternedString

public static java.lang.String findOrCreateInternedString(java.lang.String token)
See if the specified string exists, and if it does, return it. If the string doesn't already exist, create it, add it to the cache, and then return it.

Parameters:
token - A parsed token (a string) that is used as a literal.

Returns:
A String object the is guarenteed to be == if it is equal().

ABLE 2.3.0 07/13/2005 14:21:00

(C) Copyright IBM Corporation 1999, 2005