Class SchemaBuilder


  • public final class SchemaBuilder
    extends java.lang.Object
    Simple builder class to help facilitate creating a Schema object.
    Since:
    1.0
    • Constructor Detail

      • SchemaBuilder

        public SchemaBuilder​(java.lang.Class<? extends Connector> connectorClass)
        Creates a SchemaBuilder for the given connector class
        Parameters:
        connectorClass - The connector for which we are building the schema.
    • Method Detail

      • defineObjectClass

        public void defineObjectClass​(ObjectClassInfo info)
        Adds another ObjectClassInfo to the schema. Also, adds this to the set of supported classes for every operation defined by the Connector.
        Parameters:
        info - The object class info
        Throws:
        java.lang.IllegalStateException - If already defined
      • defineObjectClass

        public void defineObjectClass​(ObjectClassInfo objectClassInfo,
                                      java.lang.Class<? extends SPIOperation>... operations)
        Adds another ObjectClassInfo to the schema. Also, adds this to the set of supported classes for every operation defined by the Connector.
        Parameters:
        objectClassInfo - the object class info
        operations - The SPI operation which use supports this objectClassInfo
        Throws:
        java.lang.IllegalStateException - If already defined
      • defineOperationOption

        public void defineOperationOption​(OperationOptionInfo info)
        Adds another OperationOptionInfo to the schema. Also, adds this to the set of supported options for every operation defined by the Connector.
      • defineOperationOption

        public void defineOperationOption​(OperationOptionInfo operationOptionInfo,
                                          java.lang.Class<? extends SPIOperation>... operations)
        Adds another OperationOptionInfo to the schema. Also, adds this to the set of supported options for operation defined.
        Parameters:
        operationOptionInfo - the operation options info
        operations - a list of operations
        Throws:
        java.lang.IllegalStateException - If already defined
      • defineObjectClass

        public void defineObjectClass​(java.lang.String type,
                                      java.util.Set<AttributeInfo> attrInfo)
        Adds another ObjectClassInfo to the schema. Also, adds this to the set of supported classes for every operation defined by the Connector.
        Throws:
        java.lang.IllegalStateException - If already defined
      • defineOperationOption

        public void defineOperationOption​(java.lang.String optionName,
                                          java.lang.Class<?> type)
        Adds another OperationOptionInfo to the schema. Also, adds this to the set of supported options for every operation defined by the Connector.
        Throws:
        java.lang.IllegalStateException - If already defined
      • addSupportedObjectClass

        public void addSupportedObjectClass​(java.lang.Class<? extends SPIOperation> op,
                                            ObjectClassInfo def)
        Adds the given ObjectClassInfo as a supported ObjectClass for the given operation.
        Parameters:
        op - The SPI operation
        def - The ObjectClassInfo
        Throws:
        java.lang.IllegalArgumentException - If the given ObjectClassInfo was not already defined using defineObjectClass(ObjectClassInfo).
      • removeSupportedObjectClass

        public void removeSupportedObjectClass​(java.lang.Class<? extends SPIOperation> op,
                                               ObjectClassInfo def)
        Removes the given ObjectClassInfo as a supported ObjectClass for the given operation.
        Parameters:
        op - The SPI operation
        def - The ObjectClassInfo
        Throws:
        java.lang.IllegalArgumentException - If the given ObjectClassInfo was not already defined using defineObjectClass(ObjectClassInfo).
      • addSupportedOperationOption

        public void addSupportedOperationOption​(java.lang.Class<? extends SPIOperation> op,
                                                OperationOptionInfo def)
        Adds the given OperationOptionInfo as a supported option for the given operation.
        Parameters:
        op - The SPI operation
        def - The OperationOptionInfo
        Throws:
        java.lang.IllegalArgumentException - If the given OperationOptionInfo was not already defined using defineOperationOption(OperationOptionInfo).
      • removeSupportedOperationOption

        public void removeSupportedOperationOption​(java.lang.Class<? extends SPIOperation> op,
                                                   OperationOptionInfo def)
        Removes the given OperationOptionInfo as a supported option for the given operation.
        Parameters:
        op - The SPI operation
        def - The OperationOptionInfo
        Throws:
        java.lang.IllegalArgumentException - If the given OperationOptionInfo was not already defined using defineOperationOption(OperationOptionInfo).
      • build

        public Schema build()
        Builds the Schema object based on the ObjectClassInfos added so far.
        Returns:
        new Schema object based on the info provided.