org.eclipse.rdf4j.sail.inferencer

## Class InferencerConnectionWrapper

- java.lang.Object
- - org.eclipse.rdf4j.sail.helpers.SailConnectionWrapper
  - - org.eclipse.rdf4j.sail.helpers.NotifyingSailConnectionWrapper
    - - org.eclipse.rdf4j.sail.inferencer.InferencerConnectionWrapper

- All Implemented Interfaces:
    AutoCloseable, FederatedServiceResolverClient, InferencerConnection, NotifyingSailConnection, SailConnection
  Direct Known Subclasses:
    AbstractForwardChainingInferencerConnection, DedupingInferencerConnection, SchemaCachingRDFSInferencerConnection

      public class InferencerConnectionWrapper
      extends NotifyingSailConnectionWrapper
      implements InferencerConnection

  An extension of ConnectionWrapper that implements the `InferencerConnection` interface.
  Author:
    Arjohn Kampman

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `InferencerConnectionWrapper(InferencerConnection con)` Creates a new InferencerConnectionWrapper object that wraps the supplied transaction.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `addInferredStatement(Resource subj, IRI pred, Value obj, Resource... contexts)` Adds an inferred statement to a specific context.
    `void` | `clearInferred(Resource... contexts)` Removes all inferred statements from the specified/all contexts.
    `void` | `commit()` Calls `flushUpdates()` before forwarding the call to the wrapped connection.
    `CloseableIteration<? extends BindingSet,QueryEvaluationException>` | `evaluate(TupleExpr tupleExpr, Dataset dataset, BindingSet bindings, boolean includeInferred)` Calls `flushUpdates()` before forwarding the call to the wrapped connection.
    `void` | `flush()` Flushes any pending updates and notify changes to listeners as appropriate.
    `void` | `flushUpdates()` Flushes any pending updates to be processed and the resulting changes to be reported to registered `SailConnectionListener`s.
    `CloseableIteration<? extends Resource,SailException>` | `getContextIDs()` Calls `flushUpdates()` before forwarding the call to the wrapped connection.
    `CloseableIteration<? extends Statement,SailException>` | `getStatements(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts)` Calls `flushUpdates()` before forwarding the call to the wrapped connection.
    `InferencerConnection` | `getWrappedConnection()` Gets the connection that is wrapped by this object.
    `boolean` | `hasStatement(Resource subj, IRI pred, Value obj, boolean includeInferred, Resource... contexts)` Determines if the store contains any statements from the specified contexts that have a specific subject, predicate and/or object.
    `void` | `prepare()` Calls `flushUpdates()` before forwarding the call to the wrapped connection.
    `boolean` | `removeInferredStatement(Resource subj, IRI pred, Value obj, Resource... contexts)` Removes an inferred statement from a specific context.
    `long` | `size(Resource... contexts)` Calls `flushUpdates()` before forwarding the call to the wrapped connection.

    - ### Methods inherited from class org.eclipse.rdf4j.sail.helpers.NotifyingSailConnectionWrapper

      `addConnectionListener, removeConnectionListener`

    - ### Methods inherited from class org.eclipse.rdf4j.sail.helpers.SailConnectionWrapper

      `addStatement, addStatement, begin, begin, clear, clearNamespaces, close, endUpdate, explain, getNamespace, getNamespaces, isActive, isOpen, pendingRemovals, prepareQuery, removeNamespace, removeStatement, removeStatements, rollback, setFederatedServiceResolver, setNamespace, setTransactionSettings, size, startUpdate`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.eclipse.rdf4j.sail.NotifyingSailConnection

      `addConnectionListener, removeConnectionListener`

    - ### Methods inherited from interface org.eclipse.rdf4j.sail.SailConnection

      `addStatement, addStatement, addStatement, addStatement, begin, begin, clear, clearNamespaces, close, endUpdate, explain, getNamespace, getNamespaces, getStatements, isActive, isOpen, pendingRemovals, prepareQuery, removeNamespace, removeStatement, removeStatement, removeStatements, removeStatements, rollback, setNamespace, setTransactionSettings, startUpdate`

