Abstract superclass of all high level types (flat hierarchy). More...
#include <Type.h>
Public Member Functions | |
| Type (const util::Parameters ¶meters, const std::string &typestr) | |
| Called by all subclass constructors; assigns parameters and typestr upon construction. | |
| virtual | ~Type () |
| Virtual destructor acts as a first non-inline virtual function that determines a specific translation unit in which vtable shall be emitted. | |
| virtual std::string | tostring_part (const std::string &indent, const std::string &pre, const std::string &post) const =0 |
| Internal function to build an output string for tostring. | |
| virtual const TypePtr | shallow_copy () const =0 |
| Copies this Type without copying any hierarchically nested types. | |
| virtual bool | equal (const TypePtr &other, bool check_parameters) const =0 |
Returns true if this type is equal to other; false otherwise. | |
| virtual int64_t | numfields () const =0 |
The number of fields in the first nested tuple or records or -1 if this array does not contain a RecordType. | |
| virtual int64_t | fieldindex (const std::string &key) const =0 |
| The position of a tuple or record key name if this array contains a RecordType. | |
| virtual const std::string | key (int64_t fieldindex) const =0 |
The record name associated with a given field index or the tuple index as a string (e.g. "0", "1", "2") if a tuple. | |
| virtual bool | haskey (const std::string &key) const =0 |
Returns true if the type contains a RecordType with the specified key; false otherwise. | |
| virtual const std::vector< std::string > | keys () const =0 |
| A list of RecordType keys or an empty list if this type does not contain a RecordType. | |
| virtual const ContentPtr | empty () const =0 |
| Returns an empty array (Content) with this type. | |
| const util::Parameters | parameters () const |
| Get one parameter from this type. | |
| void | setparameters (const util::Parameters ¶meters) |
| Assign one parameter for this type (in-place). | |
| const std::string | parameter (const std::string &key) const |
| Custom parameters inherited from the Content that this type describes. | |
| void | setparameter (const std::string &key, const std::string &value) |
| Assign one parameter to this type (in-place). | |
| bool | parameter_equals (const std::string &key, const std::string &value) const |
Returns true if the parameter associated with key exists and is equal to value; false otherwise. | |
| bool | parameters_equal (const util::Parameters &other, bool check_all) const |
Returns true if all parameters of this type are equal to the other parameters. | |
| bool | parameter_isstring (const std::string &key) const |
Returns true if the parameter associated with key is a string; false otherwise. | |
| bool | parameter_isname (const std::string &key) const |
Returns true if the parameter associated with key is a string that matches [A-Za-z_][A-Za-z_0-9]*; false otherwise. | |
| const std::string | parameter_asstring (const std::string &key) const |
Returns the parameter associated with key as a string if parameter_isstring; raises an error otherwise. | |
| const std::string | tostring () const |
| Returns a string representation of the type as a Datashape or its typestr overload (if non-empty). | |
| const std::string | compare (TypePtr supertype) |
| Returns a string showing a side-by-side comparison of two types, highlighting differences. | |
| const std::string | typestr () const |
| Optional string that overrides the default string representation (missing if empty). | |
Protected Member Functions | |
| bool | get_typestr (std::string &output) const |
Internal function that replaces output in-place with the typestr and returns true if the typestr is not missing (i.e. empty); otherwise, it leaves output untouched and returns false. | |
| bool | parameters_empty () const |
Internal function to determine if there are no parameters except __categorical__. | |
| std::string | wrap_categorical (const std::string &output) const |
Internal function that wraps output with categorical[type= and ] if __categorical__ is true; passes through otherwise. | |
| const std::string | string_parameters () const |
| Internal function to format parameters as part of the tostring string. | |
Protected Attributes | |
| util::Parameters | parameters_ |
| See parameters. | |
| const std::string | typestr_ |
| See typestr. | |
Abstract superclass of all high level types (flat hierarchy).
| Type | ( | const util::Parameters & | parameters, |
| const std::string & | typestr | ||
| ) |
Called by all subclass constructors; assigns parameters and typestr upon construction.
|
virtual |
Virtual destructor acts as a first non-inline virtual function that determines a specific translation unit in which vtable shall be emitted.
| const std::string compare | ( | TypePtr | supertype | ) |
Returns a string showing a side-by-side comparison of two types, highlighting differences.
|
pure virtual |
Returns an empty array (Content) with this type.
Implemented in ArrayType, ListType, OptionType, PrimitiveType, RecordType, RegularType, UnionType, and UnknownType.
|
pure virtual |
Returns true if this type is equal to other; false otherwise.
| other | The other Type. |
| check_parameters | If true, types must have the same parameters to be considered equal; if false, types do not check parameters. |
Implemented in ArrayType, ListType, OptionType, PrimitiveType, RecordType, RegularType, UnionType, and UnknownType.
|
pure virtual |
The position of a tuple or record key name if this array contains a RecordType.
Implemented in ArrayType, ListType, OptionType, PrimitiveType, RecordType, RegularType, UnionType, and UnknownType.
|
protected |
|
pure virtual |
Returns true if the type contains a RecordType with the specified key; false otherwise.
Implemented in ArrayType, ListType, OptionType, PrimitiveType, RecordType, RegularType, UnionType, and UnknownType.
|
pure virtual |
The record name associated with a given field index or the tuple index as a string (e.g. "0", "1", "2") if a tuple.
Raises an error if the array does not contain a RecordType.
Implemented in ArrayType, ListType, OptionType, PrimitiveType, RecordType, RegularType, UnionType, and UnknownType.
|
pure virtual |
A list of RecordType keys or an empty list if this type does not contain a RecordType.
Implemented in ArrayType, ListType, OptionType, PrimitiveType, RecordType, RegularType, UnionType, and UnknownType.
|
pure virtual |
The number of fields in the first nested tuple or records or -1 if this array does not contain a RecordType.
Implemented in ArrayType, ListType, OptionType, PrimitiveType, RecordType, RegularType, UnionType, and UnknownType.
| const std::string parameter | ( | const std::string & | key | ) | const |
Custom parameters inherited from the Content that this type describes.
If the key does not exist, this function returns "null".
Keys are simple strings, but values are JSON-encoded strings. For this reason, values that represent single strings are double-quoted: e.g. "\"actual_value\"".
| const std::string parameter_asstring | ( | const std::string & | key | ) | const |
Returns the parameter associated with key as a string if parameter_isstring; raises an error otherwise.
| bool parameter_equals | ( | const std::string & | key, |
| const std::string & | value | ||
| ) | const |
Returns true if the parameter associated with key exists and is equal to value; false otherwise.
Keys are simple strings, but values are JSON-encoded strings. For this reason, values that represent single strings are double-quoted: e.g. "\"actual_value\"".
Equality is checked at the level of JSON DOMs. The value does not need to be exactly the same string; it needs to have equivalent JSON value.
| bool parameter_isname | ( | const std::string & | key | ) | const |
Returns true if the parameter associated with key is a string that matches [A-Za-z_][A-Za-z_0-9]*; false otherwise.
| bool parameter_isstring | ( | const std::string & | key | ) | const |
Returns true if the parameter associated with key is a string; false otherwise.
| const util::Parameters parameters | ( | ) | const |
Get one parameter from this type.
If the key does not exist, this function returns "null".
Keys are simple strings, but values are JSON-encoded strings. For this reason, values that represent single strings are double-quoted: e.g. "\"actual_value\"".
|
protected |
Internal function to determine if there are no parameters except __categorical__.
| bool parameters_equal | ( | const util::Parameters & | other, |
| bool | check_all | ||
| ) | const |
Returns true if all parameters of this type are equal to the other parameters.
Keys are simple strings, but values are JSON-encoded strings. For this reason, values that represent single strings are double-quoted: e.g. "\"actual_value\"".
Equality is checked at the level of JSON DOMs. The value does not need to be exactly the same string; it needs to have equivalent JSON value.
If check_all, every parameter is checked; otherwise, only "__array__" and "__record__" are checked.
| void setparameter | ( | const std::string & | key, |
| const std::string & | value | ||
| ) |
Assign one parameter to this type (in-place).
Keys are simple strings, but values are JSON-encoded strings. For this reason, values that represent single strings are double-quoted: e.g. "\"actual_value\"".
| void setparameters | ( | const util::Parameters & | parameters | ) |
Assign one parameter for this type (in-place).
Keys are simple strings, but values are JSON-encoded strings. For this reason, values that represent single strings are double-quoted: e.g. "\"actual_value\"".
|
pure virtual |
Copies this Type without copying any hierarchically nested types.
Implemented in ArrayType, ListType, OptionType, PrimitiveType, RecordType, RegularType, UnionType, and UnknownType.
|
protected |
Internal function to format parameters as part of the tostring string.
| const std::string tostring | ( | ) | const |
|
pure virtual |
Internal function to build an output string for tostring.
| indent | Indentation depth as a string of spaces. |
| pre | Prefix string, usually an opening XML tag. |
| post | Postfix string, usually a closing XML tag and carriage return. |
Implemented in ArrayType, ListType, OptionType, PrimitiveType, RecordType, RegularType, UnionType, and UnknownType.
| const std::string typestr | ( | ) | const |
Optional string that overrides the default string representation (missing if empty).
|
protected |
Internal function that wraps output with categorical[type= and ] if __categorical__ is true; passes through otherwise.
|
protected |
See parameters.
|
protected |
See typestr.