Mise en correspondance complexe entre objets IDL et objets de MOO
Cette section décrit des mises en correspondances plus complexes entre objets IDL et objets de MOO.
Type de données
Vous pouvez créer un type de données CORBA Primitive en utilisant une classe ayant le stéréotype <<CORBAPrimitive>>.
Constante générale
Une constante générale est une valeur définie indépendamment de tout objet et qui est appelée à être réutilisée. Pour déclarer une constante CORBA, vous devez créer une classe ayant le stéréotype <<CORBAConstants>>, puis lui ajouter des attributs avec le stéréotype <<CORBAConstant>> et des valeurs initiales.
Constante d'interface
Vous créez une constante pour une interface sélectionnée en ajoutant à cette interface des attributs ayant le stéréotype <<CORBAConstant>> et des valeurs initiales.
Définition de type (Typedef)
Vous pouvez créer une définition de type simple CORBA à l'aide d'une classe ayant le stéréotype <<CORBATypedef>>. La classe typedef doit être liée à une classe ayant le stéréotype <<CORBAPrimitive>>, <<CORBAStruct>> ou <<CORBAUnion>> via un lien de généralisation pour définir le type des données.
Séquence
Vous créez une séquence CORBA en utilisant une classe ayant le stéréotype <<CORBASequence>>. Le type de la séquence est défini dans une autre classe liée à la séquence par une association. L'attribut étendu UpperBound de la classe <<CORBASequence>> est utilisé pour définir la limite supérieure de la séquence.
Type de valeur (valuetype)
Vous créez un type de valeur CORBA en utilisant une classe ayant le stéréotype <<CORBAValue>>. Vous pouvez enrichir la définition du type de valeur en utilisant les fonctionnalités de conception suivantes :
Valeur personnalisée (custom value)
Vous générez un type de valeur personnalisé en utilisant une classe ayant le stéréotype <<CORBACustomValue>>.
Valeur encadrée (boxed value)
Vous générez une valeur encadrée en utilisant une classe ayant le stéréotype <<CORBABoxedValue>>. La valeur encadrée ne prend pas en charge l'héritage ni les opérations, vous devez donc utiliser une classe ayant le stéréotype <<CORBAAnonymousSequence>> pour l'associer à une valeur encadrée avec une interface.
Enumération (Enum)
Vous créez une énumération CORBA (enum) en utilisant une classe ayant le stéréotype <<CORBAEnum>>. Vous déclarez les éléments d'énumération en ajoutant des attributs à la classe ayant pour stéréotype <<CORBAEnum>>.
Structure (struct)
Vous créez un type de structure CORBA (struct) en utilisant une classe ayant le stéréotype <<CORBAStruct>>. Vous pouvez mélanger les types d'attribut dans la classe struct.
Structure (struct) dans une autre structure
Pour définir une structure au sein d'une autre structure, créez deux classes avec le stéréotype <<CORBAStruct>>, ajoutez une composition entre les classes et utilisez la fonctionnalité lien interne pour déclarer une classe comme étant interne à l'autre classe.
Séquence dans une structure
Pour créer une séquence dans une structure, vous devez utiliser le stéréotype <<CORBAAnonymousSequence>> sur la classe sequence.
Union
Vous créez une union CORBA en utilisant une classe ayant le stéréotype <<CORBAUnion>>. Chaque attribut d'union représente un cas (case), l'attribut étendu Case (Profile\Attribute\Criteria\IDL union member\Extended Attributes) contient la valeur par défaut de cas.
Enumération/ structure dans une union
Vous pouvez utiliser une énumération ou une structure dans une union à l'aide d'une association de composition. La composition permet de définir la structure comme cas dans l'union.
Structure/ énumération comme type de données switch
Vous pouvez utiliser une énumération ou une structure comme type de données switch en utilisant une association de composition. Dans ce cas de figure, le rôle de la composition est utilisé comme attribut switch pour l'union.
Tableau (array)
Pour créer un tableau CORBA , procédez comme suit :
Tableau pour une séquence
Vous pouvez utiliser une classe ayant le stéréotype <<CORBAAnonymousSequence>> pour éviter d'avoir à définir directement un type pour un tableau de séquence.
Tableau pour une union ou une structure
Pour définir des tableaux pour un attribut d'union ou de structure, vous devez utiliser les propriétés de multiplicité de l'attribut.
Déclenchement d'une exception
Vous définissez une exception en utilisant une classe ayant le stéréotype <<CORBAException>>, et en déclarant cette classe comme interne à l'interface qui risque de provoquer l'exception.