@Override public SortedSet<Long> matchedCommunities( Environment environment, Set<Long> communityCandidates) { return resolve(environment).matchedCommunities(environment, communityCandidates); }
@Override protected boolean matchesSafely(CommunitySetExpr item, Description mismatchDescription) { Set<Long> matchedCommunities = item.matchedCommunities(_environment, _communityCandidates); if (!_subMatcher.matches(matchedCommunities)) { mismatchDescription.appendText( String.format( "CommunitySetExpr: '%s' matched the subset: %s", item, CommunitySetExprMatchers.toString(matchedCommunities))); return false; } return true; } }
@Override public Result execute(Environment environment) { BgpRoute.Builder outputRouteBuilder = (BgpRoute.Builder) environment.getOutputRoute(); SortedSet<Long> currentCommunities = outputRouteBuilder.getCommunities(); SortedSet<Long> matchingCommunities = _expr.matchedCommunities(environment, currentCommunities); outputRouteBuilder.removeCommunities(matchingCommunities); Result result = new Result(); return result; }