// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.graphview.plugin.preferences;
import static org.openstreetmap.josm.plugins.graphview.core.access.AccessType.DESIGNATED;
import static org.openstreetmap.josm.plugins.graphview.core.access.AccessType.PERMISSIVE;
import static org.openstreetmap.josm.plugins.graphview.core.access.AccessType.UNDEFINED;
import static org.openstreetmap.josm.plugins.graphview.core.access.AccessType.YES;
import java.io.File;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import org.openstreetmap.josm.plugins.graphview.core.access.AccessType;
import org.openstreetmap.josm.plugins.graphview.core.property.VehiclePropertyType;
import org.openstreetmap.josm.plugins.graphview.core.property.VehiclePropertyTypes;
import org.openstreetmap.josm.plugins.graphview.plugin.preferences.VehiclePropertyStringParser.PropertyValueSyntaxException;
/**
* utility class generating the default preferences
*/
public final class GraphViewPreferenceDefaults {
/** prevents instantiation */
private GraphViewPreferenceDefaults() { }
/** creates a default "empty" bookmark */
public static PreferenceAccessParameters createDefaultBookmarkAccessParameters() {
Collection<AccessType> accessTypes =
Arrays.asList(UNDEFINED, YES, PERMISSIVE, DESIGNATED);
Map<VehiclePropertyType<?>, String> propertyStringMap =
new HashMap<>();
try {
return new PreferenceAccessParameters("", accessTypes, propertyStringMap);
} catch (PropertyValueSyntaxException e) {
throw new AssertionError(e);
}
}
/** creates the default map of access parameter bookmarks */
public static Map<String, PreferenceAccessParameters> createDefaultAccessParameterBookmarks() {
try {
Map<String, PreferenceAccessParameters> result =
new HashMap<>();
Collection<AccessType> accessTypes =
Arrays.asList(UNDEFINED, YES, PERMISSIVE, DESIGNATED);
/* create motorcar bookmark */
{
Map<VehiclePropertyType<?>, String> propertyMap =
new HashMap<>();
PreferenceAccessParameters accessParameters =
new PreferenceAccessParameters("motorcar", accessTypes, propertyMap);
result.put("motorcar", accessParameters);
}
/* create hgv bookmark */
{
Map<VehiclePropertyType<?>, String> propertyMap =
new HashMap<>();
propertyMap.put(VehiclePropertyTypes.WEIGHT, "3.5");
PreferenceAccessParameters accessParameters =
new PreferenceAccessParameters("hgv", accessTypes, propertyMap);
result.put("hgv (3.5 t)", accessParameters);
}
/* create bicycle bookmark */
{
Map<VehiclePropertyType<?>, String> propertyMap =
new HashMap<>();
PreferenceAccessParameters accessParameters =
new PreferenceAccessParameters("bicycle", accessTypes, propertyMap);
result.put("bicycle", accessParameters);
}
/* create pedestrian bookmark */
{
Map<VehiclePropertyType<?>, String> propertyMap =
new HashMap<>();
PreferenceAccessParameters accessParameters =
new PreferenceAccessParameters("foot", accessTypes, propertyMap);
result.put("pedestrian", accessParameters);
}
return result;
} catch (PropertyValueSyntaxException e) {
throw new AssertionError(e);
}
}
public static File getDefaultRulesetFolder() {
return new File(System.getProperty("user.home"));
}
}