// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.opendata.modules.fr.paris.datasets;
import java.net.MalformedURLException;
import java.net.URL;
import org.openstreetmap.josm.data.osm.Tag;
import org.openstreetmap.josm.plugins.opendata.core.datasets.fr.FrenchDataSetHandler;
import org.openstreetmap.josm.plugins.opendata.modules.fr.paris.ParisConstants;
import org.openstreetmap.josm.plugins.opendata.modules.fr.paris.ParisLicense;
public abstract class ParisDataSetHandler extends FrenchDataSetHandler implements ParisConstants {
private int documentId;
private static final int portletId = 106; // FIXME
public ParisDataSetHandler(int documentId) {
init(documentId);
}
public ParisDataSetHandler(int documentId, String relevantTag) {
super(relevantTag);
init(documentId);
}
public ParisDataSetHandler(int documentId, boolean relevantUnion, String ... relevantTags) {
super(relevantUnion, relevantTags);
init(documentId);
}
public ParisDataSetHandler(int documentId, String ... relevantTags) {
this(documentId, false, relevantTags);
}
public ParisDataSetHandler(int documentId, boolean relevantUnion, Tag ... relevantTags) {
super(relevantUnion, relevantTags);
init(documentId);
}
private final void init(int documentId) {
this.documentId = documentId;
setLicense(new ParisLicense());
try {
if (documentId > 0) {
setLocalPortalURL(PORTAL + "jsp/site/Portal.jsp?document_id="+documentId + "&portlet_id="+portletId);
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
@Override
public String getSource() {
return SOURCE;
}
@Override
public String getLocalPortalIconName() {
return ICON_PARIS_24;
}
protected abstract String getDirectLink();
@Override
public URL getDataURL() {
try {
if (documentId > 0) {
return new URL(PORTAL + "rating/download/?id_resource="+documentId + "&type_resource=document&url="+getDirectLink());
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
return null;
}
}