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 destructor acts as a first non-inline virtual function that determines a specific translation unit in which vtable shall be emitted.
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.
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.
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 |
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.
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.
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.
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.
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\""
.
Returns the parameter associated with key
as a string if parameter_isstring; raises an error otherwise.
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.
Returns true
if the parameter associated with key
is a string that matches [A-Za-z_][A-Za-z_0-9]*
; false
otherwise.
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.
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\""
.
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.