Rename getInstance() -> getInputData(). Override getInputData() in solution classes to return correct type instead of abstract one.

This commit is contained in:
Holt59
2018-03-01 21:20:17 +01:00
parent 2fdaf30510
commit 4fae0e890c
8 changed files with 62 additions and 48 deletions

View File

@@ -19,8 +19,8 @@ public abstract class StronglyConnectedComponentsAlgorithm extends AbstractAlgor
}
@Override
public StronglyConnectedComponentsData getInstance() {
return (StronglyConnectedComponentsData)super.getInstance();
public StronglyConnectedComponentsData getInputData() {
return (StronglyConnectedComponentsData)super.getInputData();
}
}

View File

@@ -6,23 +6,30 @@ import org.insa.algo.AbstractSolution;
import org.insa.graph.Node;
public class StronglyConnectedComponentsSolution extends AbstractSolution {
// Components
private ArrayList<ArrayList<Node>> components;
protected StronglyConnectedComponentsSolution(StronglyConnectedComponentsData instance) {
super(instance);
}
protected StronglyConnectedComponentsSolution(StronglyConnectedComponentsData instance,
Status status, ArrayList<ArrayList<Node>> components) {
super(instance, status);
this.components = components;
}
/**
* @return Components of the solution, if any.
*/
public ArrayList<ArrayList<Node>> getComponents() { return components; }
// Components
private ArrayList<ArrayList<Node>> components;
protected StronglyConnectedComponentsSolution(StronglyConnectedComponentsData instance) {
super(instance);
}
protected StronglyConnectedComponentsSolution(StronglyConnectedComponentsData instance, Status status,
ArrayList<ArrayList<Node>> components) {
super(instance, status);
this.components = components;
}
@Override
public StronglyConnectedComponentsData getInputData() {
return (StronglyConnectedComponentsData) super.getInputData();
}
/**
* @return Components of the solution, if any.
*/
public ArrayList<ArrayList<Node>> getComponents() {
return components;
}
}

View File

@@ -114,7 +114,7 @@ public class TarjanAlgorithm extends StronglyConnectedComponentsAlgorithm {
@Override
protected StronglyConnectedComponentsSolution doRun() {
Graph graph = getInstance().getGraph();
Graph graph = getInputData().getGraph();
components = new ArrayList<ArrayList<Node>>();
@@ -138,7 +138,7 @@ public class TarjanAlgorithm extends StronglyConnectedComponentsAlgorithm {
}
}
return new StronglyConnectedComponentsSolution(getInstance(), Status.OPTIMAL, components);
return new StronglyConnectedComponentsSolution(getInputData(), Status.OPTIMAL, components);
}
}