[clean] Apply formatting and add formatter configuration.

This commit is contained in:
Mikael Capelle
2021-07-08 13:53:33 +02:00
committed by Mikael CAPELLE
parent 2f936d44ec
commit 730cda6426
86 changed files with 1460 additions and 1214 deletions

View File

@@ -41,8 +41,8 @@ public class BellmanFordAlgorithm extends ShortestPathAlgorithm {
boolean found = false;
for (int i = 0; !found && i < nbNodes; ++i) {
found = true;
for (Node node: graph.getNodes()) {
for (Arc arc: node.getSuccessors()) {
for (Node node : graph.getNodes()) {
for (Arc arc : node.getSuccessors()) {
// Small test to check allowed roads...
if (!data.isAllowed(arc)) {
@@ -54,14 +54,16 @@ public class BellmanFordAlgorithm extends ShortestPathAlgorithm {
double oldDistance = distances[arc.getDestination().getId()];
double newDistance = distances[node.getId()] + w;
if (Double.isInfinite(oldDistance) && Double.isFinite(newDistance)) {
if (Double.isInfinite(oldDistance)
&& Double.isFinite(newDistance)) {
notifyNodeReached(arc.getDestination());
}
// Check if new distances would be better, if so update...
if (newDistance < oldDistance) {
found = false;
distances[arc.getDestination().getId()] = distances[node.getId()] + w;
distances[arc.getDestination().getId()] =
distances[node.getId()] + w;
predecessorArcs[arc.getDestination().getId()] = arc;
}
}
@@ -91,7 +93,8 @@ public class BellmanFordAlgorithm extends ShortestPathAlgorithm {
Collections.reverse(arcs);
// Create the final solution.
solution = new ShortestPathSolution(data, Status.OPTIMAL, new Path(graph, arcs));
solution = new ShortestPathSolution(data, Status.OPTIMAL,
new Path(graph, arcs));
}
return solution;

View File

@@ -3,7 +3,8 @@ package org.insa.graphs.algorithm.shortestpath;
import org.insa.graphs.algorithm.AbstractAlgorithm;
import org.insa.graphs.model.Node;
public abstract class ShortestPathAlgorithm extends AbstractAlgorithm<ShortestPathObserver> {
public abstract class ShortestPathAlgorithm
extends AbstractAlgorithm<ShortestPathObserver> {
protected ShortestPathAlgorithm(ShortestPathData data) {
super(data);
@@ -24,45 +25,45 @@ public abstract class ShortestPathAlgorithm extends AbstractAlgorithm<ShortestPa
/**
* Notify all observers that the origin has been processed.
*
*
* @param node Origin.
*/
public void notifyOriginProcessed(Node node) {
for (ShortestPathObserver obs: getObservers()) {
for (ShortestPathObserver obs : getObservers()) {
obs.notifyOriginProcessed(node);
}
}
/**
* Notify all observers that a node has been reached for the first time.
*
*
* @param node Node that has been reached.
*/
public void notifyNodeReached(Node node) {
for (ShortestPathObserver obs: getObservers()) {
for (ShortestPathObserver obs : getObservers()) {
obs.notifyNodeReached(node);
}
}
/**
* Notify all observers that a node has been marked, i.e. its final value has
* been set.
*
* Notify all observers that a node has been marked, i.e. its final value has been
* set.
*
* @param node Node that has been marked.
*/
public void notifyNodeMarked(Node node) {
for (ShortestPathObserver obs: getObservers()) {
for (ShortestPathObserver obs : getObservers()) {
obs.notifyNodeMarked(node);
}
}
/**
* Notify all observers that the destination has been reached.
*
*
* @param node Destination.
*/
public void notifyDestinationReached(Node node) {
for (ShortestPathObserver obs: getObservers()) {
for (ShortestPathObserver obs : getObservers()) {
obs.notifyDestinationReached(node);
}
}

View File

@@ -12,14 +12,15 @@ public class ShortestPathData extends AbstractInputData {
/**
* Construct a new instance of ShortestPathInputData with the given parameters.
*
*
* @param graph Graph in which the path should be looked for.
* @param origin Origin node of the path.
* @param destination Destination node of the path.
* @param arcInspector Filter for arcs (used to allow only a specific set of
* arcs in the graph to be used).
* @param arcInspector Filter for arcs (used to allow only a specific set of arcs in
* the graph to be used).
*/
public ShortestPathData(Graph graph, Node origin, Node destination, ArcInspector arcInspector) {
public ShortestPathData(Graph graph, Node origin, Node destination,
ArcInspector arcInspector) {
super(graph, arcInspector);
this.origin = origin;
this.destination = destination;
@@ -41,7 +42,7 @@ public class ShortestPathData extends AbstractInputData {
@Override
public String toString() {
return "Shortest-path from #" + origin.getId() + " to #" + destination.getId() + " ["
+ this.arcInspector.toString().toLowerCase() + "]";
return "Shortest-path from #" + origin.getId() + " to #" + destination.getId()
+ " [" + this.arcInspector.toString().toLowerCase() + "]";
}
}

View File

@@ -3,35 +3,34 @@ package org.insa.graphs.algorithm.shortestpath;
import org.insa.graphs.model.Node;
public interface ShortestPathObserver {
/**
* Notify the observer that the origin has been processed.
*
* @param node Origin.
*/
public void notifyOriginProcessed(Node node);
/**
* Notify the observer that a node has been reached for the first
* time.
*
* @param node Node that has been reached.
*/
public void notifyNodeReached(Node node);
/**
* Notify the observer that a node has been marked, i.e. its final
* value has been set.
*
* @param node Node that has been marked.
*/
public void notifyNodeMarked(Node node);
/**
* Notify the observer that the destination has been reached.
*
* @param node Destination.
*/
public void notifyDestinationReached(Node node);
/**
* Notify the observer that the origin has been processed.
*
* @param node Origin.
*/
public void notifyOriginProcessed(Node node);
/**
* Notify the observer that a node has been reached for the first time.
*
* @param node Node that has been reached.
*/
public void notifyNodeReached(Node node);
/**
* Notify the observer that a node has been marked, i.e. its final value has been
* set.
*
* @param node Node that has been marked.
*/
public void notifyNodeMarked(Node node);
/**
* Notify the observer that the destination has been reached.
*
* @param node Destination.
*/
public void notifyDestinationReached(Node node);
}

View File

@@ -11,9 +11,8 @@ public class ShortestPathSolution extends AbstractSolution {
private final Path path;
/**
* Create a new infeasible shortest-path solution for the given input and
* status.
*
* Create a new infeasible shortest-path solution for the given input and status.
*
* @param data Original input data for this solution.
* @param status Status of the solution (UNKNOWN / INFEASIBLE).
*/
@@ -24,7 +23,7 @@ public class ShortestPathSolution extends AbstractSolution {
/**
* Create a new shortest-path solution.
*
*
* @param data Original input data for this solution.
* @param status Status of the solution (FEASIBLE / OPTIMAL).
* @param path Path corresponding to the solution.
@@ -51,15 +50,17 @@ public class ShortestPathSolution extends AbstractSolution {
String info = null;
if (!isFeasible()) {
info = String.format("No path found from node #%d to node #%d",
getInputData().getOrigin().getId(), getInputData().getDestination().getId());
getInputData().getOrigin().getId(),
getInputData().getDestination().getId());
}
else {
double cost = 0;
for (Arc arc: getPath().getArcs()) {
for (Arc arc : getPath().getArcs()) {
cost += getInputData().getCost(arc);
}
info = String.format("Found a path from node #%d to node #%d",
getInputData().getOrigin().getId(), getInputData().getDestination().getId());
getInputData().getOrigin().getId(),
getInputData().getDestination().getId());
if (getInputData().getMode() == Mode.LENGTH) {
info = String.format("%s, %.4f kilometers", info, cost / 1000.0);
}