java.lang.Object
org.identityconnectors.framework.common.objects.SchemaBuilder

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

    • SchemaBuilder

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

    • 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:
      IllegalStateException - If already defined
    • defineObjectClass

      @SafeVarargs public final void defineObjectClass(ObjectClassInfo objectClassInfo, 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:
      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

      @SafeVarargs public final void defineOperationOption(OperationOptionInfo operationOptionInfo, 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:
      IllegalStateException - If already defined
    • defineObjectClass

      public void defineObjectClass(String type, 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:
      IllegalStateException - If already defined
    • defineOperationOption

      public void defineOperationOption(String optionName, 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:
      IllegalStateException - If already defined
    • addSupportedObjectClass

      public void addSupportedObjectClass(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:
      IllegalArgumentException - If the given ObjectClassInfo was not already defined using defineObjectClass(ObjectClassInfo).
    • removeSupportedObjectClass

      public void removeSupportedObjectClass(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:
      IllegalArgumentException - If the given ObjectClassInfo was not already defined using defineObjectClass(ObjectClassInfo).
    • addSupportedOperationOption

      public void addSupportedOperationOption(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:
      IllegalArgumentException - If the given OperationOptionInfo was not already defined using defineOperationOption(OperationOptionInfo).
    • removeSupportedOperationOption

      public void removeSupportedOperationOption(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:
      IllegalArgumentException - If the given OperationOptionInfo was not already defined using defineOperationOption(OperationOptionInfo).
    • clearSupportedObjectClassesByOperation

      public void clearSupportedObjectClassesByOperation()
      Clears the operation-specific supported classes. Normally, when you add an ObjectClass, using defineObjectClass(ObjectClassInfo), it is added to all operations. You may then remove those that you need using removeSupportedObjectClass(Class, ObjectClassInfo). You may wish, as an alternative to clear everything out and instead add using addSupportedObjectClass(Class, ObjectClassInfo).
    • clearSupportedOptionsByOperation

      public void clearSupportedOptionsByOperation()
      Clears the operation-specific supported options. Normally, when you add an OperationOptionInfo using defineOperationOption(OperationOptionInfo), this adds the option to all operations. You may then remove the option from any operation that does not support the option using removeSupportedOperationOption(Class, OperationOptionInfo). An alternative approach is to clear everything out (using this method) and then add each option to every operation that supports the option using addSupportedOperationOption(Class, 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.