AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::inlet::AggregateField Class Reference

A wrapper class that enables constraints on groups of Fields. More...

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/develop/src/axom/inlet/Field.hpp>

Inheritance diagram for axom::inlet::AggregateField:

Public Types

using Verifier = std::function< bool(const axom::inlet::Field &, std::vector< VerificationError > *errors)>
 

Public Member Functions

 AggregateField (std::vector< std::reference_wrapper< VerifiableScalar >> &&fields)
 
virtual ~AggregateField ()=default
 
bool verify (std::vector< VerificationError > *errors=nullptr) const override
 Verifies the object to make sure it satisfies the imposed requirements. More...
 
AggregateFieldrequired (bool isRequired) override
 Set the required status of this object. More...
 
bool isRequired () const override
 Return the required status. More...
 
AggregateFielddefaultValue (const std::string &value) override
 Set the default value of this object. More...
 
AggregateFielddefaultValue (const char *value) override
 Set the default value of this object. More...
 
AggregateFielddefaultValue (bool value) override
 Set the default value of this object. More...
 
AggregateFielddefaultValue (int value) override
 Set the default value of this object. More...
 
AggregateFielddefaultValue (double value) override
 Set the default value of this object. More...
 
AggregateFieldrange (double startVal, double endVal) override
 Set the range of this object. More...
 
AggregateFieldrange (int startVal, int endVal) override
 Set the range of this object. More...
 
AggregateFieldvalidValues (const std::vector< int > &set) override
 Set the valid values for this object. More...
 
AggregateFieldvalidValues (const std::vector< double > &set) override
 Set the valid values for this object. More...
 
AggregateFieldvalidValues (const std::vector< std::string > &set) override
 Set the valid values for this object. More...
 
AggregateFieldvalidValues (const std::initializer_list< const char * > &set) override
 Set the valid values for this object. More...
 
AggregateFieldvalidValues (const std::initializer_list< int > &set) override
 Set the valid values for this object. More...
 
AggregateFieldvalidValues (const std::initializer_list< double > &set) override
 Set the valid values. More...
 
AggregateFieldregisterVerifier (Verifier lambda) override
 Registers the function object that will verify this object's contents during the verification stage. More...
 
VerifiableScalarregisterVerifier (std::function< bool(const axom::inlet::Field &)> lambda)
 Registers the function object that will verify this object's contents during the verification stage. More...
 
virtual VerifiableScalarregisterVerifier (Verifier verifier)=0
 Registers the function object that will verify this object's contents during the verification stage. More...
 
VerifiableScalarregisterVerifier (std::function< bool(const axom::inlet::Field &)> lambda)
 Registers the function object that will verify this object's contents during the verification stage. More...
 

Detailed Description

A wrapper class that enables constraints on groups of Fields.

Member Typedef Documentation

◆ Verifier

using axom::inlet::VerifiableScalar::Verifier = std::function<bool(const axom::inlet::Field&, std::vector<VerificationError>* errors)>
inherited

A function which can verify the contents of the item being verified. It should report any errors via the INLET_VERIFICATION_WARNING macro, passing in the given array of errors.

Constructor & Destructor Documentation

◆ AggregateField()

axom::inlet::AggregateField::AggregateField ( std::vector< std::reference_wrapper< VerifiableScalar >> &&  fields)
inline

◆ ~AggregateField()

virtual axom::inlet::AggregateField::~AggregateField ( )
virtualdefault

Member Function Documentation

◆ verify()

bool axom::inlet::AggregateField::verify ( std::vector< VerificationError > *  errors = nullptr) const
overridevirtual

Verifies the object to make sure it satisfies the imposed requirements.

Parameters
[in]errorsAn optional vector of errors to append to in the case of verification failure

Ownership is not taken of errors, the raw pointer is only used for its optional reference semantics, as opposed to something like std::optional<std::reference_wrapper<T>>

Implements axom::inlet::VerifiableScalar.

◆ required()

AggregateField& axom::inlet::AggregateField::required ( bool  isRequired)
overridevirtual

Set the required status of this object.

Set whether this object is required, or not, to be in the input file. The default behavior is to not be required.

Parameters
[in]isRequiredBoolean value of whether object is required
Returns
Reference to calling object, for chaining

Implements axom::inlet::VerifiableScalar.

◆ isRequired()

bool axom::inlet::AggregateField::isRequired ( ) const
overridevirtual

Return the required status.

Return that this object is required, or not, to be in the input file. The default behavior is to not be required.

Returns
Boolean value of whether this object is required

Implements axom::inlet::VerifiableScalar.

◆ defaultValue() [1/5]

AggregateField& axom::inlet::AggregateField::defaultValue ( const std::string &  value)
overridevirtual

Set the default value of this object.

Set the default value for the object in the input file.

Parameters
[in]valueThe default string value
Returns
Reference to calling object for chaining

Implements axom::inlet::VerifiableScalar.

◆ defaultValue() [2/5]

