@Override public Set<IpAccessList> resolve(String node, SpecifierContext ctxt) { checkArgument( ctxt.getConfigs().containsKey(node), "SpecifierContext does not have configs for node " + node); Configuration config = ctxt.getConfigs().get(node); FilterGroup filterGroup = ctxt.getReferenceBook(_bookName) .orElseThrow( () -> new NoSuchElementException("ReferenceBook '" + _bookName + "' not found")) .getFilterGroup(_filterGroupName) .orElseThrow( () -> new NoSuchElementException( "FilterGroup '" + _filterGroupName + "' not found in ReferenceBook '" + _bookName + "'")); return config.getIpAccessLists().values().stream() .filter( filter -> filterGroup.getFilters().stream() .anyMatch(specifier -> specifier.matches(filter, config))) .collect(Collectors.toSet()); } }