public void addSchema()

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);
      }
    }
  }