KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > hp > hpl > jena > rdf > model > impl > SeqNodeIteratorImpl


1 /*
2  * (c) Copyright 2000, 2001, 2002, 2003, 2004, 2005 Hewlett-Packard Development Company, LP
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  * notice, this list of conditions and the following disclaimer in the
12  * documentation and/or other materials provided with the distribution.
13  * 3. The name of the author may not be used to endorse or promote products
14  * derived from this software without specific prior written permission.
15
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  *
27  * SeqNodeIteratorImpl.java
28  *
29  * Created on 12 August 2000, 15:37
30  */

31
32 package com.hp.hpl.jena.rdf.model.impl;
33
34 import com.hp.hpl.jena.util.iterator.*;
35 import com.hp.hpl.jena.rdf.model.*;
36
37 import java.util.NoSuchElementException JavaDoc;
38 import java.util.Iterator JavaDoc;
39
40 /** An internal class not normally of interest to developers.
41  * A sequence node iterator.
42  *
43  * @author bwm
44  * @version Release='$Name: $' Revision='$Revision: 1.7 $' Date='$Date: 2005/02/21 12:14:54 $'
45  */

46 public class SeqNodeIteratorImpl extends WrappedIterator implements NodeIterator {
47     
48     Statement stmt = null;
49     Seq seq;
50     int size;
51     int index=0;
52     int numDeleted=0;
53     /** Creates new SeqNodeIteratorImpl
54     */

55     public SeqNodeIteratorImpl (Iterator JavaDoc iterator,
56                                 
57                                 Seq seq) {
58         super( iterator );
59         this.seq = seq;
60         this.size = seq.size();
61     }
62
63     public Object JavaDoc next() throws NoSuchElementException JavaDoc {
64         stmt = (Statement) super.next();
65         index += 1;
66         return stmt.getObject();
67     }
68     
69     public RDFNode nextNode() throws NoSuchElementException JavaDoc {
70         return (RDFNode) next();
71     }
72             
73     public void remove() throws NoSuchElementException JavaDoc {
74         if (stmt == null) throw new NoSuchElementException JavaDoc();
75         ((ContainerI)seq).remove(index-numDeleted, stmt.getObject());
76         stmt = null;
77         numDeleted++;
78     }
79     
80     public void close() {
81         super.close();
82     }
83 }
Popular Tags