/** * @see Property#getOrdinal() */ @Override public int getOrdinal() { return (as( Property.class )).getOrdinal(); }
/** * @see Property#getOrdinal() */ @Override public int getOrdinal() { return (as( Property.class )).getOrdinal(); }
/** Answer an iterator over the members of this container. @param f the factory for constructing the final iterator @return the member iterator */ public NodeIterator listContainerMembers( NodeIteratorFactory f ) { StmtIterator iter = listProperties(); Vector<Statement> result = new Vector<Statement>(); int maxOrdinal = 0; while (iter.hasNext()) { Statement stmt = iter.nextStatement(); int ordinal = stmt.getPredicate().getOrdinal(); if (ordinal != 0) { if (ordinal > maxOrdinal) { maxOrdinal = ordinal; result.setSize(ordinal); } result.setElementAt(stmt, ordinal-1); } } iter.close(); return f.createIterator( result.iterator(), result, this ); }
private boolean wTypedNodeOrDescription(WType wt, Resource ty, Resource r) { // preparation - look for the li's. Vector<Statement> found = new Vector<Statement>(); ClosableIterator<Statement> ss = listProperties(r); try { int greatest = 0; if (!prettyWriter.sListExpand) while (ss.hasNext()) { Statement s = ss.next(); int ix = s.getPredicate().getOrdinal(); if (ix != 0) { if (ix > greatest) { found.setSize(ix); greatest = ix; } found.set(ix - 1, s); } } } finally { ss.close(); } int last = found.indexOf(null); List<Statement> li = last == -1 ? found : found.subList(0, last); return wTypedNodeOrDescriptionCompact(wt, ty, r, li) || wTypedNodeOrDescriptionLong(wt, ty, r, li); }
@Override public int size() { int result = 0; StmtIterator iter = listProperties(); while (iter.hasNext()) if (iter.nextStatement().getPredicate().getOrdinal() != 0) result += 1; iter.close(); return result; }
@Override public Container remove(Statement s) { // System.err.println( "]] SeqImpl.remove " + s ); getModel().remove(s); // System.err.println( "]] SeqImpl.remove - about to shift down " + (s.getPredicate().getOrdinal()+1) + " to " + (size()+1) ); shiftDown(s.getPredicate().getOrdinal()+1, size()+1); // System.err.println( "]] SeqImpl.remov completed" ); return this; }
public int containerIndexOf( RDFNode n ) { int result = 0; StmtIterator iter = listProperties(); while (iter.hasNext()) { Statement stmt = iter.nextStatement(); int ordinal = stmt.getPredicate().getOrdinal(); if (ordinal != 0 && n.equals( stmt.getObject() )) { result = ordinal; break; } } iter.close(); return result; }
@Override public Container remove(Statement s) { int size = size(); Statement last = null; if (s.getPredicate().getOrdinal() == size) { // if last getModel().remove(s); } else { last = getModel().getRequiredProperty(this, RDF.li(size)); s.changeObject(last.getObject()); getModel().remove(last); } if (size() != (size -1)) throw new AssertionFailureException( "container size" ); return this; }