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::

cgicc::MStreamable cgicc::HTMLAtomicElement cgicc::HTMLBooleanElement cgicc::HTMLBooleanElement< nullTag > cgicc::comment 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 HTMLElementListgetEmbedded () 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 HTMLAttributeListgetAttributes () 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:
GNU cgicc - A C++ class library for writing CGI applications
Copyright © 1996 - 2002 Stephen F. Booth
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front Cover Texts, and with no Back-Cover Texts.
Documentation generated Sun Mar 17 16:40:58 2002 for cgicc by doxygen 1.2.13.1