diff --git a/core/src/main/java/ru/trader/analysis/RouteSpecificationByPair.java b/core/src/main/java/ru/trader/analysis/RouteSpecificationByPair.java index d4aa160..7f2892b 100644 --- a/core/src/main/java/ru/trader/analysis/RouteSpecificationByPair.java +++ b/core/src/main/java/ru/trader/analysis/RouteSpecificationByPair.java @@ -16,11 +16,13 @@ public class RouteSpecificationByPair implements RouteSpecification { this.first = new ArrayList<>(); this.first.add(first); this.second = second; + checkSecond = true; } public RouteSpecificationByPair(Collection first, T second) { this.first = new ArrayList<>(first); this.second = second; + checkSecond = true; } @Override @@ -74,8 +76,16 @@ public class RouteSpecificationByPair implements RouteSpecification { @Override public void onAnd(RouteSpecification other) { if (other instanceof RouteSpecificationByTarget){ - T otherTarget = ((RouteSpecificationByTarget)other).target; - checkSecond = checkSecond || !second.equals(otherTarget); + if (checkSecond){ + T otherTarget = ((RouteSpecificationByTarget)other).target; + checkSecond = !second.equals(otherTarget); + } + } else + if (other instanceof RouteSpecificationByPair){ + RouteSpecificationByPair os = (RouteSpecificationByPair)other; + if (checkSecond && os.checkSecond){ + checkSecond = !second.equals(os.second); + } } } }