private ResourceType generateResourceType()

in scim-core/src/main/java/org/apache/directory/scim/core/schema/SchemaRegistry.java [166:197]


  private ResourceType generateResourceType(ScimResourceType scimResourceType, List<Class<? extends ScimExtension>> extensionList) throws InvalidExtensionException {

    ResourceType resourceType = new ResourceType();
    resourceType.setDescription(scimResourceType.description());
    resourceType.setId(scimResourceType.id());
    resourceType.setName(scimResourceType.name());
    resourceType.setEndpoint(scimResourceType.endpoint());
    resourceType.setSchemaUrn(scimResourceType.schema());

    if (extensionList != null) {

      List<ResourceType.SchemaExtensionConfiguration> extensionSchemaList = new ArrayList<>();

      for (Class<? extends ScimExtension> se : extensionList) {

        ScimExtensionType extensionType = se.getAnnotation(ScimExtensionType.class);

        if (extensionType == null) {
          throw new InvalidExtensionException("Missing annotation: @ScimExtensionType on ScimExtensionL " + se.getSimpleName());
        }

        ResourceType.SchemaExtensionConfiguration ext = new ResourceType.SchemaExtensionConfiguration();
        ext.setRequired(extensionType.required());
        ext.setSchemaUrn(extensionType.id());
        extensionSchemaList.add(ext);
      }

      resourceType.setSchemaExtensions(extensionSchemaList);
    }

    return resourceType;
  }