|
Flow123d
release_3.0.0-962-g8853c67
|
Class used by ReaderToStorage class to iterate over the JSON tree provided by json_spirit library. More...
#include <path_json.hh>


Public Member Functions | |
| PathJSON (std::istream &in) | |
| Constructor. More... | |
| ~PathJSON () override | |
| Destructor. More... | |
| bool | down (unsigned int index) override |
| Dive into json_spirit hierarchy. More... | |
| bool | down (const std::string &key, int index=-1) override |
| Dive into json_spirit hierarchy. More... | |
| void | up () override |
| Return one level up in the hierarchy. More... | |
| int | level () const |
Implements PathBase::level. More... | |
| bool | is_null_type () const override |
Implements PathBase::is_null_type. More... | |
| bool | get_bool_value () const override |
Implements PathBase::get_bool_value. More... | |
| std::int64_t | get_int_value () const override |
Implements PathBase::get_int_value. More... | |
| double | get_double_value () const override |
Implements PathBase::get_double_value. More... | |
| std::string | get_string_value () const override |
Implements PathBase::get_string_value. More... | |
| unsigned int | get_node_type_index () const override |
Implements PathBase::get_node_type_index. More... | |
| bool | get_record_key_set (std::set< std::string > &) const override |
Implements PathBase::get_record_key_set. More... | |
| bool | is_effectively_null () const override |
Implements PathBase::is_effectively_null. More... | |
| int | get_array_size () const override |
Implements PathBase::get_array_size. More... | |
| bool | is_record_type () const override |
Implements PathBase::is_record_type. More... | |
| bool | is_array_type () const override |
Implements PathBase::is_array_type. More... | |
| PathJSON * | clone () const override |
Implements PathBase::clone. More... | |
| std::string | get_record_tag () const override |
Implements PathBase::get_record_tag. More... | |
| PathBase * | find_ref_node () override |
| Implements reading of reference keys, and check of cyclic references. More... | |
| void | remember_reference () |
| Put address of actual reference to previous_references_ set. More... | |
Public Member Functions inherited from Input::PathBase | |
| TYPEDEF_ERR_INFO (EI_ErrorAddress, std::string) | |
| TYPEDEF_ERR_INFO (EI_RefAddress, std::string) | |
| TYPEDEF_ERR_INFO (EI_JsonFile, std::string) | |
| TYPEDEF_ERR_INFO (EI_RefStr, std::string) | |
| TYPEDEF_ERR_INFO (EI_Specification, std::string) | |
| DECLARE_INPUT_EXCEPTION (ExcRefOfWrongType,<< "Reference at address "<< EI_ErrorAddress::qval<< " has wrong type, should by string.") | |
| DECLARE_INPUT_EXCEPTION (ExcReferenceNotFound,<< "Error in input file: "<< EI_JsonFile::qval<< "\nReference {REF=\""<< EI_RefStr::val<< "\"} at address "<< EI_RefAddress::qval<< " not found.\n"<< "failed to follow at address: "<< EI_ErrorAddress::qval<< " because "<< EI_Specification::val) | |
| virtual | ~PathBase () |
| Must have virtual destructor to call the right one form child. More... | |
| void | output (std::ostream &stream) const |
| Output to the given stream. More... | |
| std::string | get_node_type (unsigned int type_idx) const |
| Get short string description of node type, method is used for printout of messages. More... | |
| void | go_to_root () |
| Move to root node. More... | |
| std::string | as_string () const |
| Returns string address of current position. More... | |
Protected Types | |
| typedef json_spirit::mValue | Node |
| Definition of JSON Spirit node. More... | |
Protected Member Functions | |
| PathJSON () | |
| Default constructor. More... | |
| const Node * | head () const |
| Pointer to JSON Value object at current path. More... | |
Protected Member Functions inherited from Input::PathBase | |
| PathBase () | |
| Forbid default constructor. More... | |
Protected Attributes | |
| std::set< std::string > | previous_references_ |
| Remember used references in order to avoid detect cyclic references. More... | |
| std::shared_ptr< Node > | root_node_ |
| std::vector< const Node * > | nodes_ |
Protected Attributes inherited from Input::PathBase | |
| std::vector< std::pair< int, std::string > > | path_ |
One level of the path_ is either index (nonnegative int) in array or string key in a json object. More... | |
| std::vector< std::string > | json_type_names |
| Names of all possible node types in parsed input tree. More... | |
Class used by ReaderToStorage class to iterate over the JSON tree provided by json_spirit library.
This class keeps whole path from the root of the JSON tree to the current node. We store nodes along path in nodes_ and address of the node in path_.
The class also contains methods for processing of special keys 'REF' and 'TYPE'. The reference is record with only one key 'REF' with a string value that contains address of the reference. The string with the address is extracted and provided by method JSONtoStorage::find_ref_node.
Definition at line 46 of file path_json.hh.
|
protected |
Definition of JSON Spirit node.
Definition at line 121 of file path_json.hh.
| Input::PathJSON::PathJSON | ( | std::istream & | in | ) |
Constructor.
Call JSON parser for given stream and create PathJSON for the root of parsed data tree.
|
override |
|
protected |
Default constructor.
Provides common initialization for public constructors.
Definition at line 56 of file path_json.cc.

