From 28434db790e3de4be4b6b5c8e3f841bd9843b969 Mon Sep 17 00:00:00 2001 From: iMoHax Date: Fri, 20 Nov 2015 16:13:03 +0300 Subject: [PATCH] improve collect vendors list on search --- core/src/main/java/ru/trader/analysis/FilteredMarket.java | 4 ++++ core/src/main/java/ru/trader/core/MarketAnalyzer.java | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) 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; }