001    /*
002     * file CMAnnotationProcessor.java
003     *
004     * IBM Confidential
005     * OCO Source Materials
006     * Rational ClearCase
007     * (C) Copyright IBM Corp. 2010.  All rights reserved.
008     *
009     * The source code for this program is not published or otherwise
010     * divested of its trade secrets, irrespective of what has been
011     * deposited with the U.S. Copyright Office.
012     */
013    package com.ibm.rational.wvcm.stpex.annotation.processing;
014    
015    import static java.util.Collections.emptySet;
016    import static java.util.Collections.unmodifiableCollection;
017    
018    import java.util.ArrayList;
019    import java.util.Collection;
020    import java.util.Set;
021    
022    import com.ibm.rational.wvcm.stpex.annotation.RpcEnum;
023    import com.sun.mirror.apt.AnnotationProcessor;
024    import com.sun.mirror.apt.AnnotationProcessorEnvironment;
025    import com.sun.mirror.apt.AnnotationProcessorFactory;
026    import com.sun.mirror.declaration.AnnotationTypeDeclaration;
027    
028    public class CMAnnotationProcessor implements AnnotationProcessorFactory
029    {
030        public Collection<String> supportedAnnotationTypes() {
031            ArrayList<String> list = new ArrayList<String>(1);
032            list.add("com.ibm.rational.wvcm.stpex.annotation.RpcEnum");
033    
034            for (String s : list) {
035                System.out.println("CMAnnotationProcessor supports: " + s);
036            }
037            
038            return unmodifiableCollection(list);
039        }
040    
041        public Collection<String> supportedOptions() {
042            return emptySet();
043        }
044    
045        public AnnotationProcessor 
046        getProcessorFor(
047            Set<AnnotationTypeDeclaration> atds,
048            AnnotationProcessorEnvironment env
049        ) 
050        {
051            return new ListClasses(env);
052        }
053    }