if (dr.isEmpty()) return EMPTY_RANGE; ranges.add(dr);
if (dr.isEmpty()) return EMPTY_RANGE; ranges.add(dr);
@Override public boolean containsAtLeast(final int n, final Collection<ATermAppl> ranges) throws UnrecognizedDatatypeException, InvalidConstrainingFacetException, InvalidLiteralException { final ATermAppl and = ATermUtils.makeAnd(ATermUtils.makeList(ranges)); final ATermAppl dnf = DNF.dnf(expander.expand(and, namedDataRanges)); if (ATermUtils.isOr(dnf)) { final List<DataRange<?>> disjuncts = new ArrayList<>(); for (ATermList l = (ATermList) dnf.getArgument(0); !l.isEmpty(); l = l.getNext()) { final DataRange<?> dr = normalizeVarRanges((ATermAppl) l.getFirst()); if (!dr.isEmpty()) disjuncts.add(dr); } return getDisjunction(disjuncts).containsAtLeast(n); } else return normalizeVarRanges(dnf).containsAtLeast(n); }
@Override public boolean containsAtLeast(final int n, final Collection<ATermAppl> ranges) throws UnrecognizedDatatypeException, InvalidConstrainingFacetException, InvalidLiteralException { final ATermAppl and = ATermUtils.makeAnd(ATermUtils.makeList(ranges)); final ATermAppl dnf = DNF.dnf(expander.expand(and, namedDataRanges)); if (ATermUtils.isOr(dnf)) { final List<DataRange<?>> disjuncts = new ArrayList<>(); for (ATermList l = (ATermList) dnf.getArgument(0); !l.isEmpty(); l = l.getNext()) { final DataRange<?> dr = normalizeVarRanges((ATermAppl) l.getFirst()); if (!dr.isEmpty()) disjuncts.add(dr); } return getDisjunction(disjuncts).containsAtLeast(n); } else return normalizeVarRanges(dnf).containsAtLeast(n); }