001: /*
002: (c) Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
003: [See end of file]
004: $Id: BulkUpdateHandler.java,v 1.14 2008/01/02 12:06:55 andy_seaborne Exp $
005: */
006:
007: package com.hp.hpl.jena.graph;
008:
009: import java.util.*;
010:
011: /**
012: Defines how bulk update may be done on Graphs.
013: <p>
014: Bulk updates are not necessarily transactions; that is, a bulk update may
015: fail part-way through, leaving some but not all triples added or deleted.
016: However, if a bulk update does not fail (ie throw an exception) then the
017: addition or removal of triples must have been successfully completed
018: in accordance with the operation of the owning graph.
019:
020: @author kers
021: */
022: public interface BulkUpdateHandler {
023: /**
024: Add all the triples into the graph this is handler for.
025: @param triples an array of triples to add
026: */
027: void add(Triple[] triples);
028:
029: /**
030: Add all the triples in the list into the graph this is handler for.
031: Each element of the List must be a Triple.
032: @param triples a list of Triple objects to add
033: */
034: void add(List triples);
035:
036: /**
037: Add all the elements from the iterator into the graph this is handler for.
038: Each element of the iterator must be a Triple. WARNING. An implementation may
039: have to expand the iterator into a data structure containing all the component
040: elements; hence long iterators may be expensive on store.
041: @param it an Iterator delivering Triples
042: */
043: void add(Iterator it);
044:
045: /**
046: Add all the triples of the given graph into the graph this is handler for.
047: Optionally add g's reified triples.
048: @param g a Graph whose triples are to be added
049: @param withReifications if true, the reified triples of g are added as well
050: */
051: void add(Graph g, boolean withReifications);
052:
053: /**
054: Add all the triples of the given graph into the graph this is handler for.
055: Leave this graph's reifications unchanged.
056: @param g a Graph whose triples are to be added
057: */
058: void add(Graph g);
059:
060: /**
061: Remove all the triples from the graph this is handler for.
062: @param triples an array of triples to remove
063: */
064: void delete(Triple[] triples);
065:
066: /**
067: Remove all the triples in the list from the graph this is handler for.
068: Each element of the List must be a Triple.
069: @param triples a list of triples to remove
070: */
071: void delete(List triples);
072:
073: /**
074: Remove all the triples in the iterator from the graph this is handler for.
075: Each element from the iterator must be a Triple. WARNING. An implementation may
076: have to expand the iterator into a data structure containing all the component
077: elements; hence long iterators may be expensive on store.
078:
079: @param it an iterator over Triple
080: */
081: void delete(Iterator it);
082:
083: /**
084: Remove all the triples of the given graph from the graph this is handler for.
085: Do not change the reifications.
086: @param g a graph whose triples are to be removed
087: */
088: void delete(Graph g);
089:
090: /**
091: Remove all the triples of the given graph from the graph this is handler for.
092: Reified triples may optionally be removed.
093: @param g a graph whose triples are to be removed
094: @param withReifications if true, remove g's reifications from this graph
095: */
096: void delete(Graph g, boolean withReifications);
097:
098: /**
099: Remove all the statements from a graph.
100: */
101: void removeAll();
102:
103: /**
104: Remove all triples that would be delivered by find(s, p, o)
105: */
106: void remove(Node s, Node p, Node o);
107: }
108:
109: /*
110: (c) Copyright 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
111: All rights reserved.
112:
113: Redistribution and use in source and binary forms, with or without
114: modification, are permitted provided that the following conditions
115: are met:
116:
117: 1. Redistributions of source code must retain the above copyright
118: notice, this list of conditions and the following disclaimer.
119:
120: 2. Redistributions in binary form must reproduce the above copyright
121: notice, this list of conditions and the following disclaimer in the
122: documentation and/or other materials provided with the distribution.
123:
124: 3. The name of the author may not be used to endorse or promote products
125: derived from this software without specific prior written permission.
126:
127: THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
128: IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
129: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
130: IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
131: INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
132: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
133: DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
134: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
135: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
136: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
137: */
|