Flow123d
3.9.0-127d9ed9b
|
Class used by ReaderToStorage class to iterate over the YAML tree provided by yaml-cpp library. More...
#include <path_yaml.hh>
Public Types | |
typedef YAML::Node | Node |
Definition of YAML-cpp node. More... | |
Public Member Functions | |
PathYAML (std::istream &in) | |
Constructor. More... | |
~PathYAML () override | |
Destructor. More... | |
int | level () const |
Returns level of actual path. More... | |
bool | down (unsigned int index) override |
Dive into yaml-cpp hierarchy. More... | |
bool | down (const std::string &key, int index=-1) override |
Dive into yaml-cpp hierarchy. More... | |
void | up () override |
Return one level up in the hierarchy. 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... | |
PathYAML * | clone () const override |
Implements PathBase::clone . More... | |
PathBase * | find_ref_node () override |
Implements reading of reference keys, and check of cyclic references. More... | |
std::string | get_record_tag () const override |
Implements PathBase::get_record_tag . 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 Member Functions | |
const Node & | head () const |
Pointer to YAML Value object at current path. More... | |
Protected Member Functions inherited from Input::PathBase | |
PathBase () | |
Forbid default constructor. More... | |
Protected Attributes | |
std::vector< 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 YAML tree provided by yaml-cpp library.
This class keeps whole path from the root of the YAML 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 tags for 'TYPE' key. Class doesn't need special methods for work with references. YAML tree used own native references.
Definition at line 47 of file path_yaml.hh.
typedef YAML::Node Input::PathYAML::Node |
Definition of YAML-cpp node.
Definition at line 50 of file path_yaml.hh.
Input::PathYAML::PathYAML | ( | std::istream & | in | ) |
Constructor.
Definition at line 30 of file path_yaml.cc.
|
override |
|
overridevirtual |
Implements PathBase::clone
.
Implements Input::PathBase.
Definition at line 197 of file path_yaml.cc.
|
overridevirtual |
Dive into yaml-cpp hierarchy.
Implements PathBase::down(const std::string&)
Implements Input::PathBase.
|
overridevirtual |
Dive into yaml-cpp hierarchy.
Implements PathBase::down(unsigned int)
Implements Input::PathBase.
Definition at line 52 of file path_yaml.cc.
|
overridevirtual |
Implements reading of reference keys, and check of cyclic references.
Implements Input::PathBase.
Definition at line 202 of file path_yaml.cc.
|
overridevirtual |
Implements PathBase::get_array_size
.
Implements Input::PathBase.
Definition at line 179 of file path_yaml.cc.
|
overridevirtual |
Implements PathBase::get_bool_value
.
Implements Input::PathBase.
Definition at line 93 of file path_yaml.cc.
|
overridevirtual |
Implements PathBase::get_double_value
.
Implements Input::PathBase.
Definition at line 121 of file path_yaml.cc.
|
overridevirtual |
Implements PathBase::get_int_value
.
Implements Input::PathBase.
Definition at line 107 of file path_yaml.cc.
|
overridevirtual |
Implements PathBase::get_node_type_index
.
Implements Input::PathBase.
Definition at line 149 of file path_yaml.cc.
|
overridevirtual |
Implements PathBase::get_record_key_set
.
Implements Input::PathBase.
Definition at line 160 of file path_yaml.cc.
|
overridevirtual |
Implements PathBase::get_record_tag
.
Implements Input::PathBase.
Definition at line 209 of file path_yaml.cc.
|
overridevirtual |
Implements PathBase::get_string_value
.
Implements Input::PathBase.
Definition at line 135 of file path_yaml.cc.
|
inlineprotected |
Pointer to YAML Value object at current path.
Definition at line 111 of file path_yaml.hh.
|
overridevirtual |
Implements PathBase::is_array_type
.
Implements Input::PathBase.
Definition at line 192 of file path_yaml.cc.
|
overridevirtual |
Implements PathBase::is_effectively_null
.
Implements Input::PathBase.
Definition at line 220 of file path_yaml.cc.
|
overridevirtual |
Implements PathBase::is_null_type
.
Implements Input::PathBase.
Definition at line 88 of file path_yaml.cc.
|
overridevirtual |
Implements PathBase::is_record_type
.
Implements Input::PathBase.
Definition at line 187 of file path_yaml.cc.
|
inlinevirtual |
Returns level of actual path.
Root has level == 0.
Implements Input::PathBase.
Definition at line 67 of file path_yaml.hh.
|
overridevirtual |
Return one level up in the hierarchy.
Implements Input::PathBase.
Definition at line 80 of file path_yaml.cc.
|
protected |
Definition at line 115 of file path_yaml.hh.