@Nonnull public IpSpaceAssignment getAllSourcesInferFromLocationIpSpaceAssignment() { SpecifierContextImpl specifierContext = new SpecifierContextImpl(this, getNetworkSnapshot()); Set<Location> locations = new UnionLocationSpecifier( AllInterfacesLocationSpecifier.INSTANCE, AllInterfaceLinksLocationSpecifier.INSTANCE) .resolve(specifierContext); return InferFromLocationIpSpaceSpecifier.INSTANCE.resolve(locations, specifierContext); }
String operator = combinationMatcher.group(2); if (operator.equals("+")) { return new UnionLocationSpecifier( parse(combinationMatcher.group(1)), parse(combinationMatcher.group(3))); } else {
@Test public void parseCombination() { LocationSpecifier leaf = new NodeSpecifierInterfaceLocationSpecifier( new FlexibleNodeSpecifierFactory().buildNodeSpecifier("foo")); LocationSpecifier difference = new DifferenceLocationSpecifier(leaf, leaf); LocationSpecifier union = new UnionLocationSpecifier(leaf, leaf); LocationSpecifier unionDiff = new DifferenceLocationSpecifier(union, leaf); assertThat(parse("foo - foo"), equalTo(difference)); assertThat(parse("foo + foo"), equalTo(union)); assertThat(parse("foo + foo - foo"), equalTo(unionDiff)); }