Class Registries

    • Constructor Detail

      • Registries

        public Registries()
        Creates a new instance of Registries.
    • Method Detail

      • getOid

        public String getOid​(String name)
        Get an OID from a name. As we have many possible registries, we have to look in all of them to get the one containing the OID.
        Parameters:
        name - The name we are looking at
        Returns:
        The associated OID
      • getLoadedSchema

        public Schema getLoadedSchema​(String schemaName)
        Gets a schema that has been loaded into these Registries.
        Parameters:
        schemaName - the name of the schema to lookup
        Returns:
        the loaded Schema if one corresponding to the name exists
      • isSchemaLoaded

        public boolean isSchemaLoaded​(String schemaName)
        Checks to see if a particular Schema is loaded.
        Parameters:
        schemaName - the name of the Schema to check
        Returns:
        true if the Schema is loaded, false otherwise
      • checkRefInteg

        public void checkRefInteg()
        Attempts to resolve the dependent schema objects of all entities that refer to other objects within the registries. Null references will be handed appropriately. The order in which the SchemaObjects must be :
        • 1) Normalizers, Comparators and SyntaxCheckers (as they depend on nothing)
        • 2) Syntaxes (depend on SyntaxCheckers)
        • 3) MatchingRules (depend on Syntaxes, Normalizers and Comparators
        • 4) AttributeTypes (depend on MatchingRules, Syntaxes and AttributeTypes : in this case, we first handle the superior)
        • 5) ObjectClasses (depend on AttributeTypes and ObjectClasses)


        Later, when we will support them :
        • 6) MatchingRuleUses (depend on matchingRules and AttributeTypes)
        • 7) DitContentRules (depend on ObjectClasses and AttributeTypes)
        • 8) NameForms (depends on ObjectClasses and AttributeTypes)
        • 9) DitStructureRules (depends onNameForms and DitStructureRules)
      • delCrossReferences

        public void delCrossReferences​(AttributeType attributeType)
        Add the SchemaObjectReferences. This method does nothing, it's just a catch all. The other methods will be called for each specific schemaObject public void addCrossReferences( SchemaObject schemaObject ) { // Do nothing : it's a catch all method. } /** Delete the AT references (using and usedBy) : AT -> MR (for EQUALITY, ORDERING and SUBSTR) AT -> S AT -> AT
        Parameters:
        attributeType - The AttributeType to remove
      • delCrossReferences

        public void delCrossReferences​(MatchingRule matchingRule)
        Delete the MR references (using and usedBy) : MR -> C MR -> N MR -> S
        Parameters:
        matchingRule - The MatchinRule refere ce to delete
      • buildReference

        public void buildReference​(SchemaObject schemaObject)
        Build the SchemaObject references
        Parameters:
        schemaObject - The SchemaObject to add
      • removeReference

        public void removeReference​(SchemaObject schemaObject)
        Unlink the SchemaObject references
        Parameters:
        schemaObject - The SchemaObject to remove
      • buildReferences

        public void buildReferences()
        Build the usedBy and using references from the stored elements.
      • add

        public void add​(SchemaObject schemaObject,
                        boolean check)
                 throws LdapException
        Applies the added SchemaObject to the given register
        Parameters:
        schemaObject - The SchemaObject to add
        check - A flag set when we want the schema checks to be done
        Throws:
        LdapException - If we weren't able to add the SchemaObject
      • delete

        public void delete​(SchemaObject schemaObject)
                    throws LdapException
        Remove the given SchemaObject from the registries
        Parameters:
        schemaObject - The SchemaObject to delete
        Throws:
        LdapException - If the deletion failed
      • schemaLoaded

        public void schemaLoaded​(Schema schema)
        Merely adds the schema to the set of loaded schemas. Does not actually do any work to add schema objects to registries. Listener method called to indicate a loader or other agent finished loading the schema objects for a schema into the Registries.
        Specified by:
        schemaLoaded in interface SchemaLoaderListener
        Parameters:
        schema - the Schema that was loaded
      • schemaUnloaded

        public void schemaUnloaded​(Schema schema)
        Merely removes the schema from the set of loaded schemas. Does not actually do any work to remove schema objects from registries. Listener method called to indicate an agent finished loading the schema objects for a schema into the Registries.
        Specified by:
        schemaUnloaded in interface SchemaLoaderListener
        Parameters:
        schema - the Schema that was unloaded
      • getLoadedSchemas

        public Map<String,​SchemagetLoadedSchemas()
        Gets an unmodifiable Map of schema names to loaded Schema objects.
        Returns:
        the map of loaded Schema objects
      • contains

        public boolean contains​(SchemaObject schemaObject)
        Tells if the given SchemaObject is present in one schema. The schema may be disabled.
        Parameters:
        schemaObject - The schemaObject we are looking for
        Returns:
        true if the schemaObject is present in a schema
      • addSchema

        public Set<SchemaObjectWrapperaddSchema​(String schemaName)
        Create a new schema association with its content
        Parameters:
        schemaName - The schema name
        Returns:
        A set containing the associations
      • associateWithSchema

        public void associateWithSchema​(SchemaObject schemaObject)
        Store the given SchemaObject in the Map associating SchemaObjetcs to their related Schema.
        Parameters:
        schemaObject - The schemaObject to register
      • dissociateFromSchema

        public void dissociateFromSchema​(SchemaObject schemaObject)
                                  throws LdapException
        Store the given SchemaObject in the Map associating SchemaObjetcs to their related Schema.
        Parameters:
        schemaObject - The schemaObject to register
        Throws:
        LdapException - If there is a problem
      • isReferenced

        public boolean isReferenced​(SchemaObject schemaObject)
        Checks if a specific SchemaObject is referenced by any other SchemaObject.
        Parameters:
        schemaObject - The SchemaObject we are looking for
        Returns:
        true if there is at least one SchemaObjetc referencing the given one
      • getUsedBy

        public Set<SchemaObjectWrappergetUsedBy​(SchemaObject schemaObject)
        Gets the Set of SchemaObjects referencing the given SchemaObject
        Parameters:
        schemaObject - The SchemaObject we are looking for
        Returns:
        The Set of referencing SchemaObject, or null
      • dumpUsedBy

        public String dumpUsedBy()
        Dump the UsedBy data structure as a String
        Returns:
        The UsedBy data structure
      • dumpUsing

        public String dumpUsing()
        Dump the Using data structure as a String
        Returns:
        The Using data structure
      • getUsing

        public Set<SchemaObjectWrappergetUsing​(SchemaObject schemaObject)
        Gets the Set of SchemaObjects referenced by the given SchemaObject
        Parameters:
        schemaObject - The SchemaObject we are looking for
        Returns:
        The Set of referenced SchemaObject, or null
      • addReference

        public void addReference​(SchemaObject base,
                                 SchemaObject referenced)
        Add an association between a SchemaObject an the SchemaObject it refers
        Parameters:
        base - The base SchemaObject
        referenced - The referenced SchemaObject
      • delReference

        public void delReference​(SchemaObject base,
                                 SchemaObject referenced)
        Delete an association between a SchemaObject an the SchemaObject it refers
        Parameters:
        base - The base SchemaObject
        referenced - The referenced SchemaObject
      • check

        public boolean check()
        Check the registries for invalid relations. This check stops at the first error.
        Returns:
        true if the Registries is consistent, false otherwise
      • isRelaxed

        public boolean isRelaxed()
        Tells if the Registries is permissive or if it must be checked against inconsistencies.
        Returns:
        True if SchemaObjects can be added even if they break the consistency
      • isStrict

        public boolean isStrict()
        Tells if the Registries is strict.
        Returns:
        True if SchemaObjects cannot be added if they break the consistency
      • setRelaxed

        public void setRelaxed()
        Change the Registries to a relaxed mode, where invalid SchemaObjects can be registered.
      • setStrict

        public void setStrict()
        Change the Registries to a strict mode, where invalid SchemaObjects cannot be registered.
      • isDisabledAccepted

        public boolean isDisabledAccepted()
        Tells if the Registries accept disabled elements.
        Returns:
        True if disabled SchemaObjects can be added
      • getReferencing

        public Set<SchemaObjectWrappergetReferencing​(SchemaObject schemaObject)
        Check that we can remove a given SchemaObject without breaking some of its references. We will return the list of refereing objects.
        Parameters:
        schemaObject - The SchemaObject to remove
        Returns:
        The list of SchemaObjects referencing the SchemaObjetc we want to remove
      • setDisabledAccepted

        public void setDisabledAccepted​(boolean disabledAccepted)
        Change the Registries behavior regarding disabled SchemaObject element.
        Parameters:
        disabledAccepted - If false, then the Registries won't accept disabled SchemaObject or enabled SchemaObject from disabled schema