InnerTemplateListImpl Class Reference

Provides the internal data structure of a linked list for InnerTemplates and flushes out the methods of adding and getting from the data structure for convience. More...

#include <InnerTemplateListImpl.h>

Inheritance diagram for InnerTemplateListImpl:

InnerTemplate InnerCategory InnerTopic InnerAIML Tag Formal Gender Gossip Learn Li LowerCase NonImplemented Person Person2 Sentence Set Srai System Think UpperCase List of all members.

Public Member Functions

virtual void add (const shared_ptr< InnerTemplate > &tag) throw (InternalProgrammerErrorException &)
 Adds the tag to the end of the internal linked list.
virtual void addCharacters (const StringPimpl &characters) throw (InternalProgrammerErrorException &)
 Creates a PlainWord object, adds the input characters to it and then calls InnerTemplateListImpl::add() with the PlainWord object.
virtual StringPimpl getString () const throw (InternalProgrammerErrorException &)
 Iterates through the internal linked list, calls InnerTemplate::getString() on each tag, appends the output from each and then returns it.
 InnerTemplateListImpl () throw (InternalProgrammerErrorException &)
 Default constructor to initalize the private implementation (m_pimpl) data.
virtual ~InnerTemplateListImpl ()
 Default virtual destructor.

Private Attributes

shared_ptr< InnerTemplateListImplImpl > m_pimpl
 The private implementation in which you cannot get access to.

Detailed Description

Provides the internal data structure of a linked list for InnerTemplates and flushes out the methods of adding and getting from the data structure for convience.

This convience class is for other InnerTemplate Tags to inherit from if they want to use a linked list for their internal data structure. If your InnerTemplate Tag inherits from this class it will not have to necessarily flush out InnerTemplate::add() or InnerTemplate::addCharacters() and can call InnerTemplateListImpl::getString() to get the string from within the data structure.


Constructor & Destructor Documentation

InnerTemplateListImpl  )  throw (InternalProgrammerErrorException &)
 

Default constructor to initalize the private implementation (m_pimpl) data.

Exceptions:
InternalProgrammerErrorException is thrown only if the error is so grave that the entire AIML engine has to be shut down.

virtual ~InnerTemplateListImpl  )  [virtual]
 

Default virtual destructor.

Destroys the private implementation (m_pimpl) data.


Member Function Documentation

virtual void add const shared_ptr< InnerTemplate > &  tag  )  throw (InternalProgrammerErrorException &) [virtual]
 

Adds the tag to the end of the internal linked list.

Parameters:
tag The tag to add to the internal linked list.
Exceptions:
InternalProgrammerErrorException is thrown only if the error is so grave that the entire AIML engine has to be shut down.

Reimplemented from InnerTemplate.

virtual void addCharacters const StringPimpl characters  )  throw (InternalProgrammerErrorException &) [virtual]
 

Creates a PlainWord object, adds the input characters to it and then calls InnerTemplateListImpl::add() with the PlainWord object.

Parameters:
characters The characters that will be put into a PlainWord object and added by calling Template::add()
Exceptions:
InternalProgrammerErrorException is thrown only if the error is so grave that the entire AIML engine has to be shut down.

Reimplemented from Tag.

Reimplemented in Gender, Person, and Person2.

virtual StringPimpl getString  )  const throw (InternalProgrammerErrorException &) [virtual]
 

Iterates through the internal linked list, calls InnerTemplate::getString() on each tag, appends the output from each and then returns it.

This is sometimes used by InnerTemplate Tags to get the string representation of the InnerTemplate Tags that are inside of them. They then conduct their Tag transformation on it and returns that as their return value.

Returns:
The appended text from every InnerTemplate object in the linked list.
Exceptions:
InternalProgrammerErrorException is thrown only if the error is so grave that the entire AIML engine has to be shut down.

Reimplemented from InnerTemplate.

Reimplemented in Formal, Gender, Gossip, Learn, LowerCase, Person, Person2, Sentence, Set, Srai, System, Think, and UpperCase.


Member Data Documentation

shared_ptr<InnerTemplateListImplImpl> m_pimpl [private]
 

The private implementation in which you cannot get access to.

This shared_ptr holds the private methods and private member variables of this class. This makes ABI (Application Binary Interface) more resilient to change. See the private implementation idiom on the internet for more information about this.

Reimplemented from InnerTemplate.

Reimplemented in Formal, Gender, Gossip, Learn, Li, LowerCase, NonImplemented, Person, Person2, Sentence, Set, Srai, System, Think, and UpperCase.


The documentation for this class was generated from the following file:
Generated on Thu Sep 7 22:05:46 2006 for RebeccaAIML by  doxygen 1.4.5