Public Types | Public Member Functions | List of all members
openfluid::core::MapValue Class Reference

#include <core/MapValue.hpp>

Inheritance diagram for openfluid::core::MapValue:
Inheritance graph
[legend]
Collaboration diagram for openfluid::core::MapValue:
Collaboration graph
[legend]

Public Types

typedef std::map< std::string, std::shared_ptr< Value > > Map_t
 
typedef Map_t::iterator iterator
 
typedef Map_t::const_iterator const_iterator
 
- Public Types inherited from openfluid::core::Value
enum  Type {
  NONE, BOOLEAN, INTEGER, DOUBLE,
  STRING, VECTOR, MATRIX, MAP,
  TREE, NULLL
}
 

Public Member Functions

 MapValue ()
 
 MapValue (const MapValue &Val)
 
 MapValue (const Map_t &Val)
 
 ~MapValue ()
 
Valueoperator= (const Value &Other)
 
Type getType () const
 
Valueclone () const
 
void writeToStream (std::ostream &OutStm) const
 
void writeQuotedToStream (std::ostream &OutStm) const
 
void set (const std::string &Key, Value *Element)
 
void setDouble (const std::string &Key, const double &Val)
 
void setInteger (const std::string &Key, const long &Val)
 
void setBoolean (const std::string &Key, const bool &Val)
 
void setString (const std::string &Key, const std::string &Val)
 
void setVectorValue (const std::string &Key, const VectorValue &Val)
 
void setMatrixValue (const std::string &Key, const MatrixValue &Val)
 
void setMapValue (const std::string &Key, const MapValue &Val)
 
Valueoperator[] (const std::string &Key)
 
Valueat (const std::string &Key)
 
const Valueat (const std::string &Key) const
 
double getDouble (const std::string &Key) const
 
long getInteger (const std::string &Key) const
 
bool getBoolean (const std::string &Key) const
 
std::string getString (const std::string &Key) const
 
VectorValue getVectorValue (const std::string &Key) const
 
MatrixValue getMatrixValue (const std::string &Key) const
 
MapValue getMapValue (const std::string &Key) const
 
bool remove (const std::string &Key)
 
unsigned long getSize () const
 
unsigned long size () const
 
bool isKeyExist (const std::string &Key) const
 
std::vector< std::string > getKeys () const
 
void clear ()
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
- Public Member Functions inherited from openfluid::core::CompoundValue
 CompoundValue ()
 
bool isSimple () const
 
bool isCompound () const
 
- Public Member Functions inherited from openfluid::core::Value
 Value ()
 
virtual ~Value ()
 
virtual bool convert (Value &) const
 
bool isDoubleValue () const
 
const DoubleValueasDoubleValue () const
 
DoubleValueasDoubleValue ()
 
bool isIntegerValue () const
 
const IntegerValueasIntegerValue () const
 
IntegerValueasIntegerValue ()
 
bool isBooleanValue () const
 
const BooleanValueasBooleanValue () const
 
BooleanValueasBooleanValue ()
 
bool isStringValue () const
 
const StringValueasStringValue () const
 
StringValueasStringValue ()
 
bool isNullValue () const
 
const NullValueasNullValue () const
 
NullValueasNullValue ()
 
bool isVectorValue () const
 
const VectorValueasVectorValue () const
 
VectorValueasVectorValue ()
 
bool isMatrixValue () const
 
const MatrixValueasMatrixValue () const
 
MatrixValueasMatrixValue ()
 
bool isMapValue () const
 
const MapValueasMapValue () const
 
MapValueasMapValue ()
 
bool isTreeValue () const
 
const TreeValueasTreeValue () const
 
TreeValueasTreeValue ()
 
std::string toString () const
 

Additional Inherited Members

- Static Public Member Functions inherited from openfluid::core::Value
static bool getValueTypeFromString (const std::string &ValueTypeString, Value::Type &ValueType)
 
static std::string getStringFromValueType (const Value::Type ValueType)
 

Detailed Description

