Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
PCLoaderXML Class Reference

A reader for polygons and pois stored in XML-format. More...

#include <PCLoaderXML.h>

Inheritance diagram for PCLoaderXML:
[legend]
Collaboration diagram for PCLoaderXML:
[legend]

Public Member Functions

void characters (const XMLCh *const chars, const XERCES3_SIZE_t length)
 The inherited method called when characters occurred.
void endElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname)
 The inherited method called when a tag is being closed.
const std::string & getFileName () const
 returns the current file name
Position getLanePos (const std::string &poiID, const std::string &laneID, double lanePos, bool friendlyPos, double lanePosLat)
 get position for a given laneID (Has to be implemented in all child)
void registerParent (const int tag, GenericSAXHandler *handler)
 Assigning a parent handler which is enabled when the specified tag is closed.
void setFileName (const std::string &name)
 Sets the current file name.
void startElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const XERCES_CPP_NAMESPACE::Attributes &attrs)
 The inherited method called when a new tag opens.

Static Public Member Functions

static bool loadFiles (const std::vector< std::string > &files, ShapeHandler &sh)
 loads all of the given files
static void loadIfSet (OptionsCont &oc, PCPolyContainer &toFill, PCTypeMap &tm)
 Loads pois/polygons assumed to be stored as XML.

Protected Member Functions

 PCLoaderXML (PCPolyContainer &toFill, PCTypeMap &tm, OptionsCont &oc)
 Constructor.
 ~PCLoaderXML ()
 Destructor.

inherited from GenericSAXHandler

PCTypeMapmyTypeMap
 The type map to use.
OptionsContmyOptions
 Settings to use.
virtual void myStartElement (int element, const SUMOSAXAttributes &attrs)
 Called on the opening of a tag;.

attributes parsing

AttrMap myPredefinedTags
std::vector< std::string > myPredefinedTagsMML
 the map from ids to their string representation
typedef std::vector< XMLCh * > AttrMap

elements parsing

TagMap myTagMap
std::vector< std::string > myCharactersVector
 A list of character strings obtained so far to build the complete characters string at the end.
GenericSAXHandlermyParentHandler
 The handler to give control back to.
int myParentIndicator
 The tag indicating that control should be given back.
std::string myFileName
 The name of the currently parsed file.
std::string myExpectedRoot
 The root element to expect, empty string disables the check.
bool myCollectCharacterData = false
 whether the reader should collect character data
bool myRootSeen = false
 whether the reader has already seen the root element
int mySection = -1
 The tag indicating the current section to parse.
bool mySectionSeen = false
 whether the reader has already seen the begin of the section
bool mySectionEnded = false
 whether the reader has already seen the end of the section
bool mySectionOpen = false
 whether an element of the current section is open
std::pair< int, SUMOSAXAttributes * > myNextSectionStart
typedef std::map< std::string, int > TagMap

SAX ErrorHandler callbacks

void warning (const XERCES_CPP_NAMESPACE::SAXParseException &exception)
 Handler for XML-warnings.
void error (const XERCES_CPP_NAMESPACE::SAXParseException &exception)
 Handler for XML-errors.
void fatalError (const XERCES_CPP_NAMESPACE::SAXParseException &exception)
 Handler for XML-errors.
void setSection (const int element, const bool seen)
bool sectionFinished () const
std::pair< int, SUMOSAXAttributes * > retrieveNextSectionStart ()
void needsCharacterData (const bool value=true)
std::string buildErrorMessage (const XERCES_CPP_NAMESPACE::SAXParseException &exception)
 Builds an error message.
virtual void myCharacters (int element, const std::string &chars)
 Callback method for characters to implement by derived classes.
void callParentEnd (int element)
 signal endElement to the parent handler (special case for MSCalibrator)
XMLCh * convert (const std::string &name) const
 converts from c++-string into unicode
int convertTag (const std::string &tag) const
 Converts a tag from its string into its numerical representation.

inherited from GenericSAXHandler

virtual void myEndElement (int element)
 Called when a closing tag occurs.
virtual bool addLanePosParams ()
 Whether some input attributes shall be automatically added as params (Can be implemented in all child).
void setDefaults (const std::string &prefix, const RGBColor &color, const std::string &icon, const double layer, const bool fill=false)
 set default values
