@Override public SortedSet<Long> asLiteralCommunities(Environment environment) { return resolve(environment).asLiteralCommunities(environment); }
@Override @Nonnull public SortedSet<Long> asLiteralCommunities(Environment environment) throws UnsupportedOperationException { if (_literalCommunities != null) { return _literalCommunities; } _literalCommunities = _lines.stream() .map(CommunityListLine::getMatchCondition) .map(lineMatchCondition -> lineMatchCondition.asLiteralCommunities(null)) .flatMap(Collection::stream) .collect(ImmutableSortedSet.toImmutableSortedSet(Comparator.naturalOrder())); return _literalCommunities; }
@Override protected boolean matchesSafely(CommunitySetExpr item, Description mismatchDescription) { Set<Long> asLiteralCommunities = item.asLiteralCommunities(_environment); if (!_subMatcher.matches(asLiteralCommunities)) { mismatchDescription.appendText( String.format( "CommunitySetExpr: '%s' as literal communities was: %s", item, CommunitySetExprMatchers.toString(asLiteralCommunities))); return false; } return true; } }
@Override public Result execute(Environment environment) { Result result = new Result(); BgpRoute.Builder bgpRoute = (BgpRoute.Builder) environment.getOutputRoute(); SortedSet<Long> communities = _expr.asLiteralCommunities(environment); bgpRoute.setCommunities(communities); if (environment.getWriteToIntermediateBgpAttributes()) { environment.getIntermediateBgpAttributes().setCommunities(communities); } return result; }
@Override public Result execute(Environment environment) { BgpRoute.Builder bgpRoute = (BgpRoute.Builder) environment.getOutputRoute(); SortedSet<Long> communities = _expr.asLiteralCommunities(environment); bgpRoute.addCommunities(communities); if (environment.getWriteToIntermediateBgpAttributes()) { environment.getIntermediateBgpAttributes().addCommunities(communities); } Result result = new Result(); return result; }