Etendre le métamodèle à l'aide de scripts

Lorsque vous importez un fichier à l'aide de scripts, vous pouvez importer comme attributs étendus ou collections étendues certaines propriétés qui peuvent ne pas correspondre à des attributs standards.

Dans l'exemple suivants nous allons :

Exemple

If not ExistingModel Is Nothing Then
 ' Création d'une extension
 Dim ModelExtension
 Set ModelExtension = ExistingModel.ExtendedModelDefinitions.CreateNew()
 If not ModelExtension is Nothing Then
  output "Model extension successfully created in model"
  ' Initialisation des attributs d'extension de modèle
  ModelExtension.Name = "Extension for Import of XXX files"
  ModelExtension.Code = "importXXX"
  ModelExtension.Family = "Import"
  ' Définition d'un nouveau stéréotype pour la métaclasse Class dans la section de profil
  Dim MySttp
  Set MySttp = ModelExtension.AddMetaExtension(PdOOM.Cls_Class, Cls_StereotypeTargetItem)
  If not MySttp Is Nothing Then
   output "Stereotype extension successfully created in extension"
   MySttp.Name = "MyStereotype"
   MySttp.UseAsMetaClass = true ' The stereotype will behave as a new metaclass (specific list and category in browser)
   ' Définition d'un attribut étendu pour ce stéréotype
   Dim MyExa
   Set MyExa = MySttp.AddMetaExtension(Cls_ExtendedAttributeTargetItem)
   If not MyExa is Nothing Then
    output "Attribut étendu créé dans l'extension"
    MyExa.Name = "MonAttribut"
    MyExa.Comment = "attribut personnalisé provenant d'importation"
    MyExa.DataType = 10  ' Correspond à integer
    MyExa.Value = "-1" ' Valeur par défaut
    Set MyExa = Nothing
   End If
   ' Définition d'une collection étendue pour ce stéréotype
   Dim MyExCol
   Set MyExCol = MySttp.AddMetaExtension(Cls_ExtendedCollectionTargetItem)
   If not MyExCol is Nothing Then
    output "Collection étendue créé dans l'extension"   
    MyExCol.Name = "MaCollection"
    MyExCol.Comment = "collection personnalisée provenant d'impotation"
    MyExCol.DestinationClassKind = PdOOM.Cls_class  ' La collection ne peut stocker que des classes
    MyExCol.Destinationstereotype = "MonStereotype"  ' La collection ne peut stocker que des classes avec le stéréotype "MonStereotype"
    Set MyExCol = Nothing
   End If
   Set MySttp = Nothing
  End If
  Set ModelExtension = Nothing
 End If
End If