SUMO - Simulation of Urban MObility
NIXMLConnectionsHandler Class Reference

Importer for edge connections stored in XML. More...

#include <NIXMLConnectionsHandler.h>

Inheritance diagram for NIXMLConnectionsHandler:
Inheritance graph
Collaboration diagram for NIXMLConnectionsHandler:
Collaboration graph

Public Member Functions

void characters (const XMLCh *const chars, const XERCES3_SIZE_t length)
 The inherited method called when characters occured. More...
 
void endElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname)
 The inherited method called when a tag is being closed. More...
 
const std::string & getFileName () const
 returns the current file name More...
 
 NIXMLConnectionsHandler (NBEdgeCont &ec, NBNodeCont &nc, NBTrafficLightLogicCont &tlc)
 Constructor. More...
 
void registerParent (const int tag, GenericSAXHandler *handler)
 Assigning a parent handler which is enabled when the specified tag is closed. More...
 
void setFileName (const std::string &name)
 Sets the current file name. More...
 
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. More...
 
 ~NIXMLConnectionsHandler ()
 Destructor. More...
 
SAX ErrorHandler callbacks
void warning (const XERCES_CPP_NAMESPACE::SAXParseException &exception)
 Handler for XML-warnings. More...
 
void error (const XERCES_CPP_NAMESPACE::SAXParseException &exception)
 Handler for XML-errors. More...
 
void fatalError (const XERCES_CPP_NAMESPACE::SAXParseException &exception)
 Handler for XML-errors. More...
 

Protected Member Functions

std::string buildErrorMessage (const XERCES_CPP_NAMESPACE::SAXParseException &exception)
 Builds an error message. More...
 
virtual void myCharacters (int element, const std::string &chars)
 Callback method for characters to implement by derived classes. More...
 
virtual void myEndElement (int element)
 Callback method for a closing tag to implement by derived classes. More...
 
inherited from GenericSAXHandler
void myStartElement (int element, const SUMOSAXAttributes &attrs)
 Called on the opening of a tag;. More...
 

Private Member Functions

void addCrossing (const SUMOSAXAttributes &attrs)
 Parses a crossing and updates the referenced node. More...
 
void addCustomShape (const SUMOSAXAttributes &attrs)
 Parses a customShape and updates the referenced node. More...
 
 NIXMLConnectionsHandler (const NIXMLConnectionsHandler &s)
 invalidated copy constructor More...
 
NIXMLConnectionsHandleroperator= (const NIXMLConnectionsHandler &s)
 invalidated assignment operator More...
 
NBConnection parseConnection (const std::string &defRole, const std::string &def)
 Returns the connection described by def. More...
 
bool parseDeprecatedLaneDefinition (const SUMOSAXAttributes &attributes, NBEdge *fromEdge, NBEdge *toEdge, int *fromLane, int *toLane)
 Parses information about lane-2-lane connection in deprecated format. More...
 
void parseLaneBound (const SUMOSAXAttributes &attrs, NBEdge *from, NBEdge *to)
 Parses a connection when it describes a lane-2-lane relationship. More...
 
bool parseLaneDefinition (const SUMOSAXAttributes &attributes, int *fromLane, int *toLane)
 Parses information about lane-2-lane connection. More...
 
bool parseLaneInfo (const SUMOSAXAttributes &attributes, NBEdge *fromEdge, NBEdge *toEdge, int *fromLane, int *toLane)
 Parses information about lane-2-lane connection when it describes a lane-2-lane relationship. More...
 

Private Attributes

NBEdgeContmyEdgeCont
 The edge container to fill. More...
 
MsgHandler *const myErrorMsgHandler
 the handler for loading errors More...
 
bool myHaveWarnedAboutDeprecatedLanes
 Information whether we have a deprecated attribute. More...
 
NBNodeContmyNodeCont
 The edge container to fill. More...
 
NBTrafficLightLogicContmyTLLogicCont
 The traffic lights container to add built tls to (when invalidating tls) More...
 

Detailed Description

Importer for edge connections stored in XML.

This importer parses connections, and prohibitions, and is able to reset connections between edges.

Definition at line 59 of file NIXMLConnectionsHandler.h.

Constructor & Destructor Documentation

§ NIXMLConnectionsHandler() [1/2]

NIXMLConnectionsHandler::NIXMLConnectionsHandler ( NBEdgeCont ec,
NBNodeCont nc,
NBTrafficLightLogicCont tlc 
)

Constructor.

Parameters
[in]ecThe edge container which includes the edges to change connections of

Definition at line 63 of file NIXMLConnectionsHandler.cpp.