- - ### Constructor Detail

    - #### InferencerConnectionWrapper

          public InferencerConnectionWrapper(InferencerConnection con)

      Creates a new InferencerConnectionWrapper object that wraps the supplied transaction.

  - ### Method Detail

    - #### getWrappedConnection

          public InferencerConnection getWrappedConnection()

      Gets the connection that is wrapped by this object.
      Overrides:
        `getWrappedConnection` in class `NotifyingSailConnectionWrapper`
      Returns:
        The connection that was supplied to the constructor of this class.

    - #### addInferredStatement

          public boolean addInferredStatement(Resource subj,
                                              IRI pred,
                                              Value obj,
                                              Resource... contexts)
                                       throws SailException

      Description copied from interface: `InferencerConnection`
      Adds an inferred statement to a specific context.
      Specified by:
        `addInferredStatement` in interface `InferencerConnection`
      Parameters:
        `subj` - The subject of the statement to add.
        `pred` - The predicate of the statement to add.
        `obj` - The object of the statement to add.
        `contexts` - The context(s) to add the statement to. Note that this parameter is a vararg and as such is optional. If no contexts are supplied the method operates on the entire repository.
      Throws:
        `SailException` - If the statement could not be added.

    - #### removeInferredStatement

          public boolean removeInferredStatement(Resource subj,
                                                 IRI pred,
                                                 Value obj,
                                                 Resource... contexts)
                                          throws SailException

      Description copied from interface: `InferencerConnection`
      Removes an inferred statement from a specific context.
      Specified by:
        `removeInferredStatement` in interface `InferencerConnection`
      Parameters:
        `subj` - The subject of the statement that should be removed.
        `pred` - The predicate of the statement that should be removed.
        `obj` - The object of the statement that should be removed.
        `contexts` - The context(s) from which to remove the statements. Note that this parameter is a vararg and as such is optional. If no contexts are supplied the method operates on the entire repository.
      Throws:
        `SailException` - If the statement could not be removed.

    - #### clearInferred

          public void clearInferred(Resource... contexts)
                             throws SailException

      Description copied from interface: `InferencerConnection`
      Removes all inferred statements from the specified/all contexts. If no contexts are specified the method operates on the entire repository.
      Specified by:
        `clearInferred` in interface `InferencerConnection`
      Parameters:
        `contexts` - The context(s) from which to remove the statements. Note that this parameter is a vararg and as such is optional. If no contexts are supplied the method operates on the entire repository.
      Throws:
        `SailException` - If the statements could not be removed.

    - #### flush

          public void flush()
                     throws SailException

      Description copied from interface: `SailConnection`
      Flushes any pending updates and notify changes to listeners as appropriate. This is an optional call; calling or not calling this method should have no effect on the outcome of other calls. This method exists to give the caller more control over the efficiency when calling `SailConnection.prepare()`. This method may be called multiple times within the same transaction.
      Specified by:
        `flush` in interface `SailConnection`
      Overrides:
        `flush` in class `SailConnectionWrapper`
      Throws:
        `SailException` - If the updates could not be processed, for example because no transaction is active.

    - #### flushUpdates

          public void flushUpdates()
                            throws SailException

      Description copied from interface: `InferencerConnection`
      Flushes any pending updates to be processed and the resulting changes to be reported to registered `SailConnectionListener`s.
      Specified by:
        `flushUpdates` in interface `InferencerConnection`
      Throws:
        `SailException` - If the updates could not be processed.

    - #### prepare

          public void prepare()
                       throws SailException

      Calls `flushUpdates()` before forwarding the call to the wrapped connection.
      Specified by:
        `prepare` in interface `SailConnection`
      Overrides:
        `prepare` in class `SailConnectionWrapper`
      Throws:
        `UnknownSailTransactionStateException` - If the transaction state can not be determined (this can happen for instance when communication between client and server fails or times-out). It does not indicate a problem with the integrity of the store.
        `SailException` - If there is an active transaction and it cannot be committed.

    - #### commit

          public void commit()
                      throws SailException

      Calls `flushUpdates()` before forwarding the call to the wrapped connection.
      Specified by:
        `commit` in interface `SailConnection`
      Overrides:
        `commit` in class `SailConnectionWrapper`
      Throws:
        `UnknownSailTransactionStateException` - If the transaction state can not be determined (this can happen for instance when communication between client and server fails or times-out). It does not indicate a problem with the integrity of the store.
        `SailException` - If the SailConnection could not be committed.

    - #### evaluate

          public CloseableIteration<? extends BindingSet,QueryEvaluationException> evaluate(TupleExpr tupleExpr,
                                                                                            Dataset dataset,
                                                                                            BindingSet bindings,
                                                                                            boolean includeInferred)
                                                                                     throws SailException

      Calls `flushUpdates()` before forwarding the call to the wrapped connection.
      Specified by:
        `evaluate` in interface `SailConnection`
      Overrides:
        `evaluate` in class `SailConnectionWrapper`
      Parameters:
        `tupleExpr` - The tuple expression to evaluate.
        `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 available
      Returns:
        The TupleQueryResult.
      Throws:
        `SailException` - If the Sail object encountered an error or unexpected situation internally.

    - #### getContextIDs

          public CloseableIteration<? extends Resource,SailException> getContextIDs()
                                                                             throws SailException

      Calls `flushUpdates()` before forwarding the call to the wrapped connection.
      Specified by:
        `getContextIDs` in interface `SailConnection`
      Overrides:
        `getContextIDs` in class `SailConnectionWrapper`
      Returns:
        An iterator over the context identifiers, should not contain any duplicates.
      Throws:
        `SailException`

    - #### hasStatement

          public boolean hasStatement(Resource subj,
                                      IRI pred,
                                      Value obj,
                                      boolean includeInferred,
                                      Resource... contexts)
                               throws SailException

      Description copied from interface: `SailConnection`
      Determines if the store contains any statements from the specified contexts that have a specific subject, predicate and/or object. All three parameters may be null to indicate wildcards. The `includeInferred` parameter can be used to control which statements are checked: all statements or only the statements that have been added explicitly.
      Specified by:
        `hasStatement` in interface `SailConnection`
      Overrides:
        `hasStatement` in class `SailConnectionWrapper`
      Parameters:
        `subj` - A Resource specifying the subject, or `null` for a wildcard.
        `pred` - An IRI specifying the predicate, or `null` for a wildcard.
        `obj` - A Value specifying the object, or `null` for a wildcard.
        `includeInferred` - if false, no inferred statements are returned; if true, inferred statements are returned if available
        `contexts` - The context(s) to get the data from. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A `null` value can be used to match context-less statements.
      Returns:
        `true` iff the store contains any statements matching the supplied criteria, `false` otherwise.
      Throws:
        `SailException` - If the Sail object encountered an error or unexpected situation internally.

    - #### getStatements

          public CloseableIteration<? extends Statement,SailException> getStatements(Resource subj,
                                                                                     IRI pred,
                                                                                     Value obj,
                                                                                     boolean includeInferred,
                                                                                     Resource... contexts)
                                                                              throws SailException

      Calls `flushUpdates()` before forwarding the call to the wrapped connection.
      Specified by:
        `getStatements` in interface `SailConnection`
      Overrides:
        `getStatements` in class `SailConnectionWrapper`
      Parameters:
        `subj` - A Resource specifying the subject, or `null` for a wildcard.
        `pred` - A URI specifying the predicate, or `null` for a wildcard.
        `obj` - A Value specifying the object, or `null` for a wildcard.
        `includeInferred` - if false, no inferred statements are returned; if true, inferred statements are returned if available
        `contexts` - The context(s) to get the data from. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A `null` value can be used to match context-less statements.
      Returns:
        The statements matching the specified pattern.
      Throws:
        `SailException` - If the Sail object encountered an error or unexpected situation internally.

    - #### size

          public long size(Resource... contexts)
                    throws SailException

      Calls `flushUpdates()` before forwarding the call to the wrapped connection.
      Specified by:
        `size` in interface `SailConnection`
      Overrides:
        `size` in class `SailConnectionWrapper`
      Parameters:
        `contexts` - The context(s) to determine the size of. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A `null` value can be used to match context-less statements.
      Returns:
        The number of explicit statements in this store, or in the specified context(s).
      Throws:
        `SailException`

Copyright © 2015-2022 Eclipse Foundation. All Rights Reserved.