diff --git a/core/src/main/java/ru/trader/analysis/graph/AbstractGraph.java b/core/src/main/java/ru/trader/analysis/graph/AbstractGraph.java index 4fa51af..0363ee2 100644 --- a/core/src/main/java/ru/trader/analysis/graph/AbstractGraph.java +++ b/core/src/main/java/ru/trader/analysis/graph/AbstractGraph.java @@ -17,7 +17,7 @@ public abstract class AbstractGraph implements Graph { protected Vertex root; protected final List> vertexes; - private final GraphCallBack callback; + protected final GraphCallBack callback; protected int minJumps; diff --git a/core/src/main/java/ru/trader/analysis/graph/CCrawler.java b/core/src/main/java/ru/trader/analysis/graph/CCrawler.java index 54d271e..9fa2ebd 100644 --- a/core/src/main/java/ru/trader/analysis/graph/CCrawler.java +++ b/core/src/main/java/ru/trader/analysis/graph/CCrawler.java @@ -52,9 +52,9 @@ public class CCrawler> extends Crawler { double nextLimit; if (cEdge.isRefill()) { LOG.trace("Refill"); - nextLimit = getShip().getTank() - cEdge.getFuel(); + nextLimit = getShip().getTank() - cEdge.getFuelCost(); } else { - nextLimit = getProfile().withRefill() ? cEntry.getFuel() - cEdge.getFuel() : getShip().getTank(); + nextLimit = getProfile().withRefill() ? cEntry.getFuel() - cEdge.getFuelCost() : getShip().getTank(); } return new CCostTraversalEntry(cEntry, edge, nextLimit); } @@ -83,7 +83,7 @@ public class CCrawler> extends Crawler { protected boolean check(Edge e){ ConnectibleEdge edge = (ConnectibleEdge) e; - return edge.getFuel() <= fuel || edge.getSource().getEntry().canRefill(); + return edge.getFuelCost() <= fuel || edge.getSource().getEntry().canRefill(); } protected ConnectibleEdge wrap(Edge edge){ @@ -96,7 +96,10 @@ public class CCrawler> extends Crawler { refill = true; fuelCost = getShip().getFuelCost(distance); } - return new ConnectibleEdge<>(edge.getSource(), edge.getTarget(), refill, fuelCost); + ConnectibleEdge cEdge = new ConnectibleEdge<>(edge.getSource(), edge.getTarget()); + cEdge.setRefill(refill); + cEdge.setFuelCost(fuelCost); + return cEdge; } } } diff --git a/core/src/main/java/ru/trader/analysis/graph/ConnectibleEdge.java b/core/src/main/java/ru/trader/analysis/graph/ConnectibleEdge.java index 5c94aa4..2de0a6e 100644 --- a/core/src/main/java/ru/trader/analysis/graph/ConnectibleEdge.java +++ b/core/src/main/java/ru/trader/analysis/graph/ConnectibleEdge.java @@ -3,21 +3,27 @@ package ru.trader.analysis.graph; import ru.trader.graph.Connectable; public class ConnectibleEdge> extends Edge { - protected final boolean refill; - protected final double fuel; + protected boolean refill; + protected double fuelCost; - public ConnectibleEdge(Vertex source, Vertex target, boolean refill, double fuel) { + public ConnectibleEdge(Vertex source, Vertex target) { super(source, target); - this.refill = refill; - this.fuel = fuel; } public boolean isRefill() { return refill; } - public double getFuel() { - return fuel; + protected void setRefill(boolean refill) { + this.refill = refill; + } + + public double getFuelCost() { + return fuelCost; + } + + public void setFuelCost(double fuel) { + this.fuelCost = fuel; } @Override diff --git a/core/src/main/java/ru/trader/analysis/graph/ConnectibleGraph.java b/core/src/main/java/ru/trader/analysis/graph/ConnectibleGraph.java index eebe293..57fbda1 100644 --- a/core/src/main/java/ru/trader/analysis/graph/ConnectibleGraph.java +++ b/core/src/main/java/ru/trader/analysis/graph/ConnectibleGraph.java @@ -89,7 +89,10 @@ public class ConnectibleGraph> extends AbstractGraph @Override protected ConnectibleEdge createEdge(Vertex target) { - return new ConnectibleEdge<>(vertex, target, refill, fuelCost); + ConnectibleEdge res = new ConnectibleEdge<>(vertex, target); + res.setRefill(refill); + res.setFuelCost(fuelCost); + return res; } }