01: /*
02: (c) Copyright 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP, all rights reserved.
03: [See end of file]
04: $Id: StoreTripleIterator.java,v 1.8 2008/01/02 12:09:51 andy_seaborne Exp $
05: */
06: package com.hp.hpl.jena.mem;
07:
08: import java.util.Iterator;
09:
10: import com.hp.hpl.jena.graph.Graph;
11:
12: /**
13: An iterator wrapper for NodeToTriplesMap iterators which ensures that
14: a .remove on the base iterator is copied to the other two maps of this
15: GraphMem. The current triple (the most recent result of .next) is
16: tracked by the parent <code>TrackingTripleIterator</code> so that it
17: can be removed from the other two maps, which are passed in when this
18: StoreTripleIterator is created.
19:
20: @author kers
21: */
22: public class StoreTripleIterator extends TrackingTripleIterator {
23: protected NodeToTriplesMapBase X;
24: protected NodeToTriplesMapBase A;
25: protected NodeToTriplesMapBase B;
26: protected Graph toNotify;
27:
28: public StoreTripleIterator(Graph toNotify, Iterator it,
29: NodeToTriplesMapBase X, NodeToTriplesMapBase A,
30: NodeToTriplesMapBase B) {
31: super (it);
32: this .X = X;
33: this .A = A;
34: this .B = B;
35: this .toNotify = toNotify;
36: }
37:
38: public void remove() {
39: super .remove();
40: X.removedOneViaIterator();
41: A.remove(current);
42: B.remove(current);
43: toNotify.getEventManager()
44: .notifyDeleteTriple(toNotify, current);
45: }
46: }
47:
48: /*
49: (c) Copyright 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
50: All rights reserved.
51:
52: Redistribution and use in source and binary forms, with or without
53: modification, are permitted provided that the following conditions
54: are met:
55:
56: 1. Redistributions of source code must retain the above copyright
57: notice, this list of conditions and the following disclaimer.
58:
59: 2. Redistributions in binary form must reproduce the above copyright
60: notice, this list of conditions and the following disclaimer in the
61: documentation and/or other materials provided with the distribution.
62:
63: 3. The name of the author may not be used to endorse or promote products
64: derived from this software without specific prior written permission.
65:
66: THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
67: IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
68: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
69: IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
70: INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
71: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
72: DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
73: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
74: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
75: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
76: */
|