|
Open CASCADE Technology
6.7.1
|
This class allows to dynamically manage .. typed values, i.e.
values which have an alphanumeric expression, but with
controls. Such as "must be an Integer" or "Enumerative Text"
etc
Hence, a TypedValue brings a specification (type + constraints
if any) and a value. Its basic form is a string, it can be
specified as integer or real or enumerative string, then
queried as such.
Its string content, which is a Handle(HAsciiString) can be
shared by other data structures, hence gives a direct on line
access to its value.
More...
#include <MoniTool_TypedValue.hxx>

Public Member Functions | |
| MoniTool_TypedValue (const Standard_CString name, const MoniTool_ValueType type=MoniTool_ValueText, const Standard_CString init="") | |
Creates a TypedValue, with a name <br> | |
| MoniTool_TypedValue (const Handle< MoniTool_TypedValue > &other) | |
| Creates a TypedValue from another one, by duplication More... | |
| void | Internals (MoniTool_ValueInterpret &interp, MoniTool_ValueSatisfies &satisf, Standard_CString &satisname, Handle< Dico_DictionaryOfInteger > &enums) const |
| Access to internal data which have no other access More... | |
| Standard_CString | Name () const |
| Returns the name More... | |
| MoniTool_ValueType | ValueType () const |
| Returns the type of the value More... | |
| TCollection_AsciiString | Definition () const |
| Returns the Definition By priority, the enforced one, else an automatic one, computed from the specification More... | |
| void | SetDefinition (const Standard_CString deftext) |
| Enforces a Definition More... | |
| virtual void | Print (const Handle< Message_Messenger > &S) const |
| Prints definition, specification, and actual status and value More... | |
| void | PrintValue (const Handle< Message_Messenger > &S) const |
| Prints only the Value More... | |
| Standard_Boolean | AddDef (const Standard_CString initext) |
| Completes the definition of a TypedValue by command <initext>, once created with its type Returns True if done, False if could not be interpreted <initext> may be : imin ival : minimum value for an integer imax ival : maximum value for an integer rmin rval : minimum value for a real rmax rval : maximum value for a real unit name : name of unit ematch i : enum from integer value i, match required enum i : enum from integer value i, match not required eval text : add an enumerative value (increments max by 1) eval ?? : add a non-authorised enum value (to be skipped) tmax l : maximum length for a text More... | |
| void | SetLabel (const Standard_CString label) |
| Sets a label, which can then be displayed More... | |
| Standard_CString | Label () const |
| Returns the label, if set; else returns an empty string More... | |
| void | SetMaxLength (const Standard_Integer max) |
| Sets a maximum length for a text (active only for a free text) More... | |
| Standard_Integer | MaxLength () const |
| Returns the maximum length, 0 if not set More... | |
| void | SetIntegerLimit (const Standard_Boolean max, const Standard_Integer val) |
| Sets an Integer limit (included) to <val>, the upper limit if <max> is True, the lower limit if <max> is False More... | |
| Standard_Boolean | IntegerLimit (const Standard_Boolean max, Standard_Integer &val) const |
| Gives an Integer Limit (upper if <max> True, lower if <max> False). Returns True if this limit is defined, False else (in that case, gives the natural limit for Integer) More... | |
| void | SetRealLimit (const Standard_Boolean max, const Standard_Real val) |
| Sets a Real limit (included) to <val>, the upper limit if <max> is True, the lower limit if <max> is False More... | |
| Standard_Boolean | RealLimit (const Standard_Boolean max, Standard_Real &val) const |
| Gives an Real Limit (upper if <max> True, lower if <max> False). Returns True if this limit is defined, False else (in that case, gives the natural limit for Real) More... | |
| void | SetUnitDef (const Standard_CString def) |
| Sets (Clears if <def> empty) a unit definition, as an equation of dimensions. TypedValue just records this definition, does not exploit it, to be done as required by user applications More... | |
| Standard_CString | UnitDef () const |
| Returns the recorded unit definition, empty if not set More... | |
| void | StartEnum (const Standard_Integer start=0, const Standard_Boolean match=Standard_True) |
| For an enumeration, precises the starting value (default 0) and the match condition : if True (D), the string value must match the definition, else it may take another value : in that case, the Integer Value will be Start - 1. (empty value remains allowed) More... | |
| void | AddEnum (const Standard_CString v1="", const Standard_CString v2="", const Standard_CString v3="", const Standard_CString v4="", const Standard_CString v5="", const Standard_CString v6="", const Standard_CString v7="", const Standard_CString v8="", const Standard_CString v9="", const Standard_CString v10="") |
| Adds enumerative definitions. For more than 10, several calls More... | |
| void | AddEnumValue (const Standard_CString val, const Standard_Integer num) |
| Adds an enumeration definition, by its string and numeric values. If it is the first setting for this value, it is recorded as main value. Else, it is recognized as alternate string for this numeric value More... | |
| Standard_Boolean | EnumDef (Standard_Integer &startcase, Standard_Integer &endcase, Standard_Boolean &match) const |
| Gives the Enum definitions : start value, end value, match status. Returns True for an Enum, False else. More... | |
| Standard_CString | EnumVal (const Standard_Integer num) const |
| Returns the value of an enumerative definition, from its rank Empty string if out of range or not an Enum More... | |
| Standard_Integer | EnumCase (const Standard_CString val) const |
| Returns the case number which cooresponds to a string value Works with main and additionnal values Returns (StartEnum - 1) if not OK, -1 if not an Enum More... | |
| void | SetObjectType (const Handle< Standard_Type > &typ) |
| Sets type of which an Object TypedValue must be kind of //! Error for a TypedValue not an Object (Entity) More... | |
| Handle_Standard_Type | ObjectType () const |
| Returns the type of which an Object TypedValue must be kind of Default is Standard_Transient Null for a TypedValue not an Object More... | |
| void | SetInterpret (const MoniTool_ValueInterpret func) |
| Sets a specific Interpret function More... | |
| virtual Standard_Boolean | HasInterpret () const |
| Tells if a TypedValue has an Interpret More... | |
| void | SetSatisfies (const MoniTool_ValueSatisfies func, const Standard_CString name) |
| Sets a specific Satisfies function : it is added to the already defined criteria It must match the form : statisfies (val : HAsciiString) returns Boolean More... | |
| Standard_CString | SatisfiesName () const |
| Returns name of specific satisfy, empty string if none More... | |
| Standard_Boolean | IsSetValue () const |
| Returns True if the value is set (not empty/not null object) More... | |
| Standard_CString | CStringValue () const |
| Returns the value, as a cstring. Empty if not set. More... | |
| Handle_TCollection_HAsciiString | HStringValue () const |
| Returns the value, as a Handle (can then be shared) Null if not defined More... | |
| virtual Handle_TCollection_HAsciiString | Interpret (const Handle< TCollection_HAsciiString > &hval, const Standard_Boolean native) const |
| Interprets a value. <native> True : returns a native value <native> False : returns a coded value If the Interpret function is set, calls it Else, for an Enum, Native returns the Text, Coded returns the number STANDARD RETURNS : = hval means no specific interpretation Null means senseless Can also be redefined More... | |
| virtual Standard_Boolean | Satisfies (const Handle< TCollection_HAsciiString > &hval) const |
| Returns True if a value statifies the specification (remark : does not apply to Entity : see ObjectType, for this type, the string is just a comment) More... | |
| void | ClearValue () |
| Clears the recorded Value : it is now unset More... | |
| virtual Standard_Boolean | SetCStringValue (const Standard_CString val) |
| Changes the value. The new one must satisfy the specification //! Returns False (and did not set) if the new value does not satisfy the specification Can be redefined to be managed (in a subclass) More... | |
| virtual Standard_Boolean | SetHStringValue (const Handle< TCollection_HAsciiString > &hval) |
| Forces a new Handle for the Value It can be empty, else (if Type is not free Text), it must satisfy the specification. Not only the value is changed, but also the way it is shared Remark : for Type=Object, this value is not controlled, it can be set as a comment //! Returns False (and did not set) if the new value does not satisfy the specification Can be redefined to be managed (in a subclass) More... | |
| Standard_Integer | IntegerValue () const |
| Returns the value as integer, i.e. : For type = Integer, the integer itself; 0 if not set For type = Enum, the designated rank (see Enum definition) StartEnum - 1 if not set or not in the definition Else, returns 0 More... | |
| virtual Standard_Boolean | SetIntegerValue (const Standard_Integer ival) |
| Changes the value as an integer, only for Integer or Enum More... | |
| Standard_Real | RealValue () const |
| Returns the value as real, for a Real type TypedValue Else, returns 0. More... | |
| virtual Standard_Boolean | SetRealValue (const Standard_Real rval) |
| Changes the value as a real, only for Real More... | |
| Handle_Standard_Transient | ObjectValue () const |
| Returns the value as Transient Object, only for Object/Entity Remark that the "HString value" is IGNORED here Null if not set; remains to be casted More... | |
| void | GetObjectValue (Handle< Standard_Transient > &val) const |
| Same as ObjectValue, but avoids DownCast : the receiving variable is directly loaded. It is assumed that it complies with the definition of ObjectType ! Otherwise, big trouble More... | |
| virtual Standard_Boolean | SetObjectValue (const Handle< Standard_Transient > &obj) |
| Changes the value as Transient Object, only for Object/Entity Returns False if DynamicType does not satisfy ObjectType Can be redefined to be managed (in a subclass) More... | |
| Standard_CString | ObjectTypeName () const |
| Returns the type name of the ObjectValue, or an empty string if not set More... | |
Public Member Functions inherited from MMgt_TShared | |
| virtual void | Delete () const |
| Memory deallocator for transient classes. More... | |
Public Member Functions inherited from Standard_Transient | |
| Standard_Transient () | |
| Empty constructor. More... | |
| Standard_Transient (const Standard_Transient &) | |
| Copy constructor – does nothing. More... | |
| Standard_Transient & | operator= (const Standard_Transient &) |
| Assignment operator, needed to avoid copying reference counter. More... | |
| virtual | ~Standard_Transient () |
| Destructor must be virtual. More... | |
| virtual void | ShallowDump (Standard_OStream &) const |
| virtual const Handle_Standard_Type & | DynamicType () const |
| Returns a type information object about this object. More... | |
| Standard_Boolean | IsInstance (const Handle_Standard_Type &theType) const |
| Returns a true value if this is an instance of Type. More... | |
| Standard_Boolean | IsInstance (const Standard_CString theTypeName) const |
| Returns a true value if this is an instance of TypeName. More... | |
| Standard_Boolean | IsKind (const Handle_Standard_Type &theType) const |
| Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More... | |
| Standard_Boolean | IsKind (const Standard_CString theTypeName) const |
| Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More... | |
| virtual Handle_Standard_Transient | This () const |
| Returns a Handle which references this object. Must never be called to objects created in stack. More... | |
| Standard_Integer | GetRefCount () const |
| Get the reference counter of this object. More... | |
Static Public Member Functions | |
| static Standard_Boolean | AddLib (const Handle< MoniTool_TypedValue > &tv, const Standard_CString def="") |
Adds a TypedValue in the library. <br>
It is recorded then will be accessed by its Name <br>
Its Definition may be imposed, else it is computed as usual <br>
By default it will be accessed by its Definition (string) <br>
Returns True if done, False if tv is Null or brings no <br>
Definition or <def> not defined <br>
| |
| static Handle_MoniTool_TypedValue | Lib (const Standard_CString def) |
| Returns the TypedValue bound with a given Name Null Handle if none recorded Warning : it is the original, not duplicated More... | |
| static Handle_MoniTool_TypedValue | FromLib (const Standard_CString def) |
| Returns a COPY of the TypedValue bound with a given Name Null Handle if none recorded More... | |
| static Handle_TColStd_HSequenceOfAsciiString | LibList () |
Returns the list of names of items of the Library of Types <br> – Library of TypedValue as Valued Parameters, – – | |
| static Handle_MoniTool_TypedValue | StaticValue (const Standard_CString name) |
| Returns a static value from its name, null if unknown More... | |
Static Protected Member Functions | |
| static Handle_Dico_DictionaryOfTransient | Stats () |
| Gives the internal library of static values More... | |
This class allows to dynamically manage .. typed values, i.e.
values which have an alphanumeric expression, but with
controls. Such as "must be an Integer" or "Enumerative Text"
etc
Hence, a TypedValue brings a specification (type + constraints
if any) and a value. Its basic form is a string, it can be
specified as integer or real or enumerative string, then
queried as such.
Its string content, which is a Handle(HAsciiString) can be
shared by other data structures, hence gives a direct on line
access to its value.
| MoniTool_TypedValue::MoniTool_TypedValue | ( | const Standard_CString | name, |
| const MoniTool_ValueType | type = MoniTool_ValueText, |
||
| const Standard_CString | init = "" |
||
| ) |
Creates a TypedValue, with a name <br>
type gives the type of the parameter, default is free text
Also available : Integer, Real, Enum, Entity (i.e. Object)
More precise specifications, titles, can be given to the
TypedValue once created
init gives an initial value. If it is not given, the
TypedValue begins as "not set", its value is empty
| MoniTool_TypedValue::MoniTool_TypedValue | ( | const Handle< MoniTool_TypedValue > & | other | ) |
Creates a TypedValue from another one, by duplication
| Standard_Boolean MoniTool_TypedValue::AddDef | ( | const Standard_CString | initext | ) |
Completes the definition of a TypedValue by command <initext>,
once created with its type
Returns True if done, False if could not be interpreted
<initext> may be :
imin ival : minimum value for an integer
imax ival : maximum value for an integer
rmin rval : minimum value for a real
rmax rval : maximum value for a real
unit name : name of unit
ematch i : enum from integer value i, match required
enum i : enum from integer value i, match not required
eval text : add an enumerative value (increments max by 1)
eval ?? : add a non-authorised enum value (to be skipped)
tmax l : maximum length for a text
| void MoniTool_TypedValue::AddEnum | ( | const Standard_CString | v1 = "", |
| const Standard_CString | v2 = "", |
||
| const Standard_CString | v3 = "", |
||
| const Standard_CString | v4 = "", |
||
| const Standard_CString | v5 = "", |
||
| const Standard_CString | v6 = "", |
||
| const Standard_CString | v7 = "", |
||
| const Standard_CString | v8 = "", |
||
| const Standard_CString | v9 = "", |
||
| const Standard_CString | v10 = "" |
||
| ) |
Adds enumerative definitions. For more than 10, several calls
| void MoniTool_TypedValue::AddEnumValue | ( | const Standard_CString | val, |
| const Standard_Integer | num | ||
| ) |
Adds an enumeration definition, by its string and numeric
values. If it is the first setting for this value, it is
recorded as main value. Else, it is recognized as alternate
string for this numeric value
|
static |
Adds a TypedValue in the library. <br>
It is recorded then will be accessed by its Name <br>
Its Definition may be imposed, else it is computed as usual <br>
By default it will be accessed by its Definition (string) <br>
Returns True if done, False if tv is Null or brings no <br>
Definition or <def> not defined <br>
If a TypedValue was already recorded under this name, it is
replaced
| void MoniTool_TypedValue::ClearValue | ( | ) |
Clears the recorded Value : it is now unset
| Standard_CString MoniTool_TypedValue::CStringValue | ( | ) | const |
Returns the value, as a cstring. Empty if not set.
| TCollection_AsciiString MoniTool_TypedValue::Definition | ( | ) | const |
Returns the Definition
By priority, the enforced one, else an automatic one, computed
from the specification
| Standard_Integer MoniTool_TypedValue::EnumCase | ( | const Standard_CString | val | ) | const |
Returns the case number which cooresponds to a string value
Works with main and additionnal values
Returns (StartEnum - 1) if not OK, -1 if not an Enum
| Standard_Boolean MoniTool_TypedValue::EnumDef | ( | Standard_Integer & | startcase, |
| Standard_Integer & | endcase, | ||
| Standard_Boolean & | match | ||
| ) | const |
Gives the Enum definitions : start value, end value, match
status. Returns True for an Enum, False else.
| Standard_CString MoniTool_TypedValue::EnumVal | ( | const Standard_Integer | num | ) | const |
Returns the value of an enumerative definition, from its rank
Empty string if out of range or not an Enum
|
static |
Returns a COPY of the TypedValue bound with a given Name
Null Handle if none recorded
| void MoniTool_TypedValue::GetObjectValue | ( | Handle< Standard_Transient > & | val | ) | const |
Same as ObjectValue, but avoids DownCast : the receiving
variable is directly loaded. It is assumed that it complies
with the definition of ObjectType ! Otherwise, big trouble
|
virtual |
Tells if a TypedValue has an Interpret
| Handle_TCollection_HAsciiString MoniTool_TypedValue::HStringValue | ( | ) | const |
Returns the value, as a Handle (can then be shared)
Null if not defined
| Standard_Boolean MoniTool_TypedValue::IntegerLimit | ( | const Standard_Boolean | max, |
| Standard_Integer & | val | ||
| ) | const |
Gives an Integer Limit (upper if <max> True, lower if <max>
False). Returns True if this limit is defined, False else
(in that case, gives the natural limit for Integer)
| Standard_Integer MoniTool_TypedValue::IntegerValue | ( | ) | const |
Returns the value as integer, i.e. :
For type = Integer, the integer itself; 0 if not set
For type = Enum, the designated rank (see Enum definition)
StartEnum - 1 if not set or not in the definition
Else, returns 0
| void MoniTool_TypedValue::Internals | ( | MoniTool_ValueInterpret & | interp, |
| MoniTool_ValueSatisfies & | satisf, | ||
| Standard_CString & | satisname, | ||
| Handle< Dico_DictionaryOfInteger > & | enums | ||
| ) | const |
Access to internal data which have no other access
|
virtual |
Interprets a value.
<native> True : returns a native value
<native> False : returns a coded value
If the Interpret function is set, calls it
Else, for an Enum, Native returns the Text, Coded returns
the number
STANDARD RETURNS : = hval means no specific interpretation
Null means senseless
Can also be redefined
| Standard_Boolean MoniTool_TypedValue::IsSetValue | ( | ) | const |
Returns True if the value is set (not empty/not null object)
| Standard_CString MoniTool_TypedValue::Label | ( | ) | const |
Returns the label, if set; else returns an empty string
|
static |
Returns the TypedValue bound with a given Name
Null Handle if none recorded
Warning : it is the original, not duplicated
|
static |
Returns the list of names of items of the Library of Types <br>
– Library of TypedValue as Valued Parameters, – –
accessed by parameter name
for use by management of Static Parameters
| Standard_Integer MoniTool_TypedValue::MaxLength | ( | ) | const |
Returns the maximum length, 0 if not set
| Standard_CString MoniTool_TypedValue::Name | ( | ) | const |
Returns the name
| Handle_Standard_Type MoniTool_TypedValue::ObjectType | ( | ) | const |
Returns the type of which an Object TypedValue must be kind of
Default is Standard_Transient
Null for a TypedValue not an Object
| Standard_CString MoniTool_TypedValue::ObjectTypeName | ( | ) | const |
Returns the type name of the ObjectValue, or an empty string
if not set
| Handle_Standard_Transient MoniTool_TypedValue::ObjectValue | ( | ) | const |
Returns the value as Transient Object, only for Object/Entity
Remark that the "HString value" is IGNORED here
Null if not set; remains to be casted
|
virtual |
Prints definition, specification, and actual status and value
| void MoniTool_TypedValue::PrintValue | ( | const Handle< Message_Messenger > & | S | ) | const |
Prints only the Value
| Standard_Boolean MoniTool_TypedValue::RealLimit | ( | const Standard_Boolean | max, |
| Standard_Real & | val | ||
| ) | const |
Gives an Real Limit (upper if <max> True, lower if <max>
False). Returns True if this limit is defined, False else
(in that case, gives the natural limit for Real)
| Standard_Real MoniTool_TypedValue::RealValue | ( | ) | const |
Returns the value as real, for a Real type TypedValue
Else, returns 0.
|
virtual |
Returns True if a value statifies the specification
(remark : does not apply to Entity : see ObjectType, for this
type, the string is just a comment)
| Standard_CString MoniTool_TypedValue::SatisfiesName | ( | ) | const |
Returns name of specific satisfy, empty string if none
|
virtual |
Changes the value. The new one must satisfy the specification
//! Returns False (and did not set) if the new value
does not satisfy the specification
Can be redefined to be managed (in a subclass)
| void MoniTool_TypedValue::SetDefinition | ( | const Standard_CString | deftext | ) |
Enforces a Definition
|
virtual |
Forces a new Handle for the Value
It can be empty, else (if Type is not free Text), it must
satisfy the specification.
Not only the value is changed, but also the way it is shared
Remark : for Type=Object, this value is not controlled, it can
be set as a comment
//! Returns False (and did not set) if the new value
does not satisfy the specification
Can be redefined to be managed (in a subclass)
| void MoniTool_TypedValue::SetIntegerLimit | ( | const Standard_Boolean | max, |
| const Standard_Integer | val | ||
| ) |
Sets an Integer limit (included) to <val>, the upper limit
if <max> is True, the lower limit if <max> is False
|
virtual |
Changes the value as an integer, only for Integer or Enum
| void MoniTool_TypedValue::SetInterpret | ( | const MoniTool_ValueInterpret | func | ) |
Sets a specific Interpret function
| void MoniTool_TypedValue::SetLabel | ( | const Standard_CString | label | ) |
Sets a label, which can then be displayed
| void MoniTool_TypedValue::SetMaxLength | ( | const Standard_Integer | max | ) |
Sets a maximum length for a text (active only for a free text)
| void MoniTool_TypedValue::SetObjectType | ( | const Handle< Standard_Type > & | typ | ) |
Sets type of which an Object TypedValue must be kind of
//! Error for a TypedValue not an Object (Entity)
|
virtual |
Changes the value as Transient Object, only for Object/Entity
Returns False if DynamicType does not satisfy ObjectType
Can be redefined to be managed (in a subclass)
| void MoniTool_TypedValue::SetRealLimit | ( | const Standard_Boolean | max, |
| const Standard_Real | val | ||
| ) |
Sets a Real limit (included) to <val>, the upper limit
if <max> is True, the lower limit if <max> is False
|
virtual |
Changes the value as a real, only for Real
| void MoniTool_TypedValue::SetSatisfies | ( | const MoniTool_ValueSatisfies | func, |
| const Standard_CString | name | ||
| ) |
Sets a specific Satisfies function : it is added to the
already defined criteria
It must match the form :
statisfies (val : HAsciiString) returns Boolean
| void MoniTool_TypedValue::SetUnitDef | ( | const Standard_CString | def | ) |
Sets (Clears if <def> empty) a unit definition, as an equation
of dimensions. TypedValue just records this definition, does
not exploit it, to be done as required by user applications
| void MoniTool_TypedValue::StartEnum | ( | const Standard_Integer | start = 0, |
| const Standard_Boolean | match = Standard_True |
||
| ) |
For an enumeration, precises the starting value (default 0)
and the match condition : if True (D), the string value must
match the definition, else it may take another value : in that
case, the Integer Value will be Start - 1.
(empty value remains allowed)
|
static |
Returns a static value from its name, null if unknown
|
staticprotected |
Gives the internal library of static values
| Standard_CString MoniTool_TypedValue::UnitDef | ( | ) | const |
Returns the recorded unit definition, empty if not set
| MoniTool_ValueType MoniTool_TypedValue::ValueType | ( | ) | const |
Returns the type of the value
1.8.5