Vérification des classes

PowerAMC fournit des vérifications de modèle par défaut afin de contrôler la validité des classes.

Vérification

Description et correction

Le nom/code contient des termes qui ne figurent pas dans le glossaire

[si le glossaire est activé] Les noms et les codes ne doivent contenir que des termes approuvés tirés du glossaire.
  • Correction manuelle - Modifiez le nom ou le code de sorte qu'il ne contienne que des termes du glossaire.
  • Correction automatique - Aucune

Le nom/code contient des synonymes de termes de glossaire

[si le glossaire est activé] Les noms et les codes ne doivent pas contenir de synonymes de termes de glossaire.
  • Correction manuelle - Modifiez le nom ou code de sorte qu'il ne contienne que des termes du glossaire.
  • Correction automatique - Remplace les synonymes par les termes de glossaire qui leur sont associés.

Unicité du nom/code

Les noms d'objet doivent être uniques dans l'espace de noms.
  • Correction manuelle - Modifiez le nom ou code en double.
  • Correction automatique - Ajoute un numéro au nom ou code en double.

Classificateur vide

Il manque des attributs et des opérations.

  • Correction manuelle : Ajoutez des attributs et des opérations au classificateur

  • Correction automatique : Aucune

Classe persistante sans attribut persistant

Une classe persistante ne peut pas avoir uniquement des attributs non persistants.

  • Correction manuelle : Définissez au moins un attribut comme persistant

  • Correction automatique : Aucune

Classe d'association avec identifiant

Une classe d'association ne peut pas avoir d'identifiant.

  • Correction manuelle : Supprimez l'identifiant

  • Correction automatique : Aucune

Visibilité du classificateur

Un classificateur privé ou protégé doit être interne à un autre classificateur.

  • Correction manuelle : Définissez une visibilité Public ou Package pour le classificateur

  • Correction automatique : Change la valeur de visibilité en Public ou Package

Type de résultat de constructeur de classe

Un constructeur ne doit pas avoir de type de résultat.

  • Correction manuelle : Supprimez le type de résultat

  • Correction automatique : Supprime le type de résultat

Modificateurs de constructeur de classe

Un constructeur ne peut pas être statique, abstrait ou final.

  • Correction manuelle : Supprimez la propriété Statique, Abstrait ou Final

  • Correction automatique : Supprime la propriété Statique, Abstrait ou Final

Mise en oeuvre d'opération

Lorsqu'il existe une réalisation entre une classe et une interface, vous devez mettre en oeuvre les opérations de l'interface au sein de la classe. Pour ce faire, cliquez sur l'onglet Opérations dans la feuille de propriétés de la classe et sélectionnez le bouton A réaliser en bas de l'onglet pour mettre en oeuvre les opérations manquantes.

  • Correction manuelle : Réalisez les opérations de l'interface dans la classe

  • Correction automatique : Aucune

Affectation de nom de rôle

Un rôle navigable sera migré en tant qu'attribut dans une classe. Si le rôle n'a pas de nom, c'est le code de l'association qui est utilisé.

  • Correction manuelle : Affectez un nom au rôle de l'association

  • Correction automatique : Aucune

Unicité des noms de rôle

Le nom du rôle est utilisé par un autre rôle ou attribut.

  • Correction manuelle : Modifiez le nom/code en double

  • Correction automatique : Ajoute un numéro au nom/code en double

Classe JavaBean sans classe BeanInfo

Les Bean implementors qui fournissent des informations explicites à propos de leurs beans doivent spécifier une classe BeanInfo.

  • Correction manuelle : Créez une classe BeanInfo

  • Correction automatique : Aucune

Classe BeanInfo sans classe JavaBean

Un BeanInfo doit dépendre d'une classe JavaBean.

  • Correction manuelle : Créez une classe JavaBean et recréez son BeanInfo, ou bien supprimez le BeanInfo

  • Correction automatique : Aucune

Parent de type d'énumération

Un énumération ne peut pas avoir d'enfant.

  • Correction manuelle : Supprimez les liens vers les classes enfant.

  • Correction automatique : Aucune

Définition de classe Bean

La classe Bean doit être définie comme publique. Vous devez définir un constructeur public qui ne prend aucun argument et qui ne peut pas définir la méthode finalize(). Il doit être abstrait pour les beans d'entité CMP mais ne peut pas être abstrait ou final pour les beans d'entité CMP, les beans de session et beans commandés par message.

  • Correction manuelle : Changez la visibilité de la classe en public, définissez un constructeur public sans argument, ne définissez pas la méthode finalize()

  • Correction automatique : Change la visibilité de la classe en public, définit un constructeur public sans argument et supprime la méthode finalize(). Définit final = false et abstract = false

