From b57815e7c06cbaf7235ce0769bc1d6f71f64c99f Mon Sep 17 00:00:00 2001 From: Nikolaus Krismer <niko@krismer.de> Date: Mon, 10 Feb 2014 21:30:41 +0100 Subject: [PATCH] Various refactorings: - renames test packages to fit main source - fixed naming problems - starting to begin configuration cleanup --- .../inf/isochrone/algorithm/Isochrone.java | 4 +- .../inf/isochrone/algorithm/MDijkstra.java | 2 +- .../unibz/inf/isochrone/algorithm/MineX.java | 2 +- .../unibz/inf/isochrone/algorithm/MrneX.java | 6 +- .../it/unibz/inf/isochrone/db/Database.java | 6 +- .../it/unibz/inf/isochrone/util/Config.java | 48 +-- ...{RangeUtil.java => DistanceAlgorithm.java} | 5 +- .../util/{Enums.java => EnumContainer.java} | 2 +- .../it/unibz/inf/isochrone/util/Query.java | 6 +- .../isoga/comet/IsochronesCometdServlet.java | 31 -- .../inf/isoga/coverage/CoverageBuilder.java | 12 +- .../inf/isoga/coverage/GeoIsochrone.java | 6 +- .../java/it/unibz/inf/isoga/db/DbUtility.java | 276 +++++++++--------- .../it/unibz/inf/isoga/db/IsogaDatabase.java | 10 +- .../isoga/db/{SQLQuery.java => SqlQuery.java} | 6 +- .../it/unibz/inf/isoga/db/TableEntry.java | 2 +- .../{PGLineString.java => PgLineString.java} | 22 +- .../isoga/service/ServiceConfiguration.java | 35 +-- .../inf/isoga/service/ServiceFeatureInfo.java | 5 +- .../inf/isoga/service/ServiceIsochrone.java | 27 +- .../unibz/inf/isoga/service/ServiceWps.java | 12 +- .../inf/isoga/service/SevicePoiFeature.java | 4 +- .../it/unibz/inf/isoga/util/DSetConfig.java | 34 +-- .../it/unibz/inf/isoga/util/IsogaConfig.java | 22 +- ...{JSONConstants.java => JsonConstants.java} | 4 +- .../util/{SBAUtil.java => MathHelper.java} | 9 +- .../isoga/util/{PGUtil.java => PgHelper.java} | 4 +- .../inf/isoga/websocket/JsonWebsocket.java | 13 +- .../isoga/websocket/SocketConfiguration.java | 60 ++-- .../db/DatabaseTest.java | 9 +- .../network/IsochroneComparisonTest.java | 9 +- .../network/MineXTest.java | 9 +- .../network/MrneXTest.java | 9 +- .../network/QueryTest.java | 8 +- .../tests => isochrone/test}/Parameters.java | 8 +- .../tests => isochrone/test}/RunSimple.java | 2 +- .../tests => isochrone/test}/RuntimeTest.java | 8 +- .../utils => isochrone/util}/ConfigTest.java | 4 +- 38 files changed, 357 insertions(+), 384 deletions(-) rename src/main/java/it/unibz/inf/isochrone/util/{RangeUtil.java => DistanceAlgorithm.java} (83%) rename src/main/java/it/unibz/inf/isochrone/util/{Enums.java => EnumContainer.java} (97%) delete mode 100644 src/main/java/it/unibz/inf/isoga/comet/IsochronesCometdServlet.java rename src/main/java/it/unibz/inf/isoga/db/{SQLQuery.java => SqlQuery.java} (97%) rename src/main/java/it/unibz/inf/isoga/geometry/{PGLineString.java => PgLineString.java} (75%) rename src/main/java/it/unibz/inf/isoga/util/{JSONConstants.java => JsonConstants.java} (94%) rename src/main/java/it/unibz/inf/isoga/util/{SBAUtil.java => MathHelper.java} (97%) rename src/main/java/it/unibz/inf/isoga/util/{PGUtil.java => PgHelper.java} (90%) rename src/test/java/it/unibz/inf/{isochrones => isochrone}/db/DatabaseTest.java (90%) rename src/test/java/it/unibz/inf/{isochrones => isochrone}/network/IsochroneComparisonTest.java (86%) rename src/test/java/it/unibz/inf/{isochrones => isochrone}/network/MineXTest.java (73%) rename src/test/java/it/unibz/inf/{isochrones => isochrone}/network/MrneXTest.java (76%) rename src/test/java/it/unibz/inf/{isochrones => isochrone}/network/QueryTest.java (84%) rename src/test/java/it/unibz/inf/{isochrones/tests => isochrone/test}/Parameters.java (90%) rename src/test/java/it/unibz/inf/{isochrones/tests => isochrone/test}/RunSimple.java (97%) rename src/test/java/it/unibz/inf/{isochrones/tests => isochrone/test}/RuntimeTest.java (96%) rename src/test/java/it/unibz/inf/{isochrones/utils => isochrone/util}/ConfigTest.java (91%) diff --git a/src/main/java/it/unibz/inf/isochrone/algorithm/Isochrone.java b/src/main/java/it/unibz/inf/isochrone/algorithm/Isochrone.java index fb940a77..5078ea1c 100644 --- a/src/main/java/it/unibz/inf/isochrone/algorithm/Isochrone.java +++ b/src/main/java/it/unibz/inf/isochrone/algorithm/Isochrone.java @@ -5,8 +5,8 @@ import it.unibz.inf.isochrone.network.Link; import it.unibz.inf.isochrone.network.Location; import it.unibz.inf.isochrone.network.Node; import it.unibz.inf.isochrone.network.Output; -import it.unibz.inf.isochrone.util.Enums.Direction; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Direction; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import it.unibz.inf.isochrone.util.Query; import java.util.Calendar; diff --git a/src/main/java/it/unibz/inf/isochrone/algorithm/MDijkstra.java b/src/main/java/it/unibz/inf/isochrone/algorithm/MDijkstra.java index bd2f6152..31ea0046 100644 --- a/src/main/java/it/unibz/inf/isochrone/algorithm/MDijkstra.java +++ b/src/main/java/it/unibz/inf/isochrone/algorithm/MDijkstra.java @@ -4,7 +4,7 @@ import it.unibz.inf.isochrone.db.Database; import it.unibz.inf.isochrone.network.Link; import it.unibz.inf.isochrone.network.Node; import it.unibz.inf.isochrone.util.Query; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import java.util.ArrayList; import java.util.Collection; diff --git a/src/main/java/it/unibz/inf/isochrone/algorithm/MineX.java b/src/main/java/it/unibz/inf/isochrone/algorithm/MineX.java index bc8e961d..cd17a135 100644 --- a/src/main/java/it/unibz/inf/isochrone/algorithm/MineX.java +++ b/src/main/java/it/unibz/inf/isochrone/algorithm/MineX.java @@ -4,7 +4,7 @@ import it.unibz.inf.isochrone.db.Database; import it.unibz.inf.isochrone.network.Link; import it.unibz.inf.isochrone.network.Node; import it.unibz.inf.isochrone.util.Query; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import java.util.Collection; import java.util.HashMap; diff --git a/src/main/java/it/unibz/inf/isochrone/algorithm/MrneX.java b/src/main/java/it/unibz/inf/isochrone/algorithm/MrneX.java index 621e6417..7b287f61 100644 --- a/src/main/java/it/unibz/inf/isochrone/algorithm/MrneX.java +++ b/src/main/java/it/unibz/inf/isochrone/algorithm/MrneX.java @@ -3,9 +3,9 @@ package it.unibz.inf.isochrone.algorithm; import it.unibz.inf.isochrone.db.Database; import it.unibz.inf.isochrone.network.Link; import it.unibz.inf.isochrone.network.Node; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import it.unibz.inf.isochrone.util.Query; -import it.unibz.inf.isochrone.util.RangeUtil; +import it.unibz.inf.isochrone.util.DistanceAlgorithm; import java.text.NumberFormat; import java.util.ArrayList; @@ -80,7 +80,7 @@ public class MrneX extends Isochrone { final List<Node> intersections = new ArrayList<Node>(); for (final Node loadedNode : loadedIERNodes.values()) { - if (RangeUtil.euclideanDistance(node.getCoordinates(), loadedNode.getCoordinates()) + if (DistanceAlgorithm.euclideanDistance(node.getCoordinates(), loadedNode.getCoordinates()) < node.getRadius() + loadedNode.getRadius()) { intersections.add(loadedNode); } diff --git a/src/main/java/it/unibz/inf/isochrone/db/Database.java b/src/main/java/it/unibz/inf/isochrone/db/Database.java index dd121d47..55de89e3 100644 --- a/src/main/java/it/unibz/inf/isochrone/db/Database.java +++ b/src/main/java/it/unibz/inf/isochrone/db/Database.java @@ -3,9 +3,9 @@ package it.unibz.inf.isochrone.db; import it.unibz.inf.isochrone.network.Link; import it.unibz.inf.isochrone.network.Node; import it.unibz.inf.isochrone.util.Config; -import it.unibz.inf.isochrone.util.Enums.Dataset; -import it.unibz.inf.isochrone.util.Enums.Direction; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.Direction; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import it.unibz.inf.isochrone.util.Point; import java.sql.Connection; diff --git a/src/main/java/it/unibz/inf/isochrone/util/Config.java b/src/main/java/it/unibz/inf/isochrone/util/Config.java index 780ea88f..43b157ae 100644 --- a/src/main/java/it/unibz/inf/isochrone/util/Config.java +++ b/src/main/java/it/unibz/inf/isochrone/util/Config.java @@ -1,7 +1,7 @@ package it.unibz.inf.isochrone.util; import it.unibz.inf.isochrone.db.ConnectionFactory; -import it.unibz.inf.isochrone.util.Enums.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; import java.io.IOException; import java.io.InputStream; @@ -31,47 +31,52 @@ import java.util.Properties; //TODO: Shouldn't Config be a singleton class public class Config { protected Properties internalProperties; - protected ConnectionFactory factory; + protected final ConnectionFactory factory; protected short densityLimit = Short.MIN_VALUE; public Config() { - this(Thread.currentThread().getContextClassLoader().getResourceAsStream("config.xml")); + this(null); } public Config(final Dataset dataset) { - this(Thread.currentThread().getContextClassLoader().getResourceAsStream("config.xml")); - final String fileName = "config_" + dataset.toString().toLowerCase() + ".xml"; - final InputStream dSetProps = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName); - appendPropertyFile(dSetProps); - setupConnection(); - } - - public Config(final InputStream inputStream) { internalProperties = new Properties(); - try { - internalProperties.loadFromXML(inputStream); - internalProperties.putAll(System.getProperties()); - } catch (final IOException e) { - throw new RuntimeException("Unable to load the config file: " + e); + + final String fileName = "config.xml"; + final InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName); + appendPropertyFile(in); + + if (dataset != null) { + final String fileName2 = "config_" + dataset.toString().toLowerCase() + ".xml"; + final InputStream in2 = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName2); + appendPropertyFile(in2); } - setupConnection(); + factory = initConnectionFactory(); } protected Properties getInternalProperties() { return internalProperties; } - protected void setupConnection() { - factory = new ConnectionFactory(getDBPooling()); + protected ConnectionFactory initConnectionFactory() { + final String serverName = getDBServerName(); + final String dbName = getDBName(); + final int dbPort = getDBPort(); + final String dbUser = getDBUser(); + final String dbPassword = getDBPassword(); + final boolean isPooling = getDBPooling(); + ConnectionFactory f = null; try { - factory.register(getDBServerName(), getDBName(), getDBPort(), getDBUser(), getDBPassword()); + f = new ConnectionFactory(isPooling); + f.register(serverName, dbName, dbPort, dbUser, dbPassword); } catch (final SQLException e) { throw new RuntimeException("Unable to connect to the database: " + e); } catch (final ClassNotFoundException e) { throw new RuntimeException("Class not found: " + e); } + + return f; } public Connection getConnection() { @@ -130,7 +135,7 @@ public class Config { * * @param inputStream */ - public void appendPropertyFile(final InputStream inputStream) { + protected void appendPropertyFile(final InputStream inputStream) { try { internalProperties.loadFromXML(inputStream); internalProperties.putAll(System.getProperties()); @@ -139,7 +144,6 @@ public class Config { if (densityLimit == Short.MIN_VALUE && density != null) { densityLimit = Short.parseShort(density); } - } catch (final InvalidPropertiesFormatException e) { throw new RuntimeException(e); } catch (final IOException e) { diff --git a/src/main/java/it/unibz/inf/isochrone/util/RangeUtil.java b/src/main/java/it/unibz/inf/isochrone/util/DistanceAlgorithm.java similarity index 83% rename from src/main/java/it/unibz/inf/isochrone/util/RangeUtil.java rename to src/main/java/it/unibz/inf/isochrone/util/DistanceAlgorithm.java index 06a8caed..1f2f46f7 100644 --- a/src/main/java/it/unibz/inf/isochrone/util/RangeUtil.java +++ b/src/main/java/it/unibz/inf/isochrone/util/DistanceAlgorithm.java @@ -4,8 +4,9 @@ package it.unibz.inf.isochrone.util; * The RangeUtil is used to calculate the euclidean distance between * two points for the MrneX algorithm. */ -public final class RangeUtil { - private RangeUtil() { } +public final class DistanceAlgorithm { + + private DistanceAlgorithm() { } public static double euclideanDistance(final Point p1, final Point p2) { final double value = Math.pow(p1.getX() - p2.getX(), 2) + Math.pow(p1.getY() - p2.getY(), 2); diff --git a/src/main/java/it/unibz/inf/isochrone/util/Enums.java b/src/main/java/it/unibz/inf/isochrone/util/EnumContainer.java similarity index 97% rename from src/main/java/it/unibz/inf/isochrone/util/Enums.java rename to src/main/java/it/unibz/inf/isochrone/util/EnumContainer.java index 8a8aac0b..ac9d4e01 100644 --- a/src/main/java/it/unibz/inf/isochrone/util/Enums.java +++ b/src/main/java/it/unibz/inf/isochrone/util/EnumContainer.java @@ -3,7 +3,7 @@ package it.unibz.inf.isochrone.util; /** * Stores all the enums used in the project in one place. */ -public class Enums { +public class EnumContainer { /** * Lists of all datasets available in the database. diff --git a/src/main/java/it/unibz/inf/isochrone/util/Query.java b/src/main/java/it/unibz/inf/isochrone/util/Query.java index 3e5b012c..98c55084 100644 --- a/src/main/java/it/unibz/inf/isochrone/util/Query.java +++ b/src/main/java/it/unibz/inf/isochrone/util/Query.java @@ -1,9 +1,9 @@ package it.unibz.inf.isochrone.util; import it.unibz.inf.isochrone.network.Location; -import it.unibz.inf.isochrone.util.Enums.Dataset; -import it.unibz.inf.isochrone.util.Enums.Direction; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.Direction; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import java.util.Arrays; import java.util.Calendar; diff --git a/src/main/java/it/unibz/inf/isoga/comet/IsochronesCometdServlet.java b/src/main/java/it/unibz/inf/isoga/comet/IsochronesCometdServlet.java deleted file mode 100644 index a597e4ca..00000000 --- a/src/main/java/it/unibz/inf/isoga/comet/IsochronesCometdServlet.java +++ /dev/null @@ -1,31 +0,0 @@ -//package it.unibz.inf.isoga.comet; -// -//import it.unibz.inf.isoga.services.IsochroneService; -// -//import java.io.IOException; -// -//import javax.servlet.ServletException; -//import javax.servlet.ServletRequest; -//import javax.servlet.ServletResponse; -// -//import org.cometd.bayeux.server.BayeuxServer; -//import org.cometd.server.CometdServlet; -// -///** -// * Servlet used to start the Isochrone web service. -// */ -//public class IsochronesCometdServlet extends CometdServlet { -// private static final long serialVersionUID = -5572756263870946647L; -// -// @Override -// public void init() throws ServletException { -// super.init(); -// final BayeuxServer bayeux = (BayeuxServer) getServletContext().getAttribute(BayeuxServer.ATTRIBUTE); -// new IsochroneService(bayeux); -// } -// -// @Override -// public void service(final ServletRequest request, final ServletResponse response) throws ServletException, IOException { -// throw new ServletException(); -// } -//} diff --git a/src/main/java/it/unibz/inf/isoga/coverage/CoverageBuilder.java b/src/main/java/it/unibz/inf/isoga/coverage/CoverageBuilder.java index 40031b8c..3acad229 100644 --- a/src/main/java/it/unibz/inf/isoga/coverage/CoverageBuilder.java +++ b/src/main/java/it/unibz/inf/isoga/coverage/CoverageBuilder.java @@ -1,9 +1,9 @@ package it.unibz.inf.isoga.coverage; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import it.unibz.inf.isoga.db.IsogaDatabase; import it.unibz.inf.isoga.util.IsogaConfig; -import it.unibz.inf.isoga.util.SBAUtil; +import it.unibz.inf.isoga.util.MathHelper; import java.util.ArrayList; import java.util.Collection; @@ -110,7 +110,7 @@ public class CoverageBuilder { if (!rEdge.equals(rootEdge) && rEdge.isPartial()) { final IsoEdge invertedEdge = island.getInvertedLink(rEdge); - if (!SBAUtil.reachedFromBothSides(rEdge, invertedEdge, config.isIncoming())) { + if (!MathHelper.reachedFromBothSides(rEdge, invertedEdge, config.isIncoming())) { island.addEdgeOrdinates(rEdge, config.isIncoming()); return false; } @@ -162,13 +162,13 @@ public class CoverageBuilder { final Set<IsoEdge> adjEdges, final boolean useLastPoint) { final TreeMap<Double, IsoEdge> angleLinks = new TreeMap<Double, IsoEdge>(); final TreeMap<Double, List<IsoEdge>> duplicates = new TreeMap<Double, List<IsoEdge>>(); - final double referenceAngle = SBAUtil.calculateAngle(useLastPointRef, referenceEdge); + final double referenceAngle = MathHelper.calculateAngle(useLastPointRef, referenceEdge); for (final IsoEdge currentLink : adjEdges) { if (!currentLink.equals(referenceEdge)) { if (currentLink.inverted(referenceEdge)) { angleLinks.put((double) FULL_CIRCLE_DEGREE, currentLink); } else { - final double angle = SBAUtil.calcultateRelativeAngle(SBAUtil.calculateAngle(useLastPoint, currentLink), + final double angle = MathHelper.calcultateRelativeAngle(MathHelper.calculateAngle(useLastPoint, currentLink), referenceAngle); final IsoEdge previous = angleLinks.put(angle, currentLink); if (previous != null) { @@ -185,7 +185,7 @@ public class CoverageBuilder { for (final List<IsoEdge> links : duplicates.values()) { for (final IsoEdge pLink : links) { - final double currentAngle = SBAUtil.calculateAngleFiner(referenceEdge, pLink); + final double currentAngle = MathHelper.calculateAngleFiner(referenceEdge, pLink); angleLinks.put(currentAngle, pLink); } } diff --git a/src/main/java/it/unibz/inf/isoga/coverage/GeoIsochrone.java b/src/main/java/it/unibz/inf/isoga/coverage/GeoIsochrone.java index 29c5138c..fc5d7059 100644 --- a/src/main/java/it/unibz/inf/isoga/coverage/GeoIsochrone.java +++ b/src/main/java/it/unibz/inf/isoga/coverage/GeoIsochrone.java @@ -2,7 +2,7 @@ package it.unibz.inf.isoga.coverage; import it.unibz.inf.isochrone.util.Point; import it.unibz.inf.isoga.geometry.AbstractLineString; -import it.unibz.inf.isoga.util.SBAUtil; +import it.unibz.inf.isoga.util.MathHelper; import java.util.ArrayList; import java.util.Collection; @@ -31,7 +31,7 @@ public class GeoIsochrone { public void addEdge(final IsoEdge edge, final boolean incoming) { if (sourceEdge == null - || (SBAUtil.reachedFromBothSides(edge, invertedEdges.get(edge.getID()), incoming) && sourceEdge.getGeometry().compareTo( + || (MathHelper.reachedFromBothSides(edge, invertedEdges.get(edge.getID()), incoming) && sourceEdge.getGeometry().compareTo( edge.getGeometry()) > -1)) { sourceEdge = edge; } @@ -84,7 +84,7 @@ public class GeoIsochrone { if (srcEdge == null) { srcEdge = edge; } else { - if (!SBAUtil.reachedFromBothSides(edge, edge.getInvertedEdge(), incoming)) { + if (!MathHelper.reachedFromBothSides(edge, edge.getInvertedEdge(), incoming)) { if (srcEdge.getGeometry().compareTo(edge.getGeometry()) > -1) { srcEdge = edge; } diff --git a/src/main/java/it/unibz/inf/isoga/db/DbUtility.java b/src/main/java/it/unibz/inf/isoga/db/DbUtility.java index 9419bae6..c91efc62 100644 --- a/src/main/java/it/unibz/inf/isoga/db/DbUtility.java +++ b/src/main/java/it/unibz/inf/isoga/db/DbUtility.java @@ -2,7 +2,7 @@ package it.unibz.inf.isoga.db; import it.unibz.inf.isoga.network.RouteEntity; import it.unibz.inf.isoga.util.IsogaConfig; -import it.unibz.inf.isoga.util.JSONConstants; +import it.unibz.inf.isoga.util.JsonConstants; import java.sql.CallableStatement; import java.sql.Connection; @@ -89,11 +89,10 @@ public final class DbUtility { + " USING GIST(\"GEOMETRY\")"); } - public static void dropAllResultTables(final Connection connection, final String regex) { + public static void dropTablesByRegexp(final Connection connection, final String regex) { CallableStatement prepareCall = null; try { - prepareCall = connection.prepareCall("{call dropTables('public', '%" - + regex + "%')}"); + prepareCall = connection.prepareCall("{call dropTables('public', '" + regex + "')}"); prepareCall.executeUpdate(); connection.commit(); } catch (final SQLException e) { @@ -108,8 +107,7 @@ public final class DbUtility { } } - public static void deleteGeometryMetadata(final Connection connection, - final TableEntry tableEntry) { + public static void deleteGeometryMetadata(final Connection connection, final TableEntry tableEntry) { CallableStatement prepareCall = null; try { prepareCall = connection.prepareCall("{call DropGeometryTable(?)}"); @@ -144,154 +142,159 @@ public final class DbUtility { + " PRIMARY KEY (\"ID\"))"); } - public static JSONObject getPoiFeatures(final String sqlExpr, final IsogaConfig config) - throws JSONException { + public static JSONObject getPoiFeatures(final String sqlExpr, final IsogaConfig config) throws JSONException { final JSONObject jsonObj = new JSONObject(); if (sqlExpr.equals("noResult")) { - jsonObj.put(JSONConstants.TYPE, "invalid"); - } else { - Statement stmt = null; - ResultSet rSet = null; - final Connection connection = config.getConnection(); + jsonObj.put(JsonConstants.TYPE, "invalid"); + return jsonObj; + } + + final Connection connection = config.getConnection(); + + Statement stmt = null; + ResultSet rSet = null; + try { + stmt = connection.createStatement(); + rSet = stmt.executeQuery(sqlExpr); + + final JSONObject jsonResult = new JSONObject(); + jsonResult.put(JsonConstants.TYPE, JsonConstants.FEATURECOLLECTION); + final JSONArray features = new JSONArray(); + while (rSet.next()) { + final JSONObject feature = new JSONObject(); + feature.put(JsonConstants.TYPE, JsonConstants.FEATURE_TYPE_VALUE); + final JSONObject properties = new JSONObject(); + properties.put("category", rSet.getString("category")); + properties.put("cat_type", rSet.getString("category")); + feature.put(JsonConstants.PROPERTIES, properties); + final JSONObject geoJSON = new JSONObject(rSet.getString("GEOMETRY")); + feature.put(JsonConstants.TYPE_GEOMETRY, geoJSON); + features.put(feature); + } + jsonResult.put(JsonConstants.FEATURES, features); + jsonObj.put(JsonConstants.TYPE, "FeatureCollection"); + jsonObj.put("featureCollection", jsonResult); + jsonObj.put("featureSize", features.length()); + } catch (final SQLException e) { + e.printStackTrace(); try { - stmt = connection.createStatement(); - rSet = stmt.executeQuery(sqlExpr); - - final JSONObject jsonResult = new JSONObject(); - jsonResult.put(JSONConstants.TYPE, JSONConstants.FEATURECOLLECTION); - final JSONArray features = new JSONArray(); - while (rSet.next()) { - final JSONObject feature = new JSONObject(); - feature.put(JSONConstants.TYPE, JSONConstants.FEATURE_TYPE_VALUE); - final JSONObject properties = new JSONObject(); - properties.put("category", rSet.getString("category")); - properties.put("cat_type", rSet.getString("category")); - feature.put(JSONConstants.PROPERTIES, properties); - final JSONObject geoJSON = new JSONObject(rSet.getString("GEOMETRY")); - feature.put(JSONConstants.TYPE_GEOMETRY, geoJSON); - features.put(feature); - } - jsonResult.put(JSONConstants.FEATURES, features); - jsonObj.put(JSONConstants.TYPE, "FeatureCollection"); - jsonObj.put("featureCollection", jsonResult); - jsonObj.put("featureSize", features.length()); - } catch (final SQLException e) { - e.printStackTrace(); - try { - connection.rollback(); - } catch (final SQLException e1) { - e1.printStackTrace(); - } - } catch (final JSONException e) { - e.printStackTrace(); - } finally { - DbUtils.closeQuietly(rSet); - DbUtils.closeQuietly(stmt); + connection.rollback(); + } catch (final SQLException e1) { + e1.printStackTrace(); } + } catch (final JSONException e) { + e.printStackTrace(); + } finally { + DbUtils.closeQuietly(rSet); + DbUtils.closeQuietly(stmt); } + return jsonObj; } public static JSONObject spatialIntersection2JSON(final String sqlExpr, final boolean isSum, final IsogaConfig config) throws JSONException { final JSONObject jsonObj = new JSONObject(); - final Connection connection = config.getConnection(); if (sqlExpr.equals("noResult")) { - jsonObj.put(JSONConstants.TYPE, "invalid"); - } else { - Statement stmt = null; - ResultSet rSet = null; - try { - stmt = connection.createStatement(); - - rSet = stmt.executeQuery(sqlExpr); - final ResultSetMetaData rSetMeta = rSet.getMetaData(); - - final JSONArray columnLabels = new JSONArray(); - for (short i = 1; i <= rSetMeta.getColumnCount(); i++) { - final String columnLabel = rSetMeta.getColumnLabel(i); - if (!columnLabel.equalsIgnoreCase("geometry")) { - final JSONObject meta = new JSONObject(); - meta.put(JSONConstants.LABEL, rSetMeta.getColumnLabel(i)); - meta.put(JSONConstants.TYPE, DbHelper.getType(rSetMeta.getColumnType(i))); - columnLabels.put(meta); - } + jsonObj.put(JsonConstants.TYPE, "invalid"); + return jsonObj; + } + + final Connection connection = config.getConnection(); + + Statement stmt = null; + ResultSet rSet = null; + try { + stmt = connection.createStatement(); + + rSet = stmt.executeQuery(sqlExpr); + final ResultSetMetaData rSetMeta = rSet.getMetaData(); + + final JSONArray columnLabels = new JSONArray(); + for (short i = 1; i <= rSetMeta.getColumnCount(); i++) { + final String columnLabel = rSetMeta.getColumnLabel(i); + if (!columnLabel.equalsIgnoreCase("geometry")) { + final JSONObject meta = new JSONObject(); + meta.put(JsonConstants.LABEL, rSetMeta.getColumnLabel(i)); + meta.put(JsonConstants.TYPE, DbHelper.getType(rSetMeta.getColumnType(i))); + columnLabels.put(meta); } - jsonObj.put("columnLabels", columnLabels); - - final JSONObject jsonResult = new JSONObject(); - jsonResult.put(JSONConstants.TYPE, JSONConstants.FEATURECOLLECTION); - final JSONArray features = new JSONArray(); - int sum = isSum ? 0 : -1; - while (rSet.next()) { - final JSONObject feature = new JSONObject(); - feature.put(JSONConstants.TYPE, JSONConstants.FEATURE_TYPE_VALUE); - final JSONObject properties = new JSONObject(); - for (int i = 1; i <= rSetMeta.getColumnCount(); i++) { - if (rSetMeta.getColumnLabel(i).equals("geometry")) { - final String geo = rSet.getString(i); - final JSONObject geoJSON = new JSONObject(geo); - feature.put(JSONConstants.TYPE_GEOMETRY, geoJSON); - } else { - switch (rSetMeta.getColumnType(i)) { - case Types.INTEGER: - case Types.SMALLINT: - case Types.NUMERIC: - properties.put(rSetMeta.getColumnLabel(i), rSet.getInt(i)); - if (isSum) { - sum += rSet.getInt(i); - } - break; - case Types.BIGINT: - properties.put(rSetMeta.getColumnLabel(i), rSet.getLong(i)); - if (isSum) { - sum += rSet.getInt(i); - } - break; - case Types.FLOAT: - properties.put(rSetMeta.getColumnLabel(i), rSet.getFloat(i)); - if (isSum) { - sum += rSet.getInt(i); - } - break; - case Types.DOUBLE: - properties.put(rSetMeta.getColumnLabel(i), rSet.getDouble(i)); - if (isSum) { - sum += rSet.getInt(i); - } - break; - case Types.VARCHAR: - properties.put(rSetMeta.getColumnLabel(i), rSet.getString(i)); - break; - default: - System.out.println("Ignoring column with label + " - + rSetMeta.getColumnLabel(i)); + } + jsonObj.put("columnLabels", columnLabels); + + final JSONObject jsonResult = new JSONObject(); + jsonResult.put(JsonConstants.TYPE, JsonConstants.FEATURECOLLECTION); + final JSONArray features = new JSONArray(); + int sum = isSum ? 0 : -1; + while (rSet.next()) { + final JSONObject feature = new JSONObject(); + feature.put(JsonConstants.TYPE, JsonConstants.FEATURE_TYPE_VALUE); + final JSONObject properties = new JSONObject(); + for (int i = 1; i <= rSetMeta.getColumnCount(); i++) { + if (rSetMeta.getColumnLabel(i).equals("geometry")) { + final String geo = rSet.getString(i); + final JSONObject geoJSON = new JSONObject(geo); + feature.put(JsonConstants.TYPE_GEOMETRY, geoJSON); + } else { + switch (rSetMeta.getColumnType(i)) { + case Types.INTEGER: + case Types.SMALLINT: + case Types.NUMERIC: + properties.put(rSetMeta.getColumnLabel(i), rSet.getInt(i)); + if (isSum) { + sum += rSet.getInt(i); + } + break; + case Types.BIGINT: + properties.put(rSetMeta.getColumnLabel(i), rSet.getLong(i)); + if (isSum) { + sum += rSet.getInt(i); + } + break; + case Types.FLOAT: + properties.put(rSetMeta.getColumnLabel(i), rSet.getFloat(i)); + if (isSum) { + sum += rSet.getInt(i); } + break; + case Types.DOUBLE: + properties.put(rSetMeta.getColumnLabel(i), rSet.getDouble(i)); + if (isSum) { + sum += rSet.getInt(i); + } + break; + case Types.VARCHAR: + properties.put(rSetMeta.getColumnLabel(i), rSet.getString(i)); + break; + default: + System.out.println("Ignoring column with label + " + + rSetMeta.getColumnLabel(i)); } } - feature.put(JSONConstants.PROPERTIES, properties); - features.put(feature); - } - jsonResult.put(JSONConstants.FEATURES, features); - jsonObj.put("type", "FeatureCollection"); - jsonObj.put("featureCollection", jsonResult); - if (sum == -1) { - jsonObj.put("joinedCount", features.length()); - } - jsonObj.put("joinedSum", sum); - } catch (final SQLException e) { - e.printStackTrace(); - try { - connection.rollback(); - } catch (final SQLException e1) { - e1.printStackTrace(); } - } catch (final JSONException e) { - e.printStackTrace(); - } finally { - DbUtils.closeQuietly(rSet); - DbUtils.closeQuietly(stmt); + feature.put(JsonConstants.PROPERTIES, properties); + features.put(feature); } + jsonResult.put(JsonConstants.FEATURES, features); + jsonObj.put("type", "FeatureCollection"); + jsonObj.put("featureCollection", jsonResult); + if (sum == -1) { + jsonObj.put("joinedCount", features.length()); + } + jsonObj.put("joinedSum", sum); + } catch (final SQLException e) { + e.printStackTrace(); + try { + connection.rollback(); + } catch (final SQLException e1) { + e1.printStackTrace(); + } + } catch (final JSONException e) { + e.printStackTrace(); + } finally { + DbUtils.closeQuietly(rSet); + DbUtils.closeQuietly(stmt); } + return jsonObj; } @@ -323,6 +326,7 @@ public final class DbUtility { DbUtils.closeQuietly(rSet); DbUtils.closeQuietly(stmt); } + return statistics; } diff --git a/src/main/java/it/unibz/inf/isoga/db/IsogaDatabase.java b/src/main/java/it/unibz/inf/isoga/db/IsogaDatabase.java index bca206d3..828ab079 100644 --- a/src/main/java/it/unibz/inf/isoga/db/IsogaDatabase.java +++ b/src/main/java/it/unibz/inf/isoga/db/IsogaDatabase.java @@ -4,15 +4,15 @@ import it.unibz.inf.isochrone.db.Database; import it.unibz.inf.isochrone.network.Link; import it.unibz.inf.isochrone.network.Location; import it.unibz.inf.isochrone.network.Node; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import it.unibz.inf.isochrone.util.Point; import it.unibz.inf.isoga.coverage.IsoEdge; import it.unibz.inf.isoga.datastructure.QueryPoint; import it.unibz.inf.isoga.geometry.AbstractLineString; -import it.unibz.inf.isoga.geometry.PGLineString; +import it.unibz.inf.isoga.geometry.PgLineString; import it.unibz.inf.isoga.network.Schedule; import it.unibz.inf.isoga.util.IsogaConfig; -import it.unibz.inf.isoga.util.PGUtil; +import it.unibz.inf.isoga.util.PgHelper; import it.unibz.inf.isoga.util.QueryPointCache; import java.sql.Connection; @@ -159,7 +159,7 @@ public class IsogaDatabase extends Database { final PGgeometry pgGeometry = (PGgeometry) resultSet.getObject("GEOMETRY"); AbstractLineString geometry = null; if (pgGeometry.getGeoType() == Geometry.LINESTRING) { - geometry = new PGLineString((LineString) pgGeometry.getGeometry()); + geometry = new PgLineString((LineString) pgGeometry.getGeometry()); } final IsoEdge edge = new IsoEdge(edgeId, sourceId, targetId, length, adjNodeDistance, geometry); @@ -203,7 +203,7 @@ public class IsogaDatabase extends Database { public void storeArea(final int areaId, final List<Point> points, final double bufferSize) { String geometryString; - final LinearRing linearRing = new LinearRing(PGUtil.asPGPoints(points)); + final LinearRing linearRing = new LinearRing(PgHelper.asPGPoints(points)); final Polygon polygon = new Polygon(new LinearRing[] {linearRing}); geometryString = polygon.getTypeString() + polygon.getValue(); diff --git a/src/main/java/it/unibz/inf/isoga/db/SQLQuery.java b/src/main/java/it/unibz/inf/isoga/db/SqlQuery.java similarity index 97% rename from src/main/java/it/unibz/inf/isoga/db/SQLQuery.java rename to src/main/java/it/unibz/inf/isoga/db/SqlQuery.java index c29388ec..60eed398 100644 --- a/src/main/java/it/unibz/inf/isoga/db/SQLQuery.java +++ b/src/main/java/it/unibz/inf/isoga/db/SqlQuery.java @@ -1,6 +1,6 @@ package it.unibz.inf.isoga.db; -import it.unibz.inf.isochrone.util.Enums.QueryType; +import it.unibz.inf.isochrone.util.EnumContainer.QueryType; import it.unibz.inf.isoga.util.IsogaConfig; import java.util.HashSet; @@ -10,7 +10,7 @@ import java.util.Set; /** * Generates SQL Queries. */ -public class SQLQuery { +public class SqlQuery { private static final char ALIAS_COV = 'X'; private boolean queryable = false; private final String coverageTable; @@ -25,7 +25,7 @@ public class SQLQuery { private String fromClause; private String whereClause; - public SQLQuery(final String sqlExpr, final String coverageTable, final String spatialPredicate) { + public SqlQuery(final String sqlExpr, final String coverageTable, final String spatialPredicate) { queryable = sqlExpr.startsWith("select"); this.spatialPredicate = spatialPredicate; this.coverageTable = coverageTable; diff --git a/src/main/java/it/unibz/inf/isoga/db/TableEntry.java b/src/main/java/it/unibz/inf/isoga/db/TableEntry.java index dc19f640..1421ef72 100644 --- a/src/main/java/it/unibz/inf/isoga/db/TableEntry.java +++ b/src/main/java/it/unibz/inf/isoga/db/TableEntry.java @@ -1,6 +1,6 @@ package it.unibz.inf.isoga.db; -import it.unibz.inf.isochrone.util.Enums.TableType; +import it.unibz.inf.isochrone.util.EnumContainer.TableType; /** * Describes a database table for the isoga web interface. diff --git a/src/main/java/it/unibz/inf/isoga/geometry/PGLineString.java b/src/main/java/it/unibz/inf/isoga/geometry/PgLineString.java similarity index 75% rename from src/main/java/it/unibz/inf/isoga/geometry/PGLineString.java rename to src/main/java/it/unibz/inf/isoga/geometry/PgLineString.java index 320cd6e2..59a8f1e0 100644 --- a/src/main/java/it/unibz/inf/isoga/geometry/PGLineString.java +++ b/src/main/java/it/unibz/inf/isoga/geometry/PgLineString.java @@ -1,8 +1,8 @@ package it.unibz.inf.isoga.geometry; import it.unibz.inf.isochrone.util.Point; -import it.unibz.inf.isoga.util.PGUtil; -import it.unibz.inf.isoga.util.SBAUtil; +import it.unibz.inf.isoga.util.PgHelper; +import it.unibz.inf.isoga.util.MathHelper; import java.util.ArrayList; import java.util.List; @@ -15,11 +15,11 @@ import org.postgis.LineString; * @author <a href="mailto:markus.innerebner@inf.unibz.it">Markus Innerebner</a>. * @version 2.2 */ -public class PGLineString extends AbstractLineString { +public class PgLineString extends AbstractLineString { private final LineString geometry; private final BBox bbox; - public PGLineString(final LineString geometry) { + public PgLineString(final LineString geometry) { this.geometry = geometry; points = new Point[geometry.getPoints().length]; double minX = Double.MAX_VALUE, minY = Double.MAX_VALUE, maxX = Double.MIN_VALUE, maxY = Double.MIN_VALUE; @@ -36,7 +36,7 @@ public class PGLineString extends AbstractLineString { @Override public AbstractLineString reverse() { - return new PGLineString(geometry.reverse()); + return new PgLineString(geometry.reverse()); } @Override @@ -54,8 +54,8 @@ public class PGLineString extends AbstractLineString { Point current = other.getFirstPoint(); mergedPoints.add(current); for (i = 1; i < sum; i++) { - final double thisDist = cThis < numPoints() ? SBAUtil.eucideanDist(current, getPoint(cThis)) : Double.MAX_VALUE; - final double otherDist = cOther < other.numPoints() ? SBAUtil.eucideanDist(current, other.getPoint(cOther)) : Double.MAX_VALUE; + final double thisDist = cThis < numPoints() ? MathHelper.eucideanDist(current, getPoint(cThis)) : Double.MAX_VALUE; + final double otherDist = cOther < other.numPoints() ? MathHelper.eucideanDist(current, other.getPoint(cOther)) : Double.MAX_VALUE; if (thisDist < otherDist) { current = getPoint(cThis++); } else if (thisDist > otherDist) { @@ -67,7 +67,7 @@ public class PGLineString extends AbstractLineString { } mergedPoints.add(current); } - return new PGLineString(new LineString(PGUtil.asPGPoints(mergedPoints))); + return new PgLineString(new LineString(PgHelper.asPGPoints(mergedPoints))); } public LineString getGeometry() { @@ -76,8 +76,8 @@ public class PGLineString extends AbstractLineString { @Override public int compareTo(final AbstractLineString other) { - if (other instanceof PGLineString) { - return bbox.compareTo(((PGLineString) other).bbox); + if (other instanceof PgLineString) { + return bbox.compareTo(((PgLineString) other).bbox); } return super.compareTo(other); @@ -99,7 +99,7 @@ public class PGLineString extends AbstractLineString { return false; } - PGLineString other = (PGLineString) obj; + PgLineString other = (PgLineString) obj; if (bbox == null) { return other.bbox == null; } diff --git a/src/main/java/it/unibz/inf/isoga/service/ServiceConfiguration.java b/src/main/java/it/unibz/inf/isoga/service/ServiceConfiguration.java index 4ae20629..32c80827 100644 --- a/src/main/java/it/unibz/inf/isoga/service/ServiceConfiguration.java +++ b/src/main/java/it/unibz/inf/isoga/service/ServiceConfiguration.java @@ -2,7 +2,7 @@ package it.unibz.inf.isoga.service; import it.unibz.inf.isochrone.util.Config; -import it.unibz.inf.isochrone.util.Enums.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; import it.unibz.inf.isoga.util.DSetConfig; import it.unibz.inf.isoga.util.IsogaConfig; import it.unibz.inf.isoga.websocket.SocketConfiguration; @@ -36,33 +36,30 @@ public class ServiceConfiguration extends AbstractService { socketConfig.setClientConfig(clientId, config); final JSONArray allClientDatasets = new JSONArray(); - for (final DSetConfig dsetConfig : socketConfig.getAllClientDatasetConfigs()) { - try { - final DSetConfig dsetCfg = (DSetConfig) dsetConfig.clone(); - dsetCfg.appendSessionId(clientId); - socketConfig.setClientDataset(clientId, dsetCfg); - allClientDatasets.put(dsetCfg.toJSON()); - } catch (CloneNotSupportedException e) { - e.printStackTrace(); - } + for (final DSetConfig defaultDSetConfig : socketConfig.getDatasetConfigurations()) { + final DSetConfig clientDSetConfig = (DSetConfig) defaultDSetConfig.clone(); + clientDSetConfig.appendTableSuffix(clientId); + socketConfig.setClientDSetConfig(clientId, clientDSetConfig); + allClientDatasets.put(clientDSetConfig.toJSON()); } - final JSONObject jsonConfig = new JSONObject(); - jsonConfig.put("messageType", "configuration"); - jsonConfig.put("defaultDatasets", allClientDatasets); - jsonConfig.put("mapserverUrl", globalConfig.getProperty("rendering.server.url")); - jsonConfig.put("version", globalConfig.getProperty("version")); - preregisterDatasets(clientId, globalConfig); - return jsonConfig; + final JSONObject resultJson = new JSONObject(); + resultJson.put("messageType", "configuration"); + resultJson.put("defaultDatasets", allClientDatasets); + resultJson.put("mapserverUrl", globalConfig.getProperty("rendering.server.url")); + resultJson.put("version", globalConfig.getProperty("version")); + + return resultJson; } private void preregisterDatasets(final String clientId, final Config config) { final Connection connection = config.getConnection(); - for (Dataset dSet : PREREGISTERING_DATASETS) { - socketConfig.registerLayers(connection, socketConfig.getClientDataset(clientId).get(dSet)); + for (Dataset dataset : PREREGISTERING_DATASETS) { + final DSetConfig clientDSetConfig = socketConfig.getClientDatasetConfig(clientId, dataset); + socketConfig.registerLayers(connection, clientDSetConfig); } } diff --git a/src/main/java/it/unibz/inf/isoga/service/ServiceFeatureInfo.java b/src/main/java/it/unibz/inf/isoga/service/ServiceFeatureInfo.java index 51dfec74..03c33085 100644 --- a/src/main/java/it/unibz/inf/isoga/service/ServiceFeatureInfo.java +++ b/src/main/java/it/unibz/inf/isoga/service/ServiceFeatureInfo.java @@ -30,13 +30,14 @@ public class ServiceFeatureInfo extends AbstractService { @Override public JSONObject onJsonMessage(final Session session, final JSONObject jsonObject) { + final int stopId = jsonObject.getInt("stopId"); + final String clientId = session.getId(); final IsogaConfig config = socketConfig.getClientConfig(clientId); - final long stopId = (Long) jsonObject.get("stopId"); final JSONObject result = new JSONObject(); try { - final SortedMap<Calendar, RouteEntity> schedules = DbUtility.getVertexAnnotation(config, (int) stopId); + final SortedMap<Calendar, RouteEntity> schedules = DbUtility.getVertexAnnotation(config, stopId); final JSONArray rows = new JSONArray(); for (final RouteEntity routeEntity : schedules.values()) { diff --git a/src/main/java/it/unibz/inf/isoga/service/ServiceIsochrone.java b/src/main/java/it/unibz/inf/isoga/service/ServiceIsochrone.java index 6876c2d0..1f85e39b 100644 --- a/src/main/java/it/unibz/inf/isoga/service/ServiceIsochrone.java +++ b/src/main/java/it/unibz/inf/isoga/service/ServiceIsochrone.java @@ -6,9 +6,9 @@ import it.unibz.inf.isochrone.algorithm.MDijkstra; import it.unibz.inf.isochrone.algorithm.MineX; import it.unibz.inf.isochrone.algorithm.MrneX; import it.unibz.inf.isochrone.network.Location; -import it.unibz.inf.isochrone.util.Enums.Dataset; -import it.unibz.inf.isochrone.util.Enums.Direction; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.Direction; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import it.unibz.inf.isochrone.util.Query; import it.unibz.inf.isoga.coverage.CoverageBuilder; import it.unibz.inf.isoga.datastructure.QueryPoint; @@ -17,7 +17,7 @@ import it.unibz.inf.isoga.db.IsogaDatabase; import it.unibz.inf.isoga.network.MemoryBBoxOutput; import it.unibz.inf.isoga.util.DSetConfig; import it.unibz.inf.isoga.util.IsogaConfig; -import it.unibz.inf.isoga.util.JSONConstants; +import it.unibz.inf.isoga.util.JsonConstants; import java.io.IOException; import java.io.InputStream; @@ -115,10 +115,9 @@ public class ServiceIsochrone extends AbstractService { final IsogaConfig config = socketConfig.getClientConfig(clientId); appendProperties(config, cfgFile, session); - final DSetConfig dSetConfig = socketConfig.getClientDataset(clientId).get(dataset); + final DSetConfig dSetConfig = socketConfig.getClientDatasetConfig(clientId, dataset); if (!dSetConfig.isRegistered()) { - final Connection connection = config.getConnection(); - socketConfig.registerLayers(connection, dSetConfig); + socketConfig.registerLayers(config.getConnection(), dSetConfig); } config.setDestinationEdgeTableEntry(dSetConfig.getEdgeTableEntry()); config.setDestinationVertexTableEntry(dSetConfig.getVertexTableEntry()); @@ -165,15 +164,15 @@ public class ServiceIsochrone extends AbstractService { try { if (expirationMode) { final long totalComputationTime = System.currentTimeMillis() - start; - jsonObj.put(JSONConstants.STATUS, "finished"); - jsonObj.put(JSONConstants.BBOX, output.getBoundingBox(config).toJSON()); + jsonObj.put(JsonConstants.STATUS, "finished"); + jsonObj.put(JsonConstants.BBOX, output.getBoundingBox(config).toJSON()); final JSONObject log = new JSONObject(); log.put("timeComputation", totalComputationTime); log.put("timeMineX", timeMineX); - jsonObj.put(JSONConstants.LOGGING, log); + jsonObj.put(JsonConstants.LOGGING, log); // deliver(getSession(), client, message.getChannel(), jsonObj, false); } else { - jsonObj.put(JSONConstants.STATUS, "coveraging"); + jsonObj.put(JsonConstants.STATUS, "coveraging"); // deliver(getSession(), client, message.getChannel(), jsonObj, false); final long bufferDistance = 20; final long start1 = System.currentTimeMillis(); @@ -187,14 +186,14 @@ public class ServiceIsochrone extends AbstractService { } final long timeCoveraging = System.currentTimeMillis() - start1; - jsonObj.put(JSONConstants.STATUS, "finished"); - jsonObj.put(JSONConstants.BBOX, output.getBoundingBox(config).toJSON()); + jsonObj.put(JsonConstants.STATUS, "finished"); + jsonObj.put(JsonConstants.BBOX, output.getBoundingBox(config).toJSON()); final JSONObject log = new JSONObject(); final long totalComputationTime = System.currentTimeMillis() - start; log.put("timeComputation", totalComputationTime); log.put("timeCoveraging", timeCoveraging); log.put("timeMineX", timeMineX); - jsonObj.put(JSONConstants.LOGGING, log); + jsonObj.put(JsonConstants.LOGGING, log); // deliver(getSession(), client, message.getChannel(), jsonObj, false); } } catch (final JSONException e) { diff --git a/src/main/java/it/unibz/inf/isoga/service/ServiceWps.java b/src/main/java/it/unibz/inf/isoga/service/ServiceWps.java index 49e45edf..5c9e5962 100644 --- a/src/main/java/it/unibz/inf/isoga/service/ServiceWps.java +++ b/src/main/java/it/unibz/inf/isoga/service/ServiceWps.java @@ -1,11 +1,11 @@ package it.unibz.inf.isoga.service; -import it.unibz.inf.isochrone.util.Enums.QueryType; +import it.unibz.inf.isochrone.util.EnumContainer.QueryType; import it.unibz.inf.isoga.db.DbUtility; -import it.unibz.inf.isoga.db.SQLQuery; +import it.unibz.inf.isoga.db.SqlQuery; import it.unibz.inf.isoga.util.IsogaConfig; -import it.unibz.inf.isoga.util.JSONConstants; +import it.unibz.inf.isoga.util.JsonConstants; import java.util.List; @@ -37,13 +37,13 @@ public class ServiceWps extends AbstractService { final String spatialPredicate = ((String) jsonObject.get("spatialPredicate")).trim(); final IsogaConfig config = socketConfig.getClientConfig(clientId); - final SQLQuery query = new SQLQuery(sqlMessage, coverageTable, spatialPredicate); + final SqlQuery query = new SqlQuery(sqlMessage, coverageTable, spatialPredicate); JSONObject root = null; try { if (query.getQueryType().equals(QueryType.INVALID)) { root = new JSONObject(); - root.put(JSONConstants.QUERYTYPE, QueryType.INVALID.toString().toLowerCase()); + root.put(JsonConstants.QUERYTYPE, QueryType.INVALID.toString().toLowerCase()); } else { final String spatialQuery = query.getSpatialQueryString(config); JSONObject statistics = null; @@ -65,7 +65,7 @@ public class ServiceWps extends AbstractService { statistics.put(key, root.get(key)); } - root.put(JSONConstants.STATISTICS, statistics); + root.put(JsonConstants.STATISTICS, statistics); root.put("queryType", query.getQueryType()); } } catch (final JSONException e) { diff --git a/src/main/java/it/unibz/inf/isoga/service/SevicePoiFeature.java b/src/main/java/it/unibz/inf/isoga/service/SevicePoiFeature.java index 42d960f1..330e1c76 100644 --- a/src/main/java/it/unibz/inf/isoga/service/SevicePoiFeature.java +++ b/src/main/java/it/unibz/inf/isoga/service/SevicePoiFeature.java @@ -3,7 +3,7 @@ package it.unibz.inf.isoga.service; import it.unibz.inf.isoga.db.DbUtility; import it.unibz.inf.isoga.util.IsogaConfig; -import it.unibz.inf.isoga.util.JSONConstants; +import it.unibz.inf.isoga.util.JsonConstants; import java.util.List; @@ -37,7 +37,7 @@ public class SevicePoiFeature extends AbstractService { JSONObject poiFeatures = new JSONObject(); try { if (!sqlMessage.toUpperCase().startsWith("SELECT")) { - poiFeatures.put(JSONConstants.TYPE, "No result"); + poiFeatures.put(JsonConstants.TYPE, "No result"); } else { poiFeatures = DbUtility.getPoiFeatures(sqlMessage, config); } diff --git a/src/main/java/it/unibz/inf/isoga/util/DSetConfig.java b/src/main/java/it/unibz/inf/isoga/util/DSetConfig.java index b04f1a1c..49597e26 100644 --- a/src/main/java/it/unibz/inf/isoga/util/DSetConfig.java +++ b/src/main/java/it/unibz/inf/isoga/util/DSetConfig.java @@ -1,7 +1,7 @@ package it.unibz.inf.isoga.util; -import it.unibz.inf.isochrone.util.Enums.Dataset; -import it.unibz.inf.isochrone.util.Enums.TableType; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.TableType; import it.unibz.inf.isochrone.util.Point; import it.unibz.inf.isoga.db.TableEntry; import it.unibz.inf.isoga.geometry.BBox; @@ -92,7 +92,7 @@ public class DSetConfig implements Cloneable { bboxValArray.put(clientMBR.getMinY()); bboxValArray.put(clientMBR.getMaxX()); bboxValArray.put(clientMBR.getMaxY()); - resultObject.put(JSONConstants.BBOX, bboxValArray); + resultObject.put(JsonConstants.BBOX, bboxValArray); edgeLayerObject.put("name", edgeTableEntry.getDescription()); edgeLayerObject.put("layer", edgeTableEntry.getTableName()); @@ -113,23 +113,21 @@ public class DSetConfig implements Cloneable { } @Override - public Object clone() throws CloneNotSupportedException { - super.clone(); + public Object clone() { + final DSetConfig clonedObject = new DSetConfig(dataset, serverMBR, clientMBR, time, queryPoint, serverSRID, workspace); + clonedObject.edgeLayer = edgeLayer; + clonedObject.vertexLayer = vertexLayer; + clonedObject.vertexAnnotatedTableName = vertexAnnotatedTableName; + clonedObject.areaBufferLayer = areaBufferLayer; - final DSetConfig cfg = new DSetConfig(dataset, serverMBR, clientMBR, time, queryPoint, serverSRID, workspace); - cfg.edgeLayer = edgeLayer; - cfg.vertexLayer = vertexLayer; - cfg.vertexAnnotatedTableName = vertexAnnotatedTableName; - cfg.areaBufferLayer = areaBufferLayer; - - return cfg; + return clonedObject; } - public void appendSessionId(final String id) { - edgeLayer = appendId(edgeLayer, id); - vertexLayer = appendId(vertexLayer, id); - areaBufferLayer = appendId(areaBufferLayer, id); - vertexAnnotatedTableName = appendId(vertexAnnotatedTableName, id); + public void appendTableSuffix(final String suffix) { + edgeLayer = appendSuffix(edgeLayer, suffix); + vertexLayer = appendSuffix(vertexLayer, suffix); + areaBufferLayer = appendSuffix(areaBufferLayer, suffix); + vertexAnnotatedTableName = appendSuffix(vertexAnnotatedTableName, suffix); edgeTableEntry = new TableEntry(edgeLayer, "sidx_" + edgeLayer, TableType.EDGE); vertexTableEntry = new TableEntry(vertexLayer, "sidx_" + vertexLayer, TableType.VERTEX); @@ -173,7 +171,7 @@ public class DSetConfig implements Cloneable { return registered; } - private String appendId(final String layerName, final String id) { + private String appendSuffix(final String layerName, final String id) { String name = layerName + "_" + id; if (name.length() > NAME_MAX_LENGTH) { // CHECKSTYLE:OFF MagicNumber diff --git a/src/main/java/it/unibz/inf/isoga/util/IsogaConfig.java b/src/main/java/it/unibz/inf/isoga/util/IsogaConfig.java index 1cedf4f4..22cab5d8 100644 --- a/src/main/java/it/unibz/inf/isoga/util/IsogaConfig.java +++ b/src/main/java/it/unibz/inf/isoga/util/IsogaConfig.java @@ -1,9 +1,9 @@ package it.unibz.inf.isoga.util; import it.unibz.inf.isochrone.util.Config; -import it.unibz.inf.isochrone.util.Enums.Dataset; -import it.unibz.inf.isochrone.util.Enums.Direction; -import it.unibz.inf.isochrone.util.Enums.TableType; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.Direction; +import it.unibz.inf.isochrone.util.EnumContainer.TableType; import it.unibz.inf.isoga.db.TableEntry; import java.io.InputStream; @@ -18,13 +18,8 @@ public class IsogaConfig extends Config { private TableEntry destinationVertexTableEntry; private TableEntry destinationVertexAnnotatedTableEntry; private TableEntry destinationAreaBufferTableEntry; - private Direction direction = Direction.INCOMING; - public IsogaConfig() { - super(); - } - public IsogaConfig(final Dataset dataset) { super(dataset); } @@ -37,16 +32,15 @@ public class IsogaConfig extends Config { @Override public void appendPropertyFile(final InputStream inputStream) { super.appendPropertyFile(inputStream); - destinationEdgeTableEntry = new TableEntry(getProperty("tbl.isoLinks"), getProperty("idx.isoLinks"), - TableType.EDGE); + if (densityLimit == Short.MIN_VALUE && getProperty("limit.density") != null) { densityLimit = Short.parseShort(getProperty("limit.density")); } - destinationAreaBufferTableEntry = new TableEntry(getProperty("tbl.isoAreaBuffer"), - getProperty("idx.isoAreaBuffer"), TableType.COVERAGE); - destinationVertexTableEntry = new TableEntry(getProperty("tbl.isoNodes"), getProperty("idx.isoNodes"), - TableType.VERTEX); + + destinationEdgeTableEntry = new TableEntry(getProperty("tbl.isoLinks"), getProperty("idx.isoLinks"), TableType.EDGE); + destinationAreaBufferTableEntry = new TableEntry(getProperty("tbl.isoAreaBuffer"), getProperty("idx.isoAreaBuffer"), TableType.COVERAGE); destinationVertexAnnotatedTableEntry = new TableEntry(getProperty("tbl.isoNodesAnnotations")); + destinationVertexTableEntry = new TableEntry(getProperty("tbl.isoNodes"), getProperty("idx.isoNodes"), TableType.VERTEX); } public void setDestinationEdgeTableEntry(final TableEntry destinationEdgeTableEntry) { diff --git a/src/main/java/it/unibz/inf/isoga/util/JSONConstants.java b/src/main/java/it/unibz/inf/isoga/util/JsonConstants.java similarity index 94% rename from src/main/java/it/unibz/inf/isoga/util/JSONConstants.java rename to src/main/java/it/unibz/inf/isoga/util/JsonConstants.java index 40e61160..6cde0e6a 100644 --- a/src/main/java/it/unibz/inf/isoga/util/JSONConstants.java +++ b/src/main/java/it/unibz/inf/isoga/util/JsonConstants.java @@ -3,9 +3,9 @@ package it.unibz.inf.isoga.util; /** * Constants that appear in the JSON for the statistics of the data included in the isochrone. */ -public final class JSONConstants { +public final class JsonConstants { - private JSONConstants() { } + private JsonConstants() { } public static final String FEATURE_TYPE = "type"; public static final String LAYER = "layer"; diff --git a/src/main/java/it/unibz/inf/isoga/util/SBAUtil.java b/src/main/java/it/unibz/inf/isoga/util/MathHelper.java similarity index 97% rename from src/main/java/it/unibz/inf/isoga/util/SBAUtil.java rename to src/main/java/it/unibz/inf/isoga/util/MathHelper.java index 1d3ca25b..d54ffcb7 100644 --- a/src/main/java/it/unibz/inf/isoga/util/SBAUtil.java +++ b/src/main/java/it/unibz/inf/isoga/util/MathHelper.java @@ -6,17 +6,19 @@ import it.unibz.inf.isoga.coverage.IsoEdge; /** * Mathematical helper functions. */ -public final class SBAUtil { +public final class MathHelper { private static final int FULL_CIRCLE_DEGREE = 360; - private SBAUtil() { } + private MathHelper() { } /** * @param toLink * @return the angle between the last point and the second last one */ public static double calculateAngle(final boolean fromLast, final IsoEdge toLink) { - Point toPoint = null, intermediate = null; + Point intermediate = null; + Point toPoint = null; + if (fromLast) { intermediate = toLink.getGeometry().getLastPoint(); toPoint = toLink.getGeometry().getPoint(toLink.getGeometry().numPoints() - 2); @@ -24,6 +26,7 @@ public final class SBAUtil { intermediate = toLink.getGeometry().getFirstPoint(); toPoint = toLink.getGeometry().getPoint(1); } + return calculateAngle(intermediate, toPoint); } diff --git a/src/main/java/it/unibz/inf/isoga/util/PGUtil.java b/src/main/java/it/unibz/inf/isoga/util/PgHelper.java similarity index 90% rename from src/main/java/it/unibz/inf/isoga/util/PGUtil.java rename to src/main/java/it/unibz/inf/isoga/util/PgHelper.java index e78e7716..87cfed8a 100644 --- a/src/main/java/it/unibz/inf/isoga/util/PGUtil.java +++ b/src/main/java/it/unibz/inf/isoga/util/PgHelper.java @@ -10,9 +10,9 @@ import java.util.List; * @author <a href="mailto:markus.innerebner@inf.unibz.it">Markus Innerebner</a>. * @version 2.2 */ -public final class PGUtil { +public final class PgHelper { - private PGUtil() { } + private PgHelper() { } public static org.postgis.Point[] asPGPoints(final List<Point> pts) { final org.postgis.Point[] pgPts = new org.postgis.Point[pts.size()]; diff --git a/src/main/java/it/unibz/inf/isoga/websocket/JsonWebsocket.java b/src/main/java/it/unibz/inf/isoga/websocket/JsonWebsocket.java index 7c6e405b..167b17dd 100644 --- a/src/main/java/it/unibz/inf/isoga/websocket/JsonWebsocket.java +++ b/src/main/java/it/unibz/inf/isoga/websocket/JsonWebsocket.java @@ -1,7 +1,6 @@ package it.unibz.inf.isoga.websocket; import it.geosolutions.geoserver.rest.GeoServerRESTPublisher; -import it.unibz.inf.isochrone.util.Enums.Dataset; import it.unibz.inf.isoga.db.DbUtility; import it.unibz.inf.isoga.db.TableEntry; import it.unibz.inf.isoga.service.IService; @@ -13,8 +12,8 @@ import it.unibz.inf.isoga.service.SevicePoiFeature; import it.unibz.inf.isoga.util.DSetConfig; import java.sql.Connection; +import java.util.Collection; import java.util.List; -import java.util.Map; import javax.websocket.CloseReason; import javax.websocket.OnClose; @@ -90,17 +89,17 @@ public class JsonWebsocket { final Connection connection = SocketConfiguration.getGlobalConfig().getConnection(); final String ws = SocketConfiguration.getGlobalConfig().getProperty("rendering.server.rest.workspace"); - final Map<Dataset, DSetConfig> datasets = socketConf.getClientDataset(clientId); final GeoServerRESTPublisher publisher = socketConf.getGeoServerPublisher(); - for (final DSetConfig dsetConfig : datasets.values()) { - if (dsetConfig.isRegistered()) { + final Collection<DSetConfig> allClientDatasetConfigs = socketConf.getAllClientDatasetConfigs(clientId); + for (final DSetConfig clientDSetConfig : allClientDatasetConfigs) { + if (clientDSetConfig.isRegistered()) { // unregister layers - for (final String layerName : dsetConfig.getLayers()) { + for (final String layerName : clientDSetConfig.getLayers()) { publisher.removeLayer(ws, layerName); } // drop tables - for (final TableEntry tableEntry : dsetConfig.getTableEntries()) { + for (final TableEntry tableEntry : clientDSetConfig.getTableEntries()) { DbUtility.dropIndex(connection, tableEntry.getIndexName()); DbUtility.dropTable(connection, tableEntry.getTableName(), true); } diff --git a/src/main/java/it/unibz/inf/isoga/websocket/SocketConfiguration.java b/src/main/java/it/unibz/inf/isoga/websocket/SocketConfiguration.java index ad70dd10..37857c23 100644 --- a/src/main/java/it/unibz/inf/isoga/websocket/SocketConfiguration.java +++ b/src/main/java/it/unibz/inf/isoga/websocket/SocketConfiguration.java @@ -7,7 +7,7 @@ import it.geosolutions.geoserver.rest.decoder.RESTLayerList; import it.geosolutions.geoserver.rest.encoder.GSLayerEncoder; import it.geosolutions.geoserver.rest.encoder.feature.GSFeatureTypeEncoder; import it.unibz.inf.isochrone.util.Config; -import it.unibz.inf.isochrone.util.Enums.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; import it.unibz.inf.isochrone.util.Point; import it.unibz.inf.isoga.db.DbUtility; import it.unibz.inf.isoga.db.IsogaDatabase; @@ -26,6 +26,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -84,27 +85,31 @@ public final class SocketConfiguration { return clientConfigMap.get(clientId); } - public Map<Dataset, DSetConfig> getClientDataset(final String clientId) { + public DSetConfig getClientDatasetConfig(final String clientId, final Dataset dataset) { if (!clientDatasets.containsKey(clientId)) { return null; } - return clientDatasets.get(clientId); + return clientDatasets.get(clientId).get(dataset); } - public Collection<DSetConfig> getAllClientDatasetConfigs() { - return datasetConfigs; + public Collection<DSetConfig> getAllClientDatasetConfigs(final String clientId) { + if (!clientDatasets.containsKey(clientId)) { + return Collections.emptyList(); + } + + return clientDatasets.get(clientId).values(); } - public void removeClientDataset(final String clientId) { - clientDatasets.remove(clientId); + public Collection<DSetConfig> getDatasetConfigurations() { + return datasetConfigs; } public void setClientConfig(final String clientId, final IsogaConfig config) { clientConfigMap.put(clientId, config); } - public void setClientDataset(final String clientId, final DSetConfig datasetConfig) { + public void setClientDSetConfig(final String clientId, final DSetConfig datasetConfig) { if (!clientDatasets.containsKey(clientId)) { clientDatasets.put(clientId, new HashMap<Dataset, DSetConfig>()); } @@ -120,15 +125,14 @@ public final class SocketConfiguration { return manager.getReader(); } - /** - * Creates the tables and for every session a new datastore via rest. + * Creates the database tables and new layers for every session. */ public void registerLayers(final Connection connection, final DSetConfig dSetConfig) { + final Config globalConfig = getGlobalConfig(); final GeoServerRESTPublisher publisher = getGeoServerPublisher(); - - final String ds = getGlobalConfig().getProperty("rendering.server.rest.datastore"); - final String ws = getGlobalConfig().getProperty("rendering.server.rest.workspace"); + final String ds = globalConfig.getProperty("rendering.server.rest.datastore"); + final String ws = globalConfig.getProperty("rendering.server.rest.workspace"); final BBox serverExtend = dSetConfig.getServerExtent(); final int serverSrid = dSetConfig.getServerSRID(); final String srs = "EPSG:" + serverSrid; @@ -203,35 +207,41 @@ public final class SocketConfiguration { final Thread t = new Thread() { @Override public void run() { - while (!manager.getReader().existGeoserver()) { + final GeoServerRESTReader reader = getGeoServerReader(); + while (!reader.existGeoserver()) { try { sleep(SLEEP_TIME); } catch (final InterruptedException e1) { e1.printStackTrace(); } } - cleanupLayersAndTables(); + + deleteLayers(); + dropTables(); } - private void cleanupLayersAndTables() { + private void dropTables() { final Connection connection = GLOBAL_CONFIG.getConnection(); - deleteAllLayers(); - DbUtility.dropAllResultTables(connection, "_iso_edg_"); - DbUtility.dropAllResultTables(connection, "_iso_nod_"); - DbUtility.dropAllResultTables(connection, "_iso_nan_"); - DbUtility.dropAllResultTables(connection, "_iso_are_"); + + DbUtility.dropTablesByRegexp(connection, "%_iso_edg_%"); + DbUtility.dropTablesByRegexp(connection, "%_iso_nod_%"); + DbUtility.dropTablesByRegexp(connection, "%_iso_nan_%"); + DbUtility.dropTablesByRegexp(connection, "%_iso_are_%"); } - private void deleteAllLayers() { - final RESTLayerList layers = manager.getReader().getLayers(); + private void deleteLayers() { + final GeoServerRESTPublisher publisher = getGeoServerPublisher(); + final GeoServerRESTReader reader = getGeoServerReader(); + + final RESTLayerList layers = reader.getLayers(); if (layers != null) { final List<String> layerNames = layers.getNames(); for (final String layerName : layerNames) { - manager.getPublisher().removeLayer(GLOBAL_CONFIG.getProperty("rendering.server.rest.workspace"), layerName); + publisher.removeLayer(GLOBAL_CONFIG.getProperty("rendering.server.rest.workspace"), layerName); } } - manager.getPublisher().reload(); + publisher.reload(); } }; t.start(); diff --git a/src/test/java/it/unibz/inf/isochrones/db/DatabaseTest.java b/src/test/java/it/unibz/inf/isochrone/db/DatabaseTest.java similarity index 90% rename from src/test/java/it/unibz/inf/isochrones/db/DatabaseTest.java rename to src/test/java/it/unibz/inf/isochrone/db/DatabaseTest.java index e15b6819..4452a91c 100644 --- a/src/test/java/it/unibz/inf/isochrones/db/DatabaseTest.java +++ b/src/test/java/it/unibz/inf/isochrone/db/DatabaseTest.java @@ -1,11 +1,10 @@ -package it.unibz.inf.isochrones.db; +package it.unibz.inf.isochrone.db; -import it.unibz.inf.isochrone.db.Database; import it.unibz.inf.isochrone.network.Link; import it.unibz.inf.isochrone.network.Node; -import it.unibz.inf.isochrone.util.Enums.Dataset; -import it.unibz.inf.isochrone.util.Enums.Direction; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.Direction; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/test/java/it/unibz/inf/isochrones/network/IsochroneComparisonTest.java b/src/test/java/it/unibz/inf/isochrone/network/IsochroneComparisonTest.java similarity index 86% rename from src/test/java/it/unibz/inf/isochrones/network/IsochroneComparisonTest.java rename to src/test/java/it/unibz/inf/isochrone/network/IsochroneComparisonTest.java index 6f917bb2..1a4df894 100644 --- a/src/test/java/it/unibz/inf/isochrones/network/IsochroneComparisonTest.java +++ b/src/test/java/it/unibz/inf/isochrone/network/IsochroneComparisonTest.java @@ -1,13 +1,12 @@ -package it.unibz.inf.isochrones.network; +package it.unibz.inf.isochrone.network; import it.unibz.inf.isochrone.algorithm.Isochrone; import it.unibz.inf.isochrone.algorithm.MDijkstra; import it.unibz.inf.isochrone.algorithm.MineX; import it.unibz.inf.isochrone.algorithm.MrneX; -import it.unibz.inf.isochrone.network.MemoryOutput; -import it.unibz.inf.isochrone.util.Enums.Dataset; -import it.unibz.inf.isochrone.util.Enums.Direction; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.Direction; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import it.unibz.inf.isochrone.util.Query; import java.util.GregorianCalendar; diff --git a/src/test/java/it/unibz/inf/isochrones/network/MineXTest.java b/src/test/java/it/unibz/inf/isochrone/network/MineXTest.java similarity index 73% rename from src/test/java/it/unibz/inf/isochrones/network/MineXTest.java rename to src/test/java/it/unibz/inf/isochrone/network/MineXTest.java index 38081ebe..ff141e7f 100644 --- a/src/test/java/it/unibz/inf/isochrones/network/MineXTest.java +++ b/src/test/java/it/unibz/inf/isochrone/network/MineXTest.java @@ -1,11 +1,10 @@ -package it.unibz.inf.isochrones.network; +package it.unibz.inf.isochrone.network; import it.unibz.inf.isochrone.algorithm.Isochrone; import it.unibz.inf.isochrone.algorithm.MineX; -import it.unibz.inf.isochrone.network.MemoryOutput; -import it.unibz.inf.isochrone.util.Enums.Dataset; -import it.unibz.inf.isochrone.util.Enums.Direction; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.Direction; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import it.unibz.inf.isochrone.util.Query; import java.util.GregorianCalendar; diff --git a/src/test/java/it/unibz/inf/isochrones/network/MrneXTest.java b/src/test/java/it/unibz/inf/isochrone/network/MrneXTest.java similarity index 76% rename from src/test/java/it/unibz/inf/isochrones/network/MrneXTest.java rename to src/test/java/it/unibz/inf/isochrone/network/MrneXTest.java index fad32fa4..fecdbd7f 100644 --- a/src/test/java/it/unibz/inf/isochrones/network/MrneXTest.java +++ b/src/test/java/it/unibz/inf/isochrone/network/MrneXTest.java @@ -1,11 +1,10 @@ -package it.unibz.inf.isochrones.network; +package it.unibz.inf.isochrone.network; import it.unibz.inf.isochrone.algorithm.Isochrone; import it.unibz.inf.isochrone.algorithm.MrneX; -import it.unibz.inf.isochrone.network.MemoryOutput; -import it.unibz.inf.isochrone.util.Enums.Dataset; -import it.unibz.inf.isochrone.util.Enums.Direction; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.Direction; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import it.unibz.inf.isochrone.util.Query; import java.util.GregorianCalendar; diff --git a/src/test/java/it/unibz/inf/isochrones/network/QueryTest.java b/src/test/java/it/unibz/inf/isochrone/network/QueryTest.java similarity index 84% rename from src/test/java/it/unibz/inf/isochrones/network/QueryTest.java rename to src/test/java/it/unibz/inf/isochrone/network/QueryTest.java index 560dc08f..14065a85 100644 --- a/src/test/java/it/unibz/inf/isochrones/network/QueryTest.java +++ b/src/test/java/it/unibz/inf/isochrone/network/QueryTest.java @@ -1,9 +1,9 @@ -package it.unibz.inf.isochrones.network; +package it.unibz.inf.isochrone.network; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.Direction; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import it.unibz.inf.isochrone.util.Query; -import it.unibz.inf.isochrone.util.Enums.Dataset; -import it.unibz.inf.isochrone.util.Enums.Direction; -import it.unibz.inf.isochrone.util.Enums.Mode; import java.util.Arrays; import java.util.GregorianCalendar; diff --git a/src/test/java/it/unibz/inf/isochrones/tests/Parameters.java b/src/test/java/it/unibz/inf/isochrone/test/Parameters.java similarity index 90% rename from src/test/java/it/unibz/inf/isochrones/tests/Parameters.java rename to src/test/java/it/unibz/inf/isochrone/test/Parameters.java index 9eb0e7d4..1a6fdec1 100644 --- a/src/test/java/it/unibz/inf/isochrones/tests/Parameters.java +++ b/src/test/java/it/unibz/inf/isochrone/test/Parameters.java @@ -1,8 +1,8 @@ -package it.unibz.inf.isochrones.tests; +package it.unibz.inf.isochrone.test; -import it.unibz.inf.isochrone.util.Enums.Dataset; -import it.unibz.inf.isochrone.util.Enums.Direction; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.Direction; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import java.util.Calendar; import java.util.GregorianCalendar; diff --git a/src/test/java/it/unibz/inf/isochrones/tests/RunSimple.java b/src/test/java/it/unibz/inf/isochrone/test/RunSimple.java similarity index 97% rename from src/test/java/it/unibz/inf/isochrones/tests/RunSimple.java rename to src/test/java/it/unibz/inf/isochrone/test/RunSimple.java index 26196560..8ff6db4b 100644 --- a/src/test/java/it/unibz/inf/isochrones/tests/RunSimple.java +++ b/src/test/java/it/unibz/inf/isochrone/test/RunSimple.java @@ -1,4 +1,4 @@ -package it.unibz.inf.isochrones.tests; +package it.unibz.inf.isochrone.test; import it.unibz.inf.isochrone.algorithm.Isochrone; import it.unibz.inf.isochrone.algorithm.MrneX; diff --git a/src/test/java/it/unibz/inf/isochrones/tests/RuntimeTest.java b/src/test/java/it/unibz/inf/isochrone/test/RuntimeTest.java similarity index 96% rename from src/test/java/it/unibz/inf/isochrones/tests/RuntimeTest.java rename to src/test/java/it/unibz/inf/isochrone/test/RuntimeTest.java index 73ac4fb7..d455829d 100644 --- a/src/test/java/it/unibz/inf/isochrones/tests/RuntimeTest.java +++ b/src/test/java/it/unibz/inf/isochrone/test/RuntimeTest.java @@ -1,13 +1,13 @@ -package it.unibz.inf.isochrones.tests; +package it.unibz.inf.isochrone.test; import it.unibz.inf.isochrone.algorithm.Isochrone; import it.unibz.inf.isochrone.algorithm.MDijkstra; import it.unibz.inf.isochrone.algorithm.MineX; import it.unibz.inf.isochrone.algorithm.MrneX; import it.unibz.inf.isochrone.network.MemoryOutput; -import it.unibz.inf.isochrone.util.Enums.Dataset; -import it.unibz.inf.isochrone.util.Enums.Direction; -import it.unibz.inf.isochrone.util.Enums.Mode; +import it.unibz.inf.isochrone.util.EnumContainer.Dataset; +import it.unibz.inf.isochrone.util.EnumContainer.Direction; +import it.unibz.inf.isochrone.util.EnumContainer.Mode; import it.unibz.inf.isochrone.util.Query; import java.util.ArrayList; diff --git a/src/test/java/it/unibz/inf/isochrones/utils/ConfigTest.java b/src/test/java/it/unibz/inf/isochrone/util/ConfigTest.java similarity index 91% rename from src/test/java/it/unibz/inf/isochrones/utils/ConfigTest.java rename to src/test/java/it/unibz/inf/isochrone/util/ConfigTest.java index 59cc719f..e9bc2903 100644 --- a/src/test/java/it/unibz/inf/isochrones/utils/ConfigTest.java +++ b/src/test/java/it/unibz/inf/isochrone/util/ConfigTest.java @@ -1,6 +1,4 @@ -package it.unibz.inf.isochrones.utils; - -import it.unibz.inf.isochrone.util.Config; +package it.unibz.inf.isochrone.util; import org.testng.Assert; import org.testng.annotations.Test; -- GitLab