#include <Template.h>
Inheritance diagram for Template:
Public Member Functions | |
virtual void | add (const shared_ptr< InnerTemplate > &tag) throw (InternalProgrammerErrorException &) |
Adds the tag to an internal data structure. | |
virtual void | addCharacters (const StringPimpl &characters) throw (InternalProgrammerErrorException &) |
Creates a PlainWord object, adds the input characters to it and then calls Template::add() with the PlainWord object. | |
virtual StringPimpl | getString () const throw (InternalProgrammerErrorException &) |
Iterates through the internal data structure and calls InnerTemplate::getString() on each element appending the output from each call and then returning the appended output. | |
virtual void | handleInnerTag (const shared_ptr< Tag > &tag) throw (InternalProgrammerErrorException &) |
Calls Template::add() to add the tag to an internal data structure if it's a InnerTemplate otherwise it throws a rebecca::impl::InternalProgrammerErrorException. | |
Template () throw (InternalProgrammerErrorException &) | |
Default constructor to initalize the private implementation (m_pimpl) data. | |
virtual | ~Template () |
Default virtual destructor. | |
Private Attributes | |
shared_ptr< TemplateImpl > | m_pimpl |
The private implementation in which you cannot get access to. |
Every time a XML Tag of AIML is encountered, an instance of this class will be created. All text inbetween the begin and end tag, all attributes, and all inner Tags will go through methods of this class.
|
Default constructor to initalize the private implementation (m_pimpl) data.
|
|
Default virtual destructor. Destroys the private implementation (m_pimpl) data. |
|
Adds the tag to an internal data structure. This method goes hand-in-hand with Template::getString(). This adds the InnerTemplate Tag to the data structure. Template::getString() retrieves the template's string from the data structure. The internal data stucture is usually a linked list or vector of InnerTemplate. Each new tag is added to the end of the data structure.
|
|
Creates a PlainWord object, adds the input characters to it and then calls Template::add() with the PlainWord object. Characters are usually intermingled with other InnerTemplate Tags. For Template::getString() to work, a PlainWord is created for each intermingled set of characters and added as an object among the other InnerTemplate objects in the internal data structure. Here is a simple example of intermingled characters, <template>Hi, <formal>frank</formal> how are you</template> When this example occurs, a PlainWord object for "Hi,", and "how are you" will be created. Once added through this method and the other objects are added through Template::handleInnerTag(), the internal data structure would look something like: PlainWord -> Formal -> PlainWord
Reimplemented from Tag. |
|
Iterates through the internal data structure and calls InnerTemplate::getString() on each element appending the output from each call and then returning the appended output. The internal data stucture is usually a linked list or vector of InnerTemplate. This method of is usually what the internal NodeMapper calls to get the response from the AIML engine after it does path matching on user input.
Implements InnerCategory. |
|
Calls Template::add() to add the tag to an internal data structure if it's a InnerTemplate otherwise it throws a rebecca::impl::InternalProgrammerErrorException. Using Tag::instanceOf() it first checks to ensure that the Tag is an instance of InnerTemplate. Otherwise it throws rebecca::impl::InternalProgrammerErrorException. After it verifies it is an instance of InnerTemplate it calls Template::add() to add it to the internal data structure. The internal data stucture is usually a linked list or vector of InnerTemplate. Each new tag is added to the end of the data structure.
Reimplemented from Tag. |
|
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 InnerCategory. |