Mise en oeuvre de méthodes de gestion de classe Bean

A chaque méthode définie dans un ou plusieurs composants d'interface doit correspondre une méthode dans la classe Bean avec le même nom, le même type de résultat ainsi que le même nombre et le même type d'arguments.

  • Correction manuelle : Ajoutez une méthode avec les mêmes nom, numéro, type de résultat et type d'arguments dans la classe Bean

  • Correction automatique : Ajoute une méthode avec les valeurs appropriées dans la classe Bean

Classe beans : mise en oeuvre de méthodes d'interface Home

A chaque méthode create<METHOD> de la ou des interfaces Home du bean doit correspondre une méthode ejbCreate<METHOD> dans la classe Bean avec les mêmes arguments. A chaque méthode home de la ou des interfaces Home doit correspondre une méthode ebjHome<METHOD> dans la classe Bean avec le même type de résultat ainsi que le même nombre et le même type d'arguments.

La vérification suivante s'applique aux beans d'entité uniquement.

A chaque méthode ejbCreate<METHOD> de la classe Bean, doit correspondre une méthode ejbPostCreate<METHOD> dans la classe Bean avec le même nombre et le même type d'arguments.

  • Correction manuelle : Ajoutez une méthode avec les mêmes nom et type d'arguments dans la classe Bean

  • Correction automatique : Ajoute une méthode avec les valeurs appropriées dans la classe Bean

La vérification suivante s'applique aux beans d'entité BMP uniquement.

A chaque méthode finder find<METHOD> définie dans la ou les interfaces Home du bean doit correspondre une méthode ejbFind<METHOD> avec le même type de résultat ainsi que le même nombre et le même type d'arguments.

  • Correction manuelle : Ajoutez une méthode avec les mêmes nom, numéro, type de résultat et type d'arguments dans la ou les interfaces Home du Bean

  • Correction automatique : Ajoute une méthode avec les valeurs appropriées dans la ou les interfaces Home du Bean

Méthodes ejbCreate de classe Bean

Les méthodes ejbCreate<METHOD> doivent être définies comme public, elles ne peuvent être ni final ni static.

La vérification suivante s'applique aux beans d'entité uniquement.

Le type de résultat d'une méthode ejbCreate() doit être le type clé primaire.

  • Correction manuelle : Sélectionnez la clé primaire dans la liste Type de résultat de la feuille de propriétés de l'opération

  • Correction automatique : Sélectionne la clé primaire comme type de résultat

La vérification suivante s'applique aux Session Beans et aux Message Driven Beans.

Le type de résultat d'une méthode ejbCreate() doit être void.

  • Correction manuelle : Sélectionnez void dans la liste Type de résultat de la feuille de propriétés de l'opération

  • Correction automatique : Change le type de résultat au profit de la valeur void

La vérification suivante s'applique aux Message Driven Beans uniquement.

La classe Bean doit définir une méthode ejbCreate() qui ne prend aucun argument.

  • Correction manuelle : Ajoutez une méthode sans argument dans la classe Bean

  • Correction automatique : Ajoute une méthode sans argument dans la classe Bean

Méthodes ejbPostCreate de classe Bean

La vérification suivante s'applique aux beans d'entité uniquement.

Les méthodes ejbPostCreate<METHOD> doivent être définies comme publiques et ne peuvent être ni final ni static. Leur type de résultat doit être void.

  • Correction manuelle : Changez la visibilité de la méthode en public, décochez les cases Final et Statique et sélectionnez void dans la liste Type de résultat dans la feuille de propriétés de l'opération

  • Correction automatique : Change la visibilité de la méthode en public, supprime les paramètres final et static et change le type de résultat en void

Méthodes ejbFind de classe Bean

