public static RefinedResourceSchema getRefinedSchema(PrismObject<ResourceType> resource) throws SchemaException, ConfigurationException { RefinedResourceSchema refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource); if (refinedSchema == null) { throw new ConfigurationException("No schema for "+resource); } return refinedSchema; }
public RefinedResourceSchema getRefinedResourceSchema() throws SchemaException { if (resource == null) { return null; } return RefinedResourceSchemaImpl.getRefinedSchema(resource, LayerType.MODEL, getNotNullPrismContext()); }
public static LayerRefinedResourceSchema getRefinedSchema(PrismObject<ResourceType> resource, LayerType layer, PrismContext prismContext) throws SchemaException { RefinedResourceSchema refinedSchema = getRefinedSchema(resource, prismContext); if (refinedSchema == null) { return null; } return refinedSchema.forLayer(layer); }
public static RefinedResourceSchema getRefinedSchema(ResourceType resourceType) throws SchemaException, ConfigurationException { RefinedResourceSchema refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resourceType); if (refinedSchema == null) { throw new ConfigurationException("No schema for "+resourceType); } return refinedSchema; }
protected PrismObject<ShadowType> findShadowByName(QName objectClass, String name, PrismObject<ResourceType> resource, OperationResult result) throws SchemaException, ObjectNotFoundException, SecurityViolationException, CommunicationException, ConfigurationException { RefinedResourceSchema rSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource); RefinedObjectClassDefinition rOcDef = rSchema.getRefinedDefinition(objectClass); ObjectQuery query = createShadowQuerySecondaryIdentifier(rOcDef, name, resource); List<PrismObject<ShadowType>> shadows = repositoryService.searchObjects(ShadowType.class, query, null, result); if (shadows.isEmpty()) { return null; } assert shadows.size() == 1 : "Too many shadows found for name "+name+" on "+resource+": "+shadows; return shadows.iterator().next(); }
public RefinedResourceSchema getRefinedResourceSchema(String resourceOid) { PrismObject resource = resources.get(resourceOid); if (resource == null) { return null; } try { return RefinedResourceSchemaImpl.getRefinedSchema(resource, prismContext); } catch (SchemaException e) { throw new SystemException("Unexpected exception: " + e.getMessage(), e); } }
protected RefinedAttributeDefinition getAttributeDefinition(ResourceType resourceType, ShadowKindType kind, QName objectClassName, String attributeLocalName) throws SchemaException { RefinedResourceSchema refinedResourceSchema = RefinedResourceSchemaImpl.getRefinedSchema(resourceType); RefinedObjectClassDefinition refinedObjectClassDefinition = refinedResourceSchema.findRefinedDefinitionByObjectClassQName(kind, objectClassName); return refinedObjectClassDefinition.findAttributeDefinition(attributeLocalName); }
protected ObjectQuery createAccountShadowQueryByAttribute(String attributeName, String attributeValue, PrismObject<ResourceType> resource) throws SchemaException { RefinedResourceSchema rSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource); RefinedObjectClassDefinition rAccount = rSchema.getDefaultRefinedDefinition(ShadowKindType.ACCOUNT); return createShadowQueryByAttribute(rAccount, attributeName, attributeValue, resource); }
protected RefinedAttributeDefinition getAttributeDefinition(ResourceType resourceType, ShadowKindType kind, QName objectClassName, String attributeLocalName) throws SchemaException { RefinedResourceSchema refinedResourceSchema = RefinedResourceSchemaImpl.getRefinedSchema(resourceType); RefinedObjectClassDefinition refinedObjectClassDefinition = refinedResourceSchema.findRefinedDefinitionByObjectClassQName(kind, objectClassName); return refinedObjectClassDefinition.findAttributeDefinition(attributeLocalName); }
protected ResourceAttributeDefinition getAttributeDefinition(PrismObject<ResourceType> resource, QName attributeName) throws SchemaException { RefinedResourceSchema refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource); if (refinedSchema == null) { throw new SchemaException("No refined schema for "+resource); } RefinedObjectClassDefinition accountDefinition = refinedSchema.getDefaultRefinedDefinition(ShadowKindType.ACCOUNT); return accountDefinition.findAttributeDefinition(attributeName); }
public static String refineProjectionIntent(ShadowKindType kind, String intent, ResourceType resource, PrismContext prismContext) throws SchemaException { RefinedResourceSchema refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource, LayerType.MODEL, prismContext); RefinedObjectClassDefinition rObjClassDef = refinedSchema.getRefinedDefinition(kind, intent); if (rObjClassDef == null) { throw new SchemaException("No projection definition for kind="+kind+" intent="+intent+" in "+resource); } return rObjClassDef.getIntent(); }
public static RefinedResourceSchemaAsserter<Void> forResource(PrismObject<ResourceType> resource) throws SchemaException { RefinedResourceSchema refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource, resource.getPrismContext()); assertNotNull("No refined schema for "+resource, refinedSchema); return new RefinedResourceSchemaAsserter<>(refinedSchema, resource.toString()); }
public static RefinedResourceSchemaAsserter<Void> forResource(PrismObject<ResourceType> resource, String details) throws SchemaException { RefinedResourceSchema refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource, resource.getPrismContext()); assertNotNull("No refined schema for "+resource+" ("+details+")", refinedSchema); return new RefinedResourceSchemaAsserter<>(refinedSchema, resource.toString()+" ("+details+")"); }
protected RefinedResourceSchemaAsserter<Void> assertRefinedResourceSchema(PrismObject<ResourceType> resource, String details) throws SchemaException { RefinedResourceSchema refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource, prismContext); assertNotNull("No refined schema for "+resource+" ("+details+")", refinedSchema); RefinedResourceSchemaAsserter<Void> asserter = new RefinedResourceSchemaAsserter(refinedSchema, resource.toString() + " ("+details+")"); initializeAsserter(asserter); return asserter; }
public String getIntent() throws SchemaException { if (!hasApplicablePolicy()) { return SchemaConstants.INTENT_UNKNOWN; } if (intent == null) { RefinedResourceSchema schema = RefinedResourceSchemaImpl.getRefinedSchema(resource); ObjectClassComplexTypeDefinition occtd = schema.findDefaultObjectClassDefinition(getKind()); intent = occtd.getIntent(); } return intent; }
protected void assertShadowSecondaryIdentifier(PrismObject<ShadowType> shadow, String expectedIdentifier, ResourceType resourceType, MatchingRule<String> nameMatchingRule) throws SchemaException { RefinedResourceSchema rSchema = RefinedResourceSchemaImpl.getRefinedSchema(resourceType); ObjectClassComplexTypeDefinition ocDef = rSchema.findObjectClassDefinition(shadow.asObjectable().getObjectClass()); ResourceAttributeDefinition idSecDef = ocDef.getSecondaryIdentifiers().iterator().next(); PrismContainer<Containerable> attributesContainer = shadow.findContainer(ShadowType.F_ATTRIBUTES); PrismProperty<String> idProp = attributesContainer.findProperty(idSecDef.getName()); assertNotNull("No secondary identifier ("+idSecDef.getName()+") attribute in shadow for "+expectedIdentifier, idProp); if (nameMatchingRule == null) { assertEquals("Unexpected secondary identifier in shadow for "+expectedIdentifier, expectedIdentifier, idProp.getRealValue()); } else { PrismAsserts.assertEquals("Unexpected secondary identifier in shadow for "+expectedIdentifier, nameMatchingRule, expectedIdentifier, idProp.getRealValue()); } }
@Test public void test000Sanity() throws Exception { final String TEST_NAME = "test000Sanity"; TestUtil.displayTestTitle(this, TEST_NAME); // WHEN refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(getDummyResourceType(), prismContext); display("Dummy refined schema", refinedSchema); // THEN getDummyResourceController().assertRefinedSchemaSanity(refinedSchema); }
@Test public void test002SanityAzureRefined() throws Exception { final String TEST_NAME = "test002SanityAzureRefined"; displayTestTitle(TEST_NAME); // WHEN RefinedResourceSchema refinedSchemaAzure = RefinedResourceSchemaImpl.getRefinedSchema(resourceDummyAzureType, prismContext); display("Dummy azure refined schema", refinedSchemaAzure); // THEN dummyResourceCtlAzure.assertRefinedSchemaSanity(refinedSchemaAzure); ObjectClassComplexTypeDefinition orgOcDef = refinedSchemaAzure.findObjectClassDefinition(dummyResourceCtlAzure.getOrgObjectClassQName()); assertNotNull("No org object class def in azure refined schema", orgOcDef); }
@Override protected void assertSchemaSanity(ResourceSchema resourceSchema, ResourceType resourceType) throws Exception { // schema is extended, displayOrders are changed dummyResourceCtl.assertDummyResourceSchemaSanityExtended(resourceSchema, resourceType, false, 20); RefinedResourceSchema refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource); RefinedObjectClassDefinition accountRDef = refinedSchema.getDefaultRefinedDefinition(ShadowKindType.ACCOUNT); Collection<RefinedAssociationDefinition> associationDefinitions = accountRDef.getAssociationDefinitions(); assertEquals("Wrong number of association defs", 3, associationDefinitions.size()); RefinedAssociationDefinition crewAssociationDef = accountRDef.findAssociationDefinition(ASSOCIATION_CREW_NAME); assertNotNull("No definitin for crew assocation", crewAssociationDef); }
@Test public void test010SanityModel() throws Exception { final String TEST_NAME = "test010SanityModel"; TestUtil.displayTestTitle(this, TEST_NAME); // WHEN refinedSchemaModel = RefinedResourceSchemaImpl.getRefinedSchema(getDummyResourceType(), LayerType.MODEL, prismContext); display("Dummy refined schema (MODEL)", refinedSchemaModel); // THEN getDummyResourceController().assertRefinedSchemaSanity(refinedSchemaModel); assertTrue("Not layer refined schema, it is "+refinedSchemaModel.getClass(), refinedSchemaModel instanceof LayerRefinedResourceSchema); assertEquals("Wrong layer", LayerType.MODEL, ((LayerRefinedResourceSchema)refinedSchemaModel).getLayer()); }