KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > spoon > aval > support > validator > problemFixer > RemoveThisAnnotation


1 /**
2  * Spoon - http://spoon.gforge.inria.fr/
3  * Copyright (C) 2006 INRIA Futurs <renaud.pawlak@inria.fr>
4  *
5  * This software is governed by the CeCILL-C License under French law and
6  * abiding by the rules of distribution of free software. You can use,
7  * modify and/or redistribute the software under the terms of the
8  * CeCILL-C
9  * license as circulated by CEA, CNRS and INRIA at the following URL:
10  * http://www.cecill.info.
11  *
12  * This program is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the CeCILL-C
15  * License for more details.
16  *
17  * The fact that you are presently reading this means that you have had
18  * knowledge of the CeCILL-C license and that you accept its terms.
19  */

20
21 package spoon.aval.support.validator.problemFixer;
22
23 import java.lang.annotation.Annotation JavaDoc;
24 import java.util.Iterator JavaDoc;
25 import java.util.Set JavaDoc;
26
27 import spoon.aval.processing.ValidationPoint;
28 import spoon.processing.AbstractProblemFixer;
29 import spoon.reflect.Changes;
30 import spoon.reflect.declaration.CtAnnotation;
31 import spoon.reflect.declaration.CtElement;
32
33 public class RemoveThisAnnotation extends AbstractProblemFixer implements AValFixer {
34     
35     private Class JavaDoc<? extends Annotation JavaDoc> thisAnnotation = null;
36     
37     public void setValidationPoint(ValidationPoint vp) {
38         thisAnnotation = (Class JavaDoc<? extends Annotation JavaDoc>)vp.getDslAnnotation().getAnnotationType().getActualClass();
39     }
40
41     public String JavaDoc getDescription() {
42         return "Remove this annotation";
43     }
44
45     public String JavaDoc getLabel() {
46         return "Remove this annotation";
47     }
48
49     public Changes run(CtElement element) {
50         Changes df = new Changes();
51         Set JavaDoc<CtAnnotation<? extends Annotation JavaDoc>> anns = element.getAnnotations();
52         for (Iterator JavaDoc iter = anns.iterator(); iter.hasNext();) {
53             CtAnnotation e = (CtAnnotation) iter.next();
54             if(e.getAnnotationType().getActualClass().equals(thisAnnotation)){
55                 iter.remove();
56                 df.getRemoved().add(e);
57             }
58         }
59         return df;
60     }
61
62 }
63
Popular Tags