Interface MetamergeConfig

  • All Superinterfaces:
    BaseConfiguration, MetamergeFolder, java.io.Serializable
    All Known Implementing Classes:
    MetamergeConfigFS, MetamergeConfigImpl, MetamergeConfigXML

    public interface MetamergeConfig
    extends MetamergeFolder
    The MetamergeConfig interface specifies the methods used by the IBM Security Directory Integrator to obtain configuration information. The configuration interface is a hierarchical tree of objects and each object's unique name is composed of a number of strings separated by a slash (see MetamergeConfigFactory). If the implementor chooses another naming schema it should perform a name mapping between the slash separated naming and its own local naming schema. Instantiation of a MetamergeConfig object should always performed by the MetamergeConfigFactory. The latter builds a Hashtable of parameters which is passed to the implementation of this interface.
    • Method Detail

      • list

        java.util.Enumeration list​(java.lang.Object name)
                            throws java.lang.Exception
        Returns an enumeration of the immediate children of this node
        Parameters:
        name - The folder name to list
        Returns:
        Enumeration object of javax.naming.Binding objects with names and objects.
        Throws:
        java.lang.Exception
      • lookup

        java.lang.Object lookup​(java.lang.Object name)
                         throws java.lang.Exception
        Searches this configuration for a named node.
        Parameters:
        name - The name to lookup
        Returns:
        The configuration object found
        Throws:
        java.lang.Exception
      • unbind

        void unbind​(java.lang.Object name)
             throws java.lang.Exception
        Removes a named object from this configuration.
        Parameters:
        name - The object name to remove
        Throws:
        java.lang.Exception
      • bind

        void bind​(java.lang.Object name,
                  java.lang.Object obj)
           throws java.lang.Exception
        Adds a new object to the configuration at the location specified by name
        Parameters:
        name - Name
        obj - Configuration Object
        Throws:
        java.lang.Exception
      • rebind

        void rebind​(java.lang.Object name,
                    java.lang.Object obj)
             throws java.lang.Exception
        Adds or replaces a new object to the configuration.
        Parameters:
        name - Name
        obj - Configuration Object
        Throws:
        java.lang.Exception
      • rename

        void rename​(java.lang.Object name,
                    java.lang.Object newName)
             throws java.lang.Exception
        Renames an object. If new name is a simple name then location is unchanged, otherwise the object is moved.
        Parameters:
        name - Current Name
        newName - New name
        Throws:
        java.lang.Exception
      • commitChanges

        void commitChanges​(java.lang.Object output,
                           boolean isSave)
                    throws java.lang.Exception
        Tells the configuration driver to save all modified objects. Not all config drivers support this method. Typically drivers that work with streams (e.g. files) will implement this method to flush its cache to disk. The output parameter may be any object understood by the driver and serves as a temporary output destination. Use the setOutput() to permanently change the output URL for the driver.
        Parameters:
        output - Null or any object supported by the underlying driver.
        isSave - true if this is a permanent save, false if this just saves to e.g. a command window.
        Throws:
        java.lang.Exception
      • commitChanges

        void commitChanges​(java.lang.Object output)
                    throws java.lang.Exception
        Tells the configuration driver to save all modified objects. This has the same effect as commitChanges( output, true)
        Parameters:
        output - Null or any object supported by the underlying driver.
        Throws:
        java.lang.Exception
      • isCommittable

        boolean isCommittable()
        Returns true if the configuration driver implements the commitChanges method and the current value for PROVIDER_URL is writable.
        Returns:
        The committable state
      • isReadOnly

        boolean isReadOnly()
        Returns true if this configuration cannot be modified.
        Returns:
        The readOnly value
      • setOutput

        void setOutput​(java.lang.Object output)
                throws java.lang.Exception
        Changes the output to wich the configuration driver writes its configuration. This is different from calling commitChanges(output, false) where the output parameter is temporary (e.g. SaveCopyAs).
        Parameters:
        output - The new output value
        Throws:
        java.lang.Exception
      • initializeConfig

        void initializeConfig()
                       throws java.lang.Exception
        Initialize the driver
        Throws:
        java.lang.Exception
      • closeConfig

        void closeConfig()
                  throws java.lang.Exception
        Close the driver
        Throws:
        java.lang.Exception
      • copy

        void copy​(BaseConfiguration input,
                  java.lang.Object destination,
                  boolean copyRefs)
           throws java.lang.Exception
        Copies a configuration object into this configuration. This differs from the bind/rebind method in that all copied objects are stored in a different branch than the original objects. Also, the copied objects' referenced objects may be copied in as well.
        Parameters:
        input - Configuration object to be copied
        destination - The name of the destination object (javax.naming.Name or String)
        copyRefs - If true, copy referenced objects as well (e.g. all inherited objects)
        Throws:
        java.lang.Exception
      • getExternalProperties

        @Deprecated
        ExternalPropertiesConfig getExternalProperties()
                                                throws java.lang.Exception
        Deprecated.
        use getTDIProperties() instead
        Returns the external properties delegator object for this configuration.
        Returns:
        The ExternalPropertiesConfig value
        Throws:
        java.lang.Exception
      • getExternalProperties

        @Deprecated
        ExternalPropertiesConfig getExternalProperties​(java.lang.Object name)
                                                throws java.lang.Exception
        Deprecated.
        use getTDIProperties() instead
        Returns the ExternalPropertiesConfig object for the named external properties object. Name can either be a simple name or a fully qualified name. For simple names, the config driver will lookup the object in the default folder for external properties.
        Parameters:
        name - The external property object name
        Returns:
        The ExternalPropertiesConfig object
        Throws:
        java.lang.Exception
      • addNameComponent

        java.lang.Object addNameComponent​(java.lang.Object name,
                                          java.lang.String component,
                                          boolean prefix)
                                   throws java.lang.Exception
        Adds a name component to the NameComponent attribute of the MetamergeConfig object
        Parameters:
        name - Null or existing javax.naming.Name object
        component - The component to add to name
        prefix - If true, component is inserted at beginning of name
        Returns:
        The provided name or a new instance of javax.naming.Name
        Throws:
        java.lang.Exception
      • getAssemblyLine

        AssemblyLineConfig getAssemblyLine​(java.lang.Object name)
                                    throws java.lang.Exception
        Returns the AssemblyLineConfig object for the named assemblyline. Name can either be a simple name or a fully qualified name. For simple names, the config driver will lookup the assemblyline in its default folder for assemblylines.
        Parameters:
        name - Name
        Returns:
        The configuration object
        Throws:
        java.lang.Exception
      • getSequence

        SequenceConfig getSequence​(java.lang.Object name)
                            throws java.lang.Exception
        Returns the SequenceConfig object for the named sequence. Name can either be a simple name or a fully qualified name.
        Parameters:
        name - The name of the sequence
        Returns:
        The configuration object, or null if no match is found
        Throws:
        java.lang.Exception
        Since:
        7.1.1
      • getConnector

        ConnectorConfig getConnector​(java.lang.Object name)
                              throws java.lang.Exception
        Returns the ConnectorConfig object for the named connector. Name can either be a simple name or a fully qualified name. For simple names, the config driver will lookup the connector in its default folder for connectors.
        Parameters:
        name - Name
        Returns:
        The configuration object
        Throws:
        java.lang.Exception
      • getParser

        ParserConfig getParser​(java.lang.Object name)
                        throws java.lang.Exception
        Returns the ParserConfig object for the named parser. Name can either be a simple name or a fully qualified name. For simple names, the config driver will lookup the parser in its default folder for parsers.
        Parameters:
        name - Name
        Returns:
        The configuration object
        Throws:
        java.lang.Exception
      • getScript

        ScriptConfig getScript​(java.lang.Object name)
                        throws java.lang.Exception
        Returns the ScriptConfig object for the named script. Name can either be a simple name or a fully qualified name. For simple names, the config driver will lookup the script in its default folder for scripts.
        Parameters:
        name - Name
        Returns:
        The configuration object
        Throws:
        java.lang.Exception
      • getFunction

        FunctionConfig getFunction​(java.lang.Object name)
                            throws java.lang.Exception
        Returns the FunctionConfig object for the named function. Name can either be a simple name or a fully qualified name. For simple names, the config driver will lookup the script in its default folder for functions.
        Parameters:
        name - Name
        Returns:
        The configuration object
        Throws:
        java.lang.Exception
      • getAttributeMap

        AttributeMapConfig getAttributeMap​(java.lang.Object name)
                                    throws java.lang.Exception
        Returns the AttributeMapConfig object for the named map. Name can either be a simple name or a fully qualified name. For simple names, the config driver will lookup the map in its default folder for maps.
        Parameters:
        name - Name
        Returns:
        The configuration object
        Throws:
        java.lang.Exception
        Since:
        7.1.1
      • getNamespace

        NamespaceConfig getNamespace​(java.lang.Object name)
                              throws java.lang.Exception
        Returns the NamespaceConfig object for the named namespace. Name can either be a simple name or a fully qualified name. For simple names, the config driver will lookup the namespace in its default folder for namespaces.
        Parameters:
        name - Name
        Returns:
        The configuration object
        Throws:
        java.lang.Exception
      • getDefaultFolder

        MetamergeFolder getDefaultFolder​(int folder)
                                  throws java.lang.Exception
        Returns the MetamergeFolder object for the default folder named by folder.
        Parameters:
        folder - The default folder constant
        Returns:
        The Folder object
        Throws:
        java.lang.Exception
      • newInstanceOf

        BaseConfiguration newInstanceOf​(java.lang.Object typeName)
                                 throws java.lang.Exception
        This method returns a new instance of the object type specified by typeName. Use the default folder names constants to denote the type. The new object is not added to the configuration.
        Parameters:
        typeName - The object type to create.
        Returns:
        The newly created object.
        Throws:
        java.lang.Exception
      • newInstanceOf

        BaseConfiguration newInstanceOf​(int type)
                                 throws java.lang.Exception
        This method returns a new instance of the object type specified by type. Use the default folder names constants to denote the type. The new object is not added to the configuration.
        Parameters:
        type - The object type to create
        Returns:
        The newly created object.
        Throws:
        java.lang.Exception
      • newInstanceOf

        <T extends BaseConfiguration> T newInstanceOf​(java.lang.Class<T> cls)
                                               throws java.lang.Exception
        This method returns a new instance of the object type. Instead of using folder names, use interfaces to specify what you need. The new object is not added to the configuration.
        Parameters:
        type - The object type to create
        Returns:
        The newly created instance.
        Throws:
        java.lang.Exception
      • getDriverParameters

        BaseConfiguration getDriverParameters()
                                       throws java.lang.Exception
        This method returns the driver parameters as a BaseConfiguration object.
        Returns:
        The newly created object.
        Throws:
        java.lang.Exception
      • setDriverParameters

        void setDriverParameters​(BaseConfiguration driverParams)
                          throws java.lang.Exception
        This method sets the driver parameters from a BaseConfiguration object.
        Parameters:
        driverParams - The driver parameters
        Throws:
        java.lang.Exception
      • getDriverParameter

        java.lang.Object getDriverParameter​(java.lang.Object name)
                                     throws java.lang.Exception
        This method returns the value for a given driver parameter.
        Parameters:
        name - The name of the driver parameter ot get.
        Returns:
        The driver parameter value
        Throws:
        java.lang.Exception
      • setDriverParameter

        void setDriverParameter​(java.lang.Object name,
                                java.lang.Object value)
                         throws java.lang.Exception
        This method sets a driver parameter.
        Parameters:
        name - The driver parameter name
        value - The driver parameter value
        Throws:
        java.lang.Exception
      • isRemote

        boolean isRemote()
      • instantiateAllObjects

        void instantiateAllObjects()
                            throws java.lang.Exception
        This method iterates the entire configuration to create java objects from the config drivers underlying store. This is needed when all references to other namespaces must be resolved (system and others).
        Throws:
        java.lang.Exception
      • getTDIProperties

        TDIProperties getTDIProperties()
                                throws java.lang.Exception
        This method returns the associated TDIProperties object
        Throws:
        java.lang.Exception
      • getSolutionInterface

        SolutionInterface getSolutionInterface()
        This method returns the SolutionInterface object for this configuration.
      • getConfigVersion

        java.lang.String getConfigVersion()
        Returns:
        The version of the configuration. e.g. "6.1.1", "7.0", "7.1", etc.
        Since:
        7.0
      • getDirectory

        java.lang.String getDirectory()
        Returns the directory this config is placed in. If nothing can be determined, returns "."
        Returns:
        The directory this config is placed in.
        Since:
        7.0
      • setModTSEnabled

        void setModTSEnabled​(boolean value)
        Sets the value of modTSEnabled For internal use.
        Parameters:
        value - - If true, allows time stamps to be automatically modified
        Since:
        7.1.1
      • isModTSEnabled

        boolean isModTSEnabled()
        Returns the value of modTSEnabled For internal use.
        Returns:
        true if time stamps are currently allowed to be automatically modified
        Since:
        7.1.1
      • shouldEncryptProtected

        boolean shouldEncryptProtected()
        Return true if protected parameters should be encrypted with server key.
        Since:
        7.2
      • commitChangesNoEncryption

        void commitChangesNoEncryption​(java.lang.Object output)
                                throws java.lang.Exception
        Writes the configuration to output without server encryption of protected parameters. The output parameter may be any object understood by the driver and should be a temporary output destination, e.g. on another server.
        Parameters:
        output - Any object supported by the underlying driver.
        Throws:
        java.lang.Exception
        Since:
        7.2