void addPOI (const SUMOSAXAttributes &attrs, const bool ignorePruning, const bool useProcessing)
 adds a POI
void addPoly (const SUMOSAXAttributes &attrs, const bool ignorePruning, const bool useProcessing)
 adds a polygon
ParameterisedgetLastParameterised () const
 get last parameterised object
ShapeContainermyShapeContainer
 reference to shape container in which all Shares are being added
std::string myPrefix
 The prefix to use.
RGBColor myDefaultColor
 The default color to use.
std::string myDefaultIcon
 The default icon to use.
double myDefaultLayer
 The default layer to use.
bool myDefaultFill
 Information whether polygons should be filled.
ParameterisedmyLastParameterised
 element to receive parameters
const GeoConvHelpermyGeoConvHelper
 geo-conversion to use during loading

Detailed Description

A reader for polygons and pois stored in XML-format.

Reads pois stored as XML definition. The definitions must match the format POLYCONVERT generates.

Definition at line 48 of file PCLoaderXML.h.

Member Typedef Documentation

◆ AttrMap

typedef std::vector<XMLCh*> GenericSAXHandler::AttrMap
privateinherited

Definition at line 303 of file GenericSAXHandler.h.

◆ TagMap

typedef std::map<std::string, int> GenericSAXHandler::TagMap
privateinherited

Definition at line 317 of file GenericSAXHandler.h.

Constructor & Destructor Documentation

◆ PCLoaderXML()

PCLoaderXML::PCLoaderXML ( PCPolyContainer & toFill,
PCTypeMap & tm,
OptionsCont & oc )
protected

Constructor.

Parameters
[in]toFillThe poly/pois container to add loaded polys/pois to
[in]tmThe type map to use for setting values of loaded polys/pois
[in]ocThe options container to get further options from

Definition at line 78 of file PCLoaderXML.cpp.

References myOptions, myTypeMap, and ShapeHandler::ShapeHandler().

Referenced by loadIfSet().

Here is the caller graph for this function:

◆ ~PCLoaderXML()

PCLoaderXML::~PCLoaderXML ( )
protected

Destructor.

Definition at line 84 of file PCLoaderXML.cpp.

Member Function Documentation

◆ addLanePosParams()

bool ShapeHandler::addLanePosParams ( )
protectedvirtualinherited

Whether some input attributes shall be automatically added as params (Can be implemented in all child).

Reimplemented in NIXMLShapeHandler, and NLShapeHandler.

Definition at line 306 of file ShapeHandler.cpp.

Referenced by addPOI().

Here is the caller graph for this function:

◆ addPOI()

void ShapeHandler::addPOI ( const SUMOSAXAttributes & attrs,
const bool ignorePruning,
const bool useProcessing )
protectedinherited

◆ addPoly()

◆ buildErrorMessage()

std::string GenericSAXHandler::buildErrorMessage ( const XERCES_CPP_NAMESPACE::SAXParseException & exception)
protectedinherited

Builds an error message.

The error message includes the file name and the line/column information as supported by the given SAXParseException

Parameters
[in]exceptionThe name of the currently processed file
Returns
A string describing the given exception

Definition at line 205 of file GenericSAXHandler.cpp.

References getFileName(), and TL.

Referenced by error(), fatalError(), and warning().

Here is the caller graph for this function:

◆ callParentEnd()

void GenericSAXHandler::callParentEnd ( int element)
protectedinherited

signal endElement to the parent handler (special case for MSCalibrator)

Definition at line 247 of file GenericSAXHandler.cpp.

References myParentHandler.

Referenced by MSCalibrator::myEndElement().

Here is the caller graph for this function:

◆ characters()

void GenericSAXHandler::characters ( const XMLCh *const chars,
const XERCES3_SIZE_t length )
inherited

The inherited method called when characters occurred.

The retrieved characters are converted into a string and appended into a private buffer. They are reported as soon as the element ends.

Todo

recheck/describe what happens with characters when a new element is opened

describe characters processing in the class' head

Definition at line 186 of file GenericSAXHandler.cpp.

References myCharactersVector, myCollectCharacterData, and StringUtils::transcode().

◆ convert()

XMLCh * GenericSAXHandler::convert ( const std::string & name) const
privateinherited

