From 35c88fc4b1f02cabc79ee1a6845009a49307368e Mon Sep 17 00:00:00 2001 From: Mo Date: Fri, 23 Oct 2015 19:08:10 +0300 Subject: [PATCH] don't add transits to specificator when not target system --- .../java/ru/trader/core/MarketAnalyzer.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/ru/trader/core/MarketAnalyzer.java b/core/src/main/java/ru/trader/core/MarketAnalyzer.java index 1370b14..a276b0f 100644 --- a/core/src/main/java/ru/trader/core/MarketAnalyzer.java +++ b/core/src/main/java/ru/trader/core/MarketAnalyzer.java @@ -186,7 +186,7 @@ public class MarketAnalyzer { public Collection getTopRoutes(int limit){ LOG.debug("Get top {}", limit); LimitedQueue top = new LimitedQueue<>(limit); - Collection vendors = getVendors(new CrawlerSpecificator()); + Collection vendors = getVendors(new CrawlerSpecificator(), true); callback.start(vendors.size()); Iterator iterator = market.getMarkets(false).iterator(); while (iterator.hasNext()){ @@ -203,11 +203,11 @@ public class MarketAnalyzer { } public Collection getLoops(Vendor vendor, CrawlerSpecificator specificator){ - return searcher.searchLoops(vendor, getVendors(specificator), specificator); + return searcher.searchLoops(vendor, getVendors(specificator, true), specificator); } public Collection getRoutes(Place from, CrawlerSpecificator specificator){ - return getRoutes(getVendors(from), getVendors(specificator), specificator); + return getRoutes(getVendors(from), getVendors(specificator, true), specificator); } public Collection getRoutes(Place from, Place to){ @@ -220,14 +220,14 @@ public class MarketAnalyzer { } public Collection getRoutes(Vendor from, CrawlerSpecificator specificator){ - Collection vendors = getVendors(specificator); + Collection vendors = getVendors(specificator, false); specificator.any(vendors); - return searcher.search(from, from, vendors, profile.getRoutesCount(), specificator); + return searcher.search(from, from, getVendors(specificator, true), profile.getRoutesCount(), specificator); } public Collection getRoutes(Vendor from, Place to, CrawlerSpecificator specificator){ specificator.any(getVendors(to)); - return searcher.search(from, from, getVendors(specificator), profile.getRoutesCount(), specificator); + return searcher.search(from, from, getVendors(specificator, true), profile.getRoutesCount(), specificator); } public Collection getRoutes(Vendor from, Vendor to){ @@ -237,7 +237,7 @@ public class MarketAnalyzer { } public Collection getRoutes(Vendor from, Vendor to, CrawlerSpecificator specificator){ - return searcher.search(from, to, getVendors(specificator), profile.getRoutesCount(), specificator); + return searcher.search(from, to, getVendors(specificator, true), profile.getRoutesCount(), specificator); } public List getRoutes(Collection fVendors, Collection vendors, CrawlerSpecificator specificator){ @@ -284,13 +284,13 @@ public class MarketAnalyzer { return market.get().collect(Collectors.toList()); } - private Collection getVendors(CrawlerSpecificator specificator){ + private Collection getVendors(CrawlerSpecificator specificator, boolean withTransit){ Collection vendors; if (specificator.getMinHop() >= profile.getLands()){ - vendors = market.get().map(Place::asTransit).collect(Collectors.toList()); + vendors = withTransit ? market.get().map(Place::asTransit).collect(Collectors.toList()) : new ArrayList<>(); market.getVendors().filter(specificator::contains).forEach(vendors::add); } else { - vendors = market.getMarkets(true).collect(Collectors.toList()); + vendors = market.getMarkets(withTransit).collect(Collectors.toList()); vendors = specificator.getVendors(vendors); } return vendors;