// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.services; import org.apache.commons.lang3.text.WordUtils; import org.openstreetmap.josm.data.osm.DataSet; import org.openstreetmap.josm.data.osm.Node; import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.ToulouseDataSetHandler; public class MarchesPleinVentHandler extends ToulouseDataSetHandler { public MarchesPleinVentHandler() { super(19640, "amenity=marketplace"); setName("Marchés de plein vent"); setCategory(CAT_SERVICES); setSingleProjection(wgs84); } @Override public boolean acceptsFilename(String filename) { return acceptsOdsFilename(filename, "MPVToulouse_OpenData"); } @Override public void updateDataSet(DataSet ds) { for (Node n : ds.getNodes()) { n.remove("Adresse"); n.remove("Code Postal"); replace(n, "Nom", "name", new ValueReplacer() { @Override public String replace(String value) { return WordUtils.capitalizeFully(value).replace(", ", "").replace("MarchÉ", "Marché"); }}); n.put("amenity", "marketplace"); replace(n, "Type", "note"); String hours = ""; for (String[] day : new String[][]{ new String[]{"Lundi","Mo"}, new String[]{"mardi","Tu"}, new String[]{"mercredi","We"}, new String[]{"jeudi","Th"}, new String[]{"vendredi","Fr"}, new String[]{"samedi","Sa"}, new String[]{"dimanche","Su"} }) { String value = n.get(day[0]); if (value != null) { if (!hours.isEmpty()) { hours += "; "; } hours += day[1]+" "+value.replace(" ", "").replace('–','-').replace('h', ':').replace(":-", ":00-"); if (hours.endsWith(":")) { hours += "00"; } n.remove(day[0]); } } if (!hours.isEmpty()) { n.put("opening_hours", hours); } } } }