OpenStudio:utilities
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | Related Functions | List of all members
openstudio::Attribute Class Reference

#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 >
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< AttributefindChildByName (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< AttributevalueAsAttributeVector () 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< AttributeloadFromXml (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, const std::vector< int > &value)
 
Attribute createAttributeFromVector (const std::string &name, const 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)
 Prints Attribute XML to os. More...
 
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

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.

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

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

Friends And Related Function Documentation

using AttributeVector = std::vector<Attribute>
related
Attribute createAttributeFromVector ( const std::string &  name,
const std::vector< int > &  value 
)
related
Attribute createAttributeFromVector ( const std::string &  name,
const 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