Flow123d  jenkins-Flow123d-linux-release-multijob-282
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
Input::Type::OutputJSONTemplate Class Reference

Class for create and JSON template documentation. More...

#include <type_output.hh>

Inheritance diagram for Input::Type::OutputJSONTemplate:
Inheritance graph
[legend]
Collaboration diagram for Input::Type::OutputJSONTemplate:
Collaboration graph
[legend]

Public Member Functions

 OutputJSONTemplate (TypeBase *type, unsigned int depth=0)
 
ostream & print (ostream &stream)
 
- Public Member Functions inherited from Input::Type::OutputBase
void set_filter (string regex_filter)
 Initializes and allocates regular expression filter regex_filter. More...
 

Protected Member Functions

void print (ostream &stream, const TypeBase *type, unsigned int depth)
 
void print_impl (ostream &stream, const Record *type, unsigned int depth)
 
void print_impl (ostream &stream, const Array *type, unsigned int depth)
 
void print_impl (ostream &stream, const AbstractRecord *type, unsigned int depth)
 
void print_impl (ostream &stream, const AdHocAbstractRecord *type, unsigned int depth)
 
void print_impl (ostream &stream, const Selection *type, unsigned int depth)
 
void print_impl (ostream &stream, const Integer *type, unsigned int depth)
 
void print_impl (ostream &stream, const Double *type, unsigned int depth)
 
void print_impl (ostream &stream, const Bool *type, unsigned int depth)
 
void print_impl (ostream &stream, const String *type, unsigned int depth)
 
void print_impl (ostream &stream, const FileName *type, unsigned int depth)
 
- Protected Member Functions inherited from Input::Type::OutputBase
 OutputBase (const TypeBase *type, unsigned int depth=0)
 
virtual ~OutputBase ()
 Destructor. More...
 
void get_array_sizes (Array array, unsigned int &lower, unsigned int &upper)
 Gets range of array. More...
 
const string & get_record_description (const Record *rec)
 Gets description of the given record type. More...
 
void get_record_key (Record rec, unsigned int key_idx, Record::Key &key)
 Gets record key for given index. More...
 
void get_integer_bounds (Integer integer, int &lower, int &upper)
 Gets range of integer. More...
 
void get_double_bounds (Double dbl, double &lower, double &upper)
 Gets range of double. More...
 
void get_parent_ptr (Record rec, boost::shared_ptr< AbstractRecord > &parent_ptr)
 Gets pointer of parent AbstractRecord for given Record. More...
 
void get_array_type (Array array, boost::shared_ptr< const TypeBase > &arr_type)
 Gets pointer of inner type for given Array. More...
 
void get_default (Record::KeyIter it, string &type, string &value)
 Gets values of default for given record key. More...
 
const string & get_selection_description (const Selection *sel)
 Gets description of the given selection type. More...
 
const string & get_adhoc_parent_name (const AdHocAbstractRecord *a_rec)
 Gets parent_name_ of the given AdHocAbstractRecord type. More...
 
AbstractRecord::ChildDataIter get_adhoc_parent_data (const AdHocAbstractRecord *a_rec)
 Gets iterator to begin of parent_data_ of the given AdHocAbstractRecord type. More...
 
const void * get_record_data (const Record *rec)
 Gets pointer of inner data for given Record. More...
 
const void * get_abstract_record_data (const AbstractRecord *a_rec)
 Gets pointer of inner data for given AbstractRecord. More...
 
const void * get_selection_data (const Selection *sel)
 Gets pointer of inner data for given Selection. More...
 
const void * get_array_data (const Array *array)
 Gets pointer of inner data for given Array. More...
 
const void * get_type_base_data (const TypeBase *type)
 Gets pointer of inner data for given TypeBase. More...
 
void print (ostream &stream, const TypeBase *type, unsigned int depth)
 
void write_description (std::ostream &stream, const string &str, unsigned int padding, unsigned int hash_count=1)
 
void write_default_value (std::ostream &stream, Default dft)
 

Private Member Functions

void print_default_value (ostream &stream, unsigned int depth, string empty_val, bool invalid_val, bool has_quote=false)
 

Private Attributes

string key_name_
 temporary value of actually record type More...
 
string reference_
 temporary value of actually reference More...
 
Default value_
 temporary value of actually record value More...
 

Additional Inherited Members

- Protected Types inherited from Input::Type::OutputBase
enum  DocumentationType { key_record, full_record }
 
- Protected Attributes inherited from Input::Type::OutputBase
const TypeBasetype_
 Object for which is created printout. More...
 
unsigned int depth_
 Depth of printout (for value 0 is printed all input tree) More...
 
DocumentationType doc_type_
 Type of documentation output. More...
 
unsigned int size_setw_
 temporary value for printout of description (used in std::setw function) More...
 
std::string format_head
 
std::string format_tail
 
ProcessedTypes doc_flags_
 Stores flags and references of processed type. More...
 
