Main Page Namespace List Class Hierarchy Compound List File List Namespace Members Compound Members File Members Related Pages

# cgicc::HTMLElement Class Reference

Class representing an HTML element. More...

Inheritance diagram for cgicc::HTMLElement::

List of all members.

## Public Types
enum | EElementType { eAtomic, eBoolean }
| Possible types of HTMLElements. More...
## Public Methods
virtual HTMLElement * | clone () const=0
| Clone this HTMLElement. More...
virtual void | render (std::ostream &out) const
| Render this HTMLElement to an ostream. More...
Constructors and Destructor
| HTMLElement (const HTMLElement &element)
| Copy constructor. More...
virtual | ~HTMLElement ()
| Destructor. More...
Overloaded Operators
bool | operator== (const HTMLElement &element) const
| Compare two HTMLElements for equality. More...
bool | operator!= (const HTMLElement &element) const
| Compare two HTMLElements for inequality. More...
HTMLElement & | operator= (const HTMLElement &element)
| Assignment operator. More...
Accessor Methods
Information on the element
virtual const char * | getName () const=0
| Get the name of this element. More...
std::string | getData () const
| Get the data contained in this element, if any. More...
EElementType | getType () const
| Get the type of this element. More...
Mutator Methods
Set properties of the element
void | setData (const std::string &data)
| Set the data contained in this element. More...
Embedded HTMLElement Management
Manage elements embedded in this one
const HTMLElementList * | getEmbedded () const
| Get the HTMLElementList embedded in this element, if any. More...
void | setEmbedded (const HTMLElementList &embedded)
| Set the HTMLElementList associated with this element. More...
HTMLElement & | add (const HTMLElement &element)
| Add an embedded HTMLElement in this one. More...
HTMLElement & | add (HTMLElement *element)
| Add an embedded HTMLElement in this one. More...
HTMLAttribute Management
Manage attributes embedded in this element
const HTMLAttributeList * | getAttributes () const
| Get the attributes associated with this element. More...
void | setAttributes (const HTMLAttributeList &attributes)
| Set the attributes associated with this element. More...
HTMLElement & | set (const std::string &name)
| Set an HTMLAttribute on this HTMLElement. More...
HTMLElement & | set (const std::string &name, const std::string &value)
| Set an HTMLAttribute on this HTMLElement. More...
Boolean element methods
Methods specific to boolean elements
virtual void | swapState () const
| Swap the state of the boolean element. More...
virtual bool | getState () const
| Get the state of this boolean element. More...
## Protected Methods
| HTMLElement (const HTMLAttributeList *attributes, const HTMLElement *embedded, const std::string *data, EElementType type)
| Subclass constructor. More...
bool | dataSpecified () const
| For subclasses only. More...

## Detailed Description

Class representing an HTML element.

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 58 of file HTMLElement.h.

## Member Enumeration Documentation

enum cgicc::HTMLElement::EElementType

  | 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) Enumeration values:
  eAtomic | Atomic element, such as `hr`
  eBoolean | Boolean element, such as `strong`
Definition at line 69 of file HTMLElement.h.

## Constructor & Destructor Documentation

cgicc::HTMLElement::HTMLElement | ( | const HTMLElement & | element | ) |

  | Copy constructor. Sets the name and internal state of this element to those of `element` Parameters:
  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 Parameters:
  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

## Member Function Documentation

HTMLElement& cgicc::HTMLElement::add | ( | HTMLElement * | element | ) |

  | Add an embedded HTMLElement in this one. This element takes ownership of `element`, which should not be deleted. Parameters:
  A | pointer to an HTMLElement to embed.
Returns: A reference to `this`

HTMLElement& cgicc::HTMLElement::add | ( | const HTMLElement & | element | ) |

  | Add an embedded HTMLElement in this one. Parameters:
  A | reference to an HTMLElement to embed in this one
Returns: A reference to `this`

virtual HTMLElement* cgicc::HTMLElement::clone | ( |  | ) | const`[pure virtual]`