AggregateField& axom::inlet::AggregateField::defaultValue ( const char *  value)
overridevirtual

Set the default value of this object.

Set the default value for the object in the input file.

Parameters
[in]valueThe default string value
Returns
Reference to calling object for chaining

Implements axom::inlet::VerifiableScalar.

◆ defaultValue() [3/5]

AggregateField& axom::inlet::AggregateField::defaultValue ( bool  value)
overridevirtual

Set the default value of this object.

Set the default value for the object in the input file.

Parameters
[in]valueThe default boolean value
Returns
Reference to calling object for chaining

Implements axom::inlet::VerifiableScalar.

◆ defaultValue() [4/5]

AggregateField& axom::inlet::AggregateField::defaultValue ( int  value)
overridevirtual

Set the default value of this object.

Set the default value for the object in the input file.

Parameters
[in]valueThe default integer value
Returns
Reference to calling object for chaining

Implements axom::inlet::VerifiableScalar.

◆ defaultValue() [5/5]

AggregateField& axom::inlet::AggregateField::defaultValue ( double  value)
overridevirtual

Set the default value of this object.

Set the default value for the object in the input file.

Parameters
[in]valueThe default double value
Returns
Reference to calling object for chaining

Implements axom::inlet::VerifiableScalar.

◆ range() [1/2]

AggregateField& axom::inlet::AggregateField::range ( double  startVal,
double  endVal 
)
overridevirtual

Set the range of this object.

Set the continuous range for the object in the input file.

Parameters
[in]startValThe start of the range
[in]endValThe end of the range
Returns
Reference to calling object for chaining

Implements axom::inlet::VerifiableScalar.

◆ range() [2/2]

AggregateField& axom::inlet::AggregateField::range ( int  startVal,
int  endVal 
)
overridevirtual

Set the range of this object.

Set the continuous range for the object in the input file.

Parameters
[in]startValThe start of the range
[in]endValThe end of the range
Returns
Reference to calling object for chaining

Implements axom::inlet::VerifiableScalar.

◆ validValues() [1/6]

AggregateField& axom::inlet::AggregateField::validValues ( const std::vector< int > &  set)
overridevirtual

Set the valid values for this object.

Parameters
[in]setAn vector containing the set of allowed integer values
Returns
Reference to calling object for chaining

Implements axom::inlet::VerifiableScalar.

◆ validValues() [2/6]

AggregateField& axom::inlet::AggregateField::validValues ( const std::vector< double > &  set)
overridevirtual

Set the valid values for this object.

Parameters
[in]setAn vector containing the set of allowed double values
Returns
Reference to calling object for chaining

Implements axom::inlet::VerifiableScalar.

◆ validValues() [3/6]

AggregateField& axom::inlet::AggregateField::validValues ( const std::vector< std::string > &  set)
overridevirtual

Set the valid values for this object.

Parameters
[in]setA vector containing the set of allowed string values
Returns
Reference to calling object for chaining

Implements axom::inlet::VerifiableScalar.

◆ validValues() [4/6]

AggregateField& axom::inlet::AggregateField::validValues ( const std::initializer_list< const char * > &  set)
overridevirtual

Set the valid values for this object.

Parameters
[in]setAn initializer list containing the set of allowed C-string values
Returns
Reference to calling object for chaining

Implements axom::inlet::VerifiableScalar.

◆ validValues() [5/6]

AggregateField& axom::inlet::AggregateField::validValues ( const std::initializer_list< int > &  set)
overridevirtual

Set the valid values for this object.

Parameters
[in]setAn initializer list containing the valid integer values
Returns
Reference to calling object for chaining

Implements axom::inlet::VerifiableScalar.

◆ validValues() [6/6]

AggregateField& axom::inlet::AggregateField::validValues ( const std::initializer_list< double > &  set)
overridevirtual

Set the valid values.

Parameters
[in]setAn initializer list containing the valid double values
Returns
Reference to calling object for chaining

Implements axom::inlet::VerifiableScalar.

◆ registerVerifier() [1/4]

AggregateField& axom::inlet::AggregateField::registerVerifier ( Verifier  verifier)
overridevirtual

Registers the function object that will verify this object's contents during the verification stage.

Parameters
[in]verifierThe function object.

Implements axom::inlet::VerifiableScalar.

◆ registerVerifier() [2/4]

VerifiableScalar& axom::inlet::VerifiableScalar::registerVerifier

Registers the function object that will verify this object's contents during the verification stage.

Parameters
[in]lambdaThe function object.

◆ registerVerifier() [3/4]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::registerVerifier

Registers the function object that will verify this object's contents during the verification stage.

Parameters
[in]verifierThe function object.

◆ registerVerifier() [4/4]

VerifiableScalar& axom::inlet::VerifiableScalar::registerVerifier ( std::function< bool(const axom::inlet::Field &)>  lambda)
inherited

Registers the function object that will verify this object's contents during the verification stage.

Parameters
[in]lambdaThe function object.

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