MapValue is a container for a key => value map, where keys are strings and values can be any type derived from openfluid::core::Value.

See also
Value


Example : declaration

// declaration of a MapValue, empty by default

Example : setting the contained values

// using the generic set method (notice the new operator)
Val1.set("myvalue1",new openfluid::core::DoubleValue(18.05));
// using a specific set method
Val1.setDoubleValue("myvalue2",openfluid::core::DoubleValue(0.005));
// using a specific set method
Val1.setMatrixValue("myvalue3",openfluid::core::MatrixValue(3,3,1.99));

Example : getting the contained values

double DblTmp1;
// using the generic get method
Tmp1 = Val1.get("myvalue1").asDoubleValue();
// using specific get methods
Tmp1 = Val1.getDoubleValue("myvalue1");
DblTmp1 = Val1.getDouble("myvalue1");
// or using the [] operator
Tmp1 = Val1["myvalue1"].asDoubleValue();

Example : testing the contained elements

// testing if a key exist
Val1.isKeyExist("myvalue1"); // true in this case;
// testing if a key exist and the contained value type
Val1.isKeyExist("myvalue2") && Val1["myvalue2"].getType() == openfluid::core::Value::BOOLEAN; // false in this case

Example : conversion from string

// to MapValue, using a string values separator
StringVal.set("{\"myvalue1\":toto,\"myvalue2\"=12.56,\"myvalue3\"=17,\"myvalue3\"=false");
StringVal.toMapValue(Val2);
// all values are stored as strings, that can be converted to other types
Val2.get("myvalue3").asStringValue().toIntegerValue(TmpInt);

Example : conversion to string

std::string StdStrVal = Val1.toString();

Member Typedef Documentation

typedef Map_t::const_iterator openfluid::core::MapValue::const_iterator
typedef Map_t::iterator openfluid::core::MapValue::iterator
typedef std::map<std::string,std::shared_ptr<Value> > openfluid::core::MapValue::Map_t

Constructor & Destructor Documentation

openfluid::core::MapValue::MapValue ( )
inline

Default constructor

openfluid::core::MapValue::MapValue ( const MapValue Val)

Copy constructor

openfluid::core::MapValue::MapValue ( const Map_t Val)
inline
openfluid::core::MapValue::~MapValue ( )

Member Function Documentation

Value& openfluid::core::MapValue::at ( const std::string &  Key)

Returns a reference to the value of the map at the given key

Parameters
[in]Keythe key of the requested value
Returns
the value at the given key
const Value& openfluid::core::MapValue::at ( const std::string &  Key) const

Returns a const reference to the value of the map at the given key

Parameters
[in]Keythe key of the requested value
Returns
the value at the given key
iterator openfluid::core::MapValue::begin ( )
inline

Returns an iterator referring to the first element in the map

Returns
an iterator to the first element in the map
const_iterator openfluid::core::MapValue::begin ( ) const
inline

Returns a constant iterator referring to the first element in the map

Returns
a constant iterator to the first element in the map
void openfluid::core::MapValue::clear ( )

Clears the map by removing all values

Value* openfluid::core::MapValue::clone ( ) const
inlinevirtual

Reimplemented from openfluid::core::Value.

iterator openfluid::core::MapValue::end ( )
inline

Returns an iterator referring to the past-the-end element in the map

Returns
an iterator to the past-the-end element in the map
const_iterator openfluid::core::MapValue::end ( ) const
inline

Returns a constant iterator referring to the past-the-end element in the map

Returns
a constant iterator to the past-the-end element in the map
bool openfluid::core::MapValue::getBoolean ( const std::string &  Key) const
inline

Returns the boolean value of the map at the given key

Parameters
[in]Keythe key of the requested value
Returns
the value at the given key
double openfluid::core::MapValue::getDouble ( const std::string &  Key) const
inline

Returns the double value of the map at the given key

Parameters
[in]Keythe key of the requested value
Returns
the value at the given key
long openfluid::core::MapValue::getInteger ( const std::string &  Key) const
inline

