Class FedX

All Implemented Interfaces:
RepositoryResolverClient, Sail

public class FedX extends AbstractSail implements RepositoryResolverClient
FedX serves as implementation of the federation layer. It implements RDF4J's Sail interface and can thus be used as a normal repository in a RDF4J environment. The federation layer enables transparent access to the underlying members as if they were a central repository.

For initialization of the federation and usage see FederationManager.

Author:
Andreas Schwarte
  • Constructor Details

  • Method Details

    • setFederationContext

      public void setFederationContext(FederationContext federationContext)
    • setFederationEvaluationStrategy

      public void setFederationEvaluationStrategy(FederationEvaluationStrategyFactory strategyFactory)
    • setWriteStrategyFactory

      public void setWriteStrategyFactory(WriteStrategyFactory writeStrategyFactory)
      Parameters:
      writeStrategyFactory - the WriteStrategyFactory
    • addMember

      protected void addMember(Endpoint endpoint)
      Add a member to the federation (internal).

      If the federation is already initialized, the given endpoint is explicitly initialized as well.

      Parameters:
      endpoint -
    • removeMember

      public boolean removeMember(Endpoint endpoint)
      Remove a member from the federation (internal)
      Parameters:
      endpoint -
      Returns:
      whether the member was removed
    • getConnectionInternal

      protected SailConnection getConnectionInternal() throws SailException
      Description copied from class: AbstractSail
      Returns a store-specific SailConnection object.
      Specified by:
      getConnectionInternal in class AbstractSail
      Returns:
      A connection to the store.
      Throws:
      SailException
    • getDataDir

      public File getDataDir()
      Description copied from interface: Sail
      Gets the Sail's data directory.
      Specified by:
      getDataDir in interface Sail
      Overrides:
      getDataDir in class AbstractSail
      See Also:
    • getValueFactory

      public ValueFactory getValueFactory()
      Description copied from interface: Sail
      Gets a ValueFactory object that can be used to create IRI-, blank node-, literal- and statement objects.
      Specified by:
      getValueFactory in interface Sail
      Returns:
      a ValueFactory object for this Sail object.
    • initializeInternal

      protected void initializeInternal() throws SailException
      Description copied from class: AbstractSail
      Do store-specific operations to initialize the store. The default implementation of this method does nothing.
      Overrides:
      initializeInternal in class AbstractSail
      Throws:
      SailException
    • initializeMember

      protected void initializeMember(Endpoint member) throws SailException
      Throws:
      SailException
    • isWritable

      public boolean isWritable() throws SailException
      Description copied from interface: Sail
      Checks whether this Sail object is writable, i.e. if the data contained in this Sail object can be changed.
      Specified by:
      isWritable in interface Sail
      Throws:
      SailException
    • setDataDir

      public void setDataDir(File dataDir)
      Description copied from interface: Sail
      Sets the data directory for the Sail. The Sail can use this directory for storage of data, parameters, etc. This directory must be set before the Sail is
      invalid @link
      initialized
      .
      Specified by:
      setDataDir in interface Sail
      Overrides:
      setDataDir in class AbstractSail
    • shutDownInternal

      protected void shutDownInternal() throws SailException
      Try to shut down all federation members.
      Specified by:
      shutDownInternal in class AbstractSail
      Throws:
      FedXException - if not all members could be shut down
      SailException
    • getMembers

      public List<Endpoint> getMembers()
      Returns:
      an unmodifiable view of the current members
    • setRepositoryResolver

      public void setRepositoryResolver(RepositoryResolver resolver)
      Specified by:
      setRepositoryResolver in interface RepositoryResolverClient
    • getCollectionFactory

      public Supplier<CollectionFactory> getCollectionFactory()
      Description copied from interface: Sail
      Gets a CollectionFactory that may be optimized for this store and may or may not use disk or other resources.
      Specified by:
      getCollectionFactory in interface Sail
      Returns:
      a CollectionFactory