Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
NodeSLD Class Reference
Inheritance diagram for NodeSLD:
Inheritance graph
[legend]
Collaboration diagram for NodeSLD:
Collaboration graph
[legend]

Public Member Functions

 NodeSLD (SLD::tag_t t=SLD::UNDEFINED)
 Default constructor. Create a node of given type.
 
 NodeSLD (const NodeSLD &node)
 Copy constructor.
 
NodeSLDoperator= (const NodeSLD &node)
 Copy data from a node. (Does not copy subtree.)
 
NodeSLDoperator= (const std::initializer_list< Variable::init_pair_t > &l)
 Copy data from a node. (Does not copy subtree.)
 
template<class T >
NodeSLDoperator= (const T &arg)
 
virtual void setAttribute (const std::string &key, const std::string &value) override
 Set attribute value, handling units in string arguments, like in "50%" or "640px".
 
virtual void setAttribute (const std::string &key, const char *value) override
 Set attribute value, handling units in string arguments, like in "50%" or "640px".
 
virtual bool isSingular () const override final
 Tell if this element should always have an explicit closing tag even when empty, like <STYLE></STYLE>
 
- Public Member Functions inherited from NodeXML< SLD::tag_t >
std::map< int, std::string > tags
 
const NodeXML< drain::image::SLD::tag_t >::xml_default_elem_map_t xml_default_elems
 
const NodeXML< image::SLD::tag_t >::xml_default_elem_map_t xml_default_elems
 
const NodeXML< drain::image::svg::tag_t >::xml_default_elem_map_t xml_default_elems
 
const NodeXML< image::svg::tag_t >::xml_default_elem_map_t xml_default_elems
 
const NodeXML< html::tag_t >::xml_default_elem_map_t xml_default_elems
 
const NodeXML< html::tag_t >::xml_default_elem_map_t xml_default_elems
 
const NodeXML< int >::xml_default_elem_map_t xml_default_elems
 
 NodeXML (const elem_t &t=elem_t(0))
 
 NodeXML (const NodeXML &node)
 
 NodeXML (const intval_t &t=intval_t(0))
 
 NodeXML (const NodeXML &node)
 
virtual void setType (const elem_t &t)
 
void setType (const T2 &t)
 
const elem_t & getType () const
 
const intval_t & getType () const
 
bool typeIs (const elem_t &t) const
 
bool isComment () const
 
bool isCText () const
 
bool isUndefined () const
 
bool isSelfClosing () const
 
const std::string & getTag () const
 
virtual const std::string & getTag () const
 
const std::string & getTag () const
 
void set (const NodeXML &node)
 
void set (const elem_t &type)
 
void set (const std::string &s)
 
void set (const char *s)
 
void set (const drain::Castable &s)
 
void set (const std::initializer_list< Variable::init_pair_t > &l)
 
void set (const std::map< std::string, X > &args)
 
void set (const std::string &key, const V &value)
 
void set (const NodeXML &node)
 
void set (const intval_t &type)
 
void set (const std::string &s)
 
void set (const char *s)
 
void set (const drain::Castable &s)
 
void set (const std::initializer_list< std::pair< const char *, const Variable > > &args)
 
void set (const std::map< std::string, V > &args)
 
void set (const std::string &key, const V &value)
 
NodeXMLoperator= (const SLD::tag_t &x)
 
NodeXMLoperator= (const Castable &c)
 
NodeXMLoperator= (const std::string &s)
 
NodeXMLoperator= (const char *s)
 
NodeXMLoperator= (const std::initializer_list< std::pair< const char *, const drain::Variable > > &l)
 
NodeXMLoperator= (const NodeXML &node)
 
NodeXMLoperator= (const xml_tag_t &x)
 
NodeXMLoperator= (const Castable &c)
 
NodeXMLoperator= (const std::string &s)
 
NodeXMLoperator= (const char *s)
 
NodeXMLoperator= (const std::initializer_list< std::pair< const char *, const drain::Variable > > &l)
 
NodeXMLsetComment (const std::string &text="")
 Make this node a comment. Contained tree will not be delete. In current version, attributes will be rendered.
 
NodeXMLsetText (const S &value)
 Assign the text content of this node. If the node type is undefined, set it to CTEXT.
 
NodeXMLsetText (const char *value)
 
void setStyle (const S &value)
 
void setStyle (const std::string &value)
 
void setStyle (const char *value)
 
void setStyle (const std::string &key, const std::string &value)
 
