private static List<Condition> flattenConditions(List<Condition> conditions) { List<Condition> result = new ArrayList<Condition>(); for (Condition condition : conditions) { if (condition instanceof Or) { result.addAll(flattenConditions(((Or) condition).getConditions())); } else { result.add(condition); } } return result; }
private Condition matchesAnyOfPaths(Set<String> paths) { Set<Path> pathSet = new HashSet<>(); for (String path : paths) { pathSet.add(Path.matches(path)); } Path[] result = Collections.toArray(pathSet, Path.class); return Or.any(result); } });
/** * Creates a new {@link Or} condition. If any provided conditions return true, this condition returns true. * * @param conditions the array of conditions to be evaluated */ public static Or any(final Condition... conditions) { Assert.notNull(conditions, "At least one condition is required."); Assert.assertTrue(conditions.length > 0, "At least one condition is required."); return new Or(flattenConditions(Arrays.asList(conditions)).toArray(new Condition[] {})); }
@Override public Or processElement(ParserContext handlerManager, Element element) { List<Condition> conditions = new ArrayList<>(); List<Element> children = $(element).children().get(); for (Element child : children) { Condition condition = handlerManager.processElement(child); conditions.add(condition); } return Or.any(conditions.toArray(new Condition[conditions.size()])); }
/** * Creates a new {@link Or} condition. If any provided conditions return true, this condition returns true. * * @param conditions the array of conditions to be evaluated */ public static Or any(final Condition... conditions) { Assert.notNull(conditions, "At least one condition is required."); Assert.assertTrue(conditions.length > 0, "At least one condition is required."); return new Or(flattenConditions(Arrays.asList(conditions)).toArray(new Condition[] {})); }
@Override public Or processElement(ParserContext handlerManager, Element element) { List<Condition> conditions = new ArrayList<>(); List<Element> children = $(element).children().get(); for (Element child : children) { Condition condition = handlerManager.processElement(child); conditions.add(condition); } return Or.any(conditions.toArray(new Condition[conditions.size()])); }
private static List<Condition> flattenConditions(List<Condition> conditions) { List<Condition> result = new ArrayList<Condition>(); for (Condition condition : conditions) { if (condition instanceof Or) { result.addAll(flattenConditions(((Or) condition).getConditions())); } else { result.add(condition); } } return result; }
@Override public Or processElement(ParserContext handlerManager, Element element) { List<Condition> conditions = new ArrayList<>(); List<Element> children = $(element).children().get(); for (Element child : children) { Condition condition = handlerManager.processElement(child); conditions.add(condition); } return Or.any(conditions.toArray(new Condition[conditions.size()])); }