2005/5/9

     
 

class ScriptVar

artefaktur
Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   Namespace Members   Compound Members   Related Pages  

acdk::lang::dmi::ScriptVar Class Reference

#include <ScriptVar.h>

Inheritance diagram for acdk::lang::dmi::ScriptVar:

acdk::lang::dmi::DmiObject List of all members.

Detailed Description

ScriptVar is a generic container for all other ACDK types.

It can hold the values by value or by reference. Additionally the declared type can be set, which may differ to to the concret type of the hold value.

ScriptVar also provides the standard operations like addition, multiplication may used inside scripting languages.

It mainly used in Dynamic Method Invokation (DMI) interfaces.

See also:
 ScriptVar

acdk::lang::dmi::DmiObject

Exceptions:
Operation on ScriptVar (operatuions, conversion, assignmnet) can throw acdk::lang::DmiTypeConversionException
Author:
Roger Rene Kommer


Public Types

enum  Type {
  UnknownType = 0, BoolType, CharType, UcCharType,
  ByteType, ShortType, IntType, LongType,
  FloatType, DoubleType, ObjectType, BoolRefType,
  CharRefType, UcCharRefType, ByteRefType, ShortRefType,
  IntRefType, LongRefType, FloatRefType, DoubleRefType,
  ObjectRefType
}
 the typed the ScriptVar can hold More...


Public Member Functions

 ScriptVar ()
 Standard constructor as Unknown Type.

 ScriptVar (bool c, int fl=MiAiIn, const ClazzInfo *ci=0)
 ScriptVar contains Boolean value.

 ScriptVar (bool *c, int fl, const ClazzInfo *ci=0)
 ScriptVar contains a bool reference.

 ScriptVar (char c, int fl=MiAiIn, const ClazzInfo *ci=0)
 ScriptVar (char *c, int fl, const ClazzInfo *ci=0)
 ScriptVar (ucchar c, int fl=MiAiIn, const ClazzInfo *ci=0)
 ScriptVar (ucchar *c, int fl, const ClazzInfo *ci=0)
 ScriptVar (byte c, int fl, const ClazzInfo *ci=0)
 ScriptVar (byte *c, int fl, const ClazzInfo *ci=0)
 ScriptVar (short c, int fl=MiAiIn, const ClazzInfo *ci=0)
 ScriptVar (short *c, int fl, const ClazzInfo *ci=0)
 ScriptVar (int c, int fl=MiAiIn, const ClazzInfo *ci=0)
 ScriptVar (int *c, int fl=MiAiOut, const ClazzInfo *ci=0)
 ScriptVar (jlong c, int fl=MiAiIn, const ClazzInfo *ci=0)
 ScriptVar (jlong *c, int fl, const ClazzInfo *ci=0)
 ScriptVar (float c, int fl=MiAiIn, const ClazzInfo *ci=0)
 ScriptVar (float *c, int fl, const ClazzInfo *ci=0)
 ScriptVar (double c, int fl=MiAiIn, const ClazzInfo *ci=0)
 ScriptVar (double *c, int fl, const ClazzInfo *ci=0)
 ScriptVar (NilRef nilval, int fl=MiAiIn, const ClazzInfo *ci=0)
 ScriptVar (IN(RObject) obj, int fl=MiAiIn, const ClazzInfo *ci=0)
 Contains a acdk::lang::Object value.

 ScriptVar (Object *obj, int fl=MiAiIn, const ClazzInfo *ci=0)
 Contains a acdk::lang::Object value.

 ScriptVar (InterfaceBase *obj, int fl=MiAiIn, const ClazzInfo *ci=0)
 Contains a acdk::lang::Object value.

 ScriptVar (RObject *c, int fl=MiAiOut, const ClazzInfo *ci=0)
 contains a acdk::lang::Object reference

 ScriptVar (const char *cstr)
 Contains a acdk::lang::Object with contains a String with given cstr.

 ScriptVar (const ScriptVar &o)
 copy constructor

 ScriptVar (const ScriptVar &o, int flags, const ClazzInfo *ci=0)
 constructs a ScriptVar from another scriptvar with possibility to change flags and declared type

 ~ScriptVar ()
const ClazzInfogetClazzInfo () const
 This returns the ClazzInfo of the declared type.

const ClazzInfogetValueClazzInfo () const
 different to getClazzInfo() it always return the dynamic type info of the contained value.

