cgicc::HTMLElement Class Reference

Class representing an HTML element. More...

#include <cgicc/HTMLElement.h>

Inheritance diagram for cgicc::HTMLElement:

cgicc::MStreamable cgicc::HTMLAtomicElement< Tag > cgicc::HTMLBooleanElement< Tag > cgicc::HTMLBooleanElement< cgicc::nullTag > cgicc::comment List of all members.

Public Types

enum  EElementType { eAtomic, eBoolean }
 Possible types of HTMLElements. More...

Public Member Functions

virtual HTMLElementclone () 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.
HTMLElementoperator= (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 HTMLElementListgetEmbedded () const
 Get the HTMLElementList embedded in this element, if any.
void setEmbedded (const HTMLElementList &embedded)
 Set the HTMLElementList associated with this element.
HTMLElementadd (const HTMLElement &element)
 Add an embedded HTMLElement in this one.
HTMLElementadd (HTMLElement *element)
 Add an embedded HTMLElement in this one.
HTMLAttribute Management
Manage attributes embedded in this element

const HTMLAttributeListgetAttributes () const
 Get the attributes associated with this element.
void setAttributes (const HTMLAttributeList &attributes)
 Set the attributes associated with this element.
HTMLElementset (const std::string &name)
 Set an HTMLAttribute on this HTMLElement.
HTMLElementset (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.

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 60 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)

Enumerator:
eAtomic  Atomic element, such as hr
eBoolean  Boolean element, such as strong

Definition at line 71 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

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


Member Function Documentation

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

Parameters:
element The HTMLElement to compare to this one.
Returns:
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

Parameters:
element The HTMLElement to copy
Returns:
A reference to this

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.

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

Returns:
The data contained in this element.

Definition at line 166 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 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

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

Returns:
A pointer to a newly-allocated copy of 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

Returns:
The embedded element list.

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

Parameters:
embedded The HTMLElementList containing the HTMLElements embedded in this element.

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

Add an embedded HTMLElement in this one.

Parameters:
element A reference to an HTMLElement to embed in this one
Returns:
A reference to 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.

Parameters:
element A pointer to an HTMLElement to embed.
Returns:
A reference to this

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

Parameters:
attributes The HTMLAttributeList containing the HTMLAttributes belonging to this element.

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

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

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.

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

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

Returns:
true if data was specified in the constructor, false otherwise

Definition at line 367 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 - 2004 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 Sat Jan 19 21:16:01 2008 for cgicc by doxygen 1.5.1