lsst.daf.base  22.0.0+771eb1e3e8
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | List of all members
lsst::daf::base::PropertyList Class Reference

Class for storing ordered metadata with comments. More...

#include <PropertyList.h>

Inheritance diagram for lsst::daf::base::PropertyList:
lsst::daf::base::PropertySet

Public Types

typedef std::shared_ptr< PropertyListPtr
 
typedef std::shared_ptr< PropertyList const > ConstPtr
 

Public Member Functions

 PropertyList ()
 Construct an empty PropertyList. More...
 
virtual ~PropertyList () noexcept
 Destructor. More...
 
virtual PropertySet::Ptr deepCopy () const
 Make a deep copy of the PropertyList and all of its contents. More...
 
template<typename T >
get (std::string const &name) const
 Get the last value for a property name (possibly hierarchical). More...
 
template<typename T >
get (std::string const &name, T const &defaultValue) const
 Get the last value for a property name (possibly hierarchical); return the provided defaultValue if the property does not exist. More...
 
template<typename T >
std::vector< T > getArray (std::string const &name) const
 Get the vector of values for a property name (possibly hierarchical). More...
 
std::string const & getComment (std::string const &name) const
 Get the comment for a string property name (possibly hierarchical). More...
 
std::vector< std::stringgetOrderedNames () const
 Get the list of property names, in the order they were added. More...
 
std::list< std::string >::const_iterator begin () const
 Begin iterator over the list of property names, in the order they were added. More...
 
std::list< std::string >::const_iterator end () const
 End iterator over the list of property names, in the order they were added. More...
 
virtual std::string toString (bool topLevelOnly=false, std::string const &indent="") const
 Generate a string representation of the PropertySet. More...
 
template<typename T >
void set (std::string const &name, T const &value)
 Replace all values for a property name (possibly hierarchical) with a new scalar value. More...
 
void set (std::string const &name, PropertySet::Ptr const &value)
 Replace all values for a property name (possibly hierarchical) with a new PropertySet. More...
 
template<typename T >
void set (std::string const &name, std::vector< T > const &value)
 Replace all values for a property name (possibly hierarchical) with a vector of new values. More...
 
void set (std::string const &name, char const *value)
 Replace all values for a property name (possibly hierarchical) with a string value. More...
 
template<typename T >
void add (std::string const &name, T const &value)
 Append a single value to the vector of values for a property name (possibly hierarchical). More...
 
template<typename T >
void add (std::string const &name, std::vector< T > const &value)
 Append a vector of values to the vector of values for a property name (possibly hierarchical). More...
 
void add (std::string const &name, char const *value)
 Append a char const* value to the vector of values for a property name (possibly hierarchical). More...
 
template<typename T >
void set (std::string const &name, T const &value, std::string const &comment)
 Version of set scalar value that accepts a comment. More...
 
template<typename T >
void set (std::string const &name, std::vector< T > const &value, std::string const &comment)
 Version of set vector value that accepts a comment. More...
 
void set (std::string const &name, char const *value, std::string const &comment)
 Version of set char* value that accepts a comment. More...
 
template<typename T >
void add (std::string const &name, T const &value, std::string const &comment)
 Version of add scalar value that accepts a comment. More...
 
template<typename T >
void add (std::string const &name, std::vector< T > const &value, std::string const &comment)
 Version of add vector value that accepts a comment. More...
 
void add (std::string const &name, char const *value, std::string const &comment)
 Version of add char* value that accepts a comment. More...
 
template<typename T >
void set (std::string const &name, T const &value, char const *comment)
 Version of set scalar value that accepts a comment. More...
 
template<typename T >
void set (std::string const &name, std::vector< T > const &value, char const *comment)
 Version of set vector value that accepts a comment. More...
 
void set (std::string const &name, char const *value, char const *comment)
 Version of set char* value that accepts a comment. More...
 