converts from c++-string into unicode

Todo
recheck encoding
Parameters
[in]nameThe string to convert
Returns
The string converted into a XMLCh-string

Definition at line 86 of file GenericSAXHandler.cpp.

Referenced by GenericSAXHandler().

Here is the caller graph for this function:

◆ convertTag()

int GenericSAXHandler::convertTag ( const std::string & tag) const
privateinherited

Converts a tag from its string into its numerical representation.

Returns the enum-representation stored for the given tag. If the tag is not known, SUMO_TAG_NOTHING is returned.

Parameters
[in]tagThe string to convert
Returns
The int-value that represents the string, SUMO_TAG_NOTHING if the named attribute is not known

Definition at line 195 of file GenericSAXHandler.cpp.

References myTagMap, and SUMO_TAG_NOTHING.

Referenced by endElement(), and startElement().

Here is the caller graph for this function:

◆ endElement()

void GenericSAXHandler::endElement ( const XMLCh *const uri,
const XMLCh *const localname,
const XMLCh *const qname )
inherited

The inherited method called when a tag is being closed.

This method calls the user-implemented methods myCharacters with the previously collected and converted characters.

Then, myEndElement is called, supplying it the qname converted to its enum- and string-representations.

Todo

recheck/describe encoding of the string-representation

do not generate and report the string-representation

Definition at line 134 of file GenericSAXHandler.cpp.

References convertTag(), myCharacters(), myCharactersVector, myEndElement(), myParentHandler, myParentIndicator, mySection, mySectionOpen, XMLSubSys::setHandler(), SUMO_TAG_INCLUDE, SUMO_TAG_NOTHING, and StringUtils::transcode().

◆ error()

void GenericSAXHandler::error ( const XERCES_CPP_NAMESPACE::SAXParseException & exception)
inherited

Handler for XML-errors.

The message is built using buildErrorMessage and thrown within a ProcessError.

Parameters
[in]exceptionThe occurred exception to process
Exceptions
ProcessErrorOn any call

Definition at line 224 of file GenericSAXHandler.cpp.

References buildErrorMessage().

Referenced by MSRouteHandler::addFlowTransportable(), MSRouteHandler::addTransportable(), MSRouteHandler::closeTransportable(), NIImporter_OpenDrive::geomFromSpiral(), and MSRouteHandler::interpretDepartPosLat().

Here is the caller graph for this function:

◆ fatalError()

void GenericSAXHandler::fatalError ( const XERCES_CPP_NAMESPACE::SAXParseException & exception)
inherited

Handler for XML-errors.

The message is built using buildErrorMessage and thrown within a ProcessError.

Exceptions
ProcessErrorOn any call
Parameters
[in]exceptionThe occurred exception to process

Definition at line 230 of file GenericSAXHandler.cpp.

References buildErrorMessage().

◆ getFileName()

◆ getLanePos()

Position PCLoaderXML::getLanePos ( const std::string & poiID,
const std::string & laneID,
double lanePos,
bool friendlyPos,
double lanePosLat )
virtual

get position for a given laneID (Has to be implemented in all child)

Implements ShapeHandler.

Definition at line 122 of file PCLoaderXML.cpp.

References Position::INVALID, and ShapeHandler::myShapeContainer.

◆ getLastParameterised()

Parameterised * ShapeHandler::getLastParameterised ( ) const
protectedinherited

get last parameterised object

Definition at line 278 of file ShapeHandler.cpp.

References myLastParameterised.

◆ loadFiles()

bool ShapeHandler::loadFiles ( const std::vector< std::string > & files,
ShapeHandler & sh )
staticinherited

loads all of the given files

Definition at line 284 of file ShapeHandler.cpp.

References XMLSubSys::runParser(), ShapeHandler(), TL, and WRITE_MESSAGEF.

Referenced by NLBuilder::build().

Here is the caller graph for this function:

◆ loadIfSet()

void PCLoaderXML::loadIfSet ( OptionsCont & oc,
PCPolyContainer & toFill,
PCTypeMap & tm )
static

Loads pois/polygons assumed to be stored as XML.

If the option "xml" is set within the given options container, an instance of PCLoaderXML is built and used as a handler for the files given in this option.

