Skip to content
Snippets Groups Projects
Commit c0ad8aa4 authored by Nikolaus Krismer's avatar Nikolaus Krismer
Browse files

fixed some findbugs warnings

parent 2c7abe17
No related branches found
No related tags found
No related merge requests found
......@@ -75,6 +75,7 @@ dependencies {
compile(group: 'it.geosolutions', name: 'geoserver-manager', version:'1.5.2') {
exclude(module: 'jcl-over-slf4j')
}
compile group: 'com.google.code.findbugs', name: 'annotations', version: '2.0.3'
compile group: 'org.json', name: 'json', version:'20131018'
compile(group: 'org.postgis', name: 'postgis-jdbc', version:'1.3+') {
exclude(module: 'postgis-stubs')
......@@ -127,7 +128,9 @@ eclipse {
}
findbugs {
effort = "max"
ignoreFailures = true
toolVersion = '2.0.3'
}
publishing {
......
package it.unibz.inf.isoga.coverage;
import it.unibz.inf.isochrone.util.Enums.Mode;
import it.unibz.inf.isoga.db.Database;
import it.unibz.inf.isoga.db.IsogaDatabase;
import it.unibz.inf.isoga.util.IsogaConfig;
import it.unibz.inf.isoga.util.SBAUtil;
......@@ -21,14 +21,14 @@ public class CoverageBuilder {
private static final int FULL_CIRCLE_DEGREE = 360;
private final IsogaConfig config;
private final Mode mode;
private final Database db;
private final IsogaDatabase db;
private final Set<Integer> exploredEdges = new HashSet<Integer>();
private long timeBufferQuery;
public CoverageBuilder(final IsogaConfig config, final Mode mode) {
this.config = config;
this.mode = mode;
db = new Database(config);
db = new IsogaDatabase(config);
}
/**
......
package it.unibz.inf.isoga.db;
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;
......@@ -33,12 +34,14 @@ import org.postgis.LinearRing;
import org.postgis.PGgeometry;
import org.postgis.Polygon;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
/**
* This class contains Database queries specific to the Isoga web
* interface. (Mostly inserting vertices and links into the tables
* used for the GeoServer)
*/
public class Database extends it.unibz.inf.isochrone.db.Database {
public class IsogaDatabase extends Database {
private final String queryGetIsoEdges;
private final String queryStoreLinks;
private final String queryStorePartialLinks;
......@@ -46,7 +49,7 @@ public class Database extends it.unibz.inf.isochrone.db.Database {
private final String queryInsertVertexAnnotation;
private final String queryUpdateVertices;
public Database(final IsogaConfig cfg) {
public IsogaDatabase(final IsogaConfig cfg) {
super(cfg);
queryGetIsoEdges = "SELECT E.\"ID\", E.\"SOURCE\", V.\"DISTANCE\" DISTANCE, E.\"TARGET\", E.\"OFFSET\", E.\"LENGTH\",E.\"GEOMETRY\" FROM "
......@@ -74,7 +77,7 @@ public class Database extends it.unibz.inf.isochrone.db.Database {
+ cfg.getDestinationVertexTableEntry().getTableName() + ".\"ROUTE_ID\">=0";
}
public Database(final IsogaConfig config, final Mode mode) {
public IsogaDatabase(final IsogaConfig config, final Mode mode) {
this(config);
this.mode = mode;
}
......@@ -128,15 +131,19 @@ public class Database extends it.unibz.inf.isochrone.db.Database {
}
}
@SuppressFBWarnings(
value = "DLS_DEAD_LOCAL_STORE",
justification = "False positiv in DLS_DEAD_LOCAL_STORE check"
)
public Collection<IsoEdge> getIsochroneEdges(final int dMax, final double speed) {
final boolean avoidNonPartialDuplicates = false;
final Collection<IsoEdge> isoEdges = new ArrayList<IsoEdge>();
final Map<String, IsoEdge> addedLinks = new HashMap<String, IsoEdge>();
PreparedStatement statement = null;
ResultSet resultSet = null;
try {
statement = getPstmt(queryGetIsoEdges);
resultSet = statement.executeQuery();
while (resultSet.next()) {
final int edgeId = resultSet.getInt("ID");
......@@ -161,15 +168,18 @@ public class Database extends it.unibz.inf.isochrone.db.Database {
edge.setEndOffset(adjNodeOffset);
edge.setRemainingDistance(adjNodeOffset < length ? 0 : dMax - edge.getAdjNodeDistance() * speed);
}
if (avoidNonPartialDuplicates) {
if (addedLinks.containsKey(edge.getInvertedIdentifier())) {
final IsoEdge invertedEdge = addedLinks.get(edge.getInvertedIdentifier());
if (invertedEdge.isPartial()) { // inverted is partial
addedLinks.put(edge.getIdentifier(), edge);
final String invertedId = edge.getInvertedIdentifier();
final String id = edge.getIdentifier();
if (addedLinks.containsKey(invertedId)) {
final IsoEdge invertedEdge = addedLinks.get(invertedId);
if (invertedEdge.isPartial()) {
addedLinks.put(id, edge);
isoEdges.add(edge);
}
} else {
addedLinks.put(edge.getIdentifier(), edge);
addedLinks.put(id, edge);
isoEdges.add(edge);
}
} else {
......@@ -181,6 +191,7 @@ public class Database extends it.unibz.inf.isochrone.db.Database {
} finally {
DbUtils.closeQuietly(resultSet);
}
return isoEdges;
}
......
......@@ -2,7 +2,7 @@ package it.unibz.inf.isoga.network;
import it.unibz.inf.isochrone.network.MemoryOutput;
import it.unibz.inf.isochrone.network.Node;
import it.unibz.inf.isoga.db.Database;
import it.unibz.inf.isoga.db.IsogaDatabase;
import it.unibz.inf.isoga.geometry.BBox;
import it.unibz.inf.isoga.util.IsogaConfig;
......@@ -22,7 +22,7 @@ import org.apache.commons.dbutils.DbUtils;
public class MemoryBBoxOutput extends MemoryOutput {
private final Set<Node> nodes = new HashSet<Node>();
public void storeAll(final IsogaConfig config, final Database db) {
public void storeAll(final IsogaConfig config, final IsogaDatabase db) {
db.storeLinks(links.values(), config);
db.storeVertices(nodes, config);
}
......
......@@ -13,7 +13,7 @@ import it.unibz.inf.isochrone.util.Query;
import it.unibz.inf.isoga.coverage.CoverageBuilder;
import it.unibz.inf.isoga.datastructure.QueryPoint;
import it.unibz.inf.isoga.db.DBUtility;
import it.unibz.inf.isoga.db.Database;
import it.unibz.inf.isoga.db.IsogaDatabase;
import it.unibz.inf.isoga.network.MemoryBBoxOutput;
import it.unibz.inf.isoga.util.IsogaConfig;
import it.unibz.inf.isoga.util.DSetConfig;
......@@ -147,7 +147,7 @@ public class ServiceIsochrone extends AbstractService {
// public void run() {
final long start = System.currentTimeMillis();
config.setDirection(direction);
final Database db = new Database(config, mode);
final IsogaDatabase db = new IsogaDatabase(config, mode);
truncateTables(config);
final Query query = new Query(direction, speed, dMaxInMinutes * 60, date, true, dataset, mode);
query.setLocations(locationsFromQueryPoints(qPoints, new IsogaConfig(dataset)));
......@@ -232,7 +232,7 @@ public class ServiceIsochrone extends AbstractService {
}
final Set<Location> locations = new HashSet<Location>(queryPoints.size());
final Database db = new Database(config);
final IsogaDatabase db = new IsogaDatabase(config);
for (final QueryPoint qPoint : queryPoints) {
locations.addAll(db.projectOnLinks(qPoint));
}
......
......@@ -83,10 +83,12 @@ public final class SBAUtil {
if (relativeAngle < 0) {
relativeAngle = Math.toDegrees(2 * Math.PI) + relativeAngle;
}
if (relativeAngle == Double.NaN) {
if (Double.isNaN(relativeAngle) || Double.isInfinite(relativeAngle)) {
System.err.println("Problems with angle computation.");
return Double.MAX_VALUE;
}
return relativeAngle;
}
......
......@@ -9,7 +9,7 @@ import it.geosolutions.geoserver.rest.encoder.feature.GSFeatureTypeEncoder;
import it.unibz.inf.isochrone.util.Enums.Dataset;
import it.unibz.inf.isochrone.util.Point;
import it.unibz.inf.isoga.db.DBUtility;
import it.unibz.inf.isoga.db.Database;
import it.unibz.inf.isoga.db.IsogaDatabase;
import it.unibz.inf.isoga.db.TableEntry;
import it.unibz.inf.isoga.geometry.BBox;
import it.unibz.inf.isoga.util.IsogaConfig;
......@@ -266,7 +266,7 @@ public final class SocketConfiguration {
e.printStackTrace();
}
final Database db = new Database(config);
final IsogaDatabase db = new IsogaDatabase(config);
final BBox clientBBox = new BBox(db.transform(lowerCorner), db.transform(upperCorner));
final Point queryPoint = db.transform(new Point(Double.valueOf(poiProperty[0]), Double.valueOf(poiProperty[1])));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment