#include <cgicc/HTMLElement.h>
Inheritance diagram for cgicc::HTMLElement:
Public Types | |
enum | EElementType { eAtomic, eBoolean } |
Possible types of HTMLElements. More... | |
Public Member Functions | |
virtual HTMLElement * | clone () const=0 |
Clone this HTMLElement. | |
virtual void | render (std::ostream &out) const |
Render this HTMLElement to an ostream. | |
Overloaded Operators | |
bool | operator== (const HTMLElement &element) const |
Compare two HTMLElements for equality. | |
bool | operator!= (const HTMLElement &element) const |
Compare two HTMLElements for inequality. | |
HTMLElement & | operator= (const HTMLElement &element) |
Assignment operator. | |
Accessor Methods | |
Information on the element | |
virtual const char * | getName () const=0 |
Get the name of this element. | |
std::string | getData () const |
Get the data contained in this element, if any. | |
EElementType | getType () const |
Get the type of this element. | |
Mutator Methods | |
Set properties of the element | |
void | setData (const std::string &data) |
Set the data contained in this element. | |
Embedded HTMLElement Management | |
Manage elements embedded in this one | |
const HTMLElementList * | getEmbedded () const |
Get the HTMLElementList embedded in this element, if any. | |
void | setEmbedded (const HTMLElementList &embedded) |
Set the HTMLElementList associated with this element. | |
HTMLElement & | add (const HTMLElement &element) |
Add an embedded HTMLElement in this one. | |
HTMLElement & | add (HTMLElement *element) |
Add an embedded HTMLElement in this one. | |
HTMLAttribute Management | |
Manage attributes embedded in this element | |
const HTMLAttributeList * | getAttributes () const |
Get the attributes associated with this element. | |
void | setAttributes (const HTMLAttributeList &attributes) |
Set the attributes associated with this element. | |
HTMLElement & | set (const std::string &name) |
Set an HTMLAttribute on this HTMLElement. | |
HTMLElement & | set (const std::string &name, const std::string &value) |
Set an HTMLAttribute on this HTMLElement. | |
Boolean element methods | |
Methods specific to boolean elements | |
virtual void | swapState () const |
Swap the state of the boolean element. | |
virtual bool | getState () const |
Get the state of this boolean element. | |
Protected Member Functions | |
HTMLElement (const HTMLAttributeList *attributes, const HTMLElement *embedded, const std::string *data, EElementType type) | |
Subclass constructor. | |
bool | dataSpecified () const |
For subclasses only. |
An HTML element is any entity enclosed in angle brackets (< and >) interpreted as HTML, for example a
, img
, html
, and body
.
This class is an abstract base class that defines the interface for all HTMLElement subclasses.
Definition at line 60 of file HTMLElement.h.
Possible types of HTMLElements.
An HTMLElement is either atomic, meaning it has no corresponding closing tag (elements such as hr
and br
are atomic) or boolean (elements such as a
and ol
are boolean)
Definition at line 71 of file HTMLElement.h.
cgicc::HTMLElement::HTMLElement | ( | const HTMLElement & | element | ) |
Copy constructor.
Sets the name and internal state of this element to those of element
element | The HTMLElement to copy. |
virtual cgicc::HTMLElement::~HTMLElement | ( | ) | [virtual] |
Destructor.
Delete this HTMLElement object
cgicc::HTMLElement::HTMLElement | ( | const HTMLAttributeList * | attributes, | |
const HTMLElement * | embedded, | |||
const std::string * | data, | |||
EElementType | type | |||
) | [protected] |
Subclass constructor.
This allows the subclasses to fully specify all properties
attributes | A pointer to an HTMLAttributeList containing the HTMLAttributes for this HTMLElement, if any | |
embedded | A pointer to the embedded HTMLElement, if any | |
data | A pointer to the data, if any | |
type | The type of element |
cgicc::HTMLElement::HTMLElement | ( | const HTMLElement & | element | ) |
Copy constructor.
Sets the name and internal state of this element to those of element
element | The HTMLElement to copy. |
virtual cgicc::HTMLElement::~HTMLElement | ( | ) | [virtual] |
Destructor.
Delete this HTMLElement object
bool cgicc::HTMLElement::operator== | ( | const HTMLElement & | element | ) | const |
Compare two HTMLElements for equality.
HTMLElements are equal if they have the same name
element | The HTMLElement to compare to this one. |
true
if the two HTMLElements are equal, false
otherwise. bool cgicc::HTMLElement::operator!= | ( | const HTMLElement & | element | ) | const [inline] |
Compare two HTMLElements for inequality.
HTMLElements are equal if they have the same name
element | The HTMLElement to compare to this one. |
false
if the two HTMLElements are equal, true
otherwise. Definition at line 122 of file HTMLElement.h.
HTMLElement& cgicc::HTMLElement::operator= | ( | const HTMLElement & | element | ) |
Assignment operator.
Sets the name and internal state of this element to those of element
element | The HTMLElement to copy |
this
virtual const char* cgicc::HTMLElement::getName | ( | ) | const [pure virtual] |
Get the name of this element.
For example, html
or body
.
Implemented in cgicc::HTMLAtomicElement< Tag >, cgicc::HTMLBooleanElement< Tag >, and cgicc::HTMLBooleanElement< cgicc::nullTag >.
std::string cgicc::HTMLElement::getData | ( | ) | const [inline] |
Get the data contained in this element, if any.
This is only applicable for boolean elements
Definition at line 166 of file HTMLElement.h.
EElementType cgicc::HTMLElement::getType | ( | ) | const [inline] |
Get the type of this element.
Most HTMLElements are boolean
Definition at line 176 of file HTMLElement.h.
void cgicc::HTMLElement::setData | ( | const std::string & | data | ) | [inline] |
Set the data contained in this element.
The data is the text contained between the opening and closing tags
data | The data to store in this element. |
Definition at line 194 of file HTMLElement.h.
virtual HTMLElement* cgicc::HTMLElement::clone | ( | ) | const [pure virtual] |
Clone this HTMLElement.
This performs a deep copy of the element
this
. Implemented in cgicc::HTMLAtomicElement< Tag >, cgicc::HTMLBooleanElement< Tag >, and cgicc::HTMLBooleanElement< cgicc::nullTag >.
const HTMLElementList* cgicc::HTMLElement::getEmbedded | ( | ) | const [inline] |
Get the HTMLElementList embedded in this element, if any.
If this method returns 0, no elements are embedded
Definition at line 223 of file HTMLElement.h.
void cgicc::HTMLElement::setEmbedded | ( | const HTMLElementList & | embedded | ) |
Set the HTMLElementList associated with this element.
This is usually called by subclass constructors
embedded | The HTMLElementList containing the HTMLElements embedded in this element. |
HTMLElement& cgicc::HTMLElement::add | ( | const HTMLElement & | element | ) |
Add an embedded HTMLElement in this one.
element | A reference to an HTMLElement to embed in this one |
this
HTMLElement& cgicc::HTMLElement::add | ( | HTMLElement * | element | ) |
Add an embedded HTMLElement in this one.
This element takes ownership of element
, which should not be deleted.
element | A pointer to an HTMLElement to embed. |
this
const HTMLAttributeList* cgicc::HTMLElement::getAttributes | ( | ) | const [inline] |
Get the attributes associated with this element.
If this method returns 0, no attributes are embedded
Definition at line 271 of file HTMLElement.h.
void cgicc::HTMLElement::setAttributes | ( | const HTMLAttributeList & | attributes | ) |
Set the attributes associated with this element.
This is usually called by subclass constructors
attributes | The HTMLAttributeList containing the HTMLAttributes belonging to this element. |
HTMLElement& cgicc::HTMLElement::set | ( | const std::string & | name | ) |
Set an HTMLAttribute on this HTMLElement.
name | The name of the HTMLAttribute to set |
this
HTMLElement& cgicc::HTMLElement::set | ( | const std::string & | name, | |
const std::string & | value | |||
) |
Set an HTMLAttribute on this HTMLElement.
name | The name of the HTMLAttribute | |
value | The value of the HTMLAttribute |
this
virtual void cgicc::HTMLElement::swapState | ( | ) | const [inline, virtual] |
Swap the state of the boolean element.
A state of true
means the element is active
Reimplemented in cgicc::HTMLBooleanElement< Tag >, and cgicc::HTMLBooleanElement< cgicc::nullTag >.
Definition at line 320 of file HTMLElement.h.
virtual bool cgicc::HTMLElement::getState | ( | ) | const [inline, virtual] |
Get the state of this boolean element.
true
if the element is active, false
otherwise Reimplemented in cgicc::HTMLBooleanElement< Tag >, and cgicc::HTMLBooleanElement< cgicc::nullTag >.
Definition at line 330 of file HTMLElement.h.
virtual void cgicc::HTMLElement::render | ( | std::ostream & | out | ) | const [virtual] |
Render this HTMLElement to an ostream.
This is used for output
out | The ostream to which to write |
Implements cgicc::MStreamable.
bool cgicc::HTMLElement::dataSpecified | ( | ) | const [inline, protected] |
For subclasses only.
Returns true
if data was specified in the constructor.
true
if data was specified in the constructor, false
otherwise Definition at line 367 of file HTMLElement.h.