| Clone this HTMLElement. This performs a deep copy of the element Returns: A pointer to a newly-allocated copy of `this`. Reimplemented in cgicc::HTMLAtomicElement, cgicc::HTMLBooleanElement, and cgicc::HTMLBooleanElement< nullTag >.

bool cgicc::HTMLElement::dataSpecified | ( |  | ) | const`[inline, protected]`

| For subclasses only. Returns `true` if data was specified in the constructor. Returns: `true` if data was specified in the constructor, \false otherwise Definition at line 365 of file HTMLElement.h.

const HTMLAttributeList* cgicc::HTMLElement::getAttributes | ( |  | ) | const`[inline]`

| Get the attributes associated with this element. If this method returns 0, no attributes are embedded Returns: The attribute list. Definition at line 269 of file HTMLElement.h.

std:: string cgicc::HTMLElement::getData | ( |  | ) | const`[inline]`

| Get the data contained in this element, if any. This is only applicable for boolean elements Returns: The data contained in this element. Definition at line 164 of file HTMLElement.h.

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 Returns: The embedded element list. Definition at line 221 of file HTMLElement.h.

virtual const char* cgicc::HTMLElement::getName | ( |  | ) | const`[pure virtual]`

| Get the name of this element. For example, `html` or `body`. Returns: The name of this element. Reimplemented in cgicc::HTMLAtomicElement, cgicc::HTMLBooleanElement, and cgicc::HTMLBooleanElement< nullTag >.

virtual bool cgicc::HTMLElement::getState | ( |  | ) | const`[inline, virtual]`

| Get the state of this boolean element. Returns: `true` if the element is active, `false` otherwise Reimplemented in cgicc::HTMLBooleanElement, and cgicc::HTMLBooleanElement< nullTag >. Definition at line 328 of file HTMLElement.h.

EElementType cgicc::HTMLElement::getType | ( |  | ) | const`[inline]`

| Get the type of this element. Most HTMLElements are boolean Returns: The type of this element Definition at line 174 of file HTMLElement.h.

bool cgicc::HTMLElement::operator!= | ( | const HTMLElement & | element | ) | const`[inline]`

  | Compare two HTMLElements for inequality. HTMLElements are equal if they have the same name Parameters:
  element | The HTMLElement to compare to this one.
Returns: `false` if the two HTMLElements are equal, `true` otherwise. Definition at line 120 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` Parameters:
  element | The HTMLElement to copy
Returns: A reference to `this`

bool cgicc::HTMLElement::operator== | ( | const HTMLElement & | element | ) | const

  | Compare two HTMLElements for equality. HTMLElements are equal if they have the same name Parameters:
  element | The HTMLElement to compare to this one.
Returns: `true` if the two HTMLElements are equal, \cfalse otherwise.

virtual void cgicc::HTMLElement::render | ( | std::ostream & | out | ) | const`[virtual]`

  | Render this HTMLElement to an ostream. This is used for output Parameters:
  out | The ostream to which to write
Reimplemented from cgicc::MStreamable.

HTMLElement& cgicc::HTMLElement::set | ( | const std::string & | name,
|  | const std::string & | value
| ) |

  | Set an HTMLAttribute on this HTMLElement. Parameters:
  name | The name of the HTMLAttribute
  value | The value of the HTMLAttribute
Returns: A reference to `this`

HTMLElement& cgicc::HTMLElement::set | ( | const std::string & | name | ) |

  | Set an HTMLAttribute on this HTMLElement. Parameters:
  name | The name of the HTMLAttribute to set
Returns: A reference to `this`

void cgicc::HTMLElement::setAttributes | ( | const HTMLAttributeList & | attributes | ) |

  | Set the attributes associated with this element. This is usually called by subclass constructors Parameters:
  attributes | The HTMLAttributeList containing the HTMLAttributes belonging to this element.

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 Parameters:
  data | The data to store in this element.
Definition at line 192 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 Parameters:
  elements | The HTMLElementList containing the HTMLElements embedded in this element.

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, and cgicc::HTMLBooleanElement< nullTag >. Definition at line 318 of file HTMLElement.h.

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

- HTMLElement.h