Flow123d  JS_before_hm-1804-gf2ad740aa
Public Member Functions | Protected Attributes | List of all members
Input::Type::Instance Class Reference

Helper class that stores data of generic types. More...

#include <type_generic.hh>

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

Public Member Functions

 Instance (TypeBase &generic_type, std::vector< TypeBase::ParameterPair > parameters)
 Constructor. More...
 
TypeHash content_hash () const override
 Implements TypeBase::content_hash. More...
 
const Instanceclose () const
 Used for set Instance to TypeRepository. More...
 
FinishStatus finish (FinishStatus finish_type=FinishStatus::regular_) override
 Finish declaration of the Instance type. Call finish of stored generic_type_. More...
 
MakeInstanceReturnType make_instance (std::vector< ParameterPair > vec=std::vector< ParameterPair >()) override
 Implements TypeBase::make_instance. More...
 
- Public Member Functions inherited from Input::Type::TypeBase
virtual FinishStatus finish_status () const
 Returns true if the type is fully specified and ready for read access. More...
 
virtual bool is_finished () const
 
virtual bool is_closed () const
 Returns true if the type is closed. More...
 
virtual string type_name () const
 Returns an identification of the type. Useful for error messages. More...
 
virtual string class_name () const
 Returns an identification of the class. Useful for output of the documentation. More...
 
string desc () const
 Returns string with Type extensive documentation. More...
 
virtual bool operator== (const TypeBase &other) const
 Comparison of types. More...
 
bool operator!= (const TypeBase &other) const
 Comparison of types. More...
 
virtual ~TypeBase ()
 Destructor. More...
 
std::string hash_str () const
 Format the hash of this type. More...
 
virtual MakeInstanceReturnType make_instance (ParameterVector vec=ParameterVector())=0
 
bool is_root_of_generic_subtree () const
 Indicates if type is marked with flag root_of_generic_subtree_. More...
 

Protected Attributes

TypeBasegeneric_type_
 Reference to generic types (contains some descendants of type Parameter). More...
 
std::vector< TypeBase::ParameterPairparameters_
 Stores pairs of (name, Input::Type), that are used for replace of parameters in generic types. More...
 
MakeInstanceReturnType created_instance_
 Stores returned type created in first call of make_instance method. More...
 
- Protected Attributes inherited from Input::Type::TypeBase
std::shared_ptr< attribute_mapattributes_
 map of type attributes (e. g. input_type, name etc.) More...
 
bool root_of_generic_subtree_
 flag is true if type should be root of generic subtree More...
 
TypeHash generic_type_hash_
 hash string of generic type if type is derived, or empty string More...
 
ParameterMap parameter_map_
 map of parameters if type is part of generic subtree More...
 

Additional Inherited Members

- Public Types inherited from Input::Type::TypeBase
typedef std::size_t TypeHash
 Type returned by content_hash methods. More...
 
typedef std::string json_string
 String stored in JSON format. More...
 
typedef std::map< std::string, json_stringattribute_map
 Defines map of Input::Type attributes. More...
 
typedef std::pair< std::string, std::shared_ptr< TypeBase > > ParameterPair
 Defines pairs of (name, Input::Type), that are used for replace of parameters in generic types. More...
 
typedef std::vector< ParameterPairParameterVector
 Define vector of parameters passed to the overloaded make_instance method. More...
 
typedef std::map< std::string, TypeHashParameterMap
 Defines map of used parameters. More...
 
typedef std::pair< std::shared_ptr< TypeBase >, ParameterMapMakeInstanceReturnType
 Return type of make_instance methods, contains instance of generic type and map of used parameters. More...
 
- Static Public Member Functions inherited from Input::Type::TypeBase
static void delete_unfinished_types ()
 Finishes and marks all types registered in type repositories and unused in IST. More...
 
static std::string hash_str (TypeHash hash)
 Format given hash for output. More...
 
- Static Public Attributes inherited from Input::Type::TypeBase
const static TypeHash none_hash = std::numeric_limits<TypeHash>::max()
 
- Protected Types inherited from Input::Type::TypeBase
typedef string KeyHash
 The type of hash values used in associative array that translates key names to indices in Record and Selection. More...
 
- Protected Member Functions inherited from Input::Type::TypeBase
 TypeBase ()
 The default constructor. More...
 
 TypeBase (const TypeBase &other)
 Copy constructor. More...
 
void add_attribute_ (std::string name, json_string val)
 Add attribute of given name to attribute map. More...
 
bool validate_json (json_string str) const
 Check if str is valid JSON string. More...
 
json_string print_parameter_map_to_json (ParameterMap parameter_map) const
 Create JSON output from parameter_map formatted as value of attribute. More...
 
json_string print_parameter_map_keys_to_json (ParameterMap param_map) const
 
void set_generic_attributes (ParameterMap param_map)
 
void copy_attributes (attribute_map other_attributes)
 
- Static Protected Member Functions inherited from Input::Type::TypeBase
static KeyHash key_hash (const string &str)
 Hash function. More...
 
static bool is_valid_identifier (const string &key)
 Check that a key is valid identifier. More...
 

Detailed Description

Helper class that stores data of generic types.

Definition at line 89 of file type_generic.hh.

Constructor & Destructor Documentation

◆ Instance()

Input::Type::Instance::Instance ( TypeBase generic_type,
std::vector< TypeBase::ParameterPair parameters 
)

Constructor.

Definition at line 91 of file type_generic.cc.

Member Function Documentation

◆ close()

const Instance & Input::Type::Instance::close ( ) const

Used for set Instance to TypeRepository.

Definition at line 108 of file type_generic.cc.

Here is the caller graph for this function:

◆ content_hash()

TypeBase::TypeHash Input::Type::Instance::content_hash ( ) const
overridevirtual

Implements TypeBase::content_hash.

Hash is calculated by hash of generic type and hash of parameters.

Implements Input::Type::TypeBase.

Definition at line 95 of file type_generic.cc.

◆ finish()

FinishStatus Input::Type::Instance::finish ( FinishStatus  finish_type = FinishStatus::regular_)
overridevirtual

Finish declaration of the Instance type. Call finish of stored generic_type_.

Reimplemented from Input::Type::TypeBase.

Definition at line 113 of file type_generic.cc.

◆ make_instance()

TypeBase::MakeInstanceReturnType Input::Type::Instance::make_instance ( std::vector< ParameterPair vec = std::vector<ParameterPair>())
override

Implements TypeBase::make_instance.

Print parameter vector to formatted string.

In first call creates instance and stores its to created_instance_.

At each successive call returns this stored type.

Definition at line 122 of file type_generic.cc.

Member Data Documentation

◆ created_instance_

MakeInstanceReturnType Input::Type::Instance::created_instance_
mutableprotected

Stores returned type created in first call of make_instance method.

At each successive call of make_instance returns this stored type.

Definition at line 128 of file type_generic.hh.

◆ generic_type_

TypeBase& Input::Type::Instance::generic_type_
protected

Reference to generic types (contains some descendants of type Parameter).

Definition at line 118 of file type_generic.hh.

◆ parameters_

std::vector<TypeBase::ParameterPair> Input::Type::Instance::parameters_
protected

Stores pairs of (name, Input::Type), that are used for replace of parameters in generic types.

Definition at line 121 of file type_generic.hh.


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