CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <DataFormatterTools.hh>
A DatumFormatter that returns a 2D value of specified type, via functions that may be specified at runtime.
Definition at line 1446 of file DataFormatterTools.hh.
Public Types | |
typedef std::function< Container(const DataObject &)> | Evaluator |
typedef std::function< bool(const DataObject &)> | Validator |
typedef ContainerTraits< Container >::Access | Access |
Access methods for Container. More... | |
typedef ContainerTraits< Container >::value_type2D | ValueType |
typedef DataObject | DataObject |
typedef long | difference_type |
typedef DataFormatterDictionary< DataObject, BaseDatumFormatter< DataObject > > | DictType |
Public Member Functions | |
Generic2DDatumFormatter (const std::string &_name, const std::string &_desc, Evaluator _evaluator, Validator _validator=always_true< DataObject >) | |
Constructor. More... | |
Container | evaluate (const DataObject &obj) const override |
Returns Container type piece of data about a DataObject, the result of the Evaluator. More... | |
std::unique_ptr< Generic2DDatumFormatter > | clone () const |
Clone using copy constructor. More... | |
bool | validate (const DataObject &obj) const override |
Returns boolean indicating if the _evaluator can be used successfully, the result of the Validator. More... | |
virtual bool | init (const DataObject &_template_obj) const override |
Default initialization adds rules for each element. More... | |
virtual Index | num_passes (const DataObject &_template_obj) const override |
virtual std::vector< std::string > | col_header (const DataObject &_template_obj) const override |
Default col_header uses 'name(index)' for each column. More... | |
virtual bool | parse_args (const std::string &args) override |
Default implementation calls _parse_index_expression. More... | |
virtual void | inject (const DataObject &_data_obj, DataStream &_stream, Index pass_index=0) const override |
Default implementation injects each element. More... | |
virtual void | print (const DataObject &_data_obj, std::ostream &_stream, Index pass_index=0) const override |
Default implementation prints each element in a column. More... | |
virtual Container | operator() (const DataObject &obj) const |
Return requested data from obj, throwing std::runtime_error if not valid. More... | |
virtual jsonParser & | to_json (const DataObject &_data_obj, jsonParser &json) const override |
Default implementation calls jsonParser& to_json(const ValueType&, jsonParser&) More... | |
const std::string & | name () const |
Returns a name for the formatter, which becomes the tag used for parsing. More... | |
const std::string & | description () const |
Returns a short description of the formatter and its allowed arguments (if any). This description is used to automatically generate help screens. More... | |
virtual DatumFormatterClass | type () const |
const DictType & | home () const |
const Access the dictionary containing this formatter, set during DictType::lookup More... | |
void | set_home (const DictType &home) const |
Set the dictionary containing this formatter, set during DictType::lookup. More... | |
virtual std::string | long_header (const DataObject &_template_obj) const |
Returns a long expression for each scalar produced by the formatter parsing the long_header should reproduce the exact query described by the formatter Ex: "clex(formation_energy)" or "comp(a) comp(c)". More... | |
virtual std::string | short_header (const DataObject &_template_obj) const |
Returns a short expression for the formatter parsing the short_header should allow the formatter to be recreated (but the short header does not specify a subset of the elements) Ex: "clex(formation_energy)" or "comp". More... | |
Protected Types | |
typedef multivector< std::pair< Index, Index > >::X< 2 > | IndexContainer |
Protected Member Functions | |
void | _parse_index_expression (const std::string &_expr) |
void | _add_rule (Index row, std::pair< Index, Index > const &new_rule) const |
void | _add_rule (const std::vector< Index > &new_rule) const |
const IndexContainer & | _index_rules () const |
void | _prepare (DataObject const &_data_obj) const |
Protected Attributes | |
IndexContainer | m_2D_index_rules |
Private Member Functions | |
Generic2DDatumFormatter * | _clone () const override |
Clone using copy constructor. More... | |
Private Attributes | |
Evaluator | m_evaluate |
Validator | m_validate |
DataObject const * | m_current_ptr |
bool | m_known |
Container | m_cache |
std::string | m_name |
std::string | m_description |
IndexContainer | m_index_rules |
const DictType * | m_home |
|
inherited |
Access methods for Container.
Definition at line 1211 of file DataFormatterTools.hh.
|
inherited |
Definition at line 334 of file DataFormatter.hh.
|
inherited |
Definition at line 337 of file DataFormatter.hh.
|
inherited |
Definition at line 335 of file DataFormatter.hh.
typedef std::function<Container(const DataObject &)> CASM::Generic2DDatumFormatter< Container, DataObject >::Evaluator |
Definition at line 1449 of file DataFormatterTools.hh.
|
protectedinherited |
Definition at line 1364 of file DataFormatterTools.hh.
typedef std::function<bool(const DataObject &)> CASM::Generic2DDatumFormatter< Container, DataObject >::Validator |
Definition at line 1450 of file DataFormatterTools.hh.
|
inherited |
Definition at line 1212 of file DataFormatterTools.hh.
|
inline |
Constructor.
_name | Name of formatter |
_desc | Description of the formatter |
_evaluator | Returns a Container type piece of data about a DataObject |
_validator | Returns boolean indicating if the _evaluator can be used successfully |
Definition at line 1460 of file DataFormatterTools.hh.
|
inlineprotectedinherited |
Definition at line 472 of file DataFormatter.hh.
|
inlineprotectedinherited |
Definition at line 1402 of file DataFormatterTools.hh.
|
inlineoverrideprivatevirtual |
Clone using copy constructor.
Implements CASM::Base2DDatumFormatter< Container, DataObject >.
Definition at line 1491 of file DataFormatterTools.hh.
|
inlineprotectedinherited |
Definition at line 1408 of file DataFormatterTools.hh.
|
inlineprotectedinherited |
Derived DatumFormatters have some optional functionality for parsing index expressions in order to make it easy to handle ranges such as:
in which case, DerivedDatumFormatter::parse_args() is called with the string "5:6,4:8" by dispatching that string to BaseDatumFormatter::_parse_index_expression(), m_2D_index_rules will be populated with {{{5,4},{5,5},{5,6},{5,7},{5,8}}, {{6,4},{6,5},{6,6},{6,7},{6,8}}
Definition at line 1379 of file DataFormatterTools.hh.
|
inlineprotectedinherited |
Definition at line 1410 of file DataFormatterTools.hh.
|
inline |
Clone using copy constructor.
Definition at line 1476 of file DataFormatterTools.hh.
|
inlineoverridevirtualinherited |
Default col_header uses 'name(index)' for each column.
Ex: "corr(i:j,0)" "corr(i:j,1)" "corr(i:j,5)" "corr(i:j,6)"
Reimplemented from CASM::BaseDatumFormatter< DataObject >.
Definition at line 1256 of file DataFormatterTools.hh.
|
inlineinherited |
Returns a short description of the formatter and its allowed arguments (if any). This description is used to automatically generate help screens.
Definition at line 352 of file DataFormatter.hh.
|
inlineoverridevirtual |
Returns Container type piece of data about a DataObject, the result of the Evaluator.
Implements CASM::BaseValueFormatter< Container, DataObject >.
Definition at line 1471 of file DataFormatterTools.hh.
|
inlineinherited |
const Access the dictionary containing this formatter, set during DictType::lookup
Definition at line 360 of file DataFormatter.hh.
|
inlineoverridevirtualinherited |
Default initialization adds rules for each element.
Reimplemented from CASM::BaseDatumFormatter< DataObject >.
Definition at line 1232 of file DataFormatterTools.hh.
|
inlineoverridevirtualinherited |
Default implementation injects each element.
Reimplemented from CASM::BaseValueFormatter< Container, DataObject >.
Definition at line 1290 of file DataFormatterTools.hh.
|
inlinevirtualinherited |
Returns a long expression for each scalar produced by the formatter parsing the long_header should reproduce the exact query described by the formatter Ex: "clex(formation_energy)" or "comp(a) comp(c)".
Definition at line 399 of file DataFormatter.hh.
|
inlineinherited |
Returns a name for the formatter, which becomes the tag used for parsing.
Definition at line 347 of file DataFormatter.hh.
|
inlineoverridevirtualinherited |
If data must be printed on multiple rows, returns number of rows needed to output all data from _data_obj DataFormatter class will subsequently pass over _data_obj multiple times to complete printing (if necessary)
Reimplemented from CASM::BaseDatumFormatter< DataObject >.
Definition at line 1237 of file DataFormatterTools.hh.
|
inlinevirtualinherited |
Return requested data from obj, throwing std::runtime_error if not valid.
Definition at line 803 of file DataFormatterTools.hh.
|
inlineoverridevirtualinherited |
Default implementation calls _parse_index_expression.
Reimplemented from CASM::BaseDatumFormatter< DataObject >.
Reimplemented in CASM::ConfigIO::GradCorr.
Definition at line 1282 of file DataFormatterTools.hh.
|
inlineoverridevirtualinherited |
Default implementation prints each element in a column.
Reimplemented from CASM::BaseValueFormatter< Container, DataObject >.
Definition at line 1326 of file DataFormatterTools.hh.
|
inlineinherited |
Set the dictionary containing this formatter, set during DictType::lookup.
Definition at line 364 of file DataFormatter.hh.
|
inlinevirtualinherited |
Returns a short expression for the formatter parsing the short_header should allow the formatter to be recreated (but the short header does not specify a subset of the elements) Ex: "clex(formation_energy)" or "comp".
Reimplemented in CASM::DatumFormatterAlias< DataObject >, and CASM::DataFormatterOperator< ValueType, ArgType, DataObject >.
Definition at line 417 of file DataFormatter.hh.
|
inlineoverridevirtualinherited |
Default implementation calls jsonParser& to_json(const ValueType&, jsonParser&)
Implements CASM::BaseDatumFormatter< DataObject >.
Definition at line 847 of file DataFormatterTools.hh.
|
inlinevirtualinherited |
Reimplemented in CASM::DatumFormatterAlias< DataObject >, and CASM::DataFormatterOperator< ValueType, ArgType, DataObject >.
Definition at line 354 of file DataFormatter.hh.
|
inlineoverridevirtual |
Returns boolean indicating if the _evaluator can be used successfully, the result of the Validator.
Reimplemented from CASM::BaseDatumFormatter< DataObject >.
Definition at line 1485 of file DataFormatterTools.hh.
|
mutableprotectedinherited |
Definition at line 1366 of file DataFormatterTools.hh.
|
mutableprivateinherited |
Definition at line 1434 of file DataFormatterTools.hh.
|
mutableprivateinherited |
Definition at line 1432 of file DataFormatterTools.hh.
|
privateinherited |
Definition at line 486 of file DataFormatter.hh.
|
private |
Definition at line 1495 of file DataFormatterTools.hh.
|
mutableprivateinherited |
Definition at line 488 of file DataFormatter.hh.
|
mutableprivateinherited |
Definition at line 487 of file DataFormatter.hh.
|
mutableprivateinherited |
Definition at line 1433 of file DataFormatterTools.hh.
|
privateinherited |
{ return notstd::make_unique<DerivedDatumFormatter>(*this);}
Definition at line 485 of file DataFormatter.hh.
|
private |
Definition at line 1496 of file DataFormatterTools.hh.