GNEJunction* GNENet::retrieveJunction(const std::string& id, bool failHard) { if (myJunctions.count(id)) { return myJunctions[id]; } else if (failHard) { // If junction wasn't found, throw exception throw UnknownElement("Junction " + id); } else { return NULL; } }
GNEEdge* GNENet::retrieveEdge(const std::string& id, bool failHard) { GNEEdges::const_iterator i = myEdges.find(id); // If edge was fund if(i != myEdges.end()) { return i->second; } else if (failHard) { // If edge wasn't found, throw exception throw UnknownElement("Edge " + id); } else { return NULL; } }
GNELane* GNENet::retrieveLane(const std::string &id, bool failHard) { for (GNEEdges::const_iterator it = myEdges.begin(); it != myEdges.end(); ++it) { const GNEEdge::LaneVector& lanes = it->second->getLanes(); for (GNEEdge::LaneVector::const_iterator it_lane = lanes.begin(); it_lane != lanes.end(); ++it_lane) { if ((*it_lane)->getID() == id) { return (*it_lane); } } } // If lane wasn't found: if (failHard) { // Throw exception if failHard is enabled throw UnknownElement("lane " + id); } else { return NULL; } }
std::string NamedColumnsParser::get(const std::string& name, bool prune) const { PosMap::const_iterator i = myDefinitionsMap.find(name); if (i == myDefinitionsMap.end()) { if (myAmCaseInsensitive) { i = myDefinitionsMap.find(StringUtils::to_lower_case(name)); } if (i == myDefinitionsMap.end()) { throw UnknownElement(name); } } int pos = (*i).second; if (myLineParser.size() <= pos) { throw OutOfBoundsException(); } std::string ret = myLineParser.get(pos); checkPrune(ret, prune); return ret; }