com.hp.hpl.jena.graph.compose
Class MultiUnion

java.lang.Object
  extended by com.hp.hpl.jena.graph.impl.GraphBase
      extended by com.hp.hpl.jena.graph.compose.CompositionBase
          extended by com.hp.hpl.jena.graph.compose.Polyadic
              extended by com.hp.hpl.jena.graph.compose.MultiUnion
All Implemented Interfaces:
Graph, GraphAdd, com.hp.hpl.jena.graph.impl.GraphWithPerform

public class MultiUnion
extends Polyadic

A graph implementation that presents the union of zero or more subgraphs, one of which is distinguished as the updateable graph.

Version:
CVS $Id: MultiUnion.java,v 1.2 2009-10-06 13:04:43 ian_dickinson Exp $
Author:
Ian Dickinson, HP Labs (email)

Nested Class Summary
static class MultiUnion.MultiUnionStatisticsHandler
           
 
Field Summary
 
Fields inherited from class com.hp.hpl.jena.graph.impl.GraphBase
TOSTRING_TRIPLE_BASE, TOSTRING_TRIPLE_LIMIT
 
Fields inherited from interface com.hp.hpl.jena.graph.Graph
emptyGraph
 
Constructor Summary
MultiUnion()
           Construct a union of exactly no sub graphs.
MultiUnion(Graph[] graphs)
           Construct a union of all of the given graphs
MultiUnion(Iterator<Graph> graphs)
           Construct a union of all of the given graphs.
 
Method Summary
 void addGraph(Graph graph)
           Add the given graph to this union.
 Reifier getReifier()
          Unions share the reifiers of their base graphs.
 boolean graphBaseContains(Triple t)
           Answer true if at least one of the graphs in this union contain the given triple.
 com.hp.hpl.jena.util.iterator.ExtendedIterator<Triple> graphBaseFind(TripleMatch t)
           Answer an iterator over the triples in the union of the graphs in this composition.
 void performAdd(Triple t)
           Add the given triple to the union model; the actual component model to be updated will be the designated (or default) updateable graph.
 void performDelete(Triple t)
           Delete the given triple from the union model; the actual component model to be updated will be the designated (or default) updateable graph.
 QueryHandler queryHandler()
          returns this Graph's query handler
 
Methods inherited from class com.hp.hpl.jena.graph.compose.Polyadic
close, dependsOn, getBaseGraph, getBulkUpdateHandler, getCapabilities, getPrefixMapping, getRequiredBaseGraph, getSubGraphs, getTransactionHandler, removeGraph, setBaseGraph
 
Methods inherited from class com.hp.hpl.jena.graph.compose.CompositionBase
butNot, ifIn, ifIn, recording, reject, rejecting, rejecting
 
Methods inherited from class com.hp.hpl.jena.graph.impl.GraphBase
add, contains, contains, delete, find, find, forTestingOnly_graphBaseFind, getEventManager, getStatisticsHandler, isClosed, isEmpty, isIsomorphicWith, notifyAdd, notifyDelete, size, toString, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MultiUnion

public MultiUnion()

Construct a union of exactly no sub graphs.


MultiUnion

public MultiUnion(Graph[] graphs)

Construct a union of all of the given graphs

Parameters:
graphs - An array of the sub-graphs of this union

MultiUnion

public MultiUnion(Iterator<Graph> graphs)

Construct a union of all of the given graphs.

Parameters:
graphs - An iterator of the sub-graphs of this union. If graphs is a closable iterator, it will be automatically closed.
Method Detail

getReifier

public Reifier getReifier()
Unions share the reifiers of their base graphs. THIS WILL CHANGE.

Specified by:
getReifier in interface Graph
Overrides:
getReifier in class com.hp.hpl.jena.graph.impl.GraphBase

performAdd

public void performAdd(Triple t)

Add the given triple to the union model; the actual component model to be updated will be the designated (or default) updateable graph.

Specified by:
performAdd in interface com.hp.hpl.jena.graph.impl.GraphWithPerform
Overrides:
performAdd in class com.hp.hpl.jena.graph.impl.GraphBase
Parameters:
t - A triple to add to the union graph
Throws:
JenaException - if the union does not contain any sub-graphs yet

performDelete

public void performDelete(Triple t)

Delete the given triple from the union model; the actual component model to be updated will be the designated (or default) updateable graph.

Specified by:
performDelete in interface com.hp.hpl.jena.graph.impl.GraphWithPerform
Overrides:
performDelete in class com.hp.hpl.jena.graph.impl.GraphBase
Parameters:
t - A triple to from the union graph
Throws:
JenaException - if the union does not contain any sub-graphs yet

graphBaseContains

public boolean graphBaseContains(Triple t)

Answer true if at least one of the graphs in this union contain the given triple.

Overrides:
graphBaseContains in class com.hp.hpl.jena.graph.impl.GraphBase
Parameters:
t - A triple
Returns:
True if any of the graphs in the union contain t

queryHandler

public QueryHandler queryHandler()
Description copied from interface: Graph
returns this Graph's query handler

Specified by:
queryHandler in interface Graph
Overrides:
queryHandler in class com.hp.hpl.jena.graph.impl.GraphBase

graphBaseFind

public com.hp.hpl.jena.util.iterator.ExtendedIterator<Triple> graphBaseFind(TripleMatch t)

Answer an iterator over the triples in the union of the graphs in this composition. Note that the requirement to remove duplicates from the union means that this will be an expensive operation for large (and especially for persistent) graphs.

Specified by:
graphBaseFind in class com.hp.hpl.jena.graph.impl.GraphBase
Parameters:
t - The matcher to match against
Returns:
An iterator of all triples matching t in the union of the graphs.

addGraph

public void addGraph(Graph graph)

Add the given graph to this union. If it is already a member of the union, don't add it a second time.

Overrides:
addGraph in class Polyadic
Parameters:
graph - A sub-graph to add to this union


Licenced under the Apache License, Version 2.0