template<typename T >
void add (std::string const &name, T const &value, char const *comment)
 Version of add scalar value that accepts a comment. More...
 
template<typename T >
void add (std::string const &name, std::vector< T > const &value, char const *comment)
 Version of add vector value that accepts a comment. More...
 
void add (std::string const &name, char const *value, char const *comment)
 Version of add char* value that accepts a comment. More...
 
virtual void copy (std::string const &dest, PropertySet::ConstPtr source, std::string const &name, bool asScalar=false)
 Replace a single value vector in the destination with one from the source. More...
 
virtual void combine (PropertySet::ConstPtr source)
 Append all value vectors from the source to their corresponding properties. More...
 
virtual void remove (std::string const &name)
 Remove all values for a property name (possibly hierarchical). More...
 
size_t nameCount (bool topLevelOnly=true) const
 Get the number of names in the PropertySet, optionally including those in subproperties. More...
 
std::vector< std::stringnames (bool topLevelOnly=true) const
 Get the names in the PropertySet, optionally including those in subproperties. More...
 
std::vector< std::stringparamNames (bool topLevelOnly=true) const
 A variant of names that excludes the names of subproperties. More...
 
std::vector< std::stringpropertySetNames (bool topLevelOnly=true) const
 A variant of names that only returns the names of subproperties. More...
 
bool exists (std::string const &name) const
 Determine if a name (possibly hierarchical) exists. More...
 
bool isArray (std::string const &name) const
 Determine if a name (possibly hierarchical) has multiple values. More...
 
bool isPropertySetPtr (std::string const &name) const
 Determine if a name (possibly hierarchical) is a subproperty. More...
 
bool isUndefined (std::string const &name) const
 Determine if a name (possibly hierarchical) has a defined value. More...
 
size_t valueCount () const
 Get the number of values in the entire PropertySet, counting each element of a vector. More...
 
size_t valueCount (std::string const &name) const
 Get the number of values for a property name (possibly hierarchical). More...
 
std::type_info const & typeOf (std::string const &name) const
 Get the type of values for a property name (possibly hierarchical). More...
 
bool getAsBool (std::string const &name) const
 Get the last value for a bool property name (possibly hierarchical). More...
 
int getAsInt (std::string const &name) const
 Get the last value for a bool/char/short/int property name (possibly hierarchical). More...
 
int64_t getAsInt64 (std::string const &name) const
 Get the last value for a bool/char/short/int/int64_t property name (possibly hierarchical). More...
 
uint64_t getAsUInt64 (std::string const &name) const
 Get the last value for an bool/char/short/int/int64_t property name (possibly hierarchical). More...
 
double getAsDouble (std::string const &name) const
 Get the last value for any arithmetic property name (possibly hierarchical). More...
 
std::string getAsString (std::string const &name) const
 Get the last value for a string property name (possibly hierarchical). More...
 
PropertySet::Ptr getAsPropertySetPtr (std::string const &name) const
 Get the last value for a subproperty name (possibly hierarchical). More...
 
Persistable::Ptr getAsPersistablePtr (std::string const &name) const
 Get the last value for a Persistable name (possibly hierarchical). More...
 

Static Public Member Functions

template<typename T >
static std::type_info const & typeOfT ()
 Get type info for the specified class. More...
 

Protected Member Functions

virtual void _add (std::string const &name, std::shared_ptr< std::vector< boost::any > > vp)
 
virtual std::string _format (std::string const &name) const
 

Private Member Functions

virtual void _set (std::string const &name, std::shared_ptr< std::vector< boost::any > > vp)
 
virtual void _moveToEnd (std::string const &name)
 
virtual void _commentOrderFix (std::string const &name, std::string const &comment)
 

Detailed Description

Class for storing ordered metadata with comments.

This class stores key/value pairs like PropertySet, of which it is a subclass. The difference is that the PropertyList maintains the order of the key/value pairs according to how they were inserted. By default, replacing the value of an existing key does not change its ordering. In addition, a comment string may be associated with each key/value pair.