Returns the long value of the map at the given key

Parameters
[in]Keythe key of the requested value
Returns
the value at the given key
std::vector<std::string> openfluid::core::MapValue::getKeys ( ) const

Returns the list of keys of the map

Returns
a std::vector of std::string containing the keys of the map
MapValue openfluid::core::MapValue::getMapValue ( const std::string &  Key) const
inline

Returns the MapValue value of the map at the given key

Parameters
[in]Keythe key of the requested value
Returns
the value at the given key
MatrixValue openfluid::core::MapValue::getMatrixValue ( const std::string &  Key) const
inline

Returns the MatrixValue value of the map at the given key

Parameters
[in]Keythe key of the requested value
Returns
the value at the given key
unsigned long openfluid::core::MapValue::getSize ( ) const
inline

Returns the size of the map

Returns
size of the map
std::string openfluid::core::MapValue::getString ( const std::string &  Key) const
inline

Returns the string value of the map at the given key

Parameters
[in]Keythe key of the requested value
Returns
the value at the given key
Type openfluid::core::MapValue::getType ( ) const
inlinevirtual
VectorValue openfluid::core::MapValue::getVectorValue ( const std::string &  Key) const
inline

Returns the VectorValue value of the map at the given key

Parameters
[in]Keythe key of the requested value
Returns
the value at the given key
bool openfluid::core::MapValue::isKeyExist ( const std::string &  Key) const
inline

Checks if the given key exists

Parameters
[in]Keythe key to check
Returns
true if the given key is present
Value& openfluid::core::MapValue::operator= ( const Value )
virtual

Assignment operator

Reimplemented from openfluid::core::Value.

Value& openfluid::core::MapValue::operator[] ( const std::string &  Key)

Operator to get/set a value at a key given between []

Returns
the value at the given key
bool openfluid::core::MapValue::remove ( const std::string &  Key)

Removes the value corresponding to the given key

Parameters
[in]Keythe key to remove
void openfluid::core::MapValue::set ( const std::string &  Key,
Value Element 
)

Sets a new value at the given key

Parameters
[in]Keythe key to add
[in]Elementthe element to add, must be derived from openfluid::core::Value
void openfluid::core::MapValue::setBoolean ( const std::string &  Key,
const bool &  Val 
)
inline

Sets a new boolean value at the given key

Parameters
[in]Keythe key to add
[in]Valthe value to add
void openfluid::core::MapValue::setDouble ( const std::string &  Key,
const double &  Val 
)
inline

Sets a new double value at the given key

Parameters
[in]Keythe key to add
[in]Valthe value to add
void openfluid::core::MapValue::setInteger ( const std::string &  Key,
const long &  Val 
)
inline

Sets a new long value at the given key

Parameters
[in]Keythe key to add
[in]Valthe value to add
void openfluid::core::MapValue::setMapValue ( const std::string &  Key,
const MapValue Val 
)
inline

Sets a new MapValue value at the given key

Parameters
[in]Keythe key to add
[in]Valthe value to add
void openfluid::core::MapValue::setMatrixValue ( const std::string &  Key,
const MatrixValue Val 
)
inline

Sets a new MatrixValue value at the given key

Parameters
[in]Keythe key to add
[in]Valthe value to add
void openfluid::core::MapValue::setString ( const std::string &  Key,
const std::string &  Val 
)
inline

Sets a new string value at the given key

Parameters
[in]Keythe key to add
[in]Valthe value to add
void openfluid::core::MapValue::setVectorValue ( const std::string &  Key,
const VectorValue Val 
)
inline

Sets a new VectorValue value at the given key

Parameters
[in]Keythe key to add
[in]Valthe value to add
unsigned long openfluid::core::MapValue::size ( ) const
inline

Returns the size of the map

Returns
size of the map
void openfluid::core::MapValue::writeQuotedToStream ( std::ostream &  OutStm) const
inlinevirtual
void openfluid::core::MapValue::writeToStream ( std::ostream &  OutStm) const
virtual

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