SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PlainXMLFormatter Class Reference

Output formatter for plain XML output. More...

#include <PlainXMLFormatter.h>

Inheritance diagram for PlainXMLFormatter:
OutputFormatter

Public Member Functions

bool closeTag (std::ostream &into)
 Closes the most recently opened tag. More...
 
void openTag (std::ostream &into, const std::string &xmlElement)
 Opens an XML tag. More...
 
void openTag (std::ostream &into, const SumoXMLTag &xmlElement)
 Opens an XML tag. More...
 
 PlainXMLFormatter (const unsigned int defaultIndentation=0)
 Constructor. More...
 
bool writeHeader (std::ostream &into, const SumoXMLTag &rootElement)
 Writes an XML header with optional configuration. More...
 
void writePreformattedTag (std::ostream &into, const std::string &val)
 writes a preformatted tag to the device but ensures that any pending tags are closed More...
 
bool writeXMLHeader (std::ostream &into, const std::string &rootElement, const std::string &attrs="", const std::string &comment="")
 Writes an XML header with optional configuration. More...
 
virtual ~PlainXMLFormatter ()
 Destructor. More...
 

Static Public Member Functions

template<class T >
static void writeAttr (std::ostream &into, const std::string &attr, const T &val)
 writes an arbitrary attribute More...
 
template<class T >
static void writeAttr (std::ostream &into, const SumoXMLAttr attr, const T &val)
 writes a named attribute More...
 

Private Attributes

unsigned int myDefaultIndentation
 The initial indentation level. More...
 
bool myHavePendingOpener
 whether a closing ">" might be missing More...
 
std::vector< std::string > myXMLStack
 The stack of begun xml elements. More...
 

Detailed Description

Output formatter for plain XML output.

PlainXMLFormatter format XML like output into the output stream.

Definition at line 46 of file PlainXMLFormatter.h.

Constructor & Destructor Documentation

PlainXMLFormatter::PlainXMLFormatter ( const unsigned int  defaultIndentation = 0)

Constructor.

Definition at line 44 of file PlainXMLFormatter.cpp.

virtual PlainXMLFormatter::~PlainXMLFormatter ( )
inlinevirtual

Destructor.

Definition at line 53 of file PlainXMLFormatter.h.

Member Function Documentation

bool PlainXMLFormatter::closeTag ( std::ostream &  into)
virtual

Closes the most recently opened tag.

Parameters
[in]intoThe output stream to use
Returns
Whether a further element existed in the stack and could be closed
Todo:
it is not verified that the topmost element was closed

Implements OutputFormatter.

Definition at line 98 of file PlainXMLFormatter.cpp.

References myDefaultIndentation, myHavePendingOpener, and myXMLStack.

void PlainXMLFormatter::openTag ( std::ostream &  into,
const std::string &  xmlElement 
)
virtual

Opens an XML tag.

An indentation, depending on the current xml-element-stack size, is written followed by the given xml element ("<" + xmlElement) The xml element is added to the stack, then.

Parameters
[in]intoThe output stream to use
[in]xmlElementName of element to open
Returns
The OutputDevice for further processing

Implements OutputFormatter.

Definition at line 81 of file PlainXMLFormatter.cpp.

References myDefaultIndentation, myHavePendingOpener, and myXMLStack.

Referenced by openTag(), writeHeader(), and writeXMLHeader().

void PlainXMLFormatter::openTag ( std::ostream &  into,
const SumoXMLTag xmlElement 
)
virtual

Opens an XML tag.

Helper method which finds the correct string before calling openTag.

Parameters
[in]intoThe output stream to use
[in]xmlElementId of the element to open

Implements OutputFormatter.

Definition at line 92 of file PlainXMLFormatter.cpp.

References openTag(), and toString().

template<class T >
static void PlainXMLFormatter::writeAttr ( std::ostream &  into,
const std::string &  attr,
const T &  val 
)
inlinestatic

writes an arbitrary attribute

Parameters
[in]intoThe output stream to use
[in]attrThe attribute (name)
[in]valThe attribute value

Definition at line 131 of file PlainXMLFormatter.h.

References toString().

Referenced by OutputDevice::writeAttr().

template<class T >
static void PlainXMLFormatter::writeAttr ( std::ostream &  into,
const SumoXMLAttr  attr,
const T &  val 
)
inlinestatic

writes a named attribute

Parameters
[in]intoThe output stream to use
[in]attrThe attribute (name)
[in]valThe attribute value

Definition at line 143 of file PlainXMLFormatter.h.

References toString().

bool PlainXMLFormatter::writeHeader ( std::ostream &  into,
const SumoXMLTag rootElement 
)

Writes an XML header with optional configuration.

If something has been written (myXMLStack is not empty), nothing is written and false returned.

Parameters
[in]intoThe output stream to use
[in]rootElementThe root element to use

Definition at line 50 of file PlainXMLFormatter.cpp.

References OptionsCont::getOptions(), myXMLStack, openTag(), and OptionsCont::writeXMLHeader().

void PlainXMLFormatter::writePreformattedTag ( std::ostream &  into,
const std::string &  val 
)
virtual

writes a preformatted tag to the device but ensures that any pending tags are closed

Parameters
[in]intoThe output stream to use
[in]valThe preformatted data

Implements OutputFormatter.

Definition at line 115 of file PlainXMLFormatter.cpp.

References myHavePendingOpener.

bool PlainXMLFormatter::writeXMLHeader ( std::ostream &  into,
const std::string &  rootElement,
const std::string &  attrs = "",
const std::string &  comment = "" 
)
virtual

Writes an XML header with optional configuration.

If something has been written (myXMLStack is not empty), nothing is written and false returned.

Parameters
[in]intoThe output stream to use
[in]rootElementThe root element to use
[in]attrsAdditional attributes to save within the rootElement
[in]commentAdditional comment (saved in front the rootElement)
Todo:

Check which parameter is used herein

Describe what is saved

Implements OutputFormatter.

Definition at line 61 of file PlainXMLFormatter.cpp.

References OptionsCont::getOptions(), myHavePendingOpener, myXMLStack, openTag(), and OptionsCont::writeXMLHeader().

Field Documentation

unsigned int PlainXMLFormatter::myDefaultIndentation
private

The initial indentation level.

Definition at line 153 of file PlainXMLFormatter.h.

Referenced by closeTag(), and openTag().

bool PlainXMLFormatter::myHavePendingOpener
private

whether a closing ">" might be missing

Definition at line 156 of file PlainXMLFormatter.h.

Referenced by closeTag(), openTag(), writePreformattedTag(), and writeXMLHeader().

std::vector<std::string> PlainXMLFormatter::myXMLStack
private

The stack of begun xml elements.

Definition at line 150 of file PlainXMLFormatter.h.

Referenced by closeTag(), openTag(), writeHeader(), and writeXMLHeader().


The documentation for this class was generated from the following files: