diff --git a/core/src/main/java/ru/trader/analysis/FilteredMarket.java b/core/src/main/java/ru/trader/analysis/FilteredMarket.java index 5c9c30b..7f9b65d 100644 --- a/core/src/main/java/ru/trader/analysis/FilteredMarket.java +++ b/core/src/main/java/ru/trader/analysis/FilteredMarket.java @@ -56,6 +56,10 @@ public class FilteredMarket { return vendor instanceof TransitVendor; } + public Stream getMarkets(){ + return getMarkets(false); + } + public Stream getMarkets(boolean withTransit){ Predicate transitOrMarket = v -> withTransit && isTransit(v) || isMarket(v); if (disableFilter){ diff --git a/core/src/main/java/ru/trader/core/MarketAnalyzer.java b/core/src/main/java/ru/trader/core/MarketAnalyzer.java index cc90508..1d59ed7 100644 --- a/core/src/main/java/ru/trader/core/MarketAnalyzer.java +++ b/core/src/main/java/ru/trader/core/MarketAnalyzer.java @@ -285,13 +285,15 @@ public class MarketAnalyzer { } private Collection getVendors(CrawlerSpecificator specificator, boolean withTransit){ + List transits = withTransit ? market.get().map(Place::asTransit).collect(Collectors.toList()) : new ArrayList<>(); Collection vendors; if (!specificator.isFullScan() || specificator.getMinHop() >= profile.getLands()){ - vendors = withTransit ? market.get().map(Place::asTransit).collect(Collectors.toList()) : new ArrayList<>(); + vendors = market.getMarkets().filter(specificator::contains).collect(Collectors.toList()); } else { - vendors = market.getMarkets(withTransit).collect(Collectors.toList()); + vendors = market.getMarkets().collect(Collectors.toList()); } vendors = specificator.getVendors(vendors); + vendors.addAll(transits); return vendors; }