§ ~NIXMLConnectionsHandler()

NIXMLConnectionsHandler::~NIXMLConnectionsHandler ( )

Destructor.

Definition at line 73 of file NIXMLConnectionsHandler.cpp.

§ NIXMLConnectionsHandler() [2/2]

NIXMLConnectionsHandler::NIXMLConnectionsHandler ( const NIXMLConnectionsHandler s)
private

invalidated copy constructor

Member Function Documentation

§ addCrossing()

§ addCustomShape()

void NIXMLConnectionsHandler::addCustomShape ( const SUMOSAXAttributes attrs)
private

Parses a customShape and updates the referenced node.

Parameters
[in]attrsThe attributes to get the customShapes's values from

Definition at line 377 of file NIXMLConnectionsHandler.cpp.

References SUMOSAXAttributes::get(), NBNode::getNodeIDFromInternalLane(), myNodeCont, NBNodeCont::retrieve(), NBNode::setCustomLaneShape(), SUMO_ATTR_ID, SUMO_ATTR_SHAPE, and WRITE_ERROR.

Referenced by myStartElement().

§ 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 192 of file GenericSAXHandler.cpp.

References GenericSAXHandler::getFileName().

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

§ characters()

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

The inherited method called when characters occured.

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 175 of file GenericSAXHandler.cpp.

References TplConvert::_2str(), and GenericSAXHandler::myCharactersVector.

§ 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 126 of file GenericSAXHandler.cpp.

References TplConvert::_2str(), GenericSAXHandler::convertTag(), GenericSAXHandler::myCharacters(), GenericSAXHandler::myCharactersVector, GenericSAXHandler::myEndElement(), GenericSAXHandler::myParentHandler, GenericSAXHandler::myParentIndicator, XMLSubSys::setHandler(), SUMO_TAG_INCLUDE, and SUMO_TAG_NOTHING.

§ 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 occured exception to process
Exceptions
ProcessErrorOn any call

Definition at line 211 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage().

Referenced by MSRouteHandler::closeContainer(), MSRouteHandler::closePerson(), NIImporter_OpenDrive::geomFromSpiral(), MSRouteHandler::myStartElement(), and MSRouteHandler::parseWalkPos().

§ 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 occured exception to process

Definition at line 217 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage().

§ getFileName()

§ 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 ProcessError These method may throw a ProcessError if something fails

Reimplemented in NIImporter_ITSUMO::Handler.

Definition at line 227 of file GenericSAXHandler.cpp.

Referenced by GenericSAXHandler::endElement().

§ myEndElement()

§ myStartElement()

§ operator=()

NIXMLConnectionsHandler& NIXMLConnectionsHandler::operator= ( const NIXMLConnectionsHandler s)
private

invalidated assignment operator

§ parseConnection()

NBConnection NIXMLConnectionsHandler::parseConnection ( const std::string &  defRole,
const std::string &  def 
)
private

Returns the connection described by def.

def should have the following format <FROM_EDGE_ID>[_<FROM_LANE_NO>]-><TO_EDGE_ID>[_<TO_LANE_NO>].

Parameters
[in]defRole"prohibitor" or "prohibited" - used for error reporting
[in]defThe definition of the connection
Returns
The parsed connection

Definition at line 176 of file NIXMLConnectionsHandler.cpp.

References MsgHandler::inform(), NBConnection::InvalidConnection, myEdgeCont, myErrorMsgHandler, and NBEdgeCont::retrieve().

Referenced by myStartElement().

§ parseDeprecatedLaneDefinition()

bool NIXMLConnectionsHandler::parseDeprecatedLaneDefinition ( const SUMOSAXAttributes attributes,
NBEdge fromEdge,
NBEdge toEdge,
int *  fromLane,
int *  toLane 
)
inlineprivate

Parses information about lane-2-lane connection in deprecated format.

Parameters
[in]attrsThe attributes to get further information about the connection from
[in]fromEdgeThe edge at which the connection starts (the on incoming into a node)
[in]toEdgeThe edge at which the connection ends (the on outgoing from a node)
[out]fromLaneThe lane at which connection starts
[out]toLaneThe lane at which connection ends

Definition at line 275 of file NIXMLConnectionsHandler.cpp.

References TplConvert::_2intSec(), SUMOSAXAttributes::get(), Named::getID(), MsgHandler::inform(), myErrorMsgHandler, myHaveWarnedAboutDeprecatedLanes, SUMO_ATTR_FROM_LANE, SUMO_ATTR_LANE, SUMO_ATTR_TO_LANE, toString(), and WRITE_WARNING.

