30 #ifndef LSST_PEX_PROPERTYPRINTER_H
31 #define LSST_PEX_PROPERTYPRINTER_H
41 #include "boost/any.hpp"
63 virtual std::ostream&
write(std::ostream *strm)
const=0;
109 std::ostringstream out;
120 typename std::vector<T>::const_iterator beginiter,
121 typename std::vector<T>::const_iterator enditer)
131 return (this->
_it == that.
_it);
134 return (this->
_it != that.
_it);
150 return (thit == 0) ?
false : (*
this == *thit);
156 return (thit == 0) ?
true : (*
this != *thit);
167 typename std::vector<T>::const_iterator beginiter,
168 typename std::vector<T>::const_iterator enditer)
170 virtual std::ostream&
write(std::ostream *strm)
const;
175 (*strm) << *(this->_it);
190 virtual std::ostream&
write(std::ostream *strm)
const;
198 std::shared_ptr<PrinterIter>
_it;
253 const std::string&
name)
254 :
_list(prop.getArray<T>(name)) { }
307 const std::string&
name) {
314 std::vector<lsst::daf::base::DateTime>::const_iterator beginiter,
315 std::vector<lsst::daf::base::DateTime>::const_iterator enditer)
320 virtual std::ostream&
write(std::ostream *strm)
const;
326 const std::string&
name)
335 const std::string&
name);
340 std::vector<bool>::const_iterator beginiter,
341 std::vector<bool>::const_iterator enditer)
344 virtual std::ostream&
write(std::ostream *strm)
const;
358 const std::string&
name);
394 const std::string&
name)
const
397 return (fi ==
_factFuncs.end()) ? 0 : (*(fi->second))(prop, name);
403 typedef std::map<std::string, factoryFuncPtr>
Lookup;
494 #endif // end LSST_PEX_PROPERTYPRINTER_H
virtual bool operator==(const PrinterIter &that) const
PrinterList::iterator iterator
PropertyPrinter(const lsst::daf::base::PropertySet &prop, const std::string &name, const PrinterFactory &fact=defaultPrinterFactory)
TmplPrinterList(const lsst::daf::base::PropertySet &prop, const std::string &name)
table::Key< std::string > name
BoolPrinterList(const lsst::daf::base::PropertySet &prop, const std::string &name)
virtual bool notLTBegin() const =0
an abstract iterator class used to print out property values
virtual ~BoolPrinterList()
BaseTmplPrinterIter(typename std::vector< T >::const_iterator listiter, typename std::vector< T >::const_iterator beginiter, typename std::vector< T >::const_iterator enditer)
std::map< std::string, factoryFuncPtr > Lookup
virtual ~BoolPrinterIter()
virtual bool operator==(const PrinterIter &that) const =0
PrinterList * makeBoolPrinter(const lsst::daf::base::PropertySet &prop, const std::string &name)
virtual bool notAtEnd() const
virtual iterator last() const =0
virtual bool notAtEnd() const
virtual bool notLTBegin() const
BoolPrinterIter(std::vector< bool >::const_iterator listiter, std::vector< bool >::const_iterator beginiter, std::vector< bool >::const_iterator enditer)
virtual bool operator!=(const PrinterIter &that) const =0
PrinterFactory(bool loadDefaults=false)
virtual ~BaseTmplPrinterIter()
const std::string operator*() const
virtual bool notLTBegin() const
PrinterList *(* factoryFuncPtr)(const lsst::daf::base::PropertySet &, const std::string &)
virtual ~DateTimePrinterList()
PrinterList * makePrinter(const lsst::daf::base::PropertySet &prop, const std::string &name)
the template factory function for supporting printing of printable types
virtual std::ostream & write(std::ostream *strm) const
an class for printing the values associated with a name in a PropertySet.
bool operator!=(const BaseTmplPrinterIter &that) const
virtual size_t valueCount() const =0
PrinterList * makeDateTimePrinter(const lsst::daf::base::PropertySet &prop, const std::string &name)
TmplPrinterIter< T > delegateIter
std::shared_ptr< PrinterList > _list
std::shared_ptr< PrinterIter > _it
virtual std::ostream & write(std::ostream *strm) const
DateTimePrinterList(const lsst::daf::base::PropertySet &prop, const std::string &name)
virtual bool operator!=(const PrinterIter &that) const
virtual ~WrappedPrinterIter()
WrappedPrinterIter iterator
std::vector< T >::const_iterator _begin
Interface for DateTime class.
std::vector< T >::const_iterator _it
TmplPrinterIter(typename std::vector< T >::const_iterator listiter, typename std::vector< T >::const_iterator beginiter, typename std::vector< T >::const_iterator enditer)
void add(const std::type_info &tp, factoryFuncPtr func)
virtual bool operator==(const PrinterIter &that) const
virtual ~DateTimePrinterIter()
virtual bool notAtEnd() const =0
BaseTmplPrinterList(const lsst::daf::base::PropertySet &prop, const std::string &name)
virtual iterator last() const
bool operator==(const BaseTmplPrinterIter &that) const
an abstract class that encapsulates a list of property values to be printed out.
virtual PrinterList::iterator begin() const
DateTimePrinterIter(std::vector< lsst::daf::base::DateTime >::const_iterator listiter, std::vector< lsst::daf::base::DateTime >::const_iterator beginiter, std::vector< lsst::daf::base::DateTime >::const_iterator enditer)
virtual iterator begin() const =0
std::vector< T >::const_iterator _end
std::type_info const & typeOf(std::string const &name) const
virtual PrinterIter & operator--()
virtual iterator begin() const
virtual PrinterIter & operator++()
virtual std::ostream & write(std::ostream *strm) const =0
virtual std::ostream & write(std::ostream *strm) const
Class for storing generic metadata.
WrappedPrinterIter(std::shared_ptr< PrinterIter > iter)
virtual size_t valueCount() const
virtual iterator begin() const
static PrinterFactory defaultPrinterFactory
Interface for PropertySet class.
virtual ~BaseTmplPrinterList()
virtual PrinterIter & operator++()=0
virtual PrinterIter & operator++()
PrinterList * makePrinter(const lsst::daf::base::PropertySet &prop, const std::string &name) const
virtual PrinterList::iterator last() const
virtual PrinterIter & operator--()=0
virtual bool operator!=(const PrinterIter &that) const
virtual iterator last() const
a wrapper PrinterIter class that hides the polymorphic (and possibly templatized) nature of an underl...
a factory used to create PrinterList instances to be used by a PropertyPrinter instance.
virtual PrinterIter & operator--()
virtual std::ostream & write(std::ostream *strm) const