KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > spoon > jdiet > ClassProcessor


1 package spoon.jdiet;
2
3 import java.io.Serializable JavaDoc;
4 import java.util.Iterator JavaDoc;
5 import java.util.Set JavaDoc;
6
7 import spoon.processing.AbstractProcessor;
8 import spoon.reflect.declaration.CtClass;
9 import spoon.reflect.factory.TypeFactory;
10 import spoon.reflect.reference.CtTypeReference;
11
12 /**
13  * This processor processes types extended and implemented by a class.
14  *
15  * @author Lionel Seinturier <Lionel.Seinturier@lifl.fr>
16  */

17 public class ClassProcessor extends AbstractProcessor<CtClass> {
18     
19     public ClassProcessor() {
20     }
21     
22     public void process(CtClass cl) {
23         
24         TypeFactory tf = getFactory().Type();
25         
26         /*
27          * Process the implemented interfaces.
28          */

29         Set JavaDoc<CtTypeReference> superitfs = cl.getSuperinterfaces();
30         for (Iterator JavaDoc<CtTypeReference> iter = superitfs.iterator(); iter.hasNext();) {
31             CtTypeReference superitf = iter.next();
32             
33             // Remove Serializable
34
if( superitf.isSubtypeOf(tf.createReference(Serializable JavaDoc.class)) ) {
35                 
36                 /*
37                  * Do not remove directly superitf from superitfs as this leads
38                  * to a ConcurrentModificationException.
39                  */

40                 iter.remove();
41             }
42         }
43     }
44 }
45
Popular Tags