diff --git a/core/src/main/java/ru/trader/analysis/MarketUtils.java b/core/src/main/java/ru/trader/analysis/MarketUtils.java index 8ea6229..2e07ef0 100644 --- a/core/src/main/java/ru/trader/analysis/MarketUtils.java +++ b/core/src/main/java/ru/trader/analysis/MarketUtils.java @@ -4,6 +4,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.trader.core.Offer; import ru.trader.core.Order; +import ru.trader.core.SERVICE_TYPE; import ru.trader.core.Vendor; import java.util.ArrayList; @@ -58,4 +59,8 @@ public class MarketUtils { } return orders; } + + public static boolean hasMarket(Vendor vendor) { + return vendor.has(SERVICE_TYPE.MARKET) || vendor.has(SERVICE_TYPE.BLACK_MARKET); + } } diff --git a/core/src/main/java/ru/trader/analysis/VendorsCrawler.java b/core/src/main/java/ru/trader/analysis/VendorsCrawler.java index 8a7b73d..999a662 100644 --- a/core/src/main/java/ru/trader/analysis/VendorsCrawler.java +++ b/core/src/main/java/ru/trader/analysis/VendorsCrawler.java @@ -73,7 +73,10 @@ public class VendorsCrawler extends Crawler { protected boolean check(Edge e){ VendorsGraph.VendorsBuildEdge edge = (VendorsGraph.VendorsBuildEdge) e; return fuel <= edge.getMaxFuel() && (fuel >= edge.getMinFuel() || edge.getSource().getEntry().canRefill()) - && (edge.getProfit() > 0 || VendorsCrawler.this.isContent(edge, this)); + && (edge.getProfit() > 0 || VendorsCrawler.this.isContent(edge, this) + // adding all edges if this start entry and don't have market + || (isStart() && !MarketUtils.hasMarket(vertex.getEntry())) + ); } protected VendorsEdge wrap(Edge e) { diff --git a/core/src/main/java/ru/trader/analysis/graph/Crawler.java b/core/src/main/java/ru/trader/analysis/graph/Crawler.java index fc3489f..c4d31c5 100644 --- a/core/src/main/java/ru/trader/analysis/graph/Crawler.java +++ b/core/src/main/java/ru/trader/analysis/graph/Crawler.java @@ -701,6 +701,10 @@ public class Crawler { return size; } + public boolean isStart(){ + return head == null && edge == null; + } + @Override public String toString() { final StringBuilder sb = new StringBuilder("{");