Class SchemaBuilder
- java.lang.Object
-
- org.identityconnectors.framework.common.objects.SchemaBuilder
-
public final class SchemaBuilder extends java.lang.ObjectSimple builder class to help facilitate creating aSchemaobject.- 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 voidaddSupportedObjectClass(java.lang.Class<? extends SPIOperation> op, ObjectClassInfo def)Adds the given ObjectClassInfo as a supported ObjectClass for the given operation.voidaddSupportedOperationOption(java.lang.Class<? extends SPIOperation> op, OperationOptionInfo def)Adds the given OperationOptionInfo as a supported option for the given operation.Schemabuild()Builds theSchemaobject based on theObjectClassInfos added so far.voidclearSupportedObjectClassesByOperation()Clears the operation-specific supported classes.voidclearSupportedOptionsByOperation()Clears the operation-specific supported options.voiddefineObjectClass(java.lang.String type, java.util.Set<AttributeInfo> attrInfo)Adds another ObjectClassInfo to the schema.voiddefineObjectClass(ObjectClassInfo info)Adds another ObjectClassInfo to the schema.voiddefineObjectClass(ObjectClassInfo objectClassInfo, java.lang.Class<? extends SPIOperation>... operations)Adds another ObjectClassInfo to the schema.voiddefineOperationOption(java.lang.String optionName, java.lang.Class<?> type)Adds another OperationOptionInfo to the schema.voiddefineOperationOption(OperationOptionInfo info)Adds another OperationOptionInfo to the schema.voiddefineOperationOption(OperationOptionInfo operationOptionInfo, java.lang.Class<? extends SPIOperation>... operations)Adds another OperationOptionInfo to the schema.voidremoveSupportedObjectClass(java.lang.Class<? extends SPIOperation> op, ObjectClassInfo def)Removes the given ObjectClassInfo as a supported ObjectClass for the given operation.voidremoveSupportedOperationOption(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 theSchemaobject based on theObjectClassInfos added so far.- Returns:
- new Schema object based on the info provided.
-
-