/** * Befüllt eine Kachel aus einem XML-Element * * @param tileData * @param xmlTile */ protected void fillTileDataFromElement(TileData tileData, Element xmlTile) { // ID tileData.setId(xmlTile.getAttribute("id")); // Strecken ArrayList<RouteData> tileRoutes = new ArrayList<RouteData>(); tileData.setRoutes(tileRoutes); // AmpelData tileData.setTrafficlight(getTrafficlight()); NodeList props = xmlTile.getChildNodes(); for (int j = 0; j < props.getLength(); j++) { Element prop = (Element) props.item(j); if (prop.getNodeName().equals("source")) { // Source tileData.setSource(prop.getAttribute("file")); } else if (prop.getNodeName().equals("name")) { // Name tileData.setName(prop.getTextContent()); } else if (prop.getNodeName().equals("description")) { // description tileData.setDescription(prop.getTextContent()); } else if (prop.getNodeName().equals("straight") || prop.getNodeName().equals("curve")) { // Strecke RouteData tileRoute; if (prop.getNodeName().equals("curve")) { tileRoute = new CurveData(); } else { tileRoute = new StraightData(); } NodeList locations = prop.getChildNodes(); for (int k = 0; k < locations.getLength(); k++) { Element location = (Element) locations.item(k); if (location.getNodeName().equals("start")) { tileRoute.setStart(locationDataFromString(location)); } else if (location.getNodeName().equals("end")) { tileRoute.setEnd(locationDataFromString(location)); } else if (location.getNodeName().equals("corner")) { ((CurveData) tileRoute).setCorner(locationDataFromString(location)); } } tileRoutes.add(tileRoute); } } }