@Override public String getIntent() { return getComplexTypeDefinition().getIntent(); }
public static List<String> getIntentsForKind(RefinedResourceSchema rSchema, ShadowKindType kind) { List<String> intents = new ArrayList<>(); for (ObjectClassComplexTypeDefinition objClassDef : rSchema.getObjectClassDefinitions()) { if (objClassDef.getKind() == kind){ intents.add(objClassDef.getIntent()); } } return intents; }
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; }
@Override public ObjectClassComplexTypeDefinition findObjectClassDefinition(ShadowKindType kind, String intent) { if (intent == null) { return findDefaultObjectClassDefinition(kind); } for (ObjectClassComplexTypeDefinition ocDef: getObjectClassDefinitions()) { if (MiscSchemaUtil.matchesKind(kind, ocDef.getKind()) && MiscSchemaUtil.equalsIntent(intent, ocDef.getIntent())) { return ocDef; } } return null; }
if (StringUtils.isEmpty(policyIntent)) { policyObjectClass = schema.findDefaultObjectClassDefinition(policyKind); policyIntent = policyObjectClass.getIntent(); } else { policyObjectClass = schema.findObjectClassDefinition(policyKind, policyIntent);
public void assertDummyResourceSchemaSanityExtended(ResourceSchema resourceSchema, ResourceType resourceType, boolean checkDisplayOrder, int numberOfAccountDefinitions) { assertDummyResourceSchemaSanity(resourceSchema, resourceType, checkDisplayOrder); ObjectClassComplexTypeDefinition accountDef = resourceSchema.findDefaultObjectClassDefinition(ShadowKindType.ACCOUNT); assertNotNull("No default account definition", accountDef); ObjectClassComplexTypeDefinition accountObjectClassDef = resourceSchema.findObjectClassDefinition(SchemaTestConstants.ICF_ACCOUNT_OBJECT_CLASS_LOCAL_NAME); assertNotNull("No AccountObjectClass definition", accountObjectClassDef); assertTrue("Default account definition is not same as AccountObjectClass", accountDef == accountObjectClassDef); assertEquals("Unexpected number of definitions", numberOfAccountDefinitions, accountDef.getDefinitions().size()); ResourceAttributeDefinition<String> treasureDef = accountDef.findAttributeDefinition(DUMMY_ACCOUNT_ATTRIBUTE_TREASURE_NAME); assertFalse("Treasure IS returned by default and should not be", treasureDef.isReturnedByDefault()); // MID-4751 ResourceAttributeDefinition<XMLGregorianCalendar> enlistTimestampDef = accountDef.findAttributeDefinition(DUMMY_ACCOUNT_ATTRIBUTE_ENLIST_TIMESTAMP_NAME); PrismAsserts.assertDefinition(enlistTimestampDef, new QName(ResourceTypeUtil.getResourceNamespace(resourceType), DUMMY_ACCOUNT_ATTRIBUTE_ENLIST_TIMESTAMP_NAME), DOMUtil.XSD_DATETIME, 0, 1); assertEquals("Unexpected kind in account definition", ShadowKindType.ACCOUNT, accountDef.getKind()); assertTrue("Account definition in not default", accountDef.isDefaultInAKind()); assertNull("Non-null intent in account definition", accountDef.getIntent()); assertFalse("Account definition is deprecated", accountDef.isDeprecated()); assertFalse("Account definition is auxiliary", accountDef.isAuxiliary()); }
public static RefinedObjectClassDefinition parseFromSchema(ObjectClassComplexTypeDefinition objectClassDef, ResourceType resourceType, RefinedResourceSchema rSchema, PrismContext prismContext, String contextDescription) throws SchemaException { RefinedObjectClassDefinitionImpl rOcDef = new RefinedObjectClassDefinitionImpl(resourceType.getOid(), objectClassDef); String intent = objectClassDef.getIntent(); if (intent == null && objectClassDef.isDefaultInAKind()) { intent = SchemaConstants.INTENT_DEFAULT; } rOcDef.setIntent(intent); if (objectClassDef.getDisplayName() != null) { rOcDef.setDisplayName(objectClassDef.getDisplayName()); } rOcDef.setDefault(objectClassDef.isDefaultInAKind()); for (ResourceAttributeDefinition attrDef : objectClassDef.getAttributeDefinitions()) { String attrContextDescription = intent + ", in " + contextDescription; RefinedAttributeDefinition rAttrDef = RefinedAttributeDefinitionImpl.parse(attrDef, null, objectClassDef, prismContext, attrContextDescription); rOcDef.processIdentifiers(rAttrDef, objectClassDef); if (rOcDef.containsAttributeDefinition(rAttrDef.getName())) { throw new SchemaException("Duplicate definition of attribute " + rAttrDef.getName() + " in " + attrContextDescription); } rOcDef.add(rAttrDef); } return rOcDef; }
private void assertSimpleSchema(ResourceSchema schema, String filename) { assertNotNull(schema); System.out.println("Parsed schema from " + filename + ":"); System.out.println(schema.debugDump()); ObjectClassComplexTypeDefinition accDef = schema.findObjectClassDefinition(new ItemName(SCHEMA_NAMESPACE, "AccountObjectClass")); assertEquals("Wrong account objectclass", new ItemName(SCHEMA_NAMESPACE, "AccountObjectClass"), accDef.getTypeName()); assertEquals("Wrong account kind", ShadowKindType.ACCOUNT, accDef.getKind()); assertEquals("Wrong account intent", "admin", accDef.getIntent()); assertTrue("Not a default account", accDef.isDefaultInAKind()); PrismPropertyDefinition<String> loginAttrDef = accDef.findPropertyDefinition(new ItemName(SCHEMA_NAMESPACE, "login")); assertEquals(new ItemName(SCHEMA_NAMESPACE, "login"), loginAttrDef.getName()); assertEquals(DOMUtil.XSD_STRING, loginAttrDef.getTypeName()); assertFalse("Ignored while it should not be", loginAttrDef.isIgnored()); PrismPropertyDefinition<Integer> groupAttrDef = accDef.findPropertyDefinition(new ItemName(SCHEMA_NAMESPACE, "group")); assertEquals(new ItemName(SCHEMA_NAMESPACE, "group"), groupAttrDef.getName()); assertEquals(DOMUtil.XSD_INT, groupAttrDef.getTypeName()); assertFalse("Ignored while it should not be", groupAttrDef.isIgnored()); PrismPropertyDefinition<String> ufoAttrDef = accDef.findPropertyDefinition(new ItemName(SCHEMA_NAMESPACE, "ufo")); assertEquals(new ItemName(SCHEMA_NAMESPACE, "ufo"), ufoAttrDef.getName()); assertTrue("Not ignored as it should be", ufoAttrDef.isIgnored()); ObjectClassComplexTypeDefinition groupDef = schema.findObjectClassDefinition(new ItemName(SCHEMA_NAMESPACE, "GroupObjectClass")); assertEquals("Wrong group objectclass", new ItemName(SCHEMA_NAMESPACE, "GroupObjectClass"), groupDef.getTypeName()); assertEquals("Wrong group kind", ShadowKindType.ENTITLEMENT, groupDef.getKind()); assertEquals("Wrong group intent", null, groupDef.getIntent()); assertFalse("Default group but it should not be", groupDef.isDefaultInAKind()); }