Class RDFServiceImpl
- java.lang.Object
-
- edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceImpl
-
- All Implemented Interfaces:
RDFService
- Direct Known Subclasses:
RDFServiceJena,RDFServiceSparql,SameAsFilteringRDFServiceFactory.SameAsFilteringRDFService
public abstract class RDFServiceImpl extends Object implements RDFService
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService
RDFService.ModelSerializationFormat, RDFService.ResultFormat, RDFService.SPARQLQueryType
-
-
Field Summary
Fields Modifier and Type Field Description protected StringdefaultWriteGraphURIprotected List<String>graphURIsprotected booleanisRebuildGraphURICacheRunningprotected booleanrebuildGraphURICacheprotected List<org.apache.jena.rdf.model.ModelChangedListener>registeredJenaListenersprotected List<ChangeListener>registeredListeners
-
Constructor Summary
Constructors Constructor Description RDFServiceImpl()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description longcountTriples(org.apache.jena.rdf.model.RDFNode subject, org.apache.jena.rdf.model.RDFNode predicate, org.apache.jena.rdf.model.RDFNode object)protected org.apache.jena.query.QuerycreateQuery(String queryString)StringgetDefaultWriteGraphURI()Returns the URI of the default write graphList<String>getGraphURIs()Get a list of all the graph URIs in the RDF store.List<org.apache.jena.rdf.model.ModelChangedListener>getRegisteredJenaModelChangedListeners()List<ChangeListener>getRegisteredListeners()protected static StringgetSerializationFormatString(RDFService.ModelSerializationFormat format)org.apache.jena.rdf.model.ModelgetTriples(org.apache.jena.rdf.model.RDFNode subject, org.apache.jena.rdf.model.RDFNode predicate, org.apache.jena.rdf.model.RDFNode object, long limit, long offset)VitroRequestgetVitroRequest()protected booleanisPreconditionSatisfied(String query, RDFService.SPARQLQueryType queryType)ChangeSetmanufactureChangeSet()Creates a ChangeSet objectvoidnewIndividual(String individualURI, String individualTypeURI)If the given individual already exists in the default write graph, throws an RDFServiceException, otherwise adds one type assertion to the default write graph.voidnewIndividual(String individualURI, String individualTypeURI, String graphURI)If the given individual already exists in the given graph, throws an RDFServiceException, otherwise adds one type assertion to the given graph.protected voidnotifyListeners(ModelChange modelChange)protected voidnotifyListenersOfChanges(ChangeSet changeSet)voidnotifyListenersOfEvent(Object event)protected static voidpyString(StringBuffer sbuff, String s)protected abstract voidrebuildGraphUris()voidregisterJenaModelChangedListener(org.apache.jena.rdf.model.ModelChangedListener changeListener)Registers a Jena listener to listen to changes in any graph in the RDF store.voidregisterListener(ChangeListener changeListener)Registers a listener to listen to changes in any graph in the RDF store.protected org.apache.jena.rdf.model.Model[]separateStatementsWithBlankNodes(org.apache.jena.rdf.model.Model gm)Returns a pair of models.voidsetVitroRequest(VitroRequest vitroRequest)UQAM-Bug-Correction Useful among other things to transport the linguistic context in the serviceprotected static StringsparqlNode(org.apache.jena.graph.Node node, String varName)protected static StringsparqlNodeUpdate(org.apache.jena.graph.Node node, String varName)protected booleansparqlSelectQueryHasResults(String queryStr)protected static StringsparqlTriple(org.apache.jena.graph.Triple triple)StringtoString()voidunregisterJenaModelChangedListener(org.apache.jena.rdf.model.ModelChangedListener changeListener)Unregisters a Jena listener from listening to changes in any graph in the RDF storevoidunregisterListener(ChangeListener changeListener)Unregisters a listener from listening to changes in any graph in the RDF storeprotected voidupdateGraphURIs(Set<String> newURIs)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService
changeSetUpdate, close, getGraphMetadata, isEquivalentGraph, isEquivalentGraph, preferPreciseOptionals, serializeAll, serializeGraph, sparqlAskQuery, sparqlConstructQuery, sparqlConstructQuery, sparqlDescribeQuery, sparqlSelectQuery, sparqlSelectQuery
-
-
-
-
Field Detail
-
defaultWriteGraphURI
protected String defaultWriteGraphURI
-
registeredListeners
protected List<ChangeListener> registeredListeners
-
registeredJenaListeners
protected List<org.apache.jena.rdf.model.ModelChangedListener> registeredJenaListeners
-
rebuildGraphURICache
protected volatile boolean rebuildGraphURICache
-
isRebuildGraphURICacheRunning
protected volatile boolean isRebuildGraphURICacheRunning
-
-
Method Detail
-
newIndividual
public void newIndividual(String individualURI, String individualTypeURI) throws RDFServiceException
Description copied from interface:RDFServiceIf the given individual already exists in the default write graph, throws an RDFServiceException, otherwise adds one type assertion to the default write graph.- Specified by:
newIndividualin interfaceRDFService- Parameters:
individualURI- - URI of the individual to be addedindividualTypeURI- - URI of the type for the individual- Throws:
RDFServiceException
-
newIndividual
public void newIndividual(String individualURI, String individualTypeURI, String graphURI) throws RDFServiceException
Description copied from interface:RDFServiceIf the given individual already exists in the given graph, throws an RDFServiceException, otherwise adds one type assertion to the given graph.- Specified by:
newIndividualin interfaceRDFService- Parameters:
individualURI- - URI of the individual to be addedindividualTypeURI- - URI of the type for the individualgraphURI- - URI of the graph to which to add the individual- Throws:
RDFServiceException
-
getGraphURIs
public List<String> getGraphURIs() throws RDFServiceException
Get a list of all the graph URIs in the RDF store.- Specified by:
getGraphURIsin interfaceRDFService- Returns:
- list of all the named graph URIs in the RDF store. Return an empty list of there no named graphs in the store.
- Throws:
RDFServiceException
-
rebuildGraphUris
protected abstract void rebuildGraphUris()
-
getDefaultWriteGraphURI
public String getDefaultWriteGraphURI() throws RDFServiceException
Description copied from interface:RDFServiceReturns the URI of the default write graph- Specified by:
getDefaultWriteGraphURIin interfaceRDFService- Returns:
- String URI of default write graph. Returns null if no default write graph has been set.
- Throws:
RDFServiceException
-
registerListener
public void registerListener(ChangeListener changeListener) throws RDFServiceException
Description copied from interface:RDFServiceRegisters a listener to listen to changes in any graph in the RDF store.- Specified by:
registerListenerin interfaceRDFService- Parameters:
changeListener- - the change listener- Throws:
RDFServiceException
-
unregisterListener
public void unregisterListener(ChangeListener changeListener) throws RDFServiceException
Description copied from interface:RDFServiceUnregisters a listener from listening to changes in any graph in the RDF store- Specified by:
unregisterListenerin interfaceRDFService- Parameters:
changeListener- - the change listener- Throws:
RDFServiceException
-
registerJenaModelChangedListener
public void registerJenaModelChangedListener(org.apache.jena.rdf.model.ModelChangedListener changeListener) throws RDFServiceExceptionDescription copied from interface:RDFServiceRegisters a Jena listener to listen to changes in any graph in the RDF store.- Specified by:
registerJenaModelChangedListenerin interfaceRDFService- Parameters:
changeListener- - the change listener- Throws:
RDFServiceException
-
unregisterJenaModelChangedListener
public void unregisterJenaModelChangedListener(org.apache.jena.rdf.model.ModelChangedListener changeListener) throws RDFServiceExceptionDescription copied from interface:RDFServiceUnregisters a Jena listener from listening to changes in any graph in the RDF store- Specified by:
unregisterJenaModelChangedListenerin interfaceRDFService- Parameters:
changeListener- - the change listener- Throws:
RDFServiceException
-
getRegisteredListeners
public List<ChangeListener> getRegisteredListeners()
-
getRegisteredJenaModelChangedListeners
public List<org.apache.jena.rdf.model.ModelChangedListener> getRegisteredJenaModelChangedListeners()
-
manufactureChangeSet
public ChangeSet manufactureChangeSet()
Description copied from interface:RDFServiceCreates a ChangeSet object- Specified by:
manufactureChangeSetin interfaceRDFService- Returns:
- ChangeSet an empty ChangeSet object
-
notifyListenersOfChanges
protected void notifyListenersOfChanges(ChangeSet changeSet) throws IOException
- Throws:
IOException
-
notifyListeners
protected void notifyListeners(ModelChange modelChange) throws IOException
- Throws:
IOException
-
notifyListenersOfEvent
public void notifyListenersOfEvent(Object event)
-
isPreconditionSatisfied
protected boolean isPreconditionSatisfied(String query, RDFService.SPARQLQueryType queryType) throws RDFServiceException
- Throws:
RDFServiceException
-
getSerializationFormatString
protected static String getSerializationFormatString(RDFService.ModelSerializationFormat format)
-
sparqlSelectQueryHasResults
protected boolean sparqlSelectQueryHasResults(String queryStr) throws RDFServiceException
- Throws:
RDFServiceException
-
sparqlTriple
protected static String sparqlTriple(org.apache.jena.graph.Triple triple)
-
sparqlNodeUpdate
protected static String sparqlNodeUpdate(org.apache.jena.graph.Node node, String varName)
-
pyString
protected static void pyString(StringBuffer sbuff, String s)
-
separateStatementsWithBlankNodes
protected org.apache.jena.rdf.model.Model[] separateStatementsWithBlankNodes(org.apache.jena.rdf.model.Model gm)
Returns a pair of models. The first contains any statement containing at least one blank node. The second contains all remaining statements.- Parameters:
gm- Jena model
-
createQuery
protected org.apache.jena.query.Query createQuery(String queryString) throws RDFServiceException
- Throws:
RDFServiceException
-
countTriples
public long countTriples(org.apache.jena.rdf.model.RDFNode subject, org.apache.jena.rdf.model.RDFNode predicate, org.apache.jena.rdf.model.RDFNode object) throws RDFServiceException- Specified by:
countTriplesin interfaceRDFService- Throws:
RDFServiceException
-
getTriples
public org.apache.jena.rdf.model.Model getTriples(org.apache.jena.rdf.model.RDFNode subject, org.apache.jena.rdf.model.RDFNode predicate, org.apache.jena.rdf.model.RDFNode object, long limit, long offset) throws RDFServiceException- Specified by:
getTriplesin interfaceRDFService- Throws:
RDFServiceException
-
setVitroRequest
public void setVitroRequest(VitroRequest vitroRequest)
Description copied from interface:RDFServiceUQAM-Bug-Correction Useful among other things to transport the linguistic context in the service- Specified by:
setVitroRequestin interfaceRDFService
-
getVitroRequest
public VitroRequest getVitroRequest()
- Specified by:
getVitroRequestin interfaceRDFService
-
-