// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import org.openstreetmap.josm.data.osm.DataSet; import org.openstreetmap.josm.data.osm.OsmPrimitive; import org.openstreetmap.josm.plugins.opendata.core.OdConstants; import org.openstreetmap.josm.plugins.opendata.core.io.NeptuneReader; import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.ToulouseDataSetHandler; public class ReseauTisseoHandler extends ToulouseDataSetHandler { private static final URL neptuneSchemaUrl = ReseauTisseoHandler.class.getResource(TOULOUSE_NEPTUNE_XSD); public ReseauTisseoHandler() { super(14022, "network=fr_tisseo"); NeptuneReader.registerSchema(neptuneSchemaUrl); setName("Réseau Tisséo (Métro, Bus, Tram)"); setCategory(CAT_TRANSPORT); getArchiveHandler().setSkipXsdValidation(true); } @Override public boolean acceptsFilename(String filename) { return acceptsZipFilename(filename, "14022-reseau-tisseo-metro-bus-tram-") || filename.toLowerCase().endsWith(OdConstants.XML_EXT); } @Override public boolean acceptsFile(File file) { return acceptsFilename(file.getName()) && (file.getName().toLowerCase().endsWith(OdConstants.ZIP_EXT) || NeptuneReader.acceptsXmlNeptuneFile(file, neptuneSchemaUrl)); } @Override public String getSource() { return SOURCE_TISSEO; } @Override public URL getWikiURL() { try { return new URL("http://wiki.openstreetmap.org/wiki/Toulouse/Transports_en_commun#Réseau_Tisséo"); } catch (MalformedURLException e) { e.printStackTrace(); } return null; } @Override public void updateDataSet(DataSet ds) { for (OsmPrimitive p : ds.allPrimitives()) { p.put("operator", "Tisséo"); p.put("network", "fr_tisseo"); } } }