Parameters
[in]ocThe options container to get further options from
[in]toFillThe poly/pois container to add loaded polys/pois to
[in]tmThe type map to use for setting values of loaded polys/pois
Exceptions
ProcessErrorif something fails

Definition at line 53 of file PCLoaderXML.cpp.

References OptionsCont::getStringVector(), FileHelpers::isReadable(), OptionsCont::isSet(), PCLoaderXML(), PROGRESS_BEGIN_TIME_MESSAGE, PROGRESS_TIME_MESSAGE, XMLSubSys::runParser(), and TLF.

Referenced by main().

Here is the caller graph for this function:

◆ myCharacters()

void GenericSAXHandler::myCharacters ( int element,
const std::string & chars )
protectedvirtualinherited

Callback method for characters to implement by derived classes.

Called by "endElement" (see there).

Parameters
[in]elementThe opened element, given as a int
[in]charsThe complete embedded character string @exceptions ProcessError These method may throw a ProcessError if something fails

Reimplemented in NIImporter_ITSUMO::Handler, and NIImporter_OpenDrive.

Definition at line 240 of file GenericSAXHandler.cpp.

Referenced by endElement().

Here is the caller graph for this function:

◆ myEndElement()

void ShapeHandler::myEndElement ( int element)
protectedvirtualinherited

Called when a closing tag occurs.

Parameters
[in]elementID of the currently opened element
Exceptions
ProcessErrorIf something fails
See also
GenericSAXHandler::myEndElement
Todo
Refactor/describe

Reimplemented from GenericSAXHandler.

Definition at line 104 of file ShapeHandler.cpp.

References myLastParameterised, and SUMO_TAG_PARAM.

◆ myStartElement()

void PCLoaderXML::myStartElement ( int element,
const SUMOSAXAttributes & attrs )
protectedvirtual

◆ needsCharacterData()

void GenericSAXHandler::needsCharacterData ( const bool value = true)
inlineinherited

Definition at line 220 of file GenericSAXHandler.h.

References invalid_return< std::string >::value, and myCollectCharacterData.

Referenced by NIImporter_ITSUMO::loadNetwork(), NIImporter_OpenDrive::loadNetwork(), and NIImporter_OpenDrive::myCharacters().

Here is the caller graph for this function:

◆ registerParent()

void GenericSAXHandler::registerParent ( const int tag,
GenericSAXHandler * handler )
inherited

Assigning a parent handler which is enabled when the specified tag is closed.

Definition at line 178 of file GenericSAXHandler.cpp.

References GenericSAXHandler(), myParentHandler, myParentIndicator, and XMLSubSys::setHandler().

Referenced by NLTriggerBuilder::parseAndBuildCalibrator(), NLTriggerBuilder::parseAndBuildLaneSpeedTrigger(), and NLTriggerBuilder::parseAndBuildRerouter().

Here is the caller graph for this function:

◆ retrieveNextSectionStart()

std::pair< int, SUMOSAXAttributes * > GenericSAXHandler::retrieveNextSectionStart ( )
inlineinherited

Definition at line 213 of file GenericSAXHandler.h.

References myNextSectionStart.

◆ sectionFinished()

bool GenericSAXHandler::sectionFinished ( ) const
inlineinherited

Definition at line 209 of file GenericSAXHandler.h.

References mySectionEnded.

◆ setDefaults()

void ShapeHandler::setDefaults ( const std::string & prefix,
const RGBColor & color,
const std::string & icon,
const double layer,
const bool fill = false )
protectedinherited

set default values

Definition at line 296 of file ShapeHandler.cpp.

References myDefaultColor, myDefaultFill, myDefaultIcon, myDefaultLayer, and myPrefix.

Referenced by PCLoaderXML::myStartElement().

Here is the caller graph for this function:

◆ setFileName()

void GenericSAXHandler::setFileName ( const std::string & name)
inherited

Sets the current file name.

Parameters
[in]nameThe name of the currently processed file
Todo
Hmmm - this is as unsafe as having a direct access to the variable; recheck

Definition at line 74 of file GenericSAXHandler.cpp.

References myFileName.

