private static List<BuildingPart> parseBuildingPart(Way primitive, Perspective pPerspective) { if (!primitive.isClosed()) { throw new RuntimeException("Way is not closed: " + primitive); } OsmPrimitive p = primitive; BuildingPart bp = parseBuildingPartAttributes(p); bp.setWall(parseWall((Way) p, pPerspective)); bp.setInlineWalls(null); bp.setRoof(RoofParser.parse(primitive, pPerspective)); List<BuildingPart> bpList = new ArrayList<BuildingPart>(); bpList.add(bp); bpList.addAll(parseRelationClone(primitive, bp)); return bpList; }