@Override public <X> ResourceAttributeDefinitionImpl<X> createAttributeDefinition(String localName, QName typeName) { QName name = new QName(getSchemaNamespace(),localName); return createAttributeDefinition(name,typeName); }
/** * This may not be really "clean" as it actually does two steps instead of one. But it is useful. */ @Override public ResourceAttributeContainer instantiate(QName elementName) { return instantiate(elementName, this); }
/** * TODO * * Convenience method. It will internally look up the correct definition. */ @Override public void setDisplayNameAttribute(QName displayName) { setDisplayNameAttribute(findAttributeDefinition(displayName)); }
@NotNull @Override public ObjectClassComplexTypeDefinitionImpl clone() { ObjectClassComplexTypeDefinitionImpl clone = new ObjectClassComplexTypeDefinitionImpl( getTypeName(), prismContext); copyDefinitionData(clone); clone.shared = false; return clone; }
private ResourceSchema createResourceSchema() { ResourceSchemaImpl schema = new ResourceSchemaImpl(SCHEMA_NAMESPACE, PrismTestUtil.getPrismContext()); // Property container ObjectClassComplexTypeDefinitionImpl containerDefinition = (ObjectClassComplexTypeDefinitionImpl) schema.createObjectClassDefinition("AccountObjectClass"); containerDefinition.setKind(ShadowKindType.ACCOUNT); containerDefinition.setDefaultInAKind(true); containerDefinition.setDisplayName("The Account"); containerDefinition.setNativeObjectClass("ACCOUNT"); // ... in it ordinary attribute - an identifier ResourceAttributeDefinition<String> icfUidDef = containerDefinition.createAttributeDefinition( SchemaTestConstants.ICFS_UID, DOMUtil.XSD_STRING); ((Collection)containerDefinition.getPrimaryIdentifiers()).add(icfUidDef); ResourceAttributeDefinitionImpl<String> xloginDef = containerDefinition.createAttributeDefinition("login", DOMUtil.XSD_STRING); xloginDef.setNativeAttributeName("LOGIN"); containerDefinition.setDisplayNameAttribute(xloginDef.getName()); // ... and local property with a type from another schema ResourceAttributeDefinitionImpl<String> xpasswdDef = containerDefinition.createAttributeDefinition("password", ProtectedStringType.COMPLEX_TYPE); xpasswdDef.setNativeAttributeName("PASSWORD"); // ... property reference // TODO this should not go here, as it is not a ResourceAttributeDefinition //containerDefinition.createAttributeDefinition(SchemaConstants.C_CREDENTIALS, SchemaConstants.C_CREDENTIALS_TYPE); return schema; }
containerDefinition.setKind(ShadowKindType.ACCOUNT); containerDefinition.setDefaultInAKind(true); containerDefinition.setNativeObjectClass("ACCOUNT"); ResourceAttributeDefinitionImpl xloginDef = containerDefinition.createAttributeDefinition("login", DOMUtil.XSD_STRING); containerDefinition.addPrimaryIdentifier(xloginDef); xloginDef.setNativeAttributeName("LOGIN"); containerDefinition.setDisplayNameAttribute(xloginDef.getName()); ResourceAttributeDefinitionImpl xpasswdDef = containerDefinition.createAttributeDefinition("password", ProtectedStringType.COMPLEX_TYPE); xpasswdDef.setNativeAttributeName("PASSWORD"); ResourceAttributeDefinitionImpl xSepDef = containerDefinition.createAttributeDefinition("sep", DOMUtil.XSD_STRING); xSepDef.setProcessing(ItemProcessing.IGNORE);
QName typeName = new QName(complexType.getTargetNamespace(),complexType.getName()); ObjectClassComplexTypeDefinitionImpl ocDef = new ObjectClassComplexTypeDefinitionImpl(typeName, prismContext); ocDef.setNativeObjectClass(nativeObjectClass); throw new SchemaException("Definition of unknown kind '"+kindString+"' in the annotation of object class "+typeName); ocDef.setKind(kind); ocDef.setDefaultInAKind(false); } else { ocDef.setDefaultInAKind(defaultInAKind); ocDef.setAuxiliary(false); } else { ocDef.setAuxiliary(auxiliary); ocDef.setIntent(intent); ocDef.setKind(ShadowKindType.ACCOUNT); Element account = SchemaProcessorUtil.getAnnotationElement(annotation, MidPointConstants.RA_ACCOUNT); if (account != null && !defaultInAKind) { ocDef.setDefaultInAKind(Boolean.parseBoolean(defaultValue)); ocDef.setIntent(accountType);
private void finishObjectClassDefinition(ObjectClassComplexTypeDefinitionImpl ocDef, XSComplexType complexType, PrismContext prismContext, XSAnnotation annotation) throws SchemaException { // displayNameAttribute ResourceAttributeDefinition attrDefinition = getAnnotationReference(annotation, MidPointConstants.RA_DISPLAY_NAME_ATTRIBUTE, ocDef); if (attrDefinition != null) { ocDef.setDisplayNameAttribute(attrDefinition); } // namingAttribute attrDefinition = getAnnotationReference(annotation, MidPointConstants.RA_NAMING_ATTRIBUTE, ocDef); if (attrDefinition != null) { ocDef.setNamingAttribute(attrDefinition); } // descriptionAttribute attrDefinition = getAnnotationReference(annotation, MidPointConstants.RA_DESCRIPTION_ATTRIBUTE, ocDef); if (attrDefinition != null) { ocDef.setDescriptionAttribute(attrDefinition); } // identifier attrDefinition = getAnnotationReference(annotation, MidPointConstants.RA_IDENTIFIER, ocDef); if (attrDefinition != null) { ((Collection)ocDef.getPrimaryIdentifiers()).add(attrDefinition); } // secondaryIdentifier attrDefinition = getAnnotationReference(annotation, MidPointConstants.RA_SECONDARY_IDENTIFIER, ocDef); if (attrDefinition != null) { ((Collection)ocDef.getSecondaryIdentifiers()).add(attrDefinition); } }
@Override protected void extendDumpDefinition(StringBuilder sb, ItemDefinition<?> def) { super.extendDumpDefinition(sb, def); if (getPrimaryIdentifiers().contains(def)) { sb.append(",primID"); } if (getSecondaryIdentifiers().contains(def)) { sb.append(",secID"); } }
/** * TODO * * Convenience method. It will internally look up the correct definition. * * @param displayName */ public void setDisplayNameAttribute(QName displayName) { ((ObjectClassComplexTypeDefinitionImpl) getComplexTypeDefinition()).setDisplayNameAttribute(displayName); }
public void setNativeObjectClass(String nativeObjectClass) { // We can afford to delegate a set here as we know that there is one-to-one correspondence between // object class definition and attribute container ((ObjectClassComplexTypeDefinitionImpl) getComplexTypeDefinition()).setNativeObjectClass(nativeObjectClass); }
public void setKind(ShadowKindType kind) { ((ObjectClassComplexTypeDefinitionImpl) getComplexTypeDefinition()).setKind(kind); }
public void setDefaultInAKind(boolean defaultAccountType) { ((ObjectClassComplexTypeDefinitionImpl) getComplexTypeDefinition()).setDefaultInAKind(defaultAccountType); }
@Override public <X> ResourceAttributeDefinitionImpl<X> createAttributeDefinition(QName name, QName typeName) { ResourceAttributeDefinitionImpl<X> propDef = new ResourceAttributeDefinitionImpl<>(name, typeName, prismContext); add(propDef); return propDef; }
/** * Creates a new resource object definition and adds it to the schema. * * This is a preferred way how to create definition in the schema. * * @param typeName * type QName * @return new resource object definition */ @Override public MutableObjectClassComplexTypeDefinition createObjectClassDefinition(QName typeName) { ObjectClassComplexTypeDefinitionImpl cTypeDef = new ObjectClassComplexTypeDefinitionImpl(typeName, getPrismContext()); add(cTypeDef); return cTypeDef; }
public void setDisplayNameAttribute(ResourceAttributeDefinition displayName) { ((ObjectClassComplexTypeDefinitionImpl) getComplexTypeDefinition()).setDisplayNameAttribute(displayName); }
@Override public <X> ResourceAttributeDefinition<X> createAttributeDefinition(String localName, String localTypeName) { QName name = new QName(getSchemaNamespace(),localName); QName typeName = new QName(getSchemaNamespace(),localTypeName); return createAttributeDefinition(name,typeName); }
@Override public ResourceAttributeContainer instantiate(QName elementName) { return ObjectClassComplexTypeDefinitionImpl.instantiate(elementName, this); }
@Override public ResourceAttributeContainer instantiate(QName name) { return ObjectClassComplexTypeDefinitionImpl.instantiate(name, this); }
@Override public ResourceAttributeContainer instantiate(QName elementName) { return ObjectClassComplexTypeDefinitionImpl.instantiate(elementName, this); }