Chapter 8 Gestion des Modèles Orientés Objet


Vérifications des classes

Lors de la vérification d'un MOO, les contrôles suivants sont effectués sur les classes :

Vérification Description et correction
Unicité du nom et du code des classes Les noms et les codes de classe doivent être uniques dans l'espace de noms (modèle ou package).

Correction manuelle : Modifiez le nom/code en double

Correction automatique : Ajoute un numéro au nom/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éaliser 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éer une classe BeanInfo

Correction automatique : Aucune
Classe BeanInfo sans classe JavaBean Un BeanInfo doit dépendre d'une classe JavaBean.

Correction manuelle : Créer 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 : Ajouter 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 : Ajouter 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 : Ajouter 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 : Ajouter 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 et 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 "Correspondances objet-relationnel (O/R)" dans le chapitre Création de correspondances du Guide des fonctionnalités générales ".
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 "Correspondances objet-relationnel (O/R)" dans le chapitre Création de correspondances du Guide des fonctionnalités générales ".
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

 


Copyright (C) 2008. Sybase Inc. All rights reserved.