Referenced by NIImporter_SUMO::_loadNetwork(), MSStateHandler::MSStateTimeHandler::getTime(), GUISettingsHandler::GUISettingsHandler(), NIImporter_OpenStreetMap::load(), NIImporter_Vissim::load(), NITypeLoader::load(), PCNetProjectionLoader::load(), loadNet(), ROLoader::loadNet(), NIImporter_ITSUMO::loadNetwork(), NIImporter_MATSim::loadNetwork(), NIImporter_OpenDrive::loadNetwork(), main(), and XMLSubSys::runParser().

Here is the caller graph for this function:

◆ setSection()

void GenericSAXHandler::setSection ( const int element,
const bool seen )
inlineinherited

Definition at line 202 of file GenericSAXHandler.h.

References mySection, mySectionEnded, mySectionOpen, and mySectionSeen.

◆ startElement()

void GenericSAXHandler::startElement ( const XMLCh *const uri,
const XMLCh *const localname,
const XMLCh *const qname,
const XERCES_CPP_NAMESPACE::Attributes & attrs )
inherited

The inherited method called when a new tag opens.

The method parses the supplied XMLCh*-qname using the internal name/enum-map to obtain the enum representation of the attribute name.

Then, "myStartElement" is called supplying the enumeration value, the string-representation of the name and the attributes.

Todo

recheck/describe encoding of the string-representation

do not generate and report the string-representation

Definition at line 99 of file GenericSAXHandler.cpp.

References convertTag(), FileHelpers::getConfigurationRelative(), getFileName(), SUMOSAXAttributesImpl_Xerces::getString(), FileHelpers::isAbsolute(), myCharactersVector, myExpectedRoot, myNextSectionStart, myPredefinedTags, myPredefinedTagsMML, myRootSeen, mySection, mySectionEnded, mySectionOpen, mySectionSeen, myStartElement(), XMLSubSys::runParser(), SUMO_ATTR_HREF, SUMO_TAG_INCLUDE, TL, StringUtils::transcode(), and WRITE_WARNINGF.

◆ warning()

void GenericSAXHandler::warning ( const XERCES_CPP_NAMESPACE::SAXParseException & exception)
inherited

Handler for XML-warnings.

The message is built using buildErrorMessage and reported to the warning-instance of the MsgHandler.

Parameters
[in]exceptionThe occurred exception to process

Definition at line 218 of file GenericSAXHandler.cpp.

References buildErrorMessage(), and WRITE_WARNING.

Field Documentation

◆ myCharactersVector

std::vector<std::string> GenericSAXHandler::myCharactersVector
privateinherited

A list of character strings obtained so far to build the complete characters string at the end.

Definition at line 324 of file GenericSAXHandler.h.

Referenced by characters(), endElement(), and startElement().

◆ myCollectCharacterData

bool GenericSAXHandler::myCollectCharacterData = false
privateinherited

whether the reader should collect character data

Definition at line 339 of file GenericSAXHandler.h.

Referenced by characters(), and needsCharacterData().

◆ myDefaultColor

RGBColor ShapeHandler::myDefaultColor
protectedinherited

The default color to use.

Definition at line 115 of file ShapeHandler.h.

Referenced by addPOI(), addPoly(), setDefaults(), and ShapeHandler().

◆ myDefaultFill

bool ShapeHandler::myDefaultFill
protectedinherited

Information whether polygons should be filled.

Definition at line 124 of file ShapeHandler.h.

Referenced by addPoly(), setDefaults(), and ShapeHandler().

◆ myDefaultIcon

std::string ShapeHandler::myDefaultIcon
protectedinherited

The default icon to use.

Definition at line 118 of file ShapeHandler.h.

Referenced by addPOI(), setDefaults(), and ShapeHandler().

◆ myDefaultLayer

double ShapeHandler::myDefaultLayer
protectedinherited

The default layer to use.

Definition at line 121 of file ShapeHandler.h.

Referenced by addPOI(), addPoly(), myStartElement(), setDefaults(), and ShapeHandler().

◆ myExpectedRoot

std::string GenericSAXHandler::myExpectedRoot
privateinherited

The root element to expect, empty string disables the check.

Definition at line 336 of file GenericSAXHandler.h.

Referenced by GenericSAXHandler(), and startElement().

◆ myFileName

std::string GenericSAXHandler::myFileName
privateinherited

The name of the currently parsed file.