void setStyle (const std::string &key, const std::initializer_list< V > &l)
 Set style of an element.
 
void setStyle (const std::string &key, const V &value)
 For element/class/id, assign ...
 
void setStyle (const std::initializer_list< std::pair< const char *, const drain::Variable > > &l)
 
std::ostream & toStream (std::ostream &ostr, const SLD::tag_t &tree, const std::string &defaultTag, int indent)
 XML output function shared for all XML documents, ie versions defined in subclasses.
 
std::ostream & docTypeToStream (std::ostream &ostr)
 
SLD::tag_t getNativeType () const
 
virtual std::ostream & nodeToStream (std::ostream &ostr, tag_display_mode mode=EMPTY_TAG) const
 Dumps info. Future option: outputs leading and ending tag.
 
- Public Member Functions inherited from XML
void setId ()
 Makes ID a visible attribute.
 
void setId (const std::string &s)
 Makes ID a visible attribute, with a given value.
 
template<char C = '\0', typename ... TT>
void setId (const TT &...args)
 
const std::string & getId () const
 Returns ID of this element. Hopefully a unique ID...
 
bool empty () const
 
const map_tgetAttributes () const
 
map_tgetAttributes ()
 
template<class V >
void setAttribute (const std::string &key, const V &value)
 "Final" implementation.
 
void remove (const std::string &s)
 
const drain::FlexibleVariableget (const std::string &key) const
 
drain::FlexibleVariableget (const std::string &key)
 
template<class V >
get (const std::string &key, const V &defaultValue) const
 
std::string get (const std::string &key, const char *defaultValue) const
 
template<typename ... TT>
void addClass (const TT &... args)
 Style class.
 
template<class V >
bool hasClass (const V &cls) const
 
void removeClass (const std::string &s)
 
void clearClasses ()
 
template<class T2 , class ... T3>
bool typeIs (const T2 &arg, const T3... args) const
 Return true, if type is any of the arguments.
 
bool isUndefined () const
 
bool isComment () const
 
bool isCText () const
 
bool isStyle () const
 
virtual bool isExplicit () const
 Tell if this element should always have an explicit closing tag even when empty, like <STYLE></STYLE>
 
virtual void clear ()
 Clear style, class and string data but keep the element type.
 
void reset ()
 Clear style, class and string data as well as the element type.
 
void setId ()
 Makes ID a visible attribute.
 
void setId (const std::string &s)
 Makes ID a visible attribute, with a given value.
 
template<char C = '\0', typename ... TT>
void setId (const TT &...args)
 Concatenates arguments to an id.
 
const std::string & getId () const
 Returns ID of this element. Hopefully a unique ID...
 
template<class ... T>
void setComment (const T &...args)
 Make this node a comment. Contained tree will not be deleted. In current version, attributes WILL be rendered.
 
virtual void setText (const std::string &s)
 Assign the text content of this node. If the node type is undefined, set it to CTEXT.
 
template<class ... T>
void setText (const T &...args)
 
virtual const std::string & getText () const
 
const std::string & getUrl ()
 
void setUrl (const std::string &s)
 
template<class ... T>
void setName (const T &...args)
 
virtual bool empty () const
 
const map_tgetAttributes () const
 
map_tgetAttributes ()
 
const drain::FlexibleVariableget (const std::string &key) const
 
drain::FlexibleVariableget (const std::string &key)
 
template<class V >
get (const std::string &key, const V &defaultValue) const
 
std::string get (const std::string &key, const char *defaultValue) const
 
template<class V >
void setAttribute (const std::string &key, const V &value)
 "Final" implementation.
 
void removeAttribute (const std::string &s)
 
const StyleXMLgetStyle () const
 
void setStyle (const StyleXML &s)
 
void setStyle (const std::string &value)
 
void setStyle (const char *value)
 
void setStyle (const std::string &key, const std::string &value)
 
template<class V >
void setStyle (const std::string &key, const std::initializer_list< V > &l)
 Set style of an element.
 
template<class V >
void setStyle (const std::string &key, const V &value)
 For element/class/id, assign ...
 
void setStyle (const std::initializer_list< std::pair< const char *, const drain::Variable > > &args)
 
const ClassListXMLgetClasses () const
 
template<typename ... TT>
void addClass (const TT &... args)
 
template<class V >
bool hasClass (const V &cls) const
 
void removeClass (const std::string &s)
 
void clearClasses ()
 
virtual void specificAttributesToStream (std::ostream &ostr) const
 
template<class T >
bool findById (const T &t, const std::string &id, typename T::path_t &result, const typename T::path_t &path)
 