|
overridevirtual |
Implements PathBase::clone.
Implements Input::PathBase.
Definition at line 294 of file path_json.cc.

|
overridevirtual |
Dive into json_spirit hierarchy.
Implements PathBase::down(unsigned int)
Implements Input::PathBase.
Definition at line 79 of file path_json.cc.

|
overridevirtual |
Dive into json_spirit hierarchy.
Implements PathBase::down(const std::string&)
Implements Input::PathBase.
|
overridevirtual |
Implements reading of reference keys, and check of cyclic references.
This returns path to reference given by address in ref_address.
Implements Input::PathBase.
Definition at line 120 of file path_json.cc.

|
overridevirtual |
Implements PathBase::get_array_size.
Implements Input::PathBase.
Definition at line 271 of file path_json.cc.

|
overridevirtual |
Implements PathBase::get_bool_value.
Implements Input::PathBase.
Definition at line 201 of file path_json.cc.

|
overridevirtual |
Implements PathBase::get_double_value.
Implements Input::PathBase.
Definition at line 223 of file path_json.cc.

|
overridevirtual |
Implements PathBase::get_int_value.
Implements Input::PathBase.
Definition at line 212 of file path_json.cc.

|
overridevirtual |
Implements PathBase::get_node_type_index.
Implements Input::PathBase.
Definition at line 247 of file path_json.cc.

|
overridevirtual |
Implements PathBase::get_record_key_set.
Implements Input::PathBase.
Definition at line 253 of file path_json.cc.

|
overridevirtual |
Implements PathBase::get_record_tag.
Implements Input::PathBase.
Definition at line 300 of file path_json.cc.

|
overridevirtual |
Implements PathBase::get_string_value.
Implements Input::PathBase.
Definition at line 236 of file path_json.cc.

|
inlineprotected |
Pointer to JSON Value object at current path.
Definition at line 124 of file path_json.hh.

|
overridevirtual |
Implements PathBase::is_array_type.
Implements Input::PathBase.
Definition at line 288 of file path_json.cc.

|
overridevirtual |
Implements PathBase::is_effectively_null.
Implements Input::PathBase.
Definition at line 329 of file path_json.cc.

|
overridevirtual |
Implements PathBase::is_null_type.
Implements Input::PathBase.
Definition at line 196 of file path_json.cc.

|
overridevirtual |
Implements PathBase::is_record_type.
Implements Input::PathBase.
Definition at line 282 of file path_json.cc.

|
inlinevirtual |
Implements PathBase::level.
Implements Input::PathBase.
Definition at line 83 of file path_json.hh.

| void Input::PathJSON::remember_reference | ( | ) |
Put address of actual reference to previous_references_ set.
Definition at line 323 of file path_json.cc.

|
overridevirtual |
Return one level up in the hierarchy.
Implements Input::PathBase.
Definition at line 107 of file path_json.cc.

|
protected |
Definition at line 138 of file path_json.hh.
|
protected |
Remember used references in order to avoid detect cyclic references.
In JSON we allow usage of references using special key 'REF'.
Definition at line 132 of file path_json.hh.
|
protected |
Definition at line 135 of file path_json.hh.
1.8.11