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

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

Constructors and Destructor
 HTMLElement (const HTMLElement &element)
 Copy constructor.

virtual ~HTMLElement ()
 Destructor.

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

Implemented in cgicc::HTMLAtomicElement< Tag >, cgicc::HTMLBooleanElement< Tag >, 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.

Implemented in cgicc::HTMLAtomicElement< Tag >, cgicc::HTMLBooleanElement< Tag >, 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< Tag >, 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, false 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

Implements 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:
embedded 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< Tag >, 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 - 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 Jun 19 00:36:24 2004 for cgicc by doxygen 1.3.6