Referenced by parseLaneInfo().

§ parseLaneBound()

void NIXMLConnectionsHandler::parseLaneBound ( const SUMOSAXAttributes attrs,
NBEdge from,
NBEdge to 
)
private

§ parseLaneDefinition()

bool NIXMLConnectionsHandler::parseLaneDefinition ( const SUMOSAXAttributes attributes,
int *  fromLane,
int *  toLane 
)
inlineprivate

Parses information about lane-2-lane connection.

Parameters
[in]attrsThe attributes to get further information about the connection from
[out]fromLaneThe lane at which connection starts
[out]toLaneThe lane at which connection ends

Definition at line 302 of file NIXMLConnectionsHandler.cpp.

References SUMOSAXAttributes::get(), SUMO_ATTR_FROM_LANE, and SUMO_ATTR_TO_LANE.

Referenced by parseLaneInfo().

§ parseLaneInfo()

bool NIXMLConnectionsHandler::parseLaneInfo ( const SUMOSAXAttributes attributes,
NBEdge fromEdge,
NBEdge toEdge,
int *  fromLane,
int *  toLane 
)
private

Parses information about lane-2-lane connection when it describes a lane-2-lane relationship.

Parameters
[in]attrsThe attributes to get further information about the connection from
[in]fromEdgeThe edge at which the connection starts (the on incoming into a node)
[in]toEdgeThe edge at which the connection ends (the on outgoing from a node)
[out]fromLaneThe lane at which connection starts
[out]toLaneThe lane at which connection ends

Definition at line 264 of file NIXMLConnectionsHandler.cpp.

References SUMOSAXAttributes::hasAttribute(), parseDeprecatedLaneDefinition(), parseLaneDefinition(), and SUMO_ATTR_LANE.

Referenced by myStartElement(), and parseLaneBound().

§ registerParent()

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

§ 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 80 of file GenericSAXHandler.cpp.

References GenericSAXHandler::myFileName.

Referenced by NIImporter_SUMO::_loadNetwork(), GUISettingsHandler::GUISettingsHandler(), PCNetProjectionLoader::load(), NIImporter_OpenStreetMap::load(), loadNet(), ROLoader::loadNet(), NIImporter_ITSUMO::loadNetwork(), NIImporter_MATSim::loadNetwork(), NIImporter_Vissim::loadXML(), NILoader::loadXMLType(), main(), and XMLSubSys::runParser().

§ 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 105 of file GenericSAXHandler.cpp.

References TplConvert::_2str(), GenericSAXHandler::convertTag(), FileHelpers::getConfigurationRelative(), GenericSAXHandler::getFileName(), SUMOSAXAttributesImpl_Xerces::getString(), FileHelpers::isAbsolute(), GenericSAXHandler::myCharactersVector, GenericSAXHandler::myPredefinedTags, GenericSAXHandler::myPredefinedTagsMML, GenericSAXHandler::myStartElement(), XMLSubSys::runParser(), SUMO_ATTR_HREF, and SUMO_TAG_INCLUDE.

§ 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 occured exception to process

Definition at line 205 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage(), and WRITE_WARNING.

Field Documentation

§ myEdgeCont

NBEdgeCont& NIXMLConnectionsHandler::myEdgeCont
private

The edge container to fill.

Definition at line 148 of file NIXMLConnectionsHandler.h.

Referenced by addCrossing(), myStartElement(), parseConnection(), and parseLaneBound().

§ myErrorMsgHandler

MsgHandler* const NIXMLConnectionsHandler::myErrorMsgHandler
private

the handler for loading errors

Definition at line 161 of file NIXMLConnectionsHandler.h.

Referenced by myStartElement(), parseConnection(), parseDeprecatedLaneDefinition(), and parseLaneBound().

§ myHaveWarnedAboutDeprecatedLanes

bool NIXMLConnectionsHandler::myHaveWarnedAboutDeprecatedLanes
private

Information whether we have a deprecated attribute.

Definition at line 158 of file NIXMLConnectionsHandler.h.

Referenced by parseDeprecatedLaneDefinition().

§ myNodeCont

NBNodeCont& NIXMLConnectionsHandler::myNodeCont
private

The edge container to fill.

Definition at line 151 of file NIXMLConnectionsHandler.h.

Referenced by addCrossing(), and addCustomShape().

§ myTLLogicCont

NBTrafficLightLogicCont& NIXMLConnectionsHandler::myTLLogicCont
private

The traffic lights container to add built tls to (when invalidating tls)

Definition at line 155 of file NIXMLConnectionsHandler.h.

Referenced by myStartElement().


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