@Override public <C extends Containerable> void applyDefinition(PrismContainer<C> container, Class<C> compileTimeClass, boolean force) throws SchemaException { PrismContainerDefinition<C> definition = determineDefinitionFromClass(compileTimeClass); container.applyDefinition(definition, force); }
private static void applyObjectClass(PrismObject<? extends ShadowType> shadow, ObjectClassComplexTypeDefinition objectClassDefinition) throws SchemaException { PrismContainer<?> attributesContainer = shadow.findContainer(ShadowType.F_ATTRIBUTES); ResourceAttributeContainerDefinition racDef = ObjectFactory.createResourceAttributeContainerDefinition( ShadowType.F_ATTRIBUTES, objectClassDefinition, objectClassDefinition.getPrismContext()); attributesContainer.applyDefinition((PrismContainerDefinition) racDef, true); }
public static void applyDefinition(PrismObject<ReportType> report, PrismContext prismContext) throws SchemaException { PrismContainer<ReportConfigurationType> configuration = report.findContainer(ReportType.F_CONFIGURATION); if (configuration == null) { //nothing to apply definitions on return; } PrismContainer xmlSchema = report.findContainer(ReportType.F_CONFIGURATION_SCHEMA); Element xmlSchemaElement = ObjectTypeUtil.findXsdElement(xmlSchema); if (xmlSchemaElement == null) { //no schema definition available throw new SchemaException("Couldn't find schema for configuration in report type " + report + "."); } PrismSchema schema = ReportTypeUtil.parseReportConfigurationSchema(report, prismContext); PrismContainerDefinition<ReportConfigurationType> definition = ReportTypeUtil.findReportConfigurationDefinition(schema); if (definition == null) { //no definition found for container throw new SchemaException("Couldn't find definitions for report type " + report + "."); } configuration.applyDefinition(definition, true); }
@Test public void test110ApplyAttributeDefinition() throws Exception { final String TEST_NAME = "test110ApplyAttributeDefinition"; TestUtil.displayTestTitle(TEST_NAME); // GIVEN PrismContext prismContext = createInitializedPrismContext(); PrismObject<ResourceType> resource = prismContext.parseObject(RESOURCE_COMPLEX_FILE); RefinedResourceSchema rSchema = RefinedResourceSchemaImpl.parse(resource, prismContext); System.out.println("Refined schema:"); System.out.println(rSchema.debugDump(1)); RefinedObjectClassDefinition defaultAccountDefinition = rSchema.getDefaultRefinedDefinition(ShadowKindType.ACCOUNT); assertNotNull("No refined default account definition in "+rSchema, defaultAccountDefinition); System.out.println("Refined account definition:"); System.out.println(defaultAccountDefinition.debugDump(1)); PrismObject<ShadowType> accObject = prismContext.parseObject(new File(TEST_DIR_NAME, "account-jack.xml")); PrismContainer<Containerable> attributesContainer = accObject.findContainer(ShadowType.F_ATTRIBUTES); System.out.println("Attributes container:"); System.out.println(attributesContainer.debugDump(1)); // WHEN attributesContainer.applyDefinition((PrismContainerDefinition)defaultAccountDefinition.toResourceAttributeContainerDefinition(), true); // THEN System.out.println("Parsed account:"); System.out.println(accObject.debugDump(1)); assertAccountShadow(accObject, resource, prismContext); }
configurationContainer.applyDefinition(configContainerDef); } catch (SchemaException e) { objectResult.recordFatalError("Configuration error in " + resource + ": "+e.getMessage(), e); configContainer.applyDefinition(configContainerDef);
if (attributesContainer.getDefinition() == null) { attributesContainer .applyDefinition(objectClassDefinition.toResourceAttributeContainerDefinition());
configurationContainer.applyDefinition(configurationContainerDefinition, true);
configurationContainer.applyDefinition(configContainerDef); } catch (SchemaException e) { result.recordFatalError("Configuration error in " + resource + ": "+e.getMessage(), e);