PowerAMC fournit des vérifications par défaut afin de contrôler la validité des 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, 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 la section "Correspondances objet-relationnel (O/R)" du chapitre 12, Correspondances d'objets 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 la section "Correspondances objet-relationnel (O/R)" du chapitre 12, Correspondances d'objets 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 |