The main motivating use case for PropertyList is FITS headers.

PropertyLists are not truly hierarchical, although they accept dotted paths as keys. If a PropertySet or PropertyList is added as a value to a PropertyList, the hierarchical pathnames are flattened into the resulting PropertyList.

Definition at line 68 of file PropertyList.h.

Member Typedef Documentation

◆ ConstPtr

Definition at line 72 of file PropertyList.h.

◆ Ptr

Definition at line 71 of file PropertyList.h.

Constructor & Destructor Documentation

◆ PropertyList()

lsst::daf::base::PropertyList::PropertyList ( )

Construct an empty PropertyList.

Constructor.

Definition at line 40 of file PropertyList.cc.

◆ ~PropertyList()

lsst::daf::base::PropertyList::~PropertyList ( )
virtualdefaultnoexcept

Destructor.

Member Function Documentation

◆ _add()

virtual void lsst::daf::base::PropertySet::_add ( std::string const &  name,
std::shared_ptr< std::vector< boost::any > >  vp 
)
protectedvirtualinherited

◆ _commentOrderFix()

void lsst::daf::base::PropertyList::_commentOrderFix ( std::string const &  name,
std::string const &  comment 
)
privatevirtual

Definition at line 239 of file PropertyList.cc.

◆ _format()

virtual std::string lsst::daf::base::PropertySet::_format ( std::string const &  name) const
protectedvirtualinherited

◆ _moveToEnd()

void lsst::daf::base::PropertyList::_moveToEnd ( std::string const &  name)
privatevirtual

Definition at line 234 of file PropertyList.cc.

◆ _set()

void lsst::daf::base::PropertyList::_set ( std::string const &  name,
std::shared_ptr< std::vector< boost::any > >  vp 
)
privatevirtual

Reimplemented from lsst::daf::base::PropertySet.

Definition at line 226 of file PropertyList.cc.

◆ add() [1/9]

void lsst::daf::base::PropertyList::add ( std::string const &  name,
char const *  value 
)

Append a char const* value to the vector of values for a property name (possibly hierarchical).

Sets the value if the property does not exist.

Parameters
[in]nameProperty name to append to, possibly hierarchical.
[in]valueCharacter string value to append.
Exceptions
TypeErrorType does not match existing values.
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 142 of file PropertyList.cc.

◆ add() [2/9]

void lsst::daf::base::PropertyList::add ( std::string const &  name,
char const *  value,
char const *  comment 
)
inline

Version of add char* value that accepts a comment.

Parameters
[in]nameProperty name to append to, possibly hierarchical.
[in]valueCharacter string value to add.
[in]commentComment to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 272 of file PropertyList.h.

◆ add() [3/9]

void lsst::daf::base::PropertyList::add ( std::string const &  name,
char const *  value,
std::string const &  comment 
)

Version of add char* value that accepts a comment.

Parameters
[in]nameProperty name to append to, possibly hierarchical.
[in]valueCharacter string value to add.
[in]commentComment to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 173 of file PropertyList.cc.

◆ add() [4/9]

template<typename T >
void lsst::daf::base::PropertyList::add ( std::string const &  name,
std::vector< T > const &  value 
)

Append a vector of values to the vector of values for a property name (possibly hierarchical).

Sets the values if the property does not exist.

Parameters
[in]nameProperty name to append to, possibly hierarchical.
[in]valueVector of values to append.
Exceptions
TypeErrorType does not match existing values.
InvalidParameterErrorHierarchical name uses non-PropertySet.
Note
May only partially add the vector if an exception occurs.

Definition at line 145 of file PropertyList.cc.

◆ add() [5/9]

template<typename T >
void lsst::daf::base::PropertyList::add ( std::string const &  name,
std::vector< T > const &  value,
char const *  comment 
)
inline

Version of add vector value that accepts a comment.

