Class SchemaBuilder
java.lang.Object
org.identityconnectors.framework.common.objects.SchemaBuilder
Simple builder class to help facilitate creating a
Schema
object.- Since:
- 1.0
-
Constructor Summary
ConstructorDescriptionSchemaBuilder
(Class<? extends Connector> connectorClass) Creates a SchemaBuilder for the given connector class -
Method Summary
Modifier and TypeMethodDescriptionvoid
addSupportedObjectClass
(Class<? extends SPIOperation> op, ObjectClassInfo def) Adds the given ObjectClassInfo as a supported ObjectClass for the given operation.void
addSupportedOperationOption
(Class<? extends SPIOperation> op, OperationOptionInfo def) Adds the given OperationOptionInfo as a supported option for the given operation.build()
Builds theSchema
object based on theObjectClassInfo
s added so far.void
Clears the operation-specific supported classes.void
Clears the operation-specific supported options.void
defineObjectClass
(String type, Set<AttributeInfo> attrInfo) Adds another ObjectClassInfo to the schema.void
Adds another ObjectClassInfo to the schema.final void
defineObjectClass
(ObjectClassInfo objectClassInfo, Class<? extends SPIOperation>... operations) Adds another ObjectClassInfo to the schema.void
defineOperationOption
(String optionName, Class<?> type) Adds another OperationOptionInfo to the schema.void
Adds another OperationOptionInfo to the schema.final void
defineOperationOption
(OperationOptionInfo operationOptionInfo, Class<? extends SPIOperation>... operations) Adds another OperationOptionInfo to the schema.void
removeSupportedObjectClass
(Class<? extends SPIOperation> op, ObjectClassInfo def) Removes the given ObjectClassInfo as a supported ObjectClass for the given operation.void
removeSupportedOperationOption
(Class<? extends SPIOperation> op, OperationOptionInfo def) Removes the given OperationOptionInfo as a supported option for the given operation.
-
Constructor Details
-
SchemaBuilder
Creates a SchemaBuilder for the given connector class- Parameters:
connectorClass
- The connector for which we are building the schema.
-
-
Method Details
-
defineObjectClass
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 infooperations
- The SPI operation which use supports thisobjectClassInfo
- Throws:
IllegalStateException
- If already defined
-
defineOperationOption
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 infooperations
- a list of operations- Throws:
IllegalStateException
- If already defined
-
defineObjectClass
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
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
Adds the given ObjectClassInfo as a supported ObjectClass for the given operation.- Parameters:
op
- The SPI operationdef
- The ObjectClassInfo- Throws:
IllegalArgumentException
- If the given ObjectClassInfo was not already defined usingdefineObjectClass(ObjectClassInfo)
.
-
removeSupportedObjectClass
Removes the given ObjectClassInfo as a supported ObjectClass for the given operation.- Parameters:
op
- The SPI operationdef
- The ObjectClassInfo- Throws:
IllegalArgumentException
- If the given ObjectClassInfo was not already defined usingdefineObjectClass(ObjectClassInfo)
.
-
addSupportedOperationOption
Adds the given OperationOptionInfo as a supported option for the given operation.- Parameters:
op
- The SPI operationdef
- The OperationOptionInfo- Throws:
IllegalArgumentException
- If the given OperationOptionInfo was not already defined usingdefineOperationOption(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 operationdef
- The OperationOptionInfo- Throws:
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
Builds theSchema
object based on theObjectClassInfo
s added so far.- Returns:
- new Schema object based on the info provided.
-