in scim-core/src/main/java/org/apache/directory/scim/core/schema/SchemaRegistry.java [75:100]
public <T extends ScimResource> void addSchema(Class<T> clazz, List<Class<? extends ScimExtension>> extensionList) {
ScimResourceType scimResourceType = clazz.getAnnotation(ScimResourceType.class);
if (scimResourceType == null) {
throw new ScimResourceInvalidException("Missing annotation: ScimResource must be annotated with @ScimResourceType.");
}
ResourceType resourceType = generateResourceType(scimResourceType, extensionList);
String schemaUrn = scimResourceType.schema();
String endpoint = scimResourceType.endpoint();
addSchema(Schemas.schemaFor(clazz));
addScimResourceSchemaUrn(schemaUrn, clazz);
addScimResourceEndPoint(endpoint, clazz);
addResourceType(resourceType);
if (extensionList != null) {
for (Class<? extends ScimExtension> scimExtension : extensionList) {
log.debug("Calling addSchema on an extension: " + scimExtension);
addSchema(Schemas.schemaForExtension(scimExtension));
log.debug("Registering a extension of type: " + scimExtension);
addExtension(clazz, scimExtension);
}
}
}