Package caseine.tags
Annotation Interface ImplementationToRemove
Pour enlever des déclarations d'implémetation ou d'extension.
- Author:
- Yvan Maillot <yvan.maillot@uha.fr>
L'annotation @caseine.tags.ImplementationToRemove
L'annotation @ImplementationToRemove enlève des déclarations d'interfaces d'une classe.
Cible
@ImplementationToRemove s'applique aux classes ou aux interfaces.
Formes d'emploi
@ImplementationToRemove s'emploie uniquement comme une annotation monovaluée : (e.g. @ImplementationToRemove("Cloneable").
Effet
L'annotation @ImplementationToRemove a pour effet de supprimer à l'étudiant une ou des déclarations d'implémentation d'interface de la liste des implémentations d'une classe ou une ou des déclarations d'extension d'interface de la liste des extensions d'une interface. La valeur de l'annotation peut-être une chaîne ou un tableau de chaînes qui sont le ou les noms des interfaces à enlever.Exemple 1
@ImplementationToRemove("I1") public class K implements I1, I2 { }sera remplacé par
public class K implements I2 { }Exemple 2
@ImplementationToRemove("I1") public class K implements I1 { }sera remplacé par
public class K { }Exemple 3
@ImplementationToRemove({"I1", "I2"}) public class K implements I1, I2 { }sera remplacé par
public class K { }Précautions
L'annotation @ImplementationToRemove peut livrer à l'étudiant un code non compilable.
C'est normal puisque des fragments de code disparaissent. Des problèmes peuvent survenir s'ils sont invoqués par ailleurs, notamment dans les tests unitaires (mais pas uniquement).
Il faut donc l'utiliser en connaissance de cause et
- soit, enlever des fragments qui n'engendrent pas de code non compilable,
- soit, utiliser l'introspection dans les tests unitaires,
- soit, prévenir l'étudiant.
-
Required Element Summary
Required Elements
-
Element Details
-
value
String[] valueDéfinit la ou les interfaces à retirer- Returns:
- un tableau des noms des interfaces à retirer
-