#include <fmtable.h>
Public Types | |
enum | ISDATE { kIsDate } |
This enum is only used to let callers distinguish between the Formattable(UDate) constructor and the Formattable(double) constructor; the compiler cannot distinguish the signatures, since UDate is currently typedefed to be either double or long. More... | |
enum | Type { kDate, kDouble, kLong, kString, kArray } |
The list of possible data types of this Formattable object. More... | |
Public Methods | |
Formattable () | |
Formattable (UDate d, ISDATE) | |
Creates a Formattable object with a UDate instance. More... | |
Formattable (double d) | |
Creates a Formattable object with a double number. More... | |
Formattable (int32_t l) | |
Creates a Formattable object with a long number. More... | |
Formattable (const char* strToCopy) | |
Creates a Formattable object with a char string pointer. More... | |
Formattable (const UnicodeString& stringToCopy) | |
Creates a Formattable object with a UnicodeString object to copy from. More... | |
Formattable (UnicodeString* stringToAdopt) | |
Creates a Formattable object with a UnicodeString object to adopt from. More... | |
Formattable (const Formattable* arrayToCopy, int32_t count) | |
Creates a Formattable object with an array of Formattable objects. More... | |
Formattable (const Formattable&) | |
Copy constructor. More... | |
Formattable& | operator= (const Formattable&) |
Assignment operator. More... | |
UBool | operator== (const Formattable&) const |
Equality comparison. More... | |
UBool | operator!= (const Formattable& other) const |
virtual | ~Formattable () |
Destructor. More... | |
Type | getType (void) const |
Gets the data type of this Formattable object. More... | |
double | getDouble (void) const |
Gets the double value of this object. More... | |
int32_t | getLong (void) const |
Gets the long value of this object. More... | |
UDate | getDate (void) const |
Gets the Date value of this object. More... | |
UnicodeString& | getString (UnicodeString& result) const |
Gets the string value of this object. More... | |
const UnicodeString& | getString (void) const |
Gets a const reference to the string value of this object. More... | |
UnicodeString& | getString (void) |
Gets a reference to the string value of this object. More... | |
const Formattable* | getArray (int32_t& count) const |
Gets the array value and count of this object. More... | |
Formattable& | operator[] (int32_t index) |
Accesses the specified element in the array value of this Formattable object. More... | |
void | setDouble (double d) |
Sets the double value of this object. More... | |
void | setLong (int32_t l) |
Sets the long value of this object. More... | |
void | setDate (UDate d) |
Sets the Date value of this object. More... | |
void | setString (const UnicodeString& stringToCopy) |
Sets the string value of this object. More... | |
void | setArray (const Formattable* array, int32_t count) |
Sets the array value and count of this object. More... | |
void | adoptString (UnicodeString* stringToAdopt) |
Sets and adopts the string value and count of this object. More... | |
void | adoptArray (Formattable* array, int32_t count) |
Sets and adopts the array value and count of this object. More... | |
Public Attributes | |
Formattable* | fArray |
int32_t | fCount |
Private Methods | |
void | dispose (void) |
Cleans up the memory for unwanted values. More... | |
Private Attributes | |
union { | |
UnicodeString* fString | |
double fDouble | |
int32_t fLong | |
UDate fDate | |
struct { | |
Formattable* fArray | |
int32_t fCount | |
} fArrayAndCount | |
} | fValue |
Type | fType |
Static Private Methods | |
Formattable* | createArrayCopy (const Formattable* array, int32_t count) |
Creates a new Formattable array and copies the values from the specified original. More... |
Formattable is a thin wrapper class which interconverts between the primitive numeric types (double, long, etc.) as well as UDate and UnicodeString.
Note that this is fundamentally different from the Java behavior, since in this case the various formattable objects do not occupy a hierarchy, but are all wrapped within this one class. Formattable encapsulates all the polymorphism in itself.
It would be easy to change this so that Formattable was an abstract base class of a genuine hierarchy, and that would clean up the code that currently must explicitly check for type, but that seems like overkill at this point.
Definition at line 38 of file fmtable.h.
|
This enum is only used to let callers distinguish between the Formattable(UDate) constructor and the Formattable(double) constructor; the compiler cannot distinguish the signatures, since UDate is currently typedefed to be either double or long. If UDate is changed later to be a bonafide class or struct, then we no longer need this enum. |
|
The list of possible data types of this Formattable object.
|
|
|
|
Creates a Formattable object with a UDate instance.
|
|
Creates a Formattable object with a double number.
|
|
Creates a Formattable object with a long number.
|
|
Creates a Formattable object with a char string pointer. Assumes that the char string is null terminated.
|
|
Creates a Formattable object with a UnicodeString object to copy from.
|
|
Creates a Formattable object with a UnicodeString object to adopt from.
|
|
Creates a Formattable object with an array of Formattable objects.
|
|
Copy constructor.
|
|
Destructor.
|
|
Sets and adopts the array value and count of this object.
|
|
Sets and adopts the string value and count of this object.
|
|
Creates a new Formattable array and copies the values from the specified original.
|
|
Cleans up the memory for unwanted values. For example, the adopted string or array objects. |
|
Gets the array value and count of this object.
|
|
Gets the Date value of this object.
|
|
Gets the double value of this object.
|
|
Gets the long value of this object.
|
|
Gets a reference to the string value of this object.
|
|
Gets a const reference to the string value of this object.
|
|
Gets the string value of this object.
|
|
Gets the data type of this Formattable object.
|
|
|
|
Assignment operator.
|
|
Equality comparison.
Referenced by operator!=(). |
|
Accesses the specified element in the array value of this Formattable object.
|
|
Sets the array value and count of this object.
|
|
Sets the Date value of this object.
|
|
Sets the double value of this object.
|
|
Sets the long value of this object.
|
|
Sets the string value of this object.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|