template<class T >
bool findById (const T &t, const std::string &id, NodeXML<>::path_list_t &result, const path_t &path)
 
template<class T , class N >
bool findByTag (const T &t, const N &tag, NodeXML<>::path_list_t &result, const path_t &path)
 
template<class T , class N >
bool findByTags (const T &t, const std::set< N > &tags, NodeXML<>::path_list_t &result, const path_t &path)
 
template<class T2 , class C >
bool findByClass (const T2 &t, const C &cls, XML::path_list_t &result, const path_t &path)
 

Static Public Attributes

static const drain::FileInfo fileInfo
 
- Static Public Attributes inherited from NodeXML< SLD::tag_t >
static tag_map_t tags
 
static const xml_default_elem_map_t xml_default_elems
 
- Static Public Attributes inherited from XML
static const int UNDEFINED = 0
 
static const int COMMENT = 1
 
static const int CTEXT = 2
 
static const int STYLE = 3
 
static const int SCRIPT = 4
 
static int nextID = 0
 
static const intval_t UNDEFINED = 0
 
static const intval_t COMMENT = 1
 
static const intval_t CTEXT = 2
 
static const intval_t SCRIPT = 3
 
static const intval_t STYLE = 4
 
static const intval_t STYLE_SELECT = 5
 
static const std::map< char, std::string > encodingMap
 User may optionally filter attributes and CTEST with this using StringTools::replace(XML::encodingMap);.
 

Protected Member Functions

virtual void handleType (const SLD::tag_t &t) override final
 Write transform, in addition to XML::ClassList.
 
- Protected Member Functions inherited from NodeXML< SLD::tag_t >
NodeXML< int >::xmldoc_attrib_map_t xmldoc_attribs
 
NodeXML< int >::xmldoc_attrib_map_t xmldoc_attribs
 
- Protected Member Functions inherited from XML
bool typeIs () const
 
- Protected Member Functions inherited from ReferenceMap2< FlexibleVariable >
ref_tlink (const std::string &key, F &x)
 Associates a map entry with a variable.
 
ref_tlink (const std::string &key, void *ptr, const std::type_info &type, size_t count=1)
 Create a reference to a basic type or std::string. (Also for basetype arrays.)
 
void unlink (const std::string &key)
 
void copyStruct (const ReferenceMap2< FlexibleVariable > &m, const T2 &src, T2 &dst, extLinkPolicy policy=RESERVE)
 Experimental. Copies references and values of a structure to another.
 
- Protected Member Functions inherited from SmartMap< T >
 SmartMap (char separator='\0', char arraySeparator=':')
 
 SmartMap (const SmartMap &smap)
 
bool hasKey (const std::string &key) const
 
std::string get (const std::string &key, const std::string &defaultValue) const
 Retrieves a value, or default value if value is unset.
 
std::string get (const std::string &key, const char *defaultValue) const
 
template<class T2 >
T2 get (const std::string &key, const T2 &defaultValue) const
 Retrieves a value, if set, else returns the given default value.
 
virtual T & operator[] (const std::string &key)
 Returns an element. Creates one, conditionally.
 
virtual const T & operator[] (const std::string &key) const
 Unlike with std::map, operator[] const is defined, returning reference to a static empty instance.
 
virtual const keylist_t & getKeyList () const
 Derived versions may produce an ordered set of keys.
 
const map_t & getMap () const
 
template<class T2 >
void exportMap (std::map< std::string, T2 > &m) const
 Copies the contents to another map.
 
template<bool STRICT = true>
void importEntries (const std::string &entries, char assignmentSymbol='=', char separatorSymbol=0)
 Assigns a value to given key; if the entry does not exist, tries to create it with directly with operator[].
 
template<bool STRICT = true>
void importEntries (const std::list< std::string > &entries, char assignmentSymbol='=')
 
template<class S , bool STRICT = true>
void importMap (const std::map< std::string, S > &m)
 Assign values from a map, overriding existing entries.
 
template<class T2 , bool STRICT = true>
void importCastableMap (const drain::SmartMap< T2 > &m)
 Assign values from a map, possibly extending the map.
 
template<class T2 >
void updateFromMap (const std::map< std::string, T2 > &m)
 Assign values from a map. Updates existing entries only.
 
template<class T2 >
void updateFromCastableMap (const drain::SmartMap< T2 > &m)
 Convenience.
 
