Class FedXConnection
- All Implemented Interfaces:
AutoCloseable,SailConnection
FederationEvalStrategy to evaluate provided queries.
Prior to evaluation various optimizations are performed, see
FedXOptimizer for further details.
Since 4.0 FedX supports write operations using the supplied WriteStrategy, e.g. by writing to a designated
federation member. Note: the WriteStrategy is initialized lazily upon first access to a write operation, see
getWriteStrategyInternal().
Implementation notes: - not all methods are implemented as of now
- Author:
- Andreas Schwarte
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classA default implementation forAbstractSail. -
Field Summary
FieldsFields inherited from class org.eclipse.rdf4j.sail.helpers.AbstractSailConnection
connectionLock, updateLock, useConnectionLock -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddStatementInternal(Resource subj, IRI pred, Value obj, Resource... contexts) protected voidclearInternal(Resource... contexts) protected voidprotected voidprotected voidprotected CloseableIteration<? extends BindingSet,QueryEvaluationException> evaluateInternal(TupleExpr query, Dataset dataset, BindingSet bindings, boolean includeInferred) explain(Explanation.Level level, TupleExpr tupleExpr, Dataset dataset, BindingSet bindings, boolean includeInferred, int timeoutSeconds) Explain how the TupleExpr will be (or has been) executed/evaluated by returning a TupleExpr (which may or may not be the provided TupleExpr) that has gone through zero or more of the stages prior to and also including execution as specified by the provided level.protected CloseableIteration<? extends Resource,SailException> protected StringgetNamespaceInternal(String prefix) protected CloseableIteration<? extends Namespace,SailException> protected CloseableIteration<? extends Statement,SailException> getStatementsInternal(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) protected WriteStrategyReturn the initializedwriteStrategy.booleanIndicates if the Sail has any statement removal operations pending (not yetflushed) for the current transaction.protected voidremoveNamespaceInternal(String prefix) protected voidremoveStatementsInternal(Resource subj, IRI pred, Value obj, Resource... contexts) protected voidprotected voidsetNamespaceInternal(String prefix, String name) voidsetTransactionSettings(TransactionSetting... settings) Pass any transaction-specific settings to the SailConnection.protected longsizeInternal(Resource... contexts) protected voidMethods inherited from class org.eclipse.rdf4j.sail.helpers.AbstractSailConnection
addStatement, addStatement, autoStartTransaction, begin, begin, clear, clearNamespaces, close, commit, endUpdate, endUpdateInternal, evaluate, flush, getContextIDs, getExclusiveConnectionLock, getNamespace, getNamespaces, getOwner, getSailBase, getSharedConnectionLock, getStatements, getTransactionIsolation, getTransactionLock, hasStatement, hasStatementInternal, isActive, isActiveOperation, isOpen, iterationClosed, pendingAdds, prepare, prepareInternal, registerIteration, removeNamespace, removeStatement, removeStatements, rollback, setNamespace, setStatementsAdded, setStatementsRemoved, size, startUpdate, transactionActive, verifyIsActive, verifyIsOpen, waitForOtherOperationsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.eclipse.rdf4j.sail.SailConnection
prepareQuery
-
Field Details
-
federation
-
federationContext
-
-
Constructor Details
-
FedXConnection
- Throws:
SailException
-
-
Method Details
-
setTransactionSettings
Description copied from interface:SailConnectionPass any transaction-specific settings to the SailConnection. This method needs to be called before the transaction isstarted.Sail implementations can override this method to receive the transaction settings (to inspect and/or pass them along to any wrapped sail objects). Remember to call
super.setTransactionSettings(settings)if you override this method.- Parameters:
settings- the transaction settings on which the next transaction operates. It may or may not contain the isolation level.
-
evaluateInternal
protected CloseableIteration<? extends BindingSet,QueryEvaluationException> evaluateInternal(TupleExpr query, Dataset dataset, BindingSet bindings, boolean includeInferred) throws SailException - Specified by:
evaluateInternalin classAbstractSailConnection- Throws:
SailException
-
clearInternal
- Specified by:
clearInternalin classAbstractSailConnection- Throws:
SailException
-
clearNamespacesInternal
- Specified by:
clearNamespacesInternalin classAbstractSailConnection- Throws:
SailException
-
closeInternal
- Specified by:
closeInternalin classAbstractSailConnection- Throws:
SailException
-
commitInternal
- Specified by:
commitInternalin classAbstractSailConnection- Throws:
SailException
-
getContextIDsInternal
protected CloseableIteration<? extends Resource,SailException> getContextIDsInternal() throws SailException- Specified by:
getContextIDsInternalin classAbstractSailConnection- Throws:
SailException
-
getNamespaceInternal
- Specified by:
getNamespaceInternalin classAbstractSailConnection- Throws:
SailException
-
getNamespacesInternal
protected CloseableIteration<? extends Namespace,SailException> getNamespacesInternal() throws SailException- Specified by:
getNamespacesInternalin classAbstractSailConnection- Throws:
SailException
-
getStatementsInternal
protected CloseableIteration<? extends Statement,SailException> getStatementsInternal(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts) throws SailException - Specified by:
getStatementsInternalin classAbstractSailConnection- Throws:
SailException
-
addStatementInternal
protected void addStatementInternal(Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException - Specified by:
addStatementInternalin classAbstractSailConnection- Throws:
SailException
-
removeNamespaceInternal
- Specified by:
removeNamespaceInternalin classAbstractSailConnection- Throws:
SailException
-
removeStatementsInternal
protected void removeStatementsInternal(Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException - Specified by:
removeStatementsInternalin classAbstractSailConnection- Throws:
SailException
-
rollbackInternal
- Specified by:
rollbackInternalin classAbstractSailConnection- Throws:
SailException
-
setNamespaceInternal
- Specified by:
setNamespaceInternalin classAbstractSailConnection- Throws:
SailException
-
sizeInternal
- Specified by:
sizeInternalin classAbstractSailConnection- Throws:
SailException
-
startTransactionInternal
- Specified by:
startTransactionInternalin classAbstractSailConnection- Throws:
SailException
-
getWriteStrategyInternal
Return the initializedwriteStrategy. If this has not been done yet,WriteStrategy#initialize()is returned. This method guarantees lazy initialization upon the first write operation on thisFedXConnectioninstance.- Returns:
- the
WriteStrategy - Throws:
SailException
-
pendingRemovals
public boolean pendingRemovals()Description copied from interface:SailConnectionIndicates if the Sail has any statement removal operations pending (not yetflushed) for the current transaction.- Specified by:
pendingRemovalsin interfaceSailConnection- Overrides:
pendingRemovalsin classAbstractSailConnection- Returns:
- true if any statement removal operations have not yet been flushed, false otherwise.
- See Also:
-
explain
public Explanation explain(Explanation.Level level, TupleExpr tupleExpr, Dataset dataset, BindingSet bindings, boolean includeInferred, int timeoutSeconds) Description copied from interface:SailConnectionExplain how the TupleExpr will be (or has been) executed/evaluated by returning a TupleExpr (which may or may not be the provided TupleExpr) that has gone through zero or more of the stages prior to and also including execution as specified by the provided level.
This method is used by the Query interface.
WARNING: This method is experimental and is subject to change or removal without warning. There is currently only partial support for this method in RDF4J and and UnsupportedOperationException where support is lacking.
- Parameters:
level- the explanation level, eg. OPTIMIZEDtupleExpr- The tuple expression to evaluate. Mutable.dataset- The dataset to use for evaluating the query, null to use the Sail's default dataset.bindings- A set of input parameters for the query evaluation. The keys reference variable names that should be bound to the value they map to.includeInferred- Indicates whether inferred triples are to be considered in the query result. If false, no inferred statements are returned; if true, inferred statements are returned if availabletimeoutSeconds- for explanations that require execution a timeout can be provided in seconds- Returns:
- The resulting tuple expression after being run through the specified level
-