Parameters
[in]nameProperty name to append to, possibly hierarchical.
[in]valueCharacter string value to add.
[in]commentComment to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 267 of file PropertyList.h.

◆ add() [6/9]

template<typename T >
void lsst::daf::base::PropertyList::add ( std::string const &  name,
std::vector< T > const &  value,
std::string const &  comment 
)

Version of add vector value that accepts a comment.

Parameters
[in]nameProperty name to append to, possibly hierarchical.
[in]valueCharacter string value to add.
[in]commentComment to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 178 of file PropertyList.cc.

◆ add() [7/9]

template<typename T >
void lsst::daf::base::PropertyList::add ( std::string const &  name,
T const &  value 
)

Append a single value to the vector of values for a property name (possibly hierarchical).

Sets the value if the property does not exist.

Parameters
[in]nameProperty name to append to, possibly hierarchical.
[in]valueValue to append.
Exceptions
TypeErrorType does not match existing values.
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 138 of file PropertyList.cc.

◆ add() [8/9]

template<typename T >
void lsst::daf::base::PropertyList::add ( std::string const &  name,
T const &  value,
char const *  comment 
)
inline

Version of add scalar value that accepts a comment.

Parameters
[in]nameProperty name to append to, possibly hierarchical.
[in]valueValue to add.
[in]commentComment to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 262 of file PropertyList.h.

◆ add() [9/9]

template<typename T >
void lsst::daf::base::PropertyList::add ( std::string const &  name,
T const &  value,
std::string const &  comment 
)

Version of add scalar value that accepts a comment.

Parameters
[in]nameProperty name to append to, possibly hierarchical.
[in]valueValue to add.
[in]commentComment to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 168 of file PropertyList.cc.

◆ begin()

std::list< std::string >::const_iterator lsst::daf::base::PropertyList::begin ( ) const

Begin iterator over the list of property names, in the order they were added.

Definition at line 89 of file PropertyList.cc.

◆ combine()

void lsst::daf::base::PropertyList::combine ( PropertySet::ConstPtr  source)
virtual

Append all value vectors from the source to their corresponding properties.

Sets values if a property does not exist.

If a property already exists then the types of the existing value(s) must match the type of the value(s) in source.

Parameters
[in]sourcePropertySet::Ptr for the source PropertySet.
Exceptions
TypeErrorType does not match existing values for an item.
InvalidParameterErrorHierarchical name uses non-PropertySet.
Warning
May only partially combine the PropertySets if an exception occurs.

Reimplemented from lsst::daf::base::PropertySet.

Definition at line 195 of file PropertyList.cc.

◆ copy()

void lsst::daf::base::PropertyList::copy ( std::string const &  dest,
PropertySet::ConstPtr  source,
std::string const &  name,
bool  asScalar = false 
)
virtual

Replace a single value vector in the destination with one from the source.

Parameters
[in]destDestination property name.
[in]sourcePropertySet::Ptr for the source PropertySet.
[in]nameProperty name to extract.
[in]asScalarIf true copy the item as a scalar by ignoring all but the last value (which is the value returned by get<T>(name))
Exceptions
TypeErrorType does not match existing values.
InvalidParameterErrorName does not exist in source.
InvalidParameterErrorHierarchical name uses non-PropertySet.

Reimplemented from lsst::daf::base::PropertySet.

Definition at line 186 of file PropertyList.cc.

◆ deepCopy()

PropertySet::Ptr lsst::daf::base::PropertyList::deepCopy ( ) const
virtual

Make a deep copy of the PropertyList and all of its contents.

Returns
PropertyList::Ptr pointing to the new copy.

Reimplemented from lsst::daf::base::PropertySet.

Definition at line 50 of file PropertyList.cc.

◆ end()

std::list< std::string >::const_iterator lsst::daf::base::PropertyList::end ( ) const

End iterator over the list of property names, in the order they were added.

Definition at line 91 of file PropertyList.cc.

◆ exists()

