Class JenaGraph
- java.lang.Object
-
- org.nuxeo.ecm.platform.relations.jena.JenaGraph
-
- All Implemented Interfaces:
Serializable
,Graph
public class JenaGraph extends Object implements Graph
Jena plugin for NXRelations.Graph implementation using the Jena framework.
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
JenaGraph.GraphConnection
Class holding graph and connection so that we can close the connection after having used the graph.
-
Constructor Summary
Constructors Constructor Description JenaGraph()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(List<Statement> statements)
Adds given list of Statement objects to the graph.void
add(Statement statement)
Adds the statement object to the graph.void
clear()
Clears the graph, removing all statements in it.Map<String,String>
getNamespaces()
Returns namespaces for the graph.List<Node>
getObjects(Node subject, Node predicate)
Gets items matching the statement pattern (subject, predicate, null).List<Node>
getPredicates(Node subject, Node object)
Gets items matching the statement pattern (subject, null, object).List<Statement>
getStatements()
Returns all statements in the graph.List<Statement>
getStatements(Node subject, Node predicate, Node object)
Returns all statements in the graph matching the pattern.List<Statement>
getStatements(Statement statement)
Returns all statements in the graph matching the pattern.List<Node>
getSubjects(Node predicate, Node object)
Get items matching the statement pattern (null, predicate, object).boolean
hasResource(Resource resource)
Returns true if given resource appears in any statement of the graph.boolean
hasStatement(Statement statement)
Returns true if given statement pattern is in the graph.protected JenaGraph.GraphConnection
openGraph()
Generates the Jena graph using options.protected JenaGraph.GraphConnection
openGraph(boolean forceReload)
Gets the Jena graph using options.QueryResult
query(String queryString, String language, String baseURI)
Query the graph using a base URI.int
queryCount(String queryString, String language, String baseURI)
Counts the number of results of a query.boolean
read(InputStream in, String lang, String base)
Parses source into the graph.boolean
read(String path, String lang, String base)
Parses source into the graph.void
remove(List<Statement> statements)
Removes given list of Statement objects from the graph.void
remove(Statement statement)
Removes the statement object from the graph.void
setDescription(GraphDescription graphDescription)
Sets the graph description.void
setNamespaces(Map<String,String> namespaces)
protected void
setOptions(Map<String,String> options)
Long
size()
Returns the number of statements in the graph.boolean
write(OutputStream out, String lang, String base)
Serializes graph.boolean
write(String path, String lang, String base)
Serializes graph.
-
-
-
Method Detail
-
openGraph
protected JenaGraph.GraphConnection openGraph()
Generates the Jena graph using options.- Returns:
- the Jena graph (model)
-
openGraph
protected JenaGraph.GraphConnection openGraph(boolean forceReload)
Gets the Jena graph using options.The Jena "Convenient" reification style is used when opening models: it allows to ignore reification quadlets when calling the statements list.
- Parameters:
forceReload
- boolean stating if the jena graph has to be reloaded using options- Returns:
- the Jena graph (model)
-
setDescription
public void setDescription(GraphDescription graphDescription)
Description copied from interface:Graph
Sets the graph description.- Specified by:
setDescription
in interfaceGraph
-
getNamespaces
public Map<String,String> getNamespaces()
Description copied from interface:Graph
Returns namespaces for the graph.Namespaces are prefix/namespace bindings, as rdf for http://www.w3.org/1999/02/22-rdf-syntax-ns#.
- Specified by:
getNamespaces
in interfaceGraph
- Returns:
- namespaces map of namespace bindings for the graph
-
add
public void add(Statement statement)
Description copied from interface:Graph
Adds the statement object to the graph.
-
add
public void add(List<Statement> statements)
Description copied from interface:Graph
Adds given list of Statement objects to the graph.
-
remove
public void remove(Statement statement)
Description copied from interface:Graph
Removes the statement object from the graph.
-
remove
public void remove(List<Statement> statements)
Description copied from interface:Graph
Removes given list of Statement objects from the graph.
-
getStatements
public List<Statement> getStatements()
Description copied from interface:Graph
Returns all statements in the graph.- Specified by:
getStatements
in interfaceGraph
- Returns:
- list of Statement instances
-
getStatements
public List<Statement> getStatements(Node subject, Node predicate, Node object)
Description copied from interface:Graph
Returns all statements in the graph matching the pattern.- Specified by:
getStatements
in interfaceGraph
- Returns:
- list of Statement instances matching the pattern
-
getStatements
public List<Statement> getStatements(Statement statement)
Description copied from interface:Graph
Returns all statements in the graph matching the pattern.- Specified by:
getStatements
in interfaceGraph
- Parameters:
statement
- pattern to match, can hold null nodes as wildcards- Returns:
- list of Statement instances matching the pattern
-
getSubjects
public List<Node> getSubjects(Node predicate, Node object)
Description copied from interface:Graph
Get items matching the statement pattern (null, predicate, object).- Specified by:
getSubjects
in interfaceGraph
- Parameters:
predicate
- predicate pattern, null acceptedobject
- object pattern, null accepted- Returns:
- list of subjects
-
getPredicates
public List<Node> getPredicates(Node subject, Node object)
Description copied from interface:Graph
Gets items matching the statement pattern (subject, null, object).- Specified by:
getPredicates
in interfaceGraph
- Parameters:
subject
- subject pattern, null acceptedobject
- object pattern, null accepted- Returns:
- list of predicates
-
getObjects
public List<Node> getObjects(Node subject, Node predicate)
Description copied from interface:Graph
Gets items matching the statement pattern (subject, predicate, null).- Specified by:
getObjects
in interfaceGraph
- Parameters:
subject
- subject pattern, null acceptedpredicate
- predicate pattern, null accepted- Returns:
- list of node objects
-
hasStatement
public boolean hasStatement(Statement statement)
Description copied from interface:Graph
Returns true if given statement pattern is in the graph.- Specified by:
hasStatement
in interfaceGraph
- Parameters:
statement
- statement pattern, can use null as wild cards- Returns:
- true or false
-
hasResource
public boolean hasResource(Resource resource)
Description copied from interface:Graph
Returns true if given resource appears in any statement of the graph.- Specified by:
hasResource
in interfaceGraph
- Returns:
- true or false
-
size
public Long size()
Returns the number of statements in the graph.XXX AT: this size may not be equal to the number of statements retrieved via getStatements() because it counts each statement property.
-
clear
public void clear()
Description copied from interface:Graph
Clears the graph, removing all statements in it.
-
query
public QueryResult query(String queryString, String language, String baseURI)
Description copied from interface:Graph
Query the graph using a base URI.
-
queryCount
public int queryCount(String queryString, String language, String baseURI)
Description copied from interface:Graph
Counts the number of results of a query.- Specified by:
queryCount
in interfaceGraph
- Parameters:
queryString
- the query stringlanguage
- the query language (sparql, rdql,...)baseURI
- the base URI to use for query- Returns:
- the count
-
read
public boolean read(InputStream in, String lang, String base)
Description copied from interface:Graph
Parses source into the graph.- Specified by:
read
in interfaceGraph
- Parameters:
in
- input streamlang
- format for the input serialization, may be "RDF/XML", "RDF/XML-ABBREV", "N-TRIPLE" and "N3". The default value, represented by null, is "RDF/XML".base
- base uri to be used when converting relative uris to absolute uris, may be null. If set to "", allows relative uris to be used in the model.- Returns:
- true on success, else false
-
read
public boolean read(String path, String lang, String base)
Description copied from interface:Graph
Parses source into the graph.- Specified by:
read
in interfaceGraph
- Parameters:
path
- path on file system where to take the serialization filelang
- format for the input serialization, may be "RDF/XML", "RDF/XML-ABBREV", "N-TRIPLE" and "N3". The default value, represented by null, is "RDF/XML".base
- base uri to be used when converting relative uris to absolute uris, may be null. If set to "", allows relative uris to be used in the model.- Returns:
- true on success, else false
-
write
public boolean write(OutputStream out, String lang, String base)
Description copied from interface:Graph
Serializes graph.- Specified by:
write
in interfaceGraph
- Parameters:
out
- output streamlang
- format for the input serialization, may be "RDF/XML", "RDF/XML-ABBREV", "N-TRIPLE" and "N3". The default value, represented by null, is "RDF/XML".base
- base uri to be used when converting relative uris to absolute uris, may be null. If set to "", allows relative uris to be used in the model.- Returns:
- true on success, else false
-
write
public boolean write(String path, String lang, String base)
Description copied from interface:Graph
Serializes graph.- Specified by:
write
in interfaceGraph
- Parameters:
path
- path on file system where to put the serialization filelang
- format for the input serialization, may be "RDF/XML", "RDF/XML-ABBREV", "N-TRIPLE" and "N3". The default value, represented by null, is "RDF/XML".base
- base uri to be used when converting relative uris to absolute uris, may be null. If set to "", allows relative uris to be used in the model.- Returns:
- true on success, else false
-
-