Validation d'un modèle de classes

Open ModelSphere a plus de flexibilité que ce que le langage Java permet.
Ainsi, l'application possède une fonction de validation pour assurer que le code généré
est de qualité. Utilisez cette puissante fonction pour surveiller les erreurs potentielles
dans le code Java pendant que vous bâtissez vos modèles. Vous pouvez choisir de
valider une classe, un groupe de classes (niveau du paquetage), ou toutes les classes
d’un modèle (niveau du projet).
Pour ce faire, suivez ces trois étapes faciles :
- Mettre le modèle de classes en évidence.
- Dans le menu choisissez Outils > Valider pour Java.
- Un rapport apparaîtra indiquant si et où le modèle est inadmissible. Il est
également possible de sauvegarder ou imprimer le rapport en utilisant le menu
Fichier.
Validation de Classe / Exception / Interface (type de données
abstrait - adt)
- unicité du nom d'adt imbriqué à l'intérieur de la hiérarchie de confinement
- unicité du nom d'adt imbriqué à l'intérieur des adts imbriqués au même niveau
- unicité du nom d'adt à l'intérieur du même paquetage
- unicité du nom d'unité de compilation à l'intérieur du même paquetage
- un membre d'interface adt ne peut pas être déclaré privé, protégé ou paquetage
- un paquetage adt ne peut pas être déclaré de validation adt statique imbriqué
- une classe ne peut être une validation d’héritage adt finale et abstraite
- accessibilité à la super-classe et super-interface requise
- une super-classe ne peut pas être une classe finale
- une interface ne peut pas hériter d'une super-classe
- une classe ne peut pas hériter d'une de ses classes imbriquées adt super-interface
- une interface ne peut pas hériter d'une de ses interfaces ou énumérations imbriquées d'ancêtres d'adt
- une classe peut seulement hériter d'une super-classe directe à la fois
- une interface/classe ne peut pas implémenter/étendre la même super-interface directe plus d'une fois
- les super-méthodes abstraites implémentent les validations de déclaration des composantes adt
- un adt ne peut pas contenir deux champs avec le même nom
- un adt ne peut pas contenir deux adts imbriqués au même niveau et avec le même nom
- un adt imbriqué ne peut pas contenir une soeur adt imbriquée (au même niveau) avec le même nom
- un adt ne peut pas contenir deux opérations (deux méthodes ou deux constructeurs) avec les mêmes validations de champ de signature.
Validation de type de champ
- accessibilité au type de champ
Validation du champ d’une classe
- le champ d’une classe ne peut pas être déclaré final et volatil
- le champ d’une classe imbriquée ne peut pas être déclaré statique
Validation du champ d’une interface
- le champ d’une interface ne peut pas être déclaré privé, protégé ou paquetage
- le champ d’une interface ne peut pas être déclaré provisoire
- le champ (final) d’une interface ne peut être déclaré volatil
Validation des paramètres d’opération d’une méthode
- le paramètre doit être typé
- accessibilité au type de paramètre
- deux paramètres d’une méthode adt ne peuvent pas avoir le même nom de classe ou d’exception
Validation des méthodes de classes
- le champ d’une classe interne ne peut pas être déclaré statique
- une méthode abstraite doit apparaître dans une classe abstraite
- une méthode de classe ne peut pas être déclarée abstraite et privée
- une méthode de classe ne peut pas être déclarée abstraite et finale
- une méthode de classe ne peut pas être déclarée abstraite et statique
- une méthode de classe ne peut pas être déclarée abstraite et synchronisée
- une méthode de classe ne peut pas être déclarée abstraite et native
- une méthode abstraite ne peut pas avoir de corps
Validation des méthodes d'interfaces
- une méthode d'interface ne peut être déclarée ni privée, ni protégée, ni paquetage
- une méthode d’interface abstraite ne peut pas être déclarée finale
- une méthode d’interface abstraite ne peut pas être déclarée statique
- une méthode d’interface abstraite ne peut pas être déclarée synchronisée
- une méthode d’interface abstraite ne peut pas être déclarée native
- une méthode d’interface abstraite ne peut pas avoir de corps
- une méthode de redéfinissante ou cachée doit avoir le même type de retour que la méthode redéfinie
- une méthode ne peut pas redéfinir ou cacher une méthode avec un privilège d’accès inférieur
- une méthode finale de classe ne peut pas être cachée ou redéfinie
- une méthode statique de classe ne peut pas cacher une instance de méthode
- une instance de méthode ne peut pas redéfinir la méthode statique d’une classe
- une méthode redéfinissante ou cachée ne peut être déclarée pour déclencher plus d'exceptions vérifiées que la méthode redéfinie ou cachée