Class SchemaBuilder
- java.lang.Object
-
- org.identityconnectors.framework.common.objects.SchemaBuilder
-
public final class SchemaBuilder extends java.lang.Object
Simple builder class to help facilitate creating aSchema
object.- Since:
- 1.0
-
-
Constructor Summary
Constructors Constructor Description SchemaBuilder(java.lang.Class<? extends Connector> connectorClass)
Creates a SchemaBuilder for the given connector class
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addSupportedObjectClass(java.lang.Class<? extends SPIOperation> op, ObjectClassInfo def)
Adds the given ObjectClassInfo as a supported ObjectClass for the given operation.void
addSupportedOperationOption(java.lang.Class<? extends SPIOperation> op, OperationOptionInfo def)
Adds the given OperationOptionInfo as a supported option for the given operation.Schema
build()
Builds theSchema
object based on theObjectClassInfo
s added so far.void
clearSupportedObjectClassesByOperation()
Clears the operation-specific supported classes.void
clearSupportedOptionsByOperation()
Clears the operation-specific supported options.void
defineObjectClass(java.lang.String type, java.util.Set<AttributeInfo> attrInfo)
Adds another ObjectClassInfo to the schema.void
defineObjectClass(ObjectClassInfo info)
Adds another ObjectClassInfo to the schema.void
defineObjectClass(ObjectClassInfo objectClassInfo, java.lang.Class<? extends SPIOperation>... operations)
Adds another ObjectClassInfo to the schema.void
defineOperationOption(java.lang.String optionName, java.lang.Class<?> type)
Adds another OperationOptionInfo to the schema.void
defineOperationOption(OperationOptionInfo info)
Adds another OperationOptionInfo to the schema.void
defineOperationOption(OperationOptionInfo operationOptionInfo, java.lang.Class<? extends SPIOperation>... operations)
Adds another OperationOptionInfo to the schema.void
removeSupportedObjectClass(java.lang.Class<? extends SPIOperation> op, ObjectClassInfo def)
Removes the given ObjectClassInfo as a supported ObjectClass for the given operation.void
removeSupportedOperationOption(java.lang.Class<? extends SPIOperation> op, OperationOptionInfo def)
Removes the given OperationOptionInfo as a supported option for the given operation.
-
-
-
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 infooperations
- The SPI operation which use supports thisobjectClassInfo
- 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 infooperations
- 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 operationdef
- The ObjectClassInfo- Throws:
java.lang.IllegalArgumentException
- If the given ObjectClassInfo was not already defined usingdefineObjectClass(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 operationdef
- The ObjectClassInfo- Throws:
java.lang.IllegalArgumentException
- If the given ObjectClassInfo was not already defined usingdefineObjectClass(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 operationdef
- The OperationOptionInfo- Throws:
java.lang.IllegalArgumentException
- If the given OperationOptionInfo was not already defined usingdefineOperationOption(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 operationdef
- The OperationOptionInfo- Throws:
java.lang.IllegalArgumentException
- If the given OperationOptionInfo was not already defined usingdefineOperationOption(OperationOptionInfo)
.
-
clearSupportedObjectClassesByOperation
public void clearSupportedObjectClassesByOperation()
Clears the operation-specific supported classes. Normally, when you add an ObjectClass, usingdefineObjectClass(ObjectClassInfo)
, it is added to all operations. You may then remove those that you need usingremoveSupportedObjectClass(Class, ObjectClassInfo)
. You may wish, as an alternative to clear everything out and instead add usingaddSupportedObjectClass(Class, ObjectClassInfo)
.
-
clearSupportedOptionsByOperation
public void clearSupportedOptionsByOperation()
Clears the operation-specific supported options. Normally, when you add an OperationOptionInfo usingdefineOperationOption(OperationOptionInfo)
, this adds the option to all operations. You may then remove the option from any operation that does not support the option usingremoveSupportedOperationOption(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 usingaddSupportedOperationOption(Class, OperationOptionInfo)
.
-
build
public Schema build()
Builds theSchema
object based on theObjectClassInfo
s added so far.- Returns:
- new Schema object based on the info provided.
-
-