- Static Protected Attributes inherited from Input::Type::OutputBase
static const unsigned int padding_size = 4
 Padding of new level of printout, used where we use indentation. More...
 

Detailed Description

Class for create and JSON template documentation.

Every type is represented by JSON object. Type name, description and other data are displayed as comments. Among other data belongs range of numeric values, size limits of arrays, possible values of selections etc.

Definition at line 343 of file type_output.hh.

Constructor & Destructor Documentation

Input::Type::OutputJSONTemplate::OutputJSONTemplate ( TypeBase type,
unsigned int  depth = 0 
)
inline

Constructor for output of the input type tree with root type. The input type tree is searched by DFS algorithm into depth.

Definition at line 349 of file type_output.hh.

Member Function Documentation

ostream & Input::Type::OutputJSONTemplate::print ( ostream &  stream)
virtual

Perform output of the documentation into given stream.

Reimplemented from Input::Type::OutputBase.

Definition at line 563 of file type_output.cc.

Here is the caller graph for this function:

void Input::Type::OutputJSONTemplate::print ( ostream &  stream,
const TypeBase type,
unsigned int  depth 
)
inlineprotected

Definition at line 358 of file type_output.hh.

void Input::Type::OutputJSONTemplate::print_default_value ( ostream &  stream,
unsigned int  depth,
string  empty_val,
bool  invalid_val,
bool  has_quote = false 
)
private

Prints value according to DefaultType Respects obligatory, optional and read time flag

Parameters
streamOutput stream
depthDepth of output
empty_valDefault empty value (zero for numeric types, empty string ...)
invalid_valFlag if value is invalid for its type
has_quoteFlag if value is enclosed in quotes

Definition at line 886 of file type_output.cc.

void Input::Type::OutputJSONTemplate::print_impl ( ostream &  stream,
const Record type,
unsigned int  depth 
)
protectedvirtual

Implements printout of Record type

Implements Input::Type::OutputBase.

Definition at line 569 of file type_output.cc.

void Input::Type::OutputJSONTemplate::print_impl ( ostream &  stream,
const Array type,
unsigned int  depth 
)
protectedvirtual

Implements printout of Array type

Implements Input::Type::OutputBase.

Definition at line 634 of file type_output.cc.

void Input::Type::OutputJSONTemplate::print_impl ( ostream &  stream,
const AbstractRecord type,
unsigned int  depth 
)
protectedvirtual

Implements printout of AbstractRecord type

Implements Input::Type::OutputBase.

Definition at line 698 of file type_output.cc.

void Input::Type::OutputJSONTemplate::print_impl ( ostream &  stream,
const AdHocAbstractRecord type,
unsigned int  depth 
)
protectedvirtual

Implements printout of AdHocAbstractRecord type

Implements Input::Type::OutputBase.

Definition at line 738 of file type_output.cc.

void Input::Type::OutputJSONTemplate::print_impl ( ostream &  stream,
const Selection type,
unsigned int  depth 
)
protectedvirtual

Implements printout of Selection type

Implements Input::Type::OutputBase.

Definition at line 752 of file type_output.cc.

void Input::Type::OutputJSONTemplate::print_impl ( ostream &  stream,
const Integer type,
unsigned int  depth 
)
protectedvirtual

Implements printout of Integer type

Implements Input::Type::OutputBase.

Definition at line 790 of file type_output.cc.

void Input::Type::OutputJSONTemplate::print_impl ( ostream &  stream,
const Double type,
unsigned int  depth 
)
protectedvirtual

Implements printout of Double type

Implements Input::Type::OutputBase.

Definition at line 810 of file type_output.cc.

void Input::Type::OutputJSONTemplate::print_impl ( ostream &  stream,
const Bool type,
unsigned int  depth 
)
protectedvirtual

Implements printout of Bool type

Implements Input::Type::OutputBase.

Definition at line 831 of file type_output.cc.

void Input::Type::OutputJSONTemplate::print_impl ( ostream &  stream,
const String type,
unsigned int  depth 
)
protectedvirtual

Implements printout of String type

Implements Input::Type::OutputBase.

Definition at line 847 of file type_output.cc.

void Input::Type::OutputJSONTemplate::print_impl ( ostream &  stream,
const FileName type,
unsigned int  depth 
)
protectedvirtual

Implements printout of FileName type

Implements Input::Type::OutputBase.

Definition at line 860 of file type_output.cc.

Member Data Documentation

string Input::Type::OutputJSONTemplate::key_name_
private

temporary value of actually record type

Definition at line 388 of file type_output.hh.

string Input::Type::OutputJSONTemplate::reference_
private

temporary value of actually reference

Definition at line 390 of file type_output.hh.

Default Input::Type::OutputJSONTemplate::value_
private

temporary value of actually record value

Definition at line 392 of file type_output.hh.


The documentation for this class was generated from the following files: