@Override public IpSpaceAssignment resolve(Set<Location> key, SpecifierContext ctxt) { Set<Location> locations = _locationSpecifier.resolve(ctxt); checkArgument(!locations.isEmpty(), "No such locations"); IpSpace ipSpace = AclIpSpace.union( InferFromLocationIpSpaceSpecifier.INSTANCE.resolve(locations, ctxt).getEntries() .stream() .map(Entry::getIpSpace) .collect(Collectors.toList())); return IpSpaceAssignment.builder() .assign(key, firstNonNull(ipSpace, EmptyIpSpace.INSTANCE)) .build(); } }
@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); }