Form describing UnionArray. More...
#include <UnionArray.h>
Public Member Functions | |
| UnionForm (bool has_identities, const util::Parameters ¶meters, const FormKey &form_key, Index::Form tags, Index::Form index, const std::vector< FormPtr > &contents) | |
Creates a UnionForm. See UnionArray for documentation. | |
| Index::Form | tags () const |
| Index::Form | index () const |
| const std::vector< FormPtr > | contents () const |
| int64_t | numcontents () const |
| const FormPtr | content (int64_t index) const |
| const TypePtr | type (const util::TypeStrs &typestrs) const override |
| High-level Type describing this Form. | |
| void | tojson_part (ToJson &builder, bool verbose) const override |
| Internal function to produce a JSON representation one node at a time. | |
| const FormPtr | shallow_copy () const override |
| Copies this node without copying any nodes hierarchically nested within it. | |
| const FormPtr | with_form_key (const FormKey &form_key) const override |
| Copies this node, adding or replacing a form_key. | |
| const std::string | purelist_parameter (const std::string &key) const override |
The parameter associated with key at the first level that has a non-null value, descending only as deep as the first RecordForm. | |
| bool | purelist_isregular () const override |
Returns true if all nested lists down to the first RecordForm are RegularForm nodes; false otherwise. | |
| int64_t | purelist_depth () const override |
| The list-depth of this array, not counting any contained within a RecordForm. | |
| bool | dimension_optiontype () const override |
Returns true if this dimension has option-type; false otherwise. | |
| const std::pair< int64_t, int64_t > | minmax_depth () const override |
| Returns (a) the minimum list-depth and (b) the maximum list-depth of the array, which can differ if this array "branches" (differs when followed through different fields of a RecordForm or UnionForm). | |
| const std::pair< bool, int64_t > | branch_depth () const override |
| Returns (a) whether the list-depth of this array "branches," or differs when followed through different fields of a RecordForm or UnionForm and (b) the minimum list-depth. | |
| int64_t | numfields () const override |
The number of fields in the first nested tuple or records or -1 if this array does not contain a RecordForm. | |
| int64_t | fieldindex (const std::string &key) const override |
| The position of a tuple or record key name if this array contains a RecordForm. | |
| const std::string | key (int64_t fieldindex) const override |
The record name associated with a given field index or the tuple index as a string (e.g. "0", "1", "2") if a tuple. | |
| bool | haskey (const std::string &key) const override |
Returns true if the array contains a RecordForm with the specified key; false otherwise. | |
| const std::vector< std::string > | keys () const override |
| A list of RecordArray keys or an empty list if this array does not contain a RecordArray. | |
| bool | istuple () const override |
Returns true if the outermost RecordArray is a tuple. | |
| bool | equal (const FormPtr &other, bool check_identities, bool check_parameters, bool check_form_key, bool compatibility_check) const override |
Returns true if this Form is equal to the other Form; false otherwise. | |
| const FormPtr | getitem_field (const std::string &key) const override |
| Returns the Form that would result from a field-slice. | |
| const FormPtr | getitem_fields (const std::vector< std::string > &keys) const override |
| Returns the Form that would result from a fields-slice. | |
Public Member Functions inherited from Form | |
| Form (bool has_identities, const util::Parameters ¶meters, const FormKey &form_key) | |
| Called by subclass constructors; assigns has_identities, parameters, and form_key upon construction. | |
| virtual | ~Form () |
| Empty destructor; required for some C++ reason. | |
| virtual const TypePtr | type (const util::TypeStrs &typestrs) const =0 |
| High-level Type describing this Form. | |
| virtual void | tojson_part (ToJson &builder, bool verbose) const =0 |
| Internal function to produce a JSON representation one node at a time. | |
| virtual const FormPtr | shallow_copy () const =0 |
| Copies this node without copying any nodes hierarchically nested within it. | |
| virtual const FormPtr | with_form_key (const FormKey &form_key) const =0 |
| Copies this node, adding or replacing a form_key. | |
| virtual bool | equal (const FormPtr &other, bool check_identities, bool check_parameters, bool check_form_key, bool compatibility_check) const =0 |
Returns true if this Form is equal to the other Form; false otherwise. | |
| bool | form_key_equals (const FormKey &other_form_key) const |
Returns true if this Form has the same form_key as the other. | |
| virtual const std::string | purelist_parameter (const std::string &key) const =0 |
The parameter associated with key at the first level that has a non-null value, descending only as deep as the first RecordForm. | |
| 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. | |
| virtual bool | purelist_isregular () const =0 |
Returns true if all nested lists down to the first RecordForm are RegularForm nodes; false otherwise. | |
| virtual int64_t | purelist_depth () const =0 |
| The list-depth of this array, not counting any contained within a RecordForm. | |
| virtual bool | dimension_optiontype () const =0 |
Returns true if this dimension has option-type; false otherwise. | |
| const FormKey | form_key () const |
| An optional string associated with this Form, usually specifying where an array may be fetched. | |
| virtual const std::pair< int64_t, int64_t > | minmax_depth () const =0 |
| Returns (a) the minimum list-depth and (b) the maximum list-depth of the array, which can differ if this array "branches" (differs when followed through different fields of a RecordForm or UnionForm). | |
| virtual const std::pair< bool, int64_t > | branch_depth () const =0 |
| Returns (a) whether the list-depth of this array "branches," or differs when followed through different fields of a RecordForm or UnionForm and (b) the minimum list-depth. | |
| 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 RecordForm. | |
| virtual int64_t | fieldindex (const std::string &key) const =0 |
| The position of a tuple or record key name if this array contains a RecordForm. | |
| 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 array contains a RecordForm with the specified key; false otherwise. | |
| virtual const std::vector< std::string > | keys () const =0 |
| A list of RecordArray keys or an empty list if this array does not contain a RecordArray. | |
| virtual bool | istuple () const =0 |
Returns true if the outermost RecordArray is a tuple. | |
| virtual const std::string | tostring () const |
Returns a string representation of this Form (tojson with pretty = true and verbose = false). | |
| virtual const std::string | tojson (bool pretty, bool verbose) const |
| Returns a JSON representation of this array. | |
| bool | has_identities () const |
Returns true if the corresponding array has associated Identities. | |
| const util::Parameters | parameters () const |
| String-to-JSON map that augments the meaning of this Form. | |
| const std::string | parameter (const std::string &key) const |
| Get one parameter from this Form. | |
| void | identities_tojson (ToJson &builder, bool verbose) const |
| Internal function for adding identities in tojson. | |
| void | parameters_tojson (ToJson &builder, bool verbose) const |
| Internal function for adding parameters in tojson. | |
| void | form_key_tojson (ToJson &builder, bool verbose) const |
| Internal function for adding form_key in tojson. | |
| virtual const FormPtr | getitem_range () const |
| Returns the Form that would result from a range-slice. | |
| virtual const FormPtr | getitem_field (const std::string &key) const =0 |
| Returns the Form that would result from a field-slice. | |
| virtual const FormPtr | getitem_fields (const std::vector< std::string > &keys) const =0 |
| Returns the Form that would result from a fields-slice. | |
Additional Inherited Members | |
Static Public Member Functions inherited from Form | |
| static FormPtr | fromnumpy (char kind, int64_t itemsize, const std::vector< int64_t > &inner_shape) |
| static FormPtr | fromjson (const std::string &data) |
Protected Attributes inherited from Form | |
| bool | has_identities_ |
| See has_identities. | |
| util::Parameters | parameters_ |
| See parameters. | |
| FormKey | form_key_ |
| See form_key. | |
Form describing UnionArray.
| UnionForm | ( | bool | has_identities, |
| const util::Parameters & | parameters, | ||
| const FormKey & | form_key, | ||
| Index::Form | tags, | ||
| Index::Form | index, | ||
| const std::vector< FormPtr > & | contents | ||
| ) |
Creates a UnionForm. See UnionArray for documentation.
|
overridevirtual |
Returns (a) whether the list-depth of this array "branches," or differs when followed through different fields of a RecordForm or UnionForm and (b) the minimum list-depth.
If the array does not contain any records or heterogeneous data, the first element is always true and the second is simply the depth.
Implements Form.
| const FormPtr content | ( | int64_t | index | ) | const |
| const std::vector< FormPtr > contents | ( | ) | const |
|
overridevirtual |
Returns true if this dimension has option-type; false otherwise.
Implements Form.
|
overridevirtual |
Returns true if this Form is equal to the other Form; false otherwise.
| check_identities | If true, Forms are not equal unless they both has_identities. |
| check_parameters | If true, Forms are not equal unless they have the same parameters. |
| check_form_key | If true, Forms are not equal unless they have the same form_key. |
| compatibility_check | If true, this is part of a compatibility check between an expected Form (this) and a generated array's Form (other). When the expected Form is a VirtualForm, it's allowed to be less specific than the other VirtualForm. |
Implements Form.
|
overridevirtual |
The position of a tuple or record key name if this array contains a RecordForm.
Implements Form.
|
overridevirtual |
Returns the Form that would result from a field-slice.
Matches the operation of Content::getitem_field.
Implements Form.
|
overridevirtual |
Returns the Form that would result from a fields-slice.
Matches the operation of Content::getitem_fields.
Implements Form.
|
overridevirtual |
Returns true if the array contains a RecordForm with the specified key; false otherwise.
Implements Form.
| Index::Form index | ( | ) | const |
|
overridevirtual |
Returns true if the outermost RecordArray is a tuple.
Implements Form.
|
overridevirtual |
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 RecordForm.
Implements Form.
|
overridevirtual |
A list of RecordArray keys or an empty list if this array does not contain a RecordArray.
Implements Form.
|
overridevirtual |
Returns (a) the minimum list-depth and (b) the maximum list-depth of the array, which can differ if this array "branches" (differs when followed through different fields of a RecordForm or UnionForm).
Implements Form.
| int64_t numcontents | ( | ) | const |
|
overridevirtual |
The number of fields in the first nested tuple or records or -1 if this array does not contain a RecordForm.
Implements Form.
|
overridevirtual |
The list-depth of this array, not counting any contained within a RecordForm.
If this array contains a UnionForm with different depths, the return value is -1.
Implements Form.
|
overridevirtual |
Returns true if all nested lists down to the first RecordForm are RegularForm nodes; false otherwise.
Implements Form.
|
overridevirtual |
The parameter associated with key at the first level that has a non-null value, descending only as deep as the first RecordForm.
Implements Form.
|
overridevirtual |
Copies this node without copying any nodes hierarchically nested within it.
Implements Form.
| Index::Form tags | ( | ) | const |
|
overridevirtual |
Internal function to produce a JSON representation one node at a time.
Implements Form.
|
overridevirtual |
Copies this node, adding or replacing a form_key.
Implements Form.