Definition at line 333 of file GenericSAXHandler.h.

Referenced by GenericSAXHandler(), getFileName(), and setFileName().

◆ myGeoConvHelper

const GeoConvHelper* ShapeHandler::myGeoConvHelper
protectedinherited

geo-conversion to use during loading

Definition at line 130 of file ShapeHandler.h.

Referenced by addPOI(), addPoly(), and ShapeHandler().

◆ myLastParameterised

Parameterised* ShapeHandler::myLastParameterised
protectedinherited

element to receive parameters

Definition at line 127 of file ShapeHandler.h.

Referenced by addPOI(), addPoly(), getLastParameterised(), myEndElement(), myStartElement(), and ShapeHandler().

◆ myNextSectionStart

std::pair<int, SUMOSAXAttributes*> GenericSAXHandler::myNextSectionStart
privateinherited

◆ myOptions

OptionsCont& PCLoaderXML::myOptions
private

Settings to use.

Definition at line 101 of file PCLoaderXML.h.

Referenced by myStartElement(), and PCLoaderXML().

◆ myParentHandler

GenericSAXHandler* GenericSAXHandler::myParentHandler
privateinherited

The handler to give control back to.

Definition at line 327 of file GenericSAXHandler.h.

Referenced by callParentEnd(), endElement(), GenericSAXHandler(), and registerParent().

◆ myParentIndicator

int GenericSAXHandler::myParentIndicator
privateinherited

The tag indicating that control should be given back.

Definition at line 330 of file GenericSAXHandler.h.

Referenced by endElement(), GenericSAXHandler(), and registerParent().

◆ myPredefinedTags

AttrMap GenericSAXHandler::myPredefinedTags
privateinherited

Definition at line 306 of file GenericSAXHandler.h.

Referenced by GenericSAXHandler(), startElement(), and ~GenericSAXHandler().

◆ myPredefinedTagsMML

std::vector<std::string> GenericSAXHandler::myPredefinedTagsMML
privateinherited

the map from ids to their string representation

Definition at line 309 of file GenericSAXHandler.h.

Referenced by GenericSAXHandler(), and startElement().

◆ myPrefix

std::string ShapeHandler::myPrefix
protectedinherited

The prefix to use.

Definition at line 112 of file ShapeHandler.h.

Referenced by addPOI(), addPoly(), setDefaults(), and ShapeHandler().

◆ myRootSeen

bool GenericSAXHandler::myRootSeen = false
privateinherited

whether the reader has already seen the root element

Definition at line 342 of file GenericSAXHandler.h.

Referenced by startElement().

◆ mySection

int GenericSAXHandler::mySection = -1
privateinherited

The tag indicating the current section to parse.

Definition at line 345 of file GenericSAXHandler.h.

Referenced by endElement(), setSection(), and startElement().

◆ mySectionEnded

bool GenericSAXHandler::mySectionEnded = false
privateinherited

whether the reader has already seen the end of the section

Definition at line 351 of file GenericSAXHandler.h.

Referenced by sectionFinished(), setSection(), and startElement().

◆ mySectionOpen

bool GenericSAXHandler::mySectionOpen = false
privateinherited

whether an element of the current section is open

Definition at line 354 of file GenericSAXHandler.h.

Referenced by endElement(), setSection(), and startElement().

◆ mySectionSeen

bool GenericSAXHandler::mySectionSeen = false
privateinherited

whether the reader has already seen the begin of the section

Definition at line 348 of file GenericSAXHandler.h.

Referenced by setSection(), and startElement().

◆ myShapeContainer

ShapeContainer& ShapeHandler::myShapeContainer
protectedinherited

reference to shape container in which all Shares are being added

Definition at line 109 of file ShapeHandler.h.

Referenced by addPOI(), addPoly(), PCLoaderXML::getLanePos(), and ShapeHandler().

◆ myTagMap

TagMap GenericSAXHandler::myTagMap
privateinherited

Definition at line 320 of file GenericSAXHandler.h.

Referenced by convertTag(), and GenericSAXHandler().

◆ myTypeMap

PCTypeMap& PCLoaderXML::myTypeMap
private

The type map to use.

Definition at line 98 of file PCLoaderXML.h.

Referenced by myStartElement(), and PCLoaderXML().


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