(Bean d'entité BMP)

Les méthodes ejbFind<METHOD> doivent être définies comme publiques et doivent pas être statiques ou finales. Leur type de résultat peut être le type de clé primaire du bean ou une collection de clés primaires.

  • Correction manuelle : Changez la visibilité de la méthode en public et décochez la case Statique

  • Correction automatique : Change la visibilité de la méthode en public et supprime les paramètres static et final. Impose le type de clé primaire de comme type de résultat pour ejbFind<METHOD>

Méthodes ejbHome de classe Bean

Les méthodes ejbHome<METHOD> doivent être définies comme publiques et doivent pas être statiques.

  • Correction manuelle : Changez la visibilité de la méthode en public et décochez la case Statique

  • Correction automatique : Change la visibilité de la méthode en public et supprime le paramètre static

Méthodes ejbSelect de classe Bean

La vérification suivante s'applique aux beans d'entité CMP uniquement.

Les méthodes EjbSelect <METHOD> doivent être définies comme publiques et abstraites. Leur clause throws doit inclure l'exception javax.ejb.FinderException.

  • Correction manuelle : Changez la visibilité de la méthode en public, cochez la case Abstrait et incluez l'exception javax.ejb.FinderException

  • Correction automatique : Change la visibilité de la méthode en public, spécifie le paramètre abstract et inclut l'exception javax.ejb.FinderException

Définition de classe de clé primaire

La vérification suivante s'applique aux beans d'entité uniquement.

La classe de clé primaire doit être déclarée comme publique et vous devez définir un constructeur public qui ne prend aucun argument.

  • Correction manuelle : Changez la visibilité de la méthode en public et ajoutez un constructeur par défaut dans la classe de clé primaire

  • Correction automatique : Change la visibilité de la méthode en public et ajoute un constructeur par défaut dans la classe de clé primaire

Attributs de classe de clé primaire

Tous les attributs de classe de clé primaire doivent être déclarés comme public. En outre, chaque classe de clé primaire avoir un champ cmp correspondant dans la classe Bean.

  • Correction manuelle : Changez la visibilité en public, et créez un champ cmp dans la classe Bean avec le même nom et le même type de données que l'attribut de la classe de clé primaire

  • Correction automatique : Change la visibilité en public, et crée un champ cmp dans la classe Bean avec le même nom et le même type de données que l'attribut de la classe de clé primaire

Existence de classe de clé primaire

Si la classe bean comporte plusieurs attributs de clé primaire, une classe de clé primaire doit exister. Si la classe bean ne comporte qu'un seul attribut de clé primaire, elle ne peut pas avoir un type de données standard, mais doit avoir un type de données objet (par exemple : java.lang.Long).

  • Correction manuelle : S'il existe plusieurs attributs de clé primaire, créez une classe de clé primaire. S'il n'existe qu'un seul attribut de clé primaire, sélectionnez un type de données objet/classificateur

  • Correction automatique : Crée une classe de clé primaire, ou bien sélectionne le type de données objet/classificateur approprié

Correspondance de classe non définie

La classe doit être mise en correspondance avec des tables ou des vues dans la source de données.

  • Correction manuelle : Définissez la correspondance sur l'onglet Correspondances de la feuille de propriétés de classe (onglet Sources de la classe), ou supprimez la source de données

  • Correction automatique : Supprime la source de données de la liste Correspond à dans l'onglet Correspondances de la classe

Pour plus d'informations sur les correspondances O/R, voir Guide des fonctionnalités générales > Liaison et synchronisation de modèles > Mise en correspondance d'objets > Correspondances objet-relationnel (O/R).

Correspondance d'attribut non définie

L'attribut doit être mis en correspondance avec des colonnes dans la source de données.

  • Correction manuelle : Définissez la correspondance à partir de l'onglet Correspondance de la feuille de propriétés de classe (onglet Correspondances d'attribut), ou bien supprimez la source de données

  • Correction automatique : Supprime la source de données dans la liste Correspond à dans l'onglet Correspondances de la feuille de propriétés de classe

Pour plus d'informations sur les correspondances O/R, voir Guide des fonctionnalités générales > Liaison et synchronisation de modèles > Mise en correspondance d'objets > Correspondances objet-relationnel (O/R).

Classificateur lié incomplet

Un classificateur de type "Lié" doit être lié à un classificateur générique.

  • Correction manuelle : Spécifiez un classificateur générique dans la zone située à droite de la liste Type sur l'onglet Général de la feuille de propriétés du classificateur lié. Vous pouvez également le connecter à un classificateur générique par le biais d'une dépendance ayant le stéréotype <<bind>>.

  • Correction automatique : Aucune

Mode de génération invalide

Si le mode de persistance d'une classe est défini comme Migrer les colonnes, elle doit avoir un parent ou enfant persistant vers lequel migrer les colonnes.

  • Correction manuelle : Liez la classe à un parent ou enfant persistant, ou changez son mode de persistance sur l'onglet Détails de sa feuille de propriétés.

  • Correction automatique : Aucune