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

The XML-Handler for shapes loading network loading. More...

#include <NLHandler.h>

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

Public Member Functions

virtual bool addLanePosParams ()
 Whether some input attributes shall be automatically added as params (Can be implemented in all child).
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)
 NLShapeHandler (const std::string &file, ShapeContainer &sc)
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.
virtual ~NLShapeHandler ()
 Destructor.

Static Public Member Functions

static bool loadFiles (const std::vector< std::string > &files, ShapeHandler &sh)
 loads all of the given files

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

ShapeContainer & myShapeContainer
 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.
Parameterised * myLastParameterised
 element to receive parameters
const GeoConvHelper * myGeoConvHelper
 geo-conversion to use during loading
virtual void myStartElement (int element, const SUMOSAXAttributes &attrs)
 Called on the opening of a tag;.
virtual void myEndElement (int element)
 Called when a closing tag occurs.
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
Parameterised * getLastParameterised () const
 get last parameterised object

attributes parsing

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

elements parsing

typedef std::map< std::string, int > TagMap
TagMap myTagMap
std::vector< std::string > myCharactersVector
 A list of character strings obtained so far to build the complete characters string at the end.
GenericSAXHandler * myParentHandler
 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

Detailed Description

The XML-Handler for shapes loading network loading.

This subclasses ShapeHandler with MSLane specific function

Definition at line 55 of file NLHandler.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

◆ NLShapeHandler()

NLShapeHandler::NLShapeHandler ( const std::string & file,
ShapeContainer & sc )
inline

Definition at line 57 of file NLHandler.h.

References ShapeHandler::ShapeHandler().

◆ ~NLShapeHandler()

virtual NLShapeHandler::~NLShapeHandler ( )
inlinevirtual

Destructor.

Definition at line 61 of file NLHandler.h.

Member Function Documentation

◆ addLanePosParams()

virtual bool NLShapeHandler::addLanePosParams ( )
inlinevirtual

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

Reimplemented from ShapeHandler.

Definition at line 65 of file NLHandler.h.

◆ 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 NLShapeHandler::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 1803 of file NLHandler.cpp.

References MSLane::dictionary(), MSLane::geometryPositionAtOffset(), MSLane::getLength(), Position::INVALID, TL, toString(), WRITE_ERRORF, and WRITE_WARNINGF.

◆ 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:

◆ 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 ShapeHandler::myStartElement ( int element,
const SUMOSAXAttributes & attrs )
protectedvirtualinherited

Called on the opening of a tag;.

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

Reimplemented from GenericSAXHandler.

Reimplemented in PCLoaderXML.

Definition at line 62 of file ShapeHandler.cpp.

References addPOI(), addPoly(), Shape::DEFAULT_LAYER, Shape::DEFAULT_LAYER_POI, SUMOSAXAttributes::get(), SUMOSAXAttributes::getString(), SUMOSAXAttributes::hasAttribute(), SUMOXMLDefinitions::isValidParameterKey(), myDefaultLayer, myLastParameterised, SUMO_ATTR_KEY, SUMO_ATTR_VALUE, SUMO_TAG_PARAM, SUMO_TAG_POI, SUMO_TAG_POLY, TL, WRITE_ERROR, and WRITE_WARNING.

◆ 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

◆ 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().


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