Archived
0

refactoring connectible edge

This commit is contained in:
iMoHax
2015-07-02 13:08:14 +03:00
parent b5137de128
commit 25bff7d8f7
4 changed files with 25 additions and 13 deletions

View File

@@ -17,7 +17,7 @@ public abstract class AbstractGraph<T> implements Graph<T> {
protected Vertex<T> root;
protected final List<Vertex<T>> vertexes;
private final GraphCallBack callback;
protected final GraphCallBack callback;
protected int minJumps;

View File

@@ -52,9 +52,9 @@ public class CCrawler<T extends Connectable<T>> extends Crawler<T> {
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<T extends Connectable<T>> extends Crawler<T> {
protected boolean check(Edge<T> e){
ConnectibleEdge<T> edge = (ConnectibleEdge<T>) e;
return edge.getFuel() <= fuel || edge.getSource().getEntry().canRefill();
return edge.getFuelCost() <= fuel || edge.getSource().getEntry().canRefill();
}
protected ConnectibleEdge<T> wrap(Edge<T> edge){
@@ -96,7 +96,10 @@ public class CCrawler<T extends Connectable<T>> extends Crawler<T> {
refill = true;
fuelCost = getShip().getFuelCost(distance);
}
return new ConnectibleEdge<>(edge.getSource(), edge.getTarget(), refill, fuelCost);
ConnectibleEdge<T> cEdge = new ConnectibleEdge<>(edge.getSource(), edge.getTarget());
cEdge.setRefill(refill);
cEdge.setFuelCost(fuelCost);
return cEdge;
}
}
}

View File

@@ -3,21 +3,27 @@ package ru.trader.analysis.graph;
import ru.trader.graph.Connectable;
public class ConnectibleEdge<T extends Connectable<T>> extends Edge<T> {
protected final boolean refill;
protected final double fuel;
protected boolean refill;
protected double fuelCost;
public ConnectibleEdge(Vertex<T> source, Vertex<T> target, boolean refill, double fuel) {
public ConnectibleEdge(Vertex<T> source, Vertex<T> 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

View File

@@ -89,7 +89,10 @@ public class ConnectibleGraph<T extends Connectable<T>> extends AbstractGraph<T>
@Override
protected ConnectibleEdge<T> createEdge(Vertex<T> target) {
return new ConnectibleEdge<>(vertex, target, refill, fuelCost);
ConnectibleEdge<T> res = new ConnectibleEdge<>(vertex, target);
res.setRefill(refill);
res.setFuelCost(fuelCost);
return res;
}
}