void setValues (const std::string &entries, char assignmentSymbol='=', char separatorSymbol=0)
 Sets values. If strictness==STRICTLY_CLOSED, throws exception if tries to assign a non-existing entry.
 
void setValues (const char *entries, char assignmentSymbol='=', char separatorSymbol=0)
 
template<class S >
void setValuesSEQ (const S &sequence)
 
void updateValues (const std::string &entries, char assignmentSymbol='=', char separatorSymbol=0)
 Sets applicable values ie. modifies existing entries only. In ordered maps, skips extra entries silently.
 
void getKeys (std::ostream &ostr) const
 
std::string getKeys () const
 Convenience function for std::string output.
 
void getValues (std::ostream &ostr) const
 Dumps the values.
 
std::string getValues () const
 Convenience function for std::string output.
 
std::ostream & toStream (std::ostream &ostr, char equal='=', char startChar='{', char endChar='}', char separatorChar=',') const
 Note: parameters discarded.
 
std::string toStr (char equal='=', char start=0, char end=0, char separator=0) const
 
void dump (std::ostream &ostr=std::cout) const
 Write map as a JSON code.
 

Additional Inherited Members

- Public Types inherited from NodeXML< SLD::tag_t >
typedef SLD::tag_t elem_t
 Tag type, CTEXT or COMMENT.
 
typedef NodeXML< SLD::tag_t > xml_node_t
 
typedef NodeXML< SLD::tag_t > xml_node_t
 
typedef UnorderedMultiTree< NodeXML< SLD::tag_t >, false, path_txml_tree_t
 
typedef UnorderedMultiTree< xml_node_t, false, path_txml_tree_t
 
typedef std::map< SLD::tag_t, std::string > tag_map_t
 
typedef SLD::tag_t xml_tag_t
 
typedef drain::Path< std::string,'/'> path_t
 
typedef std::map< xml_tag_t, xml_tag_t > xml_default_elem_map_t
 
- Public Types inherited from XML
enum  tag_display_mode {
  FLEXIBLE_TAG = 0 , OPENING_TAG = 1 , CLOSING_TAG = 2 , EMPTY_TAG = OPENING_TAG | CLOSING_TAG ,
  NON_EMPTY_TAG
}
 
typedef ReferenceMap2< FlexibleVariablemap_t
 
typedef drain::Path< std::string,'/'> path_t
 Tree path type.
 
typedef path_t::elem_t path_elem_t
 
typedef std::list< path_tpath_list_t
 
typedef int intval_t
 
typedef ReferenceMap2< FlexibleVariablemap_t
 
- Static Public Member Functions inherited from NodeXML< SLD::tag_t >
static const std::string & getTag (unsigned int index)
 
static const std::string & getTag (const SLD::tag_t &type)
 
static std::ostream & docToStream (std::ostream &ostr, const V &tree)
 
static std::ostream & docToStream (std::ostream &ostr, const V &tree)
 
static std::ostream & toStream (std::ostream &ostr, const V &t, const std::string &defaultTag="", int indent=0)
 "Forward definition" of Tree::toOstream
 
static std::ostream & docTypeToStream (std::ostream &ostr)
 Write the XML definition beginning any XML document.
 
static std::ostream & docTypeToStream (std::ostream &ostr)
 Write the XML definition beginning any XML document.
 
static const std::pair< key_t, NodeXML< SLD::tag_t > > & entry ()
 
- Static Public Member Functions inherited from XML
template<class V >
static void attribToStream (std::ostream &ostr, const std::string &key, const V &value)
 
static int getCount ()
 
template<class V >
static bool findById (const V &tree, const std::string &tag, typename V::path_t &result, const typename V::path_t &path=path_t())
 Find the first occurrence of given id using recursive breath-first search.
 
template<class V >
static bool findById (const V &tree, const std::string &tag, path_list_t &result, const path_t &path=path_t())
 Find the occurrence(s) of given ID using recursive breath-first search.
 
template<class V , class T >
static bool findByTag (const V &tree, const T &tag, path_list_t &result, const path_t &path=path_t())
 
template<class V , class T >
static bool findByTags (const V &tree, const std::set< T > &tags, path_list_t &result, const path_t &path=path_t())
 "Forward definition"
 
template<class T2 , class C >
static bool findByClass (const T2 &t, const C &cls, std::list< path_elem_t > &result)
 Finds child elements in an XML structure by class name.
 
template<class V , class C >
static bool findByClass (const V &t, const C &cls, path_list_t &result, const path_t &path=path_t())
 Finds elements recursively in an XML structure by class name supplied as an enumeration type.
 
