@Override public ATerm elementAt(final int index) { if (0 > index || index >= _length) throw new IllegalArgumentException(_illegalListIndex + index); ATermList cur = this; for (int i = 0; i < index; i++) cur = cur.getNext(); return cur.getFirst(); }
@Override public ATermAppl next() { if (!hasNext()) throw new NoSuchElementException(); final ATermAppl next = (ATermAppl) _curr.getFirst(); _curr = _curr.getNext(); return next; }
private static void addToList(final ATermAppl term, final boolean flatten, final List<ATermAppl> result) { if (flatten) for (ATermList l = (ATermList) term.getArgument(0); !l.isEmpty(); l = l.getNext()) result.add((ATermAppl) l.getFirst()); else result.add(term); }
static public ATermList toSet(final ATerm[] a, final int size) { Arrays.sort(a, 0, size, Comparators.termComparator); ATermList set = makeList(a[size - 1]); for (int i = size - 2; i >= 0; i--) { final ATerm s = set.getFirst(); if (!s.equals(a[i])) set = set.insert(a[i]); } return set; }
static public ATermAppl makeOr(final ATermList list) { if (list == null) throw new NullPointerException(); else if (list.isEmpty()) return BOTTOM; else if (list.getNext().isEmpty()) return (ATermAppl) list.getFirst(); return factory.makeAppl(ORFUN, list); }
final static public ATermAppl makeAllValues(final ATerm r, final ATerm c) { final ATerm arg1; if (r.getType() == ATerm.LIST) { final ATermList list = (ATermList) r; arg1 = list.getLength() == 1 ? list.getFirst() : r; } else arg1 = r; return factory.makeAppl(ALLFUN, arg1, c); }
static public ATermAppl makeAnd(final ATermList list) { if (list == null) throw new NullPointerException(); else if (list.isEmpty()) return TOP; else if (list.getNext().isEmpty()) return (ATermAppl) list.getFirst(); return factory.makeAppl(ANDFUN, list); }
final static public ATermAppl makeAllValues(final ATerm r, final ATerm c) { final ATerm arg1; if (r.getType() == ATerm.LIST) { final ATermList list = (ATermList) r; arg1 = list.getLength() == 1 ? list.getFirst() : r; } else arg1 = r; return factory.makeAppl(ALLFUN, arg1, c); }
@Override public ATermList dictRemove(final ATerm key) { if (isEmpty()) return this; final ATermList pair = (ATermList) _first; if (key.equals(pair.getFirst())) return _next; return _next.dictRemove(key).insert(_first); }
@Override public ATermList reverse() { ATermList cur = this; ATermList reverse = getEmpty(); while (!cur.isEmpty()) { reverse = reverse.insert(cur.getFirst()); cur = cur.getNext(); } return reverse; }
private void addRoleChainTransition(final TransitionGraph<Role> tg, final State<Role> initialState, final State<Role> finalState, final ATermList list, final int length) { State<Role> prev = initialState; ATermList chain = list; for (int i = 0; i < length; i++, chain = chain.getNext()) { final Role role = _rbox.getRole(chain.getFirst()); final State<Role> next = i == length - 1 ? finalState : tg.newState(); tg.addTransition(prev, role, next); prev = next; } }
private void addRoleChainTransition(final TransitionGraph<Role> tg, final State<Role> initialState, final State<Role> finalState, final ATermList list, final int length) { State<Role> prev = initialState; ATermList chain = list; for (int i = 0; i < length; i++, chain = chain.getNext()) { final Role role = _rbox.getRole(chain.getFirst()); final State<Role> next = i == length - 1 ? finalState : tg.newState(); tg.addTransition(prev, role, next); prev = next; } }
private static boolean isBlockedByChain(final BlockingContext cxt, final ATermList chain, final ATermAppl c) { final Role firstRole = cxt._blocked.getABox().getRole(chain.getFirst()); return !cxt.getIncomingRoles().contains(firstRole.getInverse()) && cxt._blocked.getParent().hasType(ATermUtils.makeAllValues(chain.getNext(), c)); } }
private static boolean isBlockedByChain(final BlockingContext cxt, final ATermList chain, final ATermAppl c) { final Role firstRole = cxt._blocked.getABox().getRole(chain.getFirst()); return !cxt.getIncomingRoles().contains(firstRole.getInverse()) && cxt._blocked.getParent().hasType(ATermUtils.makeAllValues(chain.getNext(), c)); } }
@Override public void visitOneOf(final ATermAppl term) { final ATermList list = (ATermList) term.getArgument(0); visitList(list); if (list.isEmpty() || !ATermUtils.isLiteral((ATermAppl) ((ATermAppl) list.getFirst()).getArgument(0))) createClassExpression(OWL.oneOf); else createDataExpression(OWL.oneOf); }
static public ATermList negate(final ATermList list) { if (list.isEmpty()) return list; ATermAppl a = (ATermAppl) list.getFirst(); a = isNot(a) ? (ATermAppl) a.getArgument(0) : makeNot(a); final ATermList result = makeList(a, negate(list.getNext())); return result; }
@Override public void visitOneOf(final ATermAppl term) { final ATermList list = (ATermList) term.getArgument(0); visitList(list); if (list.isEmpty() || !ATermUtils.isLiteral((ATermAppl) ((ATermAppl) list.getFirst()).getArgument(0))) createClassExpression(OWL.oneOf); else createDataExpression(OWL.oneOf); }
@Override public void visitOneOf(final ATermAppl term) { final ATermList list = (ATermList) term.getArgument(0); visitList(list); if (list.isEmpty() || !ATermUtils.isLiteral((ATermAppl) ((ATermAppl) list.getFirst()).getArgument(0))) createClassExpression(OWL.oneOf); else createDataExpression(OWL.oneOf); }
private boolean containedIn(final Object value, final ATermAppl dconjunction) throws InvalidConstrainingFacetException, InvalidLiteralException, UnrecognizedDatatypeException { if (ATermUtils.isAnd(dconjunction)) { for (ATermList l = (ATermList) dconjunction.getArgument(0); !l.isEmpty(); l = l.getNext()) if (!getDataRange((ATermAppl) l.getFirst()).contains(value)) return false; return true; } else return getDataRange(dconjunction).contains(value); }
private boolean containedIn(final Object value, final ATermAppl dconjunction) throws InvalidConstrainingFacetException, InvalidLiteralException, UnrecognizedDatatypeException { if (ATermUtils.isAnd(dconjunction)) { for (ATermList l = (ATermList) dconjunction.getArgument(0); !l.isEmpty(); l = l.getNext()) if (!getDataRange((ATermAppl) l.getFirst()).contains(value)) return false; return true; } else return getDataRange(dconjunction).contains(value); }