@Override public void concatenate(final Iterator<? extends RDFNode> nodes) throws UpdateDeniedException, AddDeniedException, AuthenticationRequiredException { checkUpdate(); if (holder.getBaseItem().isEmpty()) { // concatenating list onto the empty list is an error throw new EmptyListUpdateException( "Tried to concatenate onto the empty list"); } else { Triple t = new Triple(SecurityEvaluator.FUTURE, listFirst() .asNode(), Node.ANY); if (!canCreate(t)) { final List<RDFNode> list = new ArrayList<>(); while (nodes.hasNext()) { final RDFNode n = nodes.next(); t = new Triple(SecurityEvaluator.FUTURE, listFirst() .asNode(), n.asNode()); checkCreate(t); list.add(n); } holder.getBaseItem().concatenate(list.iterator()); } else { holder.getBaseItem().concatenate(nodes); } } }
copy.concatenate( list ); return copy;
copy.concatenate( list ); return copy;
@Override public RDFList append(final RDFList list) throws ReadDeniedException, AuthenticationRequiredException { if (holder.getBaseItem().isEmpty()) { return list.size() == 0 ? ModelFactory.createDefaultModel() .createList() : list.copy(); } else { final RDFList copy = copy(); if (list.size() > 0) { copy.concatenate(list.copy()); } return copy; } }
@Override public void concatenate(final RDFList list) throws UpdateDeniedException, AddDeniedException, AuthenticationRequiredException { checkUpdate(); if (holder.getBaseItem().isEmpty()) { // concatenating list onto the empty list is an error throw new EmptyListUpdateException( "Tried to concatenate onto the empty list"); } else { Triple t = new Triple(SecurityEvaluator.FUTURE, listFirst() .asNode(), Node.ANY); if (!canCreate(t)) { final ExtendedIterator<RDFNode> iter = list.iterator(); try { while (iter.hasNext()) { t = new Triple(SecurityEvaluator.FUTURE, listFirst() .asNode(), iter.next().asNode()); checkCreate(t); } } finally { iter.close(); } } holder.getBaseItem().concatenate(list); } }
public void testConcatenate2() { model.read(getFileName("ontology/list5.rdf")); final Resource a = model.createResource(TestList.NS + "a"); // create a list of foos final Resource[] rs = new Resource[] { model.createResource(TestList.NS + "b"), model.createResource(TestList.NS + "c"), model.createResource(TestList.NS + "d"), model.createResource(TestList.NS + "e") }; final RDFList aList = model.createList().cons(a); final RDFList rsList = model.createList(rs); // concatenate the above resources onto the empty list aList.concatenate(rsList); checkValid("concatTest3", aList, true); final RDFList root = getListRoot(model); Assert.assertTrue("Constructed and loaded lists should be the same", aList.sameListAs(root)); }
public void testConcatenate2() { model.read(getFileName("ontology/list5.rdf")); final Resource a = model.createResource(TestList.NS + "a"); // create a list of foos final Resource[] rs = new Resource[] { model.createResource(TestList.NS + "b"), model.createResource(TestList.NS + "c"), model.createResource(TestList.NS + "d"), model.createResource(TestList.NS + "e") }; final RDFList aList = model.createList().cons(a); final RDFList rsList = model.createList(rs); // concatenate the above resources onto the empty list aList.concatenate(rsList); checkValid("concatTest3", aList, true); final RDFList root = getListRoot(model); Assert.assertTrue("Constructed and loaded lists should be the same", aList.sameListAs(root)); }
public void testConcatenate() { model.read(getFileName("ontology/list5.rdf")); final Resource nil = model.getResource(RDF.nil.getURI()); RDFList list = nil.as(RDFList.class); final Resource r = model.createResource(TestList.NS + "foo"); // create a list of foos for (int i = 0; i < 5; i++) { list = list.cons(r); } final int listLen = list.size(); // now append foos to the root list final RDFList root = getListRoot(model); final int rootLen = root.size(); root.concatenate(list); // original list should be unchanged checkValid("concatTest0", list, true); Assert.assertEquals("Original list should be unchanged", listLen, list.size()); // but lhs list has changed checkValid("concatTest1", root, true); Assert.assertEquals("Root list should be new length", rootLen + listLen, root.size()); }
public void testConcatenate() { model.read(getFileName("ontology/list5.rdf")); final Resource nil = model.getResource(RDF.nil.getURI()); RDFList list = nil.as(RDFList.class); final Resource r = model.createResource(TestList.NS + "foo"); // create a list of foos for (int i = 0; i < 5; i++) { list = list.cons(r); } final int listLen = list.size(); // now append foos to the root list final RDFList root = getListRoot(model); final int rootLen = root.size(); root.concatenate(list); // original list should be unchanged checkValid("concatTest0", list, true); Assert.assertEquals("Original list should be unchanged", listLen, list.size()); // but lhs list has changed checkValid("concatTest1", root, true); Assert.assertEquals("Root list should be new length", rootLen + listLen, root.size()); }