bool lsst::daf::base::PropertySet::exists ( std::string const &  name) const
inherited

Determine if a name (possibly hierarchical) exists.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
true if property exists.

◆ get() [1/2]

template<typename T >
T lsst::daf::base::PropertyList::get ( std::string const &  name) const

Get the last value for a property name (possibly hierarchical).

Note that the type must be explicitly specified for this template:

int i = propertySet.get<int>("foo")
Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Last value set or added.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue does not match desired type.

Definition at line 61 of file PropertyList.cc.

◆ get() [2/2]

template<typename T >
T lsst::daf::base::PropertyList::get ( std::string const &  name,
T const &  defaultValue 
) const

Get the last value for a property name (possibly hierarchical); return the provided defaultValue if the property does not exist.

Note that the type must be explicitly specified for this template:

int i = propertySet.get<int>("foo", 42)
Parameters
[in]nameProperty name to examine, possibly hierarchical.
[in]defaultValueDefault value to return if property does not exist.
Returns
Last value set or added.
Exceptions
TypeErrorValue does not match desired type.

Definition at line 67 of file PropertyList.cc.

◆ getArray()

template<typename T >
std::vector< T > lsst::daf::base::PropertyList::getArray ( std::string const &  name) const

Get the vector of values for a property name (possibly hierarchical).

Note that the type must be explicitly specified for this template:

vector<int> v = propertySet.getArray<int>("foo")
Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Vector of values.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue does not match desired type.

Definition at line 73 of file PropertyList.cc.

◆ getAsBool()

bool lsst::daf::base::PropertySet::getAsBool ( std::string const &  name) const
inherited

Get the last value for a bool property name (possibly hierarchical).

Only bool properties are supported.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Value as a bool.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue is not a bool.

◆ getAsDouble()

double lsst::daf::base::PropertySet::getAsDouble ( std::string const &  name) const
inherited

Get the last value for any arithmetic property name (possibly hierarchical).

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Value as a double.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue cannot be converted to double.

◆ getAsInt()

int lsst::daf::base::PropertySet::getAsInt ( std::string const &  name) const
inherited

Get the last value for a bool/char/short/int property name (possibly hierarchical).

Unsigned int properties are not acceptable.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Value as an int.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue cannot be converted to int.

◆ getAsInt64()

int64_t lsst::daf::base::PropertySet::getAsInt64 ( std::string const &  name) const
inherited

Get the last value for a bool/char/short/int/int64_t property name (possibly hierarchical).

Unsigned int64_t properties are not acceptable, but unsigned versions of smaller types are, except possibly unsigned long, depending on compiler.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Value as an int64_t.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue cannot be converted to int64_t.

◆ getAsPersistablePtr()

Persistable::Ptr lsst::daf::base::PropertySet::getAsPersistablePtr ( std::string const &  name) const
inherited

Get the last value for a Persistable name (possibly hierarchical).

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Persistable::Ptr value.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue is not a Persistable::Ptr.

◆ getAsPropertySetPtr()

PropertySet::Ptr lsst::daf::base::PropertySet::getAsPropertySetPtr ( std::string const &  name) const
inherited

Get the last value for a subproperty name (possibly hierarchical).

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
PropertySet::Ptr value.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue is not a PropertySet::Ptr.

◆ getAsString()

std::string lsst::daf::base::PropertySet::getAsString ( std::string const &  name) const
inherited

Get the last value for a string property name (possibly hierarchical).

Only strings values are supported, though this does include properties set with char const*.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
String value.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue is not a string.

◆ getAsUInt64()

uint64_t lsst::daf::base::PropertySet::getAsUInt64 ( std::string const &  name) const
inherited

Get the last value for an bool/char/short/int/int64_t property name (possibly hierarchical).

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Value as an uint64_t.
Exceptions
NotFoundErrorProperty does not exist.
TypeErrorValue cannot be converted to uint64_t.

◆ getComment()

