Class Backend<C extends Configuration>

  • Type Parameters:
    C - the type of the BackendCfg for the current backend
    Direct Known Subclasses:
    LocalBackend

    public abstract class Backend<C extends Configuration>
    extends Object
    Represents a directory server backend, which can be either local or remote (proxy). A backend is a LDAP endpoint.
    • Constructor Detail

      • Backend

        public Backend()
    • Method Detail

      • configureBackend

        public abstract void configureBackend​(C cfg,
                                              ServerContext serverContext)
                                       throws ConfigException
        Configure this backend based on the information in the provided configuration. When the method returns, the backend will have been configured (ready to be opened) but still unable to process operations.
        Parameters:
        cfg - The configuration of this backend.
        serverContext - The server context for this instance
        Throws:
        ConfigException - If there is an error in the configuration.
      • finalizeBackend

        public abstract void finalizeBackend()
        Performs any necessary work to finalize this backend. The backend must be an opened backend, so do not use this method on backends where only configureBackend() has been called. This may be called during the Directory Server shutdown process or if a backend is disabled with the server online. It must not return until the backend is closed.

        This method may not throw any exceptions. If any problems are encountered, then they may be logged but the closure should progress as completely as possible.

      • getBackendID

        public final String getBackendID()
        Retrieves the unique identifier for this backend.
        Returns:
        The unique identifier for this backend.
      • getBaseDNs

        public abstract Set<DN> getBaseDNs()
        Retrieves the set of base-level DNs that may be used within this backend.
        Returns:
        The set of base-level DNs that may be used within this backend.
      • isDefaultRoute

        public abstract boolean isDefaultRoute()
        Indicates whether this backend should be considered a default (wild-card) route.
        Returns:
        true if the backend should be considered as the default route, false otherwise
      • getSupportedControls

        public abstract Set<String> getSupportedControls()
        Retrieves the OIDs of the controls that may be supported by this backend.
        Returns:
        The OIDs of the controls that may be supported by this backend.
      • getSupportedFeatures

        public abstract Set<String> getSupportedFeatures()
        Retrieves the OIDs of the features that may be supported by this backend.
        Returns:
        The OIDs of the features that may be supported by this backend.
      • isConfigurationAcceptable

        public boolean isConfigurationAcceptable​(C configuration,
                                                 List<org.forgerock.i18n.LocalizableMessage> unacceptableReasons,
                                                 ServerContext serverContext)
        Indicates whether the provided configuration is acceptable for this backend. It should be possible to call this method on an uninitialized backend instance in order to determine whether the backend would be able to use the provided configuration.

        Note that implementations which use a subclass of the provided configuration class will likely need to cast the configuration to the appropriate subclass type.
        Parameters:
        configuration - The backend configuration for which to make the determination.
        unacceptableReasons - A list that may be used to hold the reasons that the provided configuration is not acceptable.
        serverContext - this Directory Server instance's server context
        Returns:
        true if the provided configuration is acceptable for this backend, or false if not.
      • isPrivateBackend

        public abstract boolean isPrivateBackend()
        Indicates whether this backend holds private data or user data.
        Returns:
        true if this backend holds private data, or false if it holds user data.
      • setBackendID

        public final void setBackendID​(String backendID)
        Specifies the unique identifier for this backend.
        Parameters:
        backendID - The unique identifier for this backend.