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 reference
      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