std::string const & lsst::daf::base::PropertyList::getComment ( std::string const &  name) const

Get the comment for a string property name (possibly hierarchical).

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Comment string.
Exceptions
NotFoundErrorProperty does not exist.

Definition at line 77 of file PropertyList.cc.

◆ getOrderedNames()

std::vector< std::string > lsst::daf::base::PropertyList::getOrderedNames ( ) const

Get the list of property names, in the order they were added.

Definition at line 81 of file PropertyList.cc.

◆ isArray()

bool lsst::daf::base::PropertySet::isArray ( std::string const &  name) const
inherited

Determine if a name (possibly hierarchical) has multiple values.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
true if property exists and has more than one value.

◆ isPropertySetPtr()

bool lsst::daf::base::PropertySet::isPropertySetPtr ( std::string const &  name) const
inherited

Determine if a name (possibly hierarchical) is a subproperty.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
true if property exists and its values are PropertySet::Ptrs.

◆ isUndefined()

bool lsst::daf::base::PropertySet::isUndefined ( std::string const &  name) const
inherited

Determine if a name (possibly hierarchical) has a defined value.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
true if property exists and its values are undefined.

◆ nameCount()

size_t lsst::daf::base::PropertySet::nameCount ( bool  topLevelOnly = true) const
inherited

Get the number of names in the PropertySet, optionally including those in subproperties.

Parameters
[in]topLevelOnlyIf true (default) omit names from subproperties and names of subproperties.
Returns
Number of names.

◆ names()

std::vector<std::string> lsst::daf::base::PropertySet::names ( bool  topLevelOnly = true) const
inherited

Get the names in the PropertySet, optionally including those in subproperties.

Parameters
[in]topLevelOnlyIf true (default) omit names from subproperties and names of subproperties. If false subproperty names are separated by a dot, e.g. "subname.subitem1"
Returns
Vector of names.

◆ paramNames()

std::vector<std::string> lsst::daf::base::PropertySet::paramNames ( bool  topLevelOnly = true) const
inherited

A variant of names that excludes the names of subproperties.

◆ propertySetNames()

std::vector<std::string> lsst::daf::base::PropertySet::propertySetNames ( bool  topLevelOnly = true) const
inherited

A variant of names that only returns the names of subproperties.

◆ remove()

void lsst::daf::base::PropertyList::remove ( std::string const &  name)
virtual

Remove all values for a property name (possibly hierarchical).

Does nothing if the property does not exist.

Parameters
[in]nameProperty name to remove, possibly hierarchical.

Reimplemented from lsst::daf::base::PropertySet.

Definition at line 216 of file PropertyList.cc.

◆ set() [1/10]

void lsst::daf::base::PropertyList::set ( std::string const &  name,
char const *  value 
)

Replace all values for a property name (possibly hierarchical) with a string value.

Parameters
[in]nameProperty name to set, possibly hierarchical.
[in]valueCharacter string (converted to std::string ).

Definition at line 130 of file PropertyList.cc.

◆ set() [2/10]

void lsst::daf::base::PropertyList::set ( std::string const &  name,
char const *  value,
char const *  comment 
)
inline

Version of set char* value that accepts a comment.

Parameters
[in]nameProperty name to set, possibly hierarchical.
[in]valueCharacter string value to set.
[in]commentComment to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 256 of file PropertyList.h.

◆ set() [3/10]

void lsst::daf::base::PropertyList::set ( std::string const &  name,
char const *  value,
std::string const &  comment 
)

Version of set char* value that accepts a comment.

Parameters
[in]nameProperty name to set, possibly hierarchical.
[in]valueCharacter string value to set.
[in]commentComment to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 158 of file PropertyList.cc.

◆ set() [4/10]

void lsst::daf::base::PropertyList::set ( std::string const &  name,
PropertySet::Ptr const &  value 
)

Replace all values for a property name (possibly hierarchical) with a new PropertySet.