static int getCount ()
 
template<class TR >
static std::ostream & toStream (std::ostream &ostr, const TR &tree, const std::string &defaultTag="ELEM", int indent=0)
 
template<class V >
static void xmlAttribToStream (std::ostream &ostr, const std::string &key, const V &value)
 
template<typename TX >
static TX & xmlAssign (TX &dst, const TX &src)
 Assign another tree structure to another.
 
template<typename TX >
static TX & xmlAssign (TX &dst, const typename TX::xml_node_t &src)
 Assign another tree structure to another.
 
template<typename X >
static X & xmlAssignNode (X &dst, const X &src)
 Assign another tree structure to another.
 
template<typename TX , typename V >
static TX & xmlAssign (TX &tree, const V &arg)
 Assign another tree structure to another.
 
template<typename TX >
static TX & xmlAssign (TX &tree, std::initializer_list< std::pair< const char *, const Variable > > l)
 Tree.
 
template<typename TX >
static TX & xmlAssignString (TX &tree, const std::string &s)
 When assigning a string, create new element unless the element itself is of type CTEXT.
 
template<typename TX >
static TX & xmlAppendString (TX &tree, const std::string &s)
 
template<typename TX >
static TX & xmlSetType (TX &tree, const typename TX::node_data_t::xml_tag_t &type)
 
template<typename T >
static T & xmlAddChild (T &tree, const std::string &key)
 
template<typename N >
static N::xml_tag_t xmlRetrieveDefaultType (const N &parentNode)
 
- Public Attributes inherited from NodeXML< SLD::tag_t >
elem_t type
 
- Public Attributes inherited from XML
std::string id
 Some general-purpose.
 
std::string ctext
 
std::string url
 
ClassListXML classList
 
StyleXML style
 
- Protected Types inherited from NodeXML< SLD::tag_t >
typedef std::map< std::string, std::string > xmldoc_attrib_map_t
 
typedef std::list< std::pair< std::string, std::string > > xmldoc_attrib_map_t
 NOTE: these could/should be templated, in TreeXML<...> right?
 
- Protected Types inherited from ReferenceMap2< FlexibleVariable >
enum  extLinkPolicy
 
typedef FlexibleVariable ref_t
 
typedef SmartMap< FlexibleVariablemap_t
 
- Protected Types inherited from SmartMap< T >
typedef SmartMap< T > smap_t
 
typedef std::map< std::string, T > map_t
 
typedef map_t::key_type key_t
 
typedef map_t::mapped_type value_t
 
typedef map_t::value_type entry_t
 
typedef std::list< std::string > keylist_t
 
typedef map_t::iterator iterator
 Needed?
 
typedef map_t::const_iterator const_iterator
 
- Protected Attributes inherited from XML
intval_t type = XML::UNDEFINED
 
- Protected Attributes inherited from SmartMap< T >
std::list< std::string > keyList
 Assigns values from std::string of type "value,value2,...valueN".
 
char separator
 Default character used for splitting input and output. See setValues.
 
char arraySeparator
 Default separator character for array elements (std::vector's)
 
- Static Protected Attributes inherited from NodeXML< SLD::tag_t >
static xmldoc_attrib_map_t xmldoc_attribs
 

Member Function Documentation

◆ handleType()

void handleType ( const SLD::tag_t &  t)
finaloverrideprotectedvirtual

Write transform, in addition to XML::ClassList.

Writes special attributes:
- class="..." as defined XMK::specificAttributesToStream()
- transform="..." geometric transformations – only if defined.

virtual void specificAttributesToStream(std::ostream & ostr) const override; Special: for TEXT and SPAN elements, links STYLE[font-size] to bbox.height?

Reimplemented from NodeXML< SLD::tag_t >.

◆ isSingular()

bool isSingular ( ) const
finaloverridevirtual

Tell if this element should always have an explicit closing tag even when empty, like <STYLE></STYLE>

Reimplemented from XML.

◆ setAttribute() [1/2]

void setAttribute ( const std::string &  key,
const char *  value 
)
overridevirtual

Set attribute value, handling units in string arguments, like in "50%" or "640px".

Needed for handling units in strings, like "50%" or "640px".

Reimplemented from XML.

◆ setAttribute() [2/2]

void setAttribute ( const std::string &  key,
const std::string &  value 
)
overridevirtual

Set attribute value, handling units in string arguments, like in "50%" or "640px".

Needed for handling units in strings, like "50%" or "640px".

Reimplemented from XML.


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