private boolean matches(Set<Environment> elementEnvironments, Set<RegionName> elementRegions) { if ( ! elementEnvironments.isEmpty()) { // match environment if ( ! elementEnvironments.contains(environment)) return false; } if ( ! elementRegions.isEmpty()) { // match region // match region in multi-region environments only if ( environment.isMultiRegion() && ! elementRegions.contains(region)) return false; // explicit region implies multi-region environment if ( ! environment.isMultiRegion() && elementEnvironments.isEmpty() ) return false; } return true; }