public static LocationSpecifier difference( @Nonnull LocationSpecifier locsIn, @Nonnull LocationSpecifier locsOut) { if (locsIn == NullLocationSpecifier.INSTANCE) { return NullLocationSpecifier.INSTANCE; } if (locsOut == NullLocationSpecifier.INSTANCE) { return locsIn; } return new DifferenceLocationSpecifier(locsIn, locsOut); }
parse(combinationMatcher.group(1)), parse(combinationMatcher.group(3))); } else { return new DifferenceLocationSpecifier( parse(combinationMatcher.group(1)), parse(combinationMatcher.group(3)));
@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)); }
ingressNodes = new DifferenceLocationSpecifier(ingressNodes, notIngressNodes); } else if (ingressNodes == null && notIngressNodes != null) { ingressNodes = new DifferenceLocationSpecifier(AllInterfacesLocationSpecifier.INSTANCE, notIngressNodes);