/** * Remove an element by replacing it by the last element. Order isn't preserved. * * @param edge to remove * @return true if removing occured */ public boolean removeEdge(final Edge edge) { for (int i = 0, l = size(); i < l; i++) if (get(i).equals(edge)) { removeEdge(i); return true; } return false; }
public EdgeList getRNeighborEdges(final Role r) { if (null == r) return new EdgeList(); // TODO : this is really ugly. final EdgeList neighbors = _outEdges.getEdges(r); final Role invR = r.getInverse(); // inverse of datatype properties is not defined if (invR != null) neighbors.addAll(_inEdges.getEdges(invR)); return neighbors; }
protected void addInEdge(final Edge edge) { _inEdges.add(edge); }
public EdgeList(final EdgeList edges) { this(edges.size()); addEdgeList(edges); }
private static EdgeList getEdges(final EdgeList edges, final Role r, final Node o) { return o == null ? edges.getEdges(r) : edges.getEdgesTo(r, o); }
@Override protected void updateNodeReferences() { super.updateNodeReferences(); if (_parent != null) _parent = _abox.getIndividual(_parent.getName()); if (isPruned()) { final EdgeList oldEdges = _outEdges; _outEdges = new EdgeList(oldEdges.size()); for (int i = 0; i < oldEdges.size(); i++) { final Edge edge = oldEdges.get(i); final Node to = _abox.getNode(edge.getTo().getName()); final Edge newEdge = new DefaultEdge(edge.getRole(), this, to, edge.getDepends()); _outEdges.add(newEdge); } } }
final public Set<Node> getRSuccessors(final Role r, final ATermAppl c) { final Set<Node> result = new HashSet<>(); final EdgeList edges = _outEdges.getEdges(r); for (int i = 0, n = edges.size(); i < n; i++) { final Edge edge = edges.get(i); final Node other = edge.getNeighbor(this); if (other.hasType(c)) result.add(other); } return result; }
protected Iterator<WME> toWMEs(final EdgeList edges, final EdgeDirection dir) { if (edges.isEmpty()) return IteratorUtils.emptyIterator(); else if (edges.size() == 1) { final Edge edge = edges.get(0); return IteratorUtils.<WME> singletonIterator(createEdge(edge, dir)); } else { final List<WME> wmes = new ArrayList<>(edges.size()); for (final Edge edge : edges) wmes.add(createEdge(edge, dir)); return wmes.iterator(); } }
final EdgeList edges = new EdgeList(); for (int i = 0; i < node.getInEdges().size(); i++) final Edge e = node.getInEdges().get(i); edges.addAll(findAllValues(node, e.getFrom(), removedTypes, e)); for (int i = 0; i < ind.getOutEdges().size(); i++) final Edge e = ind.getOutEdges().get(i); final Node to = e.getTo(); edges.addAll(findAllValues(ind, (Individual) to, removedTypes, new DefaultEdge(inv, (Individual) to, ind, e.getDepends())));
protected void applyFunctionalMaxRule(final Literal x, final Role r, final DependencySet dsParam) final EdgeList edges = x.getInEdges().getEdges(r); if (edges.size() <= 1) return;// continue; final Set<Node> neighbors = edges.getNeighbors(x); DependencySet headDS = null; for (int edgeIndex = 0; edgeIndex < edges.size(); edgeIndex++) final Edge edge = edges.get(edgeIndex); final Individual ind = edge.getFrom(); ds = ds.union(headDS, _abox.doExplanation()); for (int i = 0; i < edges.size(); i++) final Edge edge = edges.get(i); final Individual next = edge.getFrom();
final EdgeList selfEdges = _outEdges.getEdges(role).getEdgesTo(this); if (!selfEdges.isEmpty()) _abox.setClash(Clash.unexplained(this, selfEdges.getDepends(_abox.doExplanation())));
/** * @param r * @param node * @return neighbor edges to a specific node */ public EdgeList getRNeighborEdges(final Role r, final Node node) { final EdgeList neighbors = _outEdges.getEdgesTo(r, node); final Role invR = r.getInverse(); // inverse of datatype properties is not defined if (invR != null) neighbors.addAll(_inEdges.getEdgesFrom((Individual) node, invR)); return neighbors; }
private Individual(final Individual ind, final ABoxImpl abox) { super(ind, abox); _nominalLevel = ind._nominalLevel; _parent = ind._parent; for (int i = 0; i < TYPES; i++) { _types[i] = new ArrayList<>(ind._types[i]); _applyNext[i] = ind._applyNext[i]; } if (isPruned()) _outEdges = new EdgeList(ind._outEdges); else _outEdges = new EdgeList(ind._outEdges.size()); _depth = 0; }
final public EdgeList getRPredecessorEdges(final Role r) { return _inEdges.getEdges(r); }