Flow123d
master-f44eb46
|
Internal part of IST reader. More...
#include <reader_internal_base.hh>
Public Member Functions | |
TYPEDEF_ERR_INFO (EI_InputType, string) | |
TYPEDEF_ERR_INFO (EI_File, const string) | |
TYPEDEF_ERR_INFO (EI_Specification, const string) | |
TYPEDEF_ERR_INFO (EI_Format, const string) | |
TYPEDEF_ERR_INFO (EI_JSON_Type, const string) | |
TYPEDEF_ERR_INFO (EI_ErrorAddress, string) | |
TYPEDEF_ERR_INFO (EI_TransposeIndex, unsigned int) | |
TYPEDEF_ERR_INFO (EI_TransposeAddress, string) | |
TYPEDEF_ERR_INFO (EI_JSONLine, unsigned int) | |
TYPEDEF_ERR_INFO (EI_JSONColumn, unsigned int) | |
TYPEDEF_ERR_INFO (EI_JSONReason, string) | |
TYPEDEF_ERR_INFO (EI_InputErrorMessage, const string) | |
TYPEDEF_ERR_INFO (EI_RecordName, const string) | |
TYPEDEF_ERR_INFO (EI_Tag, string) | |
TYPEDEF_ERR_INFO (EI_TokenizerMsg, std::string) | |
TYPEDEF_ERR_INFO (EI_ColumnIndex, unsigned int) | |
DECLARE_INPUT_EXCEPTION (ExcInputError,<< "Error in input file: "<< EI_File::qval<< " at address: "<< EI_ErrorAddress::qval<< "\n"<< EI_Specification::val<< "\n"<< EI_Format::val<< " type: "<< EI_JSON_Type::qval<< "\n"<< "Expected type:\n"<< EI_InputType::val) | |
General exception during conversion from JSON/YAML tree to storage. More... | |
DECLARE_INPUT_EXCEPTION (ExcNotJSONFormat,<< "Not valid JSON file "<< EI_File::qval<< ". Error at line "<< EI_JSONLine::val<< " : col "<< EI_JSONColumn::val<< " ; reason: "<< EI_JSONReason::val<< "\n") | |
DECLARE_INPUT_EXCEPTION (ExcAutomaticConversionError,<< "Error during automatic conversion of "<< EI_RecordName::val<< " record.\n "<< EI_InputErrorMessage::val<< "\n") | |
DECLARE_INPUT_EXCEPTION (ExcForbiddenTag,<< "Tag "<< EI_Tag::qval<< " "<< EI_Specification::val<< "\n") | |
DECLARE_INPUT_EXCEPTION (ExcDuplicitTag,<< "Error in input file: "<< EI_File::qval<< " at address: "<< EI_ErrorAddress::qval<< "\n"<< "Duplicit Tag: "<< EI_Tag::qval<< "\n") | |
DECLARE_INPUT_EXCEPTION (ExcWrongCsvFormat,<< EI_Specification::val<< ",\n"<< EI_TokenizerMsg::val<< "\n") | |
DECLARE_INPUT_EXCEPTION (ExcMultipleDefinitionCsvColumn,<< "Multiple definition of column with index "<< EI_ColumnIndex::qval<< " in included CSV file:\n"<< EI_File::val<< ",\n") | |
ReaderInternalBase () | |
Constructor. More... | |
Protected Member Functions | |
StorageBase * | make_storage (PathBase &p, const Type::TypeBase *type) |
Create storage of given type . More... | |
StorageBase * | make_sub_storage (PathBase &p, const Type::Record *record) |
Create storage of Type::Record type. Common method of all descendants. More... | |
StorageBase * | make_sub_storage (PathBase &p, const Type::Tuple *tuple) |
Create storage of Type::Tuple type. Common method of all descendants. More... | |
StorageBase * | make_sub_storage (PathBase &p, const Type::Abstract *abstr_rec) |
Create storage of Type::Abstract type. Common method of all descendants. More... | |
virtual StorageBase * | make_sub_storage (PathBase &p, const Type::Array *array)=0 |
Create storage of Type::Array type. More... | |
virtual StorageBase * | make_sub_storage (PathBase &p, const Type::Selection *selection)=0 |
Create storage of Type::Selection type. More... | |
virtual StorageBase * | make_sub_storage (PathBase &p, const Type::Bool *bool_type)=0 |
Create storage of Type::Bool type. More... | |
virtual StorageBase * | make_sub_storage (PathBase &p, const Type::Integer *int_type)=0 |
Create storage of Type::Integer type. More... | |
virtual StorageBase * | make_sub_storage (PathBase &p, const Type::Double *double_type)=0 |
Create storage of Type::Double type. More... | |
virtual StorageBase * | make_sub_storage (PathBase &p, const Type::String *string_type)=0 |
Create storage of Type::String type. More... | |
StorageBase * | record_automatic_conversion (PathBase &p, const Type::Record *record) |
Apply automatic conversion of Type::Record type. More... | |
StorageBase * | abstract_automatic_conversion (PathBase &p, const Type::Abstract *abstr_rec) |
Apply automatic conversion of Type::Abstract type. More... | |
StorageBase * | make_array_storage (PathBase &p, const Type::Array *array, int arr_size) |
Create storage of Type::Array with given size. More... | |
StorageBase * | make_storage_from_default (const string &dflt_str, std::shared_ptr< Type::TypeBase > type) |
Dispatch according to type and create corresponding storage from the given string. More... | |
StorageBase * | make_include_storage (PathBase &p, const Type::TypeBase *type) |
Create storage of included YAML or JSON input file. More... | |
bool | read_bool_value (PathBase &p, const Type::TypeBase *type) |
Read boolean value from path. More... | |
std::int64_t | read_int_value (PathBase &p, const Type::TypeBase *type) |
Read integer value from path. More... | |
double | read_double_value (PathBase &p, const Type::TypeBase *type) |
Read double value from path. More... | |
std::string | read_string_value (PathBase &p, const Type::TypeBase *type) |
Read string value from path. More... | |
std::string | get_included_file (PathBase &p) |
Helper method. Get string value of included file or throw exception if reading failed. More... | |
void | generate_input_error (PathBase &p, const Type::TypeBase *type, std::string spec, bool add_type) |
Generate ExcInputError . More... | |
void | complete_input_error (ExcInputError &e, PathBase &p, ValueTypes value_type) |
Complete specification, error address and JSON type error tags to ExcInputError . More... | |
Internal part of IST reader.
This class defines interface for creating storage. Dispatching of storage is ensured by the non-virtual method read_storage, different for individual descendants.
Definition at line 42 of file reader_internal_base.hh.
Input::ReaderInternalBase::ReaderInternalBase | ( | ) |
Constructor.
Definition at line 35 of file reader_internal_base.cc.
|
protected |
Apply automatic conversion of Type::Abstract type.
Definition at line 294 of file reader_internal_base.cc.
|
protected |
Complete specification, error address and JSON type error tags to ExcInputError
.
Definition at line 449 of file reader_internal_base.cc.
Input::ReaderInternalBase::DECLARE_INPUT_EXCEPTION | ( | ExcAutomaticConversionError | , |
<< "Error during automatic conversion of "<< EI_RecordName::val<< " record.\n "<< EI_InputErrorMessage::val<< "\n" | |||
) |
Input::ReaderInternalBase::DECLARE_INPUT_EXCEPTION | ( | ExcDuplicitTag | , |
<< "Error in input file: "<< EI_File::qval<< " at address: "<< EI_ErrorAddress::qval<< "\n"<< "Duplicit Tag: "<< EI_Tag::qval<< "\n" | |||
) |
Input::ReaderInternalBase::DECLARE_INPUT_EXCEPTION | ( | ExcForbiddenTag | , |
<< "Tag "<< EI_Tag::qval<< " "<< EI_Specification::val<< "\n" | |||
) |
Input::ReaderInternalBase::DECLARE_INPUT_EXCEPTION | ( | ExcInputError | , |
<< "Error in input file: "<< EI_File::qval<< " at address: "<< EI_ErrorAddress::qval<< "\n"<< EI_Specification::val<< "\n"<< EI_Format::val<< " type: "<< EI_JSON_Type::qval<< "\n"<< "Expected type:\n"<< EI_InputType::val | |||
) |
General exception during conversion from JSON/YAML tree to storage.
Input::ReaderInternalBase::DECLARE_INPUT_EXCEPTION | ( | ExcMultipleDefinitionCsvColumn | , |
<< "Multiple definition of column with index "<< EI_ColumnIndex::qval<< " in included CSV file:\n"<< EI_File::val<< " | , | ||
\n" | |||
) |
Input::ReaderInternalBase::DECLARE_INPUT_EXCEPTION | ( | ExcNotJSONFormat | , |
<< "Not valid JSON file "<< EI_File::qval<< ". Error at line "<< EI_JSONLine::val<< " : col "<< EI_JSONColumn::val<< " ; reason: "<< EI_JSONReason::val<< "\n" | |||
) |
Input::ReaderInternalBase::DECLARE_INPUT_EXCEPTION | ( | ExcWrongCsvFormat | , |
<< EI_Specification::val<< " | , | ||
\n"<< EI_TokenizerMsg::val<< "\n" | |||
) |
|
protected |
Generate ExcInputError
.
Definition at line 439 of file reader_internal_base.cc.
|
protected |
Helper method. Get string value of included file or throw exception if reading failed.
Definition at line 427 of file reader_internal_base.cc.
|
protected |
Create storage of Type::Array with given size.
Definition at line 303 of file reader_internal_base.cc.
|
protected |
Create storage of included YAML or JSON input file.
Definition at line 346 of file reader_internal_base.cc.
|
protected |
Create storage of given type
.
Check correctness of the input given by json_spirit or YAML-cpp node at head() of PathBase p
against type specification type
. Die on input error (and return NULL). For correct input, creates the storage tree and returns pointer to its root node.
Definition at line 38 of file reader_internal_base.cc.
|
protected |
Dispatch according to type
and create corresponding storage from the given string.
Definition at line 327 of file reader_internal_base.cc.
|
protected |
Create storage of Type::Abstract type. Common method of all descendants.
Definition at line 231 of file reader_internal_base.cc.
|
protectedpure virtual |
Create storage of Type::Array type.
Implemented in Input::ReaderInternalTranspose, Input::ReaderInternalCsvInclude, and Input::ReaderInternal.
|
protectedpure virtual |
Create storage of Type::Bool type.
Implemented in Input::ReaderInternalTranspose, Input::ReaderInternalCsvInclude, and Input::ReaderInternal.
|
protectedpure virtual |
Create storage of Type::Double type.
Implemented in Input::ReaderInternalTranspose, Input::ReaderInternalCsvInclude, and Input::ReaderInternal.
|
protectedpure virtual |
Create storage of Type::Integer type.
Implemented in Input::ReaderInternalTranspose, Input::ReaderInternalCsvInclude, and Input::ReaderInternal.
|
protected |
Create storage of Type::Record type. Common method of all descendants.
Definition at line 95 of file reader_internal_base.cc.
|
protectedpure virtual |
Create storage of Type::Selection type.
Implemented in Input::ReaderInternalTranspose, Input::ReaderInternalCsvInclude, and Input::ReaderInternal.
|
protectedpure virtual |
Create storage of Type::String type.
Implemented in Input::ReaderInternalTranspose, Input::ReaderInternalCsvInclude, and Input::ReaderInternal.
|
protected |
Create storage of Type::Tuple type. Common method of all descendants.
Definition at line 185 of file reader_internal_base.cc.
|
protected |
Read boolean value from path.
Definition at line 368 of file reader_internal_base.cc.
|
protected |
Read double value from path.
Definition at line 398 of file reader_internal_base.cc.
|
protected |
Read integer value from path.
Definition at line 383 of file reader_internal_base.cc.
|
protected |
Read string value from path.
Definition at line 413 of file reader_internal_base.cc.
|
protected |
Apply automatic conversion of Type::Record type.
Definition at line 260 of file reader_internal_base.cc.
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_ColumnIndex | , |
unsigned int | |||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_ErrorAddress | , |
string | |||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_File | , |
const | string | ||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_Format | , |
const | string | ||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_InputErrorMessage | , |
const | string | ||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_InputType | , |
string | |||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_JSON_Type | , |
const | string | ||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_JSONColumn | , |
unsigned int | |||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_JSONLine | , |
unsigned int | |||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_JSONReason | , |
string | |||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_RecordName | , |
const | string | ||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_Specification | , |
const | string | ||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_Tag | , |
string | |||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_TokenizerMsg | , |
std::string | |||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_TransposeAddress | , |
string | |||
) |
Input::ReaderInternalBase::TYPEDEF_ERR_INFO | ( | EI_TransposeIndex | , |
unsigned int | |||
) |