OpenStudio:utilities
 AllClasses Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages

#include "Attribute.hpp"

Public Types

using ImplType = detail::Attribute_Impl

Public Member Functions

 Attribute (const std::string &name, bool value)
 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 >
cast () const
void clearDisplayName ()
void clearSource ()
Attribute clone () const
boost::optional< std::string > displayName (bool returnName=false) const
boost::optional< AttributefindChildByName (const std::string &name) const
bool hasValue () const
std::string name () const
bool operator== (const Attribute &other) const
template<typename T >
boost::optional< T > optionalCast () const
bool saveToXml (const openstudio::path &path) const
bool setDisplayName (const std::string &displayName)
void setSource (const std::string &source)
bool setUnits (const std::string &units)
void setValue (bool value)
void setValue (int value)
void setValue (unsigned value)
void setValue (double value)
void setValue (const char *value)
void setValue (const std::string &value)
void setValue (const std::vector< Attribute > &value)
std::string source () const
std::string toString () const
boost::optional< std::string > units () const
openstudio::UUID uuid () const
std::vector< AttributevalueAsAttributeVector () const
bool valueAsBoolean () const
double valueAsDouble () const
int valueAsInteger () const
std::string valueAsString () const
unsigned valueAsUnsigned () const
AttributeValueType valueType () const
openstudio::UUID versionUUID () const
virtual ~Attribute ()=default

Static Public Member Functions

static boost::optional< AttributeloadFromXml (const openstudio::path &xmlPath)

Protected Member Functions

 Attribute (const std::shared_ptr< detail::Attribute_Impl > &impl)
pugi::xml_document toXml () const

Friends

std::ostream & operator<< (std::ostream &os, const Attribute &attribute)

Related 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< intgetIntVectorFromAttribute (const Attribute &attribute)
std::ostream & operator<< (std::ostream &os, const Attribute &attribute)
using OptionalAttribute = boost::optional< Attribute >

Detailed Description

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.

Member Typedef Documentation

using openstudio::Attribute::ImplType = detail::Attribute_Impl

Constructor & Destructor Documentation

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() 
)
virtual openstudio::Attribute::~Attribute ( )
virtualdefault
openstudio::Attribute::Attribute ( const pugi::xml_node &  element)
explicit
openstudio::Attribute::Attribute ( const Attribute other)
openstudio::Attribute::Attribute ( const std::shared_ptr< detail::Attribute_Impl > &  impl)
protected

Member Function Documentation

template<typename T >
T openstudio::Attribute::cast ( ) const
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 boost::optional<Attribute> openstudio::Attribute::loadFromXml ( const openstudio::path xmlPath)
static

static constructor from xml

std::string openstudio::Attribute::name ( ) const

get the name

bool openstudio::Attribute::operator== ( const Attribute other) const

comparison

template<typename T >
boost::optional<T> openstudio::Attribute::optionalCast ( ) const
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

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.

pugi::xml_document openstudio::Attribute::toXml ( ) const
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

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

Friends And Related Function Documentation

using AttributeVector = std::vector<Attribute>
related
Attribute createAttributeFromVector ( const std::string &  name,
std::vector< int value 
)
related
Attribute createAttributeFromVector ( const std::string &  name,
std::vector< double >  value 
)
related
std::vector< double > getDoubleVectorFromAttribute ( const Attribute attribute)
related
std::vector< int > getIntVectorFromAttribute ( const Attribute attribute)
related
std::ostream& operator<< ( std::ostream &  os,
const Attribute attribute 
)
friend
std::ostream & operator<< ( std::ostream &  os,
const Attribute attribute 
)
related

Prints Attribute XML to os.

using OptionalAttribute = boost::optional<Attribute>
related