93 ObjectFactory fac =
new ObjectFactory();
95 Unmarshaller u = jc.createUnmarshaller();
96 u.setSchema(SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(getClass().getResource(
"/dtd/laneDefinitions_v2.0.xsd")));
98 XMLLaneDefinitions xmlLaneDefinitions;
100 xmlLaneDefinitions = (XMLLaneDefinitions) u.unmarshal(stream);
104 if (stream != null) { stream.close(); }
105 }
catch (IOException e) {
106 log.warn(
"Could not close stream.", e);
111 for (XMLLanesToLinkAssignmentType lldef : xmlLaneDefinitions
112 .getLanesToLinkAssignment()) {
114 .getLinkIdRef(), Link.class));
115 for (XMLLaneType laneType : lldef.getLane()) {
118 if (!laneType.getLeadsTo().getToLane().isEmpty()) {
119 for (XMLIdRefType toLaneId : laneType.getLeadsTo().getToLane()){
120 lane.
addToLaneId(Id.create(toLaneId.getRefId(), Lane.class));
123 else if (!laneType.getLeadsTo().getToLink().isEmpty()){
124 for (XMLIdRefType toLinkId : laneType.getLeadsTo().getToLink()){
125 lane.addToLinkId(Id.create(toLinkId.getRefId(), Link.class));
129 if (laneType.getCapacity() == null){
130 log.warn(
"Capacity not set in lane definition, using default...");
131 laneType.setCapacity(fac.createXMLLaneTypeXMLCapacity());
133 lane.setCapacityVehiclesPerHour(laneType.getCapacity().getVehiclesPerHour());
135 if (laneType.getRepresentedLanes() == null) {
136 laneType.setRepresentedLanes(fac
137 .createXMLLaneTypeXMLRepresentedLanes());
139 lane.setNumberOfRepresentedLanes(laneType.getRepresentedLanes()
142 if (laneType.getStartsAt() == null) {
143 laneType.setStartsAt(fac.createXMLLaneTypeXMLStartsAt());
145 lane.setStartsAtMeterFromLinkEnd(laneType.getStartsAt().getMeterFromLinkEnd());
147 lane.setAlignment(laneType.getAlignment());
149 if (laneType.getAttributes()!=null && !laneType.getAttributes().getAttributeList().isEmpty()) {
150 for (XMLAttributeType att : laneType.getAttributes().getAttributeList()){
156 if (attribute != null) lane.getAttributes().putAttribute(att.getName(), attribute);
160 l2lAssignment.addLane(lane);
final ObjectAttributesConverter attributesConverter
Lane createLane(Id< Lane > laneId)
Object convert(String className, String value)
void addLanesToLinkAssignment(LanesToLinkAssignment assignment)
void addToLaneId(Id< Lane > id)
LanesToLinkAssignment createLanesToLinkAssignment(Id< Link > linkIdReference)