#include <Attribute.hpp>
Public Types | |
using | ImplType = detail::Attribute_Impl |
Public Member Functions | |
Attribute (const std::string &name, bool value) | |
constructors More... | |
Attribute (const std::string &name, bool value, const std::string &units) | |
Attribute (const std::string &name, bool value, const boost::optional< std::string > &units) | |
Attribute (const openstudio::UUID &uuid, const openstudio::UUID &versionUUID, const std::string &name, const boost::optional< std::string > &displayName, bool value, const boost::optional< std::string > &units, const std::string &source=std::string()) | |
Attribute (const std::string &name, double value) | |
Attribute (const std::string &name, double value, const std::string &units) | |
Attribute (const std::string &name, double value, const boost::optional< std::string > &units) | |
Attribute (const openstudio::UUID &uuid, const openstudio::UUID &versionUUID, const std::string &name, const boost::optional< std::string > &displayName, double value, const boost::optional< std::string > &units, const std::string &source=std::string()) | |
Attribute (const std::string &name, int value) | |
Attribute (const std::string &name, int value, const std::string &units) | |
Attribute (const std::string &name, int value, const boost::optional< std::string > &units) | |
Attribute (const openstudio::UUID &uuid, const openstudio::UUID &versionUUID, const std::string &name, const boost::optional< std::string > &displayName, int value, const boost::optional< std::string > &units, const std::string &source=std::string()) | |
Attribute (const std::string &name, unsigned value) | |
Attribute (const std::string &name, unsigned value, const std::string &units) | |
Attribute (const std::string &name, unsigned value, const boost::optional< std::string > &units) | |
Attribute (const openstudio::UUID &uuid, const openstudio::UUID &versionUUID, const std::string &name, const boost::optional< std::string > &displayName, unsigned value, const boost::optional< std::string > &units, const std::string &source=std::string()) | |
Attribute (const std::string &name, const char *value) | |
Attribute (const std::string &name, const char *value, const std::string &units) | |
Attribute (const std::string &name, const char *value, const boost::optional< std::string > &units) | |
Attribute (const openstudio::UUID &uuid, const openstudio::UUID &versionUUID, const std::string &name, const boost::optional< std::string > &displayName, const char *value, const boost::optional< std::string > &units, const std::string &source=std::string()) | |
Attribute (const std::string &name, const std::string &value) | |
Attribute (const std::string &name, const std::string &value, const std::string &units) | |
Attribute (const std::string &name, const std::string &value, const boost::optional< std::string > &units) | |
Attribute (const openstudio::UUID &uuid, const openstudio::UUID &versionUUID, const std::string &name, const boost::optional< std::string > &displayName, const std::string &value, const boost::optional< std::string > &units, const std::string &source=std::string()) | |
Attribute (const std::string &name, const std::vector< openstudio::Attribute > &value) | |
Attribute (const std::string &name, const std::vector< openstudio::Attribute > &value, const std::string &units) | |
Attribute (const std::string &name, const std::vector< openstudio::Attribute > &value, const boost::optional< std::string > &units) | |
Attribute (const openstudio::UUID &uuid, const openstudio::UUID &versionUUID, const std::string &name, const boost::optional< std::string > &displayName, const std::vector< openstudio::Attribute > &value, const boost::optional< std::string > &units, const std::string &source=std::string()) | |
Attribute (const pugi::xml_node &element) | |
Attribute (const Attribute &other) | |
template<typename T > | |
T | cast () const |
cast to type T, can throw std::bad_cast More... | |
void | clearDisplayName () |
clear the display name More... | |
void | clearSource () |
clear the data source More... | |
Attribute | clone () const |
boost::optional< std::string > | displayName (bool returnName=false) const |
get the display name. More... | |
boost::optional< Attribute > | findChildByName (const std::string &name) const |
find child attribute by name More... | |
bool | hasValue () const |
Returns true if this Attribute value has been set. More... | |
std::string | name () const |
get the name More... | |
bool | operator== (const Attribute &other) const |
comparison More... | |
template<typename T > | |
boost::optional< T > | optionalCast () const |
cast to optional of type T More... | |
bool | saveToXml (const openstudio::path &path) const |
write object and all children out as xml to path. More... | |
bool | setDisplayName (const std::string &displayName) |
set the display name More... | |
void | setSource (const std::string &source) |
set the data source More... | |
bool | setUnits (const std::string &units) |
set the units More... | |
void | setValue (bool value) |
set value. throws if wrong type. More... | |
void | setValue (int value) |
set value. throws if wrong type. More... | |
void | setValue (unsigned value) |
set value. throws if wrong type. More... | |
void | setValue (double value) |
set value. throws if wrong type. More... | |
void | setValue (const char *value) |
set value. throws if wrong type. More... | |
void | setValue (const std::string &value) |
set value. throws if wrong type. More... | |
void | setValue (const std::vector< Attribute > &value) |
set value. throws if wrong type. More... | |
std::string | source () const |
get the (optional) data source More... | |
Json::Value | toJSON (bool short_version=true) const |
std::string | toJSONString () const |
std::string | toString () const |
If attribute is a simple type (non-vector), prints attribute's value to std::string as simply as possible. More... | |
boost::optional< std::string > | units () const |
get the units More... | |
openstudio::UUID | uuid () const |
std::vector< Attribute > | valueAsAttributeVector () const |
get value as attribute vector More... | |
bool | valueAsBoolean () const |
get value as a bool More... | |
double | valueAsDouble () const |
get value as double More... | |
int | valueAsInteger () const |
get value as int More... | |
Json::Value | valueAsJSON () const |
std::string | valueAsString () const |
get value as string More... | |
unsigned | valueAsUnsigned () const |
get value as unsigned More... | |
AttributeValueType | valueType () const |
get the attribute value type More... | |
openstudio::UUID | versionUUID () const |
virtual | ~Attribute ()=default |
Static Public Member Functions | |
static boost::optional< Attribute > | loadFromXml (const openstudio::path &xmlPath) |
static constructor from xml More... | |
Protected Member Functions | |
Attribute (const std::shared_ptr< detail::Attribute_Impl > &impl) | |
pugi::xml_document | toXml () const |
write object and all children to xml More... | |
Friends | |
std::ostream & | operator<< (std::ostream &os, const Attribute &attribute) |
Related Functions | |
(Note that these are not member functions.) | |
using | AttributeVector = std::vector< Attribute > |
Attribute | createAttributeFromVector (const std::string &name, std::vector< int > value) |
Attribute | createAttributeFromVector (const std::string &name, std::vector< double > value) |
std::vector< double > | getDoubleVectorFromAttribute (const Attribute &attribute) |
std::vector< int > | getIntVectorFromAttribute (const Attribute &attribute) |
std::ostream & | operator<< (std::ostream &os, const Attribute &attribute) |
Prints Attribute XML to os. More... | |
using | OptionalAttribute = boost::optional< Attribute > |
An attribute is a name value pair where the value can be a bool, double, int, string, or vector of other attributes.
The ability for an attribute value to be a vector of other attributes allows for flexible, hierarchical structures. Our convention is that attributes which correspond to plain old data (int, string, etc) are named in lower camel case, this corresponds to a member or variable name. Attributes of vector type are named in upper camel case to correspond to a class or struct name.
using openstudio::Attribute::ImplType = detail::Attribute_Impl |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
bool | value | ||
) |
constructors
openstudio::Attribute::Attribute | ( | const std::string & | name, |
bool | value, | ||
const std::string & | units | ||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
bool | value, | ||
const boost::optional< std::string > & | units | ||
) |
openstudio::Attribute::Attribute | ( | const openstudio::UUID & | uuid, |
const openstudio::UUID & | versionUUID, | ||
const std::string & | name, | ||
const boost::optional< std::string > & | displayName, | ||
bool | value, | ||
const boost::optional< std::string > & | units, | ||
const std::string & | source = std::string() |
||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
double | value | ||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
double | value, | ||
const std::string & | units | ||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
double | value, | ||
const boost::optional< std::string > & | units | ||
) |
openstudio::Attribute::Attribute | ( | const openstudio::UUID & | uuid, |
const openstudio::UUID & | versionUUID, | ||
const std::string & | name, | ||
const boost::optional< std::string > & | displayName, | ||
double | value, | ||
const boost::optional< std::string > & | units, | ||
const std::string & | source = std::string() |
||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
int | value | ||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
int | value, | ||
const std::string & | units | ||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
int | value, | ||
const boost::optional< std::string > & | units | ||
) |
openstudio::Attribute::Attribute | ( | const openstudio::UUID & | uuid, |
const openstudio::UUID & | versionUUID, | ||
const std::string & | name, | ||
const boost::optional< std::string > & | displayName, | ||
int | value, | ||
const boost::optional< std::string > & | units, | ||
const std::string & | source = std::string() |
||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
unsigned | value | ||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
unsigned | value, | ||
const std::string & | units | ||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
unsigned | value, | ||
const boost::optional< std::string > & | units | ||
) |
openstudio::Attribute::Attribute | ( | const openstudio::UUID & | uuid, |
const openstudio::UUID & | versionUUID, | ||
const std::string & | name, | ||
const boost::optional< std::string > & | displayName, | ||
unsigned | value, | ||
const boost::optional< std::string > & | units, | ||
const std::string & | source = std::string() |
||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
const char * | value | ||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
const char * | value, | ||
const std::string & | units | ||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
const char * | value, | ||
const boost::optional< std::string > & | units | ||
) |
openstudio::Attribute::Attribute | ( | const openstudio::UUID & | uuid, |
const openstudio::UUID & | versionUUID, | ||
const std::string & | name, | ||
const boost::optional< std::string > & | displayName, | ||
const char * | value, | ||
const boost::optional< std::string > & | units, | ||
const std::string & | source = std::string() |
||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
const std::string & | value | ||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
const std::string & | value, | ||
const std::string & | units | ||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
const std::string & | value, | ||
const boost::optional< std::string > & | units | ||
) |
openstudio::Attribute::Attribute | ( | const openstudio::UUID & | uuid, |
const openstudio::UUID & | versionUUID, | ||
const std::string & | name, | ||
const boost::optional< std::string > & | displayName, | ||
const std::string & | value, | ||
const boost::optional< std::string > & | units, | ||
const std::string & | source = std::string() |
||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
const std::vector< openstudio::Attribute > & | value | ||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
const std::vector< openstudio::Attribute > & | value, | ||
const std::string & | units | ||
) |
openstudio::Attribute::Attribute | ( | const std::string & | name, |
const std::vector< openstudio::Attribute > & | value, | ||
const boost::optional< std::string > & | units | ||
) |
openstudio::Attribute::Attribute | ( | const openstudio::UUID & | uuid, |
const openstudio::UUID & | versionUUID, | ||
const std::string & | name, | ||
const boost::optional< std::string > & | displayName, | ||
const std::vector< openstudio::Attribute > & | value, | ||
const boost::optional< std::string > & | units, | ||
const std::string & | source = std::string() |
||
) |
|
virtualdefault |
|
explicit |
openstudio::Attribute::Attribute | ( | const Attribute & | other | ) |
|
protected |
|
inline |
cast to type T, can throw std::bad_cast
void openstudio::Attribute::clearDisplayName | ( | ) |
clear the display name
void openstudio::Attribute::clearSource | ( | ) |
clear the data source
Attribute openstudio::Attribute::clone | ( | ) | const |
boost::optional<std::string> openstudio::Attribute::displayName | ( | bool | returnName = false | ) | const |
get the display name.
if returnName and the display name is empty, will return name() instead.
boost::optional<Attribute> openstudio::Attribute::findChildByName | ( | const std::string & | name | ) | const |
find child attribute by name
bool openstudio::Attribute::hasValue | ( | ) | const |
Returns true if this Attribute value has been set.
|
static |
static constructor from xml
std::string openstudio::Attribute::name | ( | ) | const |
get the name
bool openstudio::Attribute::operator== | ( | const Attribute & | other | ) | const |
comparison
|
inline |
cast to optional of type T
bool openstudio::Attribute::saveToXml | ( | const openstudio::path & | path | ) | const |
write object and all children out as xml to path.
bool openstudio::Attribute::setDisplayName | ( | const std::string & | displayName | ) |
set the display name
void openstudio::Attribute::setSource | ( | const std::string & | source | ) |
set the data source
bool openstudio::Attribute::setUnits | ( | const std::string & | units | ) |
set the units
void openstudio::Attribute::setValue | ( | bool | value | ) |
set value. throws if wrong type.
void openstudio::Attribute::setValue | ( | int | value | ) |
set value. throws if wrong type.
void openstudio::Attribute::setValue | ( | unsigned | value | ) |
set value. throws if wrong type.
void openstudio::Attribute::setValue | ( | double | value | ) |
set value. throws if wrong type.
void openstudio::Attribute::setValue | ( | const char * | value | ) |
set value. throws if wrong type.
void openstudio::Attribute::setValue | ( | const std::string & | value | ) |
set value. throws if wrong type.
void openstudio::Attribute::setValue | ( | const std::vector< Attribute > & | value | ) |
set value. throws if wrong type.
std::string openstudio::Attribute::source | ( | ) | const |
get the (optional) data source
Json::Value openstudio::Attribute::toJSON | ( | bool | short_version = true | ) | const |
std::string openstudio::Attribute::toJSONString | ( | ) | const |
std::string openstudio::Attribute::toString | ( | ) | const |
If attribute is a simple type (non-vector), prints attribute's value to std::string as simply as possible.
Numeric types print in high precision. Attribute vectors are printed as XML.
|
protected |
write object and all children to xml
boost::optional<std::string> openstudio::Attribute::units | ( | ) | const |
get the units
openstudio::UUID openstudio::Attribute::uuid | ( | ) | const |
std::vector<Attribute> openstudio::Attribute::valueAsAttributeVector | ( | ) | const |
get value as attribute vector
bool openstudio::Attribute::valueAsBoolean | ( | ) | const |
get value as a bool
double openstudio::Attribute::valueAsDouble | ( | ) | const |
get value as double
int openstudio::Attribute::valueAsInteger | ( | ) | const |
get value as int
Json::Value openstudio::Attribute::valueAsJSON | ( | ) | const |
std::string openstudio::Attribute::valueAsString | ( | ) | const |
get value as string
unsigned openstudio::Attribute::valueAsUnsigned | ( | ) | const |
get value as unsigned
AttributeValueType openstudio::Attribute::valueType | ( | ) | const |
get the attribute value type
openstudio::UUID openstudio::Attribute::versionUUID | ( | ) | const |
|
related |
|
related |
|
related |
|
friend |
|
related |
Prints Attribute XML to os.
|
related |