Parameters
[in]nameProperty name to set, possibly hierarchical.
[in]valueValue to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 117 of file PropertyList.cc.

◆ set() [5/10]

template<typename T >
void lsst::daf::base::PropertyList::set ( std::string const &  name,
std::vector< T > const &  value 
)

Replace all values for a property name (possibly hierarchical) with a vector of new values.

Parameters
[in]nameProperty name to set, possibly hierarchical.
[in]valueVector of values to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 133 of file PropertyList.cc.

◆ set() [6/10]

template<typename T >
void lsst::daf::base::PropertyList::set ( std::string const &  name,
std::vector< T > const &  value,
char const *  comment 
)
inline

Version of set vector value that accepts a comment.

Parameters
[in]nameProperty name to set, possibly hierarchical.
[in]valueVector value to set.
[in]commentComment to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 251 of file PropertyList.h.

◆ set() [7/10]

template<typename T >
void lsst::daf::base::PropertyList::set ( std::string const &  name,
std::vector< T > const &  value,
std::string const &  comment 
)

Version of set vector value that accepts a comment.

Parameters
[in]nameProperty name to set, possibly hierarchical.
[in]valueVector value to set.
[in]commentComment to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 163 of file PropertyList.cc.

◆ set() [8/10]

template<typename T >
void lsst::daf::base::PropertyList::set ( std::string const &  name,
T const &  value 
)

Replace all values for a property name (possibly hierarchical) with a new scalar value.

Parameters
[in]nameProperty name to set, possibly hierarchical.
[in]valueValue to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 113 of file PropertyList.cc.

◆ set() [9/10]

template<typename T >
void lsst::daf::base::PropertyList::set ( std::string const &  name,
T const &  value,
char const *  comment 
)
inline

Version of set scalar value that accepts a comment.

Parameters
[in]nameProperty name to set, possibly hierarchical.
[in]valueValue to set.
[in]commentComment to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 245 of file PropertyList.h.

◆ set() [10/10]

template<typename T >
void lsst::daf::base::PropertyList::set ( std::string const &  name,
T const &  value,
std::string const &  comment 
)

Version of set scalar value that accepts a comment.

Parameters
[in]nameProperty name to set, possibly hierarchical.
[in]valueValue to set.
[in]commentComment to set.
Exceptions
InvalidParameterErrorHierarchical name uses non-PropertySet.

Definition at line 153 of file PropertyList.cc.

◆ toString()

std::string lsst::daf::base::PropertyList::toString ( bool  topLevelOnly = false,
std::string const &  indent = "" 
) const
virtual

Generate a string representation of the PropertySet.

Use this for debugging, not for serialization/persistence.

Parameters
[in]topLevelOnlyfalse (default) = do include subproperties.
[in]indentString to indent lines by (default none).
Returns
String representation of the PropertySet.

Reimplemented from lsst::daf::base::PropertySet.

Definition at line 93 of file PropertyList.cc.

◆ typeOf()

std::type_info const& lsst::daf::base::PropertySet::typeOf ( std::string const &  name) const
inherited

Get the type of values for a property name (possibly hierarchical).

If the value is an array this returns the type of the elements.

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Type of values for that property.
Exceptions
NotFoundErrorProperty does not exist.

◆ typeOfT()

template<typename T >
static std::type_info const& lsst::daf::base::PropertySet::typeOfT ( )
staticinherited

Get type info for the specified class.

◆ valueCount() [1/2]

size_t lsst::daf::base::PropertySet::valueCount ( ) const
inherited

Get the number of values in the entire PropertySet, counting each element of a vector.

Returns
Number of values.

◆ valueCount() [2/2]

size_t lsst::daf::base::PropertySet::valueCount ( std::string const &  name) const
inherited

Get the number of values for a property name (possibly hierarchical).

Parameters
[in]nameProperty name to examine, possibly hierarchical.
Returns
Number of values for that property. 0 if it doesn't exist.

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