final ATermAppl dnf = DNF.dnf(expander.expand(and, namedDataRanges)); if (ATermUtils.isOr(dnf))
final ATermAppl dnf = DNF.dnf(expander.expand(and, namedDataRanges)); if (ATermUtils.isOr(dnf))
final ATermAppl dnf = DNF.dnf(expander.expand(and, namedDataRanges)); Collection<ATermAppl> dnfDisjuncts; if (ATermUtils.isOr(dnf))
final ATermAppl dnf = DNF.dnf(expander.expand(and, namedDataRanges)); Collection<ATermAppl> dnfDisjuncts; if (ATermUtils.isOr(dnf))
private void testDNF(final ATermAppl c, final ATermAppl expected) { assertEquals(canonicalize(expected), DNF.dnf(c)); }
private void testDNF(final ATermAppl c, final ATermAppl expected) { assertEquals(canonicalize(expected), DNF.dnf(c)); }
@Override public Iterator<?> valueIterator(final Collection<ATermAppl> dataranges) throws InvalidConstrainingFacetException, InvalidLiteralException, UnrecognizedDatatypeException { final ATermAppl and = ATermUtils.makeAnd(ATermUtils.makeList(dataranges)); 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()) disjuncts.add(normalizeVarRanges((ATermAppl) l.getFirst())); return getDisjunction(disjuncts).valueIterator(); } else return normalizeVarRanges(dnf).valueIterator(); }
@Override public Iterator<?> valueIterator(final Collection<ATermAppl> dataranges) throws InvalidConstrainingFacetException, InvalidLiteralException, UnrecognizedDatatypeException { final ATermAppl and = ATermUtils.makeAnd(ATermUtils.makeList(dataranges)); 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()) disjuncts.add(normalizeVarRanges((ATermAppl) l.getFirst())); return getDisjunction(disjuncts).valueIterator(); } else return normalizeVarRanges(dnf).valueIterator(); }
@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); }