Search in sources :

Example 1 with ResourceSchemaImpl

use of com.evolveum.midpoint.schema.processor.ResourceSchemaImpl in project midpoint by Evolveum.

the class RefinedResourceSchemaImpl method getResourceSchema.

public static ResourceSchema getResourceSchema(PrismObject<ResourceType> resource, PrismContext prismContext) throws SchemaException {
    Element resourceXsdSchema = ResourceTypeUtil.getResourceXsdSchema(resource);
    if (resourceXsdSchema == null) {
        return null;
    }
    Object userDataEntry = resource.getUserData(USER_DATA_KEY_PARSED_RESOURCE_SCHEMA);
    if (userDataEntry != null) {
        if (userDataEntry instanceof ResourceSchema) {
            return (ResourceSchema) userDataEntry;
        } else {
            throw new IllegalStateException("Expected ResourceSchema under user data key " + USER_DATA_KEY_PARSED_RESOURCE_SCHEMA + "in " + resource + ", but got " + userDataEntry.getClass());
        }
    } else {
        InternalMonitor.recordResourceSchemaParse();
        ResourceSchemaImpl parsedSchema = ResourceSchemaImpl.parse(resourceXsdSchema, "resource schema of " + resource, prismContext);
        if (parsedSchema == null) {
            throw new IllegalStateException("Parsed schema is null: most likely an internall error");
        }
        resource.setUserData(USER_DATA_KEY_PARSED_RESOURCE_SCHEMA, parsedSchema);
        parsedSchema.setNamespace(ResourceTypeUtil.getResourceNamespace(resource));
        return parsedSchema;
    }
}
Also used : ResourceSchema(com.evolveum.midpoint.schema.processor.ResourceSchema) ResourceSchemaImpl(com.evolveum.midpoint.schema.processor.ResourceSchemaImpl) Element(org.w3c.dom.Element)

Aggregations

ResourceSchema (com.evolveum.midpoint.schema.processor.ResourceSchema)1 ResourceSchemaImpl (com.evolveum.midpoint.schema.processor.ResourceSchemaImpl)1 Element (org.w3c.dom.Element)1