ScriptVaroperator= (bool c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (bool *c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (char c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (ucchar c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (char *c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (const char *c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (ucchar *c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (byte c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (byte *c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (short c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (short *c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (int c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (int *c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (jlong c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (jlong *c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (float c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (float *c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (double c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (double *c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (const RObject &obj)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (Object *c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


ScriptVaroperator= (RObject *c)
 assign operator for a bool value
Exceptions:
DmiTypeConversionException if incompatible type


void setOwnObjectReference (IN(RObject) obj=Nil)
 For serialized mappings it may be needed to set a Object Reference (acdk::lang::Object) as own reference.

bool getBoolVar (short castFlags=SVCastStdFlags) const
 returns a bool value.

bool & getBoolRef ()
 return bool reference.

char getCharVar (short castFlags=SVCastStdFlags) const
 returns char value In case of reference type it returns corresponding contained value type In case of Number it just cast it to a char In case of acdk::lang::Object contains acdk::lang::Character or acdk::lang::Number it returns the casted value .

char & getCharRef ()
 return char reference
Exceptions:
DmiTypeConversionException If not char reference


ucchar getUcCharVar (short castFlags=SVCastStdFlags) const
ucchargetUcCharRef ()
byte getByteVar (short castFlags=SVCastStdFlags) const
bytegetByteRef ()
short getShortVar (short castFlags=SVCastStdFlags) const
short & getShortRef ()
int getIntVar (short castFlags=SVCastStdFlags) const
int & getIntRef ()
jlong getLongVar (short castFlags=SVCastStdFlags) const
jlonggetLongRef ()
float getFloatVar (short castFlags=SVCastStdFlags) const
float & getFloatRef ()
double getDoubleVar (short castFlags=SVCastStdFlags) const
double & getDoubleRef ()
RObject getObjectVar (short castFlags=SVCastStdFlags, const ClazzInfo *ci=0) const
RObjectgetObjectRef ()
RString getStringVar (short castFlags=SVCastStdFlags) const
 return StringVar
Exceptions:
BadCastException If it is not a String containing, BadCastException will be thrown


void * getDataPtr ()
 return the void pointer to the data; Node the return pointer is only valid as long this ScriptVar exists.

bool isUndef () const
 return true if unknown type.

bool isVoid () const
 return true if type is unknown/void

bool isBoolType () const
 contains true if the hold value has type bool

bool isCharType () const
 contains true if the hold value has type char

bool isUcCharType () const
 contains true if the hold value has type ucchar

bool isByteType () const
 contains true if the hold value has type byte

bool isShortType () const
 contains true if the hold value has type short

bool isIntType () const
 contains true if the hold value has type int

bool isLongType () const
 contains true if the hold value has type jlong

bool isFloatType () const
 contains true if the hold value has type float

bool isDoubleType () const
 contains true if the hold value has type double

bool isObjectType () const
 contains true if the hold value has type Object

bool isIntegerType () const
 return true if the hold type is byte, short, int or long

bool isCharacterType () const
 return true if hold type is char or ucchar

bool isFloatingType () const
 return true if hold type is float or double

bool isNumberType () const
 return true if hold type is byte, short, int, long, float or double

bool isStringType () const
 return true if the hold type is a String instance

bool isBoolean (short castFlags=SVCastStdFlags) const
 return true if containing value can be casted to a boolean type

bool isCharacter (short castFlags=SVCastStdFlags) const
 return true if containing value can be casted to a character type

bool isInteger (short castFlags=SVCastStdFlags) const
 return true if containing can be casted to a integer type

bool isFloating (short castFlags=SVCastStdFlags) const
 return true if containing value can be casted to a floating type

bool isNumber (short castFlags=SVCastStdFlags) const
 return true if the containing value can be casted to a number type

bool isOnlyFloating (short castFlags) const
 this returns true if this is a castable float, but no castable integer

bool isString (short castFlags=SVCastStdFlags) const
 return true if the containing type can be casted to a string

bool isObject (short castFlags=SVCastStdFlags) const
 return true if containing type can be casted to a Object

int getTypeStorageSize () const
 return the size of the stored type.

ScriptVar addition (const ScriptVar &other, short castFlags=SVCastStdFlags) const
 arithmetic operators

ScriptVar subtraction (const ScriptVar &other, short castFlags=SVCastStdFlags) const
 arithmetic operators

ScriptVar multiply (const ScriptVar &other, short castFlags=SVCastStdFlags) const
 arithmetic operators

ScriptVar divide (const ScriptVar &other, short castFlags=SVCastStdFlags) const
 arithmetic operators

ScriptVar modulo (const ScriptVar &other, short castFlags=SVCastStdFlags) const
 arithmetic operators

ScriptVar equal (const ScriptVar &other, short castFlags=SVCastStdFlags) const
 Test for equality For basic type must has same value For object types equals() has to return true.

ScriptVar same (const ScriptVar &other, short castFlags=SVCastStdFlags) const
 Test for same For basic type must has same value For object types has to reference to same object.

ScriptVar not_equal (const ScriptVar &other, short castFlags=SVCastStdFlags) const
 return false if this object is not equal to other object.

ScriptVar greater_than (const ScriptVar &other, short castFlags=SVCastStdFlags) const
 return true if this is greater than the argument

ScriptVar less_than (const ScriptVar &other, short castFlags=SVCastStdFlags) const
 return true if this is less than the argument

ScriptVar greater_or_equal (const ScriptVar &other, short castFlags=SVCastStdFlags) const
ScriptVar less_or_equal (const ScriptVar &other, short castFlags=SVCastStdFlags) const
bool isTrue (short castFlags=SVCastStdFlags) const
ScriptVar logical_and (const ScriptVar &other, short castFlags=SVCastStdFlags) const
ScriptVar logical_not (short castFlags=SVCastStdFlags) const
ScriptVar logical_or (const ScriptVar &other, short castFlags=SVCastStdFlags) const
ScriptVar logical_xor (const ScriptVar &other, short castFlags=SVCastStdFlags) const
ScriptVar binary_and (const ScriptVar &other, short castFlags=SVCastStdFlags) const
ScriptVar binary_or (const ScriptVar &other, short castFlags=SVCastStdFlags) const
ScriptVar binary_xor (const ScriptVar &other, short castFlags=SVCastStdFlags) const
ScriptVar binary_leftshift (const ScriptVar &other, short castFlags=SVCastStdFlags) const
ScriptVar binary_rightshift (const ScriptVar &other, short castFlags=SVCastStdFlags) const
ScriptVar binary_rightshift_unsigned (const ScriptVar &other, short castFlags=SVCastStdFlags) const
ScriptVar binary_not (short castFlags=SVCastStdFlags) const
ScriptVar negation (short castFlags=SVCastStdFlags) const
 only valid for number.

RString getTypeInfo () const
 returns the type name is ACDK coding bool acdk::lang::RString

template<class T> T getBasicType (const T &dummy) const
 internal helper to retrive value of given type

void assign (Object *obj, short castFlags=SVCastStdFlags)
 assign given object to this

void assign (IN(RObject) obj, short castFlags=SVCastStdFlags)
 assign given object to this

ScriptVaroperator= (const ScriptVar &o)
 assignment operator

void reset ()
 reset the script var to as void/UnknownType scriptvar

Objectoperator-> ()
 This operator throws Exception if type is object var or reference.

RString toString () const
 Converts the value to string for debugging purposes.

RString toCode () const
 the value as code constants 123 true This is a Text

void dispose ()
 Release internal recouces.

void get (bool &b) const
 used for templates

void get (char &b) const
void get (ucchar &b) const
void get (byte &b) const
void get (short &b) const
void get (int &b) const
void get (jlong &b) const
void get (float &b) const
void get (double &b) const
void get (RObject &b) const
 operator bool () const
 operator char () const
 operator ucchar () const
 operator byte () const
 operator short () const
 operator int () const
 operator jlong () const
 operator float () const
 operator double () const
ScriptVar inOf () const
 return a copy of this.

ScriptVar outOf ()
 return this as reference type

ScriptVar inoutOf ()
 return this as reference type

ScriptVar _castScriptVar (const ClazzInfo *ci, short castFlags=SVCastStdFlags) const
 Cast this variable to another if it is is an object, use the _cast() operator of the object to cast to requested type.


Static Public Member Functions

ScriptVar getInitialized (const acdk::lang::dmi::ClazzInfo *ci)
 returns an initialized instance of ScriptVar

const ClazzInfogetClazzInfo (Type typ)
 returns basic type.

bool isReference (Type tp)
 return true, if type is reference type

void _throwWrongType (const ClazzInfo *wanted, const ClazzInfo *existant)
 Throws DmiTypeConversionException.


Public Attributes

Type type
int flags
 The flags see acdk::lang::dmi::MetaInfoFlags.

TypeUnion var
 The value.

const ClazzInfo_clazzType
 if _clazzType is 0 the DmiObject has a weak type definition and may change its underlying type.


Protected Member Functions

void _checkType (Type tp) const
 throws DmiTypeConversionException if type is not matching exaclty

void _throwWrongType (Type wanted) const
 throws a DmiTypeConversionException

void _init (Object *obj)
void _init (RObject *obj)
void _initScriptVar (const ScriptVar &o)
RObject_getrobject ()
const RObject_getrobject () const
void _setrobject (Object *o)
void _setrobject (IN(RObject) o)
void _deleterobject ()
void _checkCastNum2Bool (short castFlags) const
void _checkCastBool2Num (short castFlags, Type requestedType) const
void _checkCastChar2Int (short castFlags, Type requestedType) const
void _checkCastInt2Float (short castFlags, Type requestedType) const
void _checkFloat2Char (short castFlags, Type requestedType) const
void _checkCastAutoboxing (short castFlags, Type requestedType) const
bool _getBool () const
char _getChar () const
ucchar _getUcChar () const
byte _getByte () const
short _getShort () const
int _getInt () const
jlong _getLong () const
float _getFloat () const
float _getDouble () const
RObject _getObject () const

Static Protected Member Functions

RString getAsCodeArguments (ScriptVarArray &args)


Member Enumeration Documentation

enum acdk::lang::dmi::ScriptVar::Type
 

the typed the ScriptVar can hold

Enumeration values:
UnknownType  Uninitialized or void type.
BoolType  contains bool
CharType  contains char
UcCharType  contains ucchar
ByteType  contains byte
ShortType  contains short
IntType  contains int
LongType  contains jlong
FloatType  contains float
DoubleType  contains double
ObjectType  contains acdk::lang::Object
BoolRefType  contains reference to bool value
CharRefType  contains reference to char value
UcCharRefType  contains reference to ucchar value
ByteRefType  contains reference to byte value
ShortRefType  contains reference to short value
IntRefType  contains reference to int value
LongRefType  contains reference to jlong value
FloatRefType  contains reference to float value
DoubleRefType  contains reference to double value
ObjectRefType  contains reference to acdk::lang::Object reference


Constructor & Destructor Documentation

acdk::lang::dmi::ScriptVar::ScriptVar  )  [inline]
 

Standard constructor as Unknown Type.

acdk::lang::dmi::ScriptVar::ScriptVar bool  c,
int  fl = MiAiIn,
const ClazzInfo ci = 0
[inline]
 

ScriptVar contains Boolean value.

acdk::lang::dmi::ScriptVar::ScriptVar bool *  c,
int  fl,
const ClazzInfo ci = 0
[inline]
 

ScriptVar contains a bool reference.

acdk::lang::dmi::ScriptVar::ScriptVar char  c,
int  fl = MiAiIn,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar char *  c,
int  fl,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar ucchar  c,
int  fl = MiAiIn,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar ucchar c,
int  fl,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar byte  c,
int  fl,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar byte c,
int  fl,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar short  c,
int  fl = MiAiIn,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar short *  c,
int  fl,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar int  c,
int  fl = MiAiIn,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar int *  c,
int  fl = MiAiOut,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar jlong  c,
int  fl = MiAiIn,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar jlong c,
int  fl,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar float  c,
int  fl = MiAiIn,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar float *  c,
int  fl,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar double  c,
int  fl = MiAiIn,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar double *  c,
int  fl,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar NilRef  nilval,
int  fl = MiAiIn,
const ClazzInfo ci = 0
[inline]
 

acdk::lang::dmi::ScriptVar::ScriptVar IN(RObject obj,
int  fl = MiAiIn,
const ClazzInfo ci = 0
 

Contains a acdk::lang::Object value.

acdk::lang::dmi::ScriptVar::ScriptVar Object obj,
int  fl = MiAiIn,
const ClazzInfo ci = 0
[inline]
 

Contains a acdk::lang::Object value.

acdk::lang::dmi::ScriptVar::ScriptVar InterfaceBase obj,
int  fl = MiAiIn,
const ClazzInfo ci = 0
 

Contains a acdk::lang::Object value.

acdk::lang::dmi::ScriptVar::ScriptVar RObject c,
int  fl = MiAiOut,
const ClazzInfo ci = 0
 

contains a acdk::lang::Object reference

acdk::lang::dmi::ScriptVar::ScriptVar const char *  cstr  ) 
 

Contains a acdk::lang::Object with contains a String with given cstr.

acdk::lang::dmi::ScriptVar::ScriptVar const ScriptVar o  ) 
 

copy constructor

acdk::lang::dmi::ScriptVar::ScriptVar const ScriptVar o,
int  flags,
const ClazzInfo ci = 0
 

constructs a ScriptVar from another scriptvar with possibility to change flags and declared type

acdk::lang::dmi::ScriptVar::~ScriptVar  ) 
 


Member Function Documentation

ScriptVar acdk::lang::dmi::ScriptVar::_castScriptVar const ClazzInfo ci,
short  castFlags = SVCastStdFlags
const
 

Cast this variable to another if it is is an object, use the _cast() operator of the object to cast to requested type.

void acdk::lang::dmi::ScriptVar::_checkCastAutoboxing short  castFlags,
Type  requestedType
const [inline, protected]
 

void acdk::lang::dmi::ScriptVar::_c