LSST Applications
21.0.0-147-g0e635eb1+1acddb5be5,22.0.0+052faf71bd,22.0.0+1ea9a8b2b2,22.0.0+6312710a6c,22.0.0+729191ecac,22.0.0+7589c3a021,22.0.0+9f079a9461,22.0.1-1-g7d6de66+b8044ec9de,22.0.1-1-g87000a6+536b1ee016,22.0.1-1-g8e32f31+6312710a6c,22.0.1-10-gd060f87+016f7cdc03,22.0.1-12-g9c3108e+df145f6f68,22.0.1-16-g314fa6d+c825727ab8,22.0.1-19-g93a5c75+d23f2fb6d8,22.0.1-19-gb93eaa13+aab3ef7709,22.0.1-2-g8ef0a89+b8044ec9de,22.0.1-2-g92698f7+9f079a9461,22.0.1-2-ga9b0f51+052faf71bd,22.0.1-2-gac51dbf+052faf71bd,22.0.1-2-gb66926d+6312710a6c,22.0.1-2-gcb770ba+09e3807989,22.0.1-20-g32debb5+b8044ec9de,22.0.1-23-gc2439a9a+fb0756638e,22.0.1-3-g496fd5d+09117f784f,22.0.1-3-g59f966b+1e6ba2c031,22.0.1-3-g849a1b8+f8b568069f,22.0.1-3-gaaec9c0+c5c846a8b1,22.0.1-32-g5ddfab5d3+60ce4897b0,22.0.1-4-g037fbe1+64e601228d,22.0.1-4-g8623105+b8044ec9de,22.0.1-5-g096abc9+d18c45d440,22.0.1-5-g15c806e+57f5c03693,22.0.1-7-gba73697+57f5c03693,master-g6e05de7fdc+c1283a92b8,master-g72cdda8301+729191ecac,w.2021.39
LSST Data Management Base Package
|
Class for storing ordered metadata with comments. More...
#include <PropertyList.h>
Public Types | |
typedef std::shared_ptr< PropertyList > | Ptr |
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 > | |
T | get (std::string const &name) const |
Get the last value for a property name (possibly hierarchical). More... | |
template<typename T > | |
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::string > | getOrderedNames () 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::string > | names (bool topLevelOnly=true) const |
Get the names in the PropertySet, optionally including those in subproperties. More... | |
std::vector< std::string > | paramNames (bool topLevelOnly=true) const |
A variant of names that excludes the names of subproperties. More... | |
std::vector< std::string > | propertySetNames (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< std::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< std::any > > vp) |
virtual void | _moveToEnd (std::string const &name) |
virtual void | _commentOrderFix (std::string const &name, std::string const &comment) |
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.
typedef std::shared_ptr<PropertyList const> lsst::daf::base::PropertyList::ConstPtr |
Definition at line 72 of file PropertyList.h.
Definition at line 71 of file PropertyList.h.
lsst::daf::base::PropertyList::PropertyList | ( | ) |
Construct an empty PropertyList.
Constructor.
Definition at line 41 of file PropertyList.cc.
|
virtualdefaultnoexcept |
Destructor.
|
protectedvirtualinherited |
|
privatevirtual |
Definition at line 240 of file PropertyList.cc.
|
protectedvirtualinherited |
|
privatevirtual |
Definition at line 235 of file PropertyList.cc.
|
privatevirtual |
Reimplemented from lsst::daf::base::PropertySet.
Definition at line 227 of file PropertyList.cc.
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.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Character string value to append. |
TypeError | Type does not match existing values. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 143 of file PropertyList.cc.
|
inline |
Version of add char* value that accepts a comment.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Character string value to add. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 272 of file PropertyList.h.
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.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Character string value to add. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 174 of file PropertyList.cc.
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.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Vector of values to append. |
TypeError | Type does not match existing values. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 146 of file PropertyList.cc.
|
inline |
Version of add vector value that accepts a comment.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Character string value to add. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 267 of file PropertyList.h.
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.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Character string value to add. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 179 of file PropertyList.cc.
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.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Value to append. |
TypeError | Type does not match existing values. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 139 of file PropertyList.cc.
|
inline |
Version of add scalar value that accepts a comment.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Value to add. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 262 of file PropertyList.h.
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.
[in] | name | Property name to append to, possibly hierarchical. |
[in] | value | Value to add. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 169 of file PropertyList.cc.
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 90 of file PropertyList.cc.
|
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.
[in] | source | PropertySet::Ptr for the source PropertySet. |
TypeError | Type does not match existing values for an item. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Reimplemented from lsst::daf::base::PropertySet.
Definition at line 196 of file PropertyList.cc.
|
virtual |
Replace a single value vector in the destination with one from the source.
[in] | dest | Destination property name. |
[in] | source | PropertySet::Ptr for the source PropertySet. |
[in] | name | Property name to extract. |
[in] | asScalar | If true copy the item as a scalar by ignoring all but the last value (which is the value returned by get<T>(name)) |
TypeError | Type does not match existing values. |
InvalidParameterError | Name does not exist in source. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Reimplemented from lsst::daf::base::PropertySet.
Definition at line 187 of file PropertyList.cc.
|
virtual |
Make a deep copy of the PropertyList and all of its contents.
Reimplemented from lsst::daf::base::PropertySet.
Definition at line 51 of file PropertyList.cc.
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 92 of file PropertyList.cc.
|
inherited |
Determine if a name (possibly hierarchical) exists.
[in] | name | Property name to examine, possibly hierarchical. |
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:
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
TypeError | Value does not match desired type. |
Definition at line 62 of file PropertyList.cc.
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:
[in] | name | Property name to examine, possibly hierarchical. |
[in] | defaultValue | Default value to return if property does not exist. |
TypeError | Value does not match desired type. |
Definition at line 68 of file PropertyList.cc.
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:
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
TypeError | Value does not match desired type. |
Definition at line 74 of file PropertyList.cc.
|
inherited |
Get the last value for a bool property name (possibly hierarchical).
Only bool properties are supported.
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
TypeError | Value is not a bool. |
|
inherited |
Get the last value for any arithmetic property name (possibly hierarchical).
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
TypeError | Value cannot be converted to double. |
|
inherited |
Get the last value for a bool/char/short/int property name (possibly hierarchical).
Unsigned int properties are not acceptable.
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
TypeError | Value cannot be converted to int. |
|
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.
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
TypeError | Value cannot be converted to int64_t. |
|
inherited |
Get the last value for a Persistable name (possibly hierarchical).
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
TypeError | Value is not a Persistable::Ptr. |
|
inherited |
Get the last value for a subproperty name (possibly hierarchical).
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
TypeError | Value is not a PropertySet::Ptr. |
|
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*
.
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
TypeError | Value is not a string. |
|
inherited |
Get the last value for an bool/char/short/int/int64_t property name (possibly hierarchical).
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
TypeError | Value cannot be converted to uint64_t. |
std::string const & lsst::daf::base::PropertyList::getComment | ( | std::string const & | name | ) | const |
Get the comment for a string property name (possibly hierarchical).
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
Definition at line 78 of file PropertyList.cc.
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 82 of file PropertyList.cc.
|
inherited |
Determine if a name (possibly hierarchical) has multiple values.
[in] | name | Property name to examine, possibly hierarchical. |
|
inherited |
Determine if a name (possibly hierarchical) is a subproperty.
[in] | name | Property name to examine, possibly hierarchical. |
|
inherited |
Determine if a name (possibly hierarchical) has a defined value.
[in] | name | Property name to examine, possibly hierarchical. |
|
inherited |
Get the number of names in the PropertySet, optionally including those in subproperties.
[in] | topLevelOnly | If true (default) omit names from subproperties and names of subproperties. |
|
inherited |
Get the names in the PropertySet, optionally including those in subproperties.
[in] | topLevelOnly | If true (default) omit names from subproperties and names of subproperties. If false subproperty names are separated by a dot, e.g. "subname.subitem1" |
|
inherited |
A variant of names that excludes the names of subproperties.
|
inherited |
A variant of names that only returns the names of subproperties.
|
virtual |
Remove all values for a property name (possibly hierarchical).
Does nothing if the property does not exist.
[in] | name | Property name to remove, possibly hierarchical. |
Reimplemented from lsst::daf::base::PropertySet.
Definition at line 217 of file PropertyList.cc.
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.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Character string (converted to std::string ). |
Definition at line 131 of file PropertyList.cc.
|
inline |
Version of set char* value that accepts a comment.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Character string value to set. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 256 of file PropertyList.h.
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.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Character string value to set. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 159 of file PropertyList.cc.
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.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Value to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 118 of file PropertyList.cc.
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.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Vector of values to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 134 of file PropertyList.cc.
|
inline |
Version of set vector value that accepts a comment.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Vector value to set. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 251 of file PropertyList.h.
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.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Vector value to set. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 164 of file PropertyList.cc.
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.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Value to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 114 of file PropertyList.cc.
|
inline |
Version of set scalar value that accepts a comment.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Value to set. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 245 of file PropertyList.h.
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.
[in] | name | Property name to set, possibly hierarchical. |
[in] | value | Value to set. |
[in] | comment | Comment to set. |
InvalidParameterError | Hierarchical name uses non-PropertySet. |
Definition at line 154 of file PropertyList.cc.
|
virtual |
Generate a string representation of the PropertySet.
Use this for debugging, not for serialization/persistence.
[in] | topLevelOnly | false (default) = do include subproperties. |
[in] | indent | String to indent lines by (default none). |
Reimplemented from lsst::daf::base::PropertySet.
Definition at line 94 of file PropertyList.cc.
|
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.
[in] | name | Property name to examine, possibly hierarchical. |
NotFoundError | Property does not exist. |
|
staticinherited |
Get type info for the specified class.
|
inherited |
Get the number of values in the entire PropertySet, counting each element of a vector.
|
inherited |
Get the number of values for a property name (possibly hierarchical).
[in] | name | Property name to examine, possibly hierarchical. |