55 n->_comments = _comments;
64 return PropertySet::get<T>(
name);
70 return PropertySet::get<T>(
name, defaultValue);
75 return PropertySet::getArray<T>(
name);
84 for (
auto const&
name : _order) {
96 for (
auto const&
name : _order) {
113 template <
typename T>
119 Ptr pl = std::dynamic_pointer_cast<PropertyList, PropertySet>(value);
133 template <
typename T>
138 template <
typename T>
145 template <
typename T>
153 template <
typename T>
163 template <
typename T>
168 template <
typename T>
178 template <
typename T>
190 ConstPtr pl = std::dynamic_pointer_cast<PropertyList const, PropertySet const>(
source);
192 _comments[
name] = pl->_comments.find(
name)->second;
197 ConstPtr pl = std::dynamic_pointer_cast<PropertyList const, PropertySet const>(
source);
201 for (
auto const&
name : *pl) {
202 bool present = _comments.
find(
name) != _comments.
end();
211 for (
auto const&
name : *pl) {
241 _comments[
name] = comment;
251 #define INSTANTIATE(t) \
252 template t PropertyList::get<t>(std::string const& name) const; \
253 template t PropertyList::get<t>(std::string const& name, t const& defaultValue) const; \
254 template std::vector<t> PropertyList::getArray<t>(std::string const& name) const; \
255 template void PropertyList::set<t>(std::string const& name, t const& value); \
256 template void PropertyList::set<t>(std::string const& name, std::vector<t> const& value); \
257 template void PropertyList::add<t>(std::string const& name, t const& value); \
258 template void PropertyList::add<t>(std::string const& name, std::vector<t> const& value); \
259 template void PropertyList::set<t>(std::string const& name, t const& value, std::string const& comment); \
260 template void PropertyList::set<t>(std::string const& name, std::vector<t> const& value, \
261 std::string const& comment); \
262 template void PropertyList::add<t>(std::string const& name, t const& value, std::string const& comment); \
263 template void PropertyList::add<t>(std::string const& name, std::vector<t> const& value, \
264 std::string const& comment); \
265 template void PropertyList::set<t>(std::string const& name, t const& value, char const* comment); \
266 template void PropertyList::set<t>(std::string const& name, std::vector<t> const& value, \
267 char const* comment); \
268 template void PropertyList::add<t>(std::string const& name, t const& value, char const* comment); \
269 template void PropertyList::add<t>(std::string const& name, std::vector<t> const& value, \
270 char const* comment);
table::Key< std::string > name
Interface for DateTime class.
#define INSTANTIATE(FROMSYS, TOSYS)
Class for handling dates/times, including MJD, UTC, and TAI.
Class for storing ordered metadata with comments.
std::list< std::string >::const_iterator end() const
End iterator over the list of property names, in the order they were added.
PropertyList()
Construct an empty PropertyList.
void set(std::string const &name, T const &value)
Replace all values for a property name (possibly hierarchical) with a new scalar value.
T get(std::string const &name) const
Get the last value for a property name (possibly hierarchical).
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.
void add(std::string const &name, T const &value)
Append a single value to the vector of values for a property name (possibly hierarchical).
virtual void _set(std::string const &name, std::shared_ptr< std::vector< std::any > > vp)
virtual void combine(PropertySet::ConstPtr source)
Append all value vectors from the source to their corresponding properties.
std::string const & getComment(std::string const &name) const
Get the comment for a string property name (possibly hierarchical).
std::vector< T > getArray(std::string const &name) const
Get the vector of values for a property name (possibly hierarchical).
std::vector< std::string > getOrderedNames() const
Get the list of property names, in the order they were added.
virtual void remove(std::string const &name)
Remove all values for a property name (possibly hierarchical).
virtual ~PropertyList() noexcept
Destructor.
virtual void _moveToEnd(std::string const &name)
virtual void _commentOrderFix(std::string const &name, std::string const &comment)
virtual std::string toString(bool topLevelOnly=false, std::string const &indent="") const
Generate a string representation of the PropertySet.
std::list< std::string >::const_iterator begin() const
Begin iterator over the list of property names, in the order they were added.
Class for storing generic metadata.
virtual void _set(std::string const &name, std::shared_ptr< std::vector< std::any > > vp)
virtual Ptr deepCopy() const
Make a deep copy of the PropertySet and all of its contents.
virtual void remove(std::string const &name)
Remove all values for a property name (possibly hierarchical).
virtual void copy(std::string const &dest, ConstPtr source, std::string const &name, bool asScalar=false)
Replace a single value vector in the destination with one from the source.
virtual std::string _format(std::string const &name) const
std::vector< std::string > paramNames(bool topLevelOnly=true) const
A variant of names that excludes the names of subproperties.
void set(std::string const &name, T const &value)
Replace all values for a property name (possibly hierarchical) with a new scalar value.
virtual void combine(ConstPtr source)
Append all value vectors from the source to their corresponding properties.
void add(std::string const &name, T const &value)
Append a single value to the vector of values for a property name (possibly hierarchical).
const char * source()
Source function that allows astChannel to source from a Stream.
A base class for image defects.