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

Accessor to the polymorphic input data of a type given by an AbstracRecord object. More...

#include <accessors.hh>

Collaboration diagram for Input::AbstractRecord:
Collaboration graph
[legend]

Public Types

typedef
::Input::Type::AbstractRecord 
InputType
 

Public Member Functions

 AbstractRecord ()
 
 AbstractRecord (const AbstractRecord &rec)
 
 AbstractRecord (const Address &address, const Type::AbstractRecord type)
 
 operator Record () const
 
Input::Type::Record type () const
 
EI_Address ei_address () const
 
string address_string () const
 
void transpose_to (Input::Record &target_rec, string target_key, unsigned int vec_size)
 

Private Attributes

Input::Type::AbstractRecord record_type_
 Corresponding Type::AbstractRecord object. More...
 
Address address_
 Contains address and relationships with abstract record ancestor. More...
 

Detailed Description

Accessor to the polymorphic input data of a type given by an AbstracRecord object.

Provides conversion operator to the Record accessor in ordred to behave in the same way, but further it provides method type() that can be used to call constructor of the class corresponding to the input data.

Definition at line 448 of file accessors.hh.

Member Typedef Documentation

Definition at line 450 of file accessors.hh.

Constructor & Destructor Documentation

Input::AbstractRecord::AbstractRecord ( )

Default constructor creates an empty accessor.

Constructor uses empty Address which causes error in program, Address has to be filled.

Definition at line 209 of file accessors.cc.

Input::AbstractRecord::AbstractRecord ( const AbstractRecord rec)

Copy constructor.

Definition at line 215 of file accessors.cc.

Input::AbstractRecord::AbstractRecord ( const Address address,
const Type::AbstractRecord  type 
)

Constructs the accessor providing pointer store to storage node with list of data of the record and type specification of the record given by parameter type.

Definition at line 221 of file accessors.cc.

Member Function Documentation

string Input::AbstractRecord::address_string ( ) const

Get address as string.

Definition at line 247 of file accessors.cc.

Here is the caller graph for this function:

Input::EI_Address Input::AbstractRecord::ei_address ( ) const

Returns address error info.

Definition at line 242 of file accessors.cc.

Input::AbstractRecord::operator Record ( ) const

Implicit conversion to the Input::Record accessor. You can use Input::AbstractRecord in the same way as the Input::Record.

Definition at line 230 of file accessors.cc.

void Input::AbstractRecord::transpose_to ( Input::Record target_rec,
string  target_key,
unsigned int  vec_size 
)

Transpose storage of target record.

Replace part representing MultiField in source AbstractRecord with Array of individual items. *this is source AbstractRecord, target_rec.val(target_key) is Array of target records.

Parameters
target_recparent record of MutliField
target_keyreplaced key
vec_sizesize of MultiField data and target Array

Definition at line 252 of file accessors.cc.

Input::Type::Record Input::AbstractRecord::type ( ) const

Returns particular type selected from input. You can use it to construct particular type.

* class MyClass {
* MyClass( Input::Record );
* }
*
* if (abstract_record.type() == MyClass.get_input_type())
* my_class = new MyClass(abstract_record); // here the implicit conversion to Input::Record is used
*

Definition at line 235 of file accessors.cc.

Here is the caller graph for this function:

Member Data Documentation

Address Input::AbstractRecord::address_
private

Contains address and relationships with abstract record ancestor.

Definition at line 518 of file accessors.hh.

Input::Type::AbstractRecord Input::AbstractRecord::record_type_
private

Corresponding Type::AbstractRecord object.

Definition at line 515 of file accessors.hh.


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