001package org.jadira.scanner.classpath.visitor;
002
003import java.util.List;
004
005import org.apache.commons.collections15.set.ListOrderedSet;
006import org.jadira.scanner.classpath.types.JAnnotation;
007import org.jadira.scanner.classpath.types.JClass;
008import org.jadira.scanner.classpath.types.JConstructor;
009import org.jadira.scanner.classpath.types.JElement;
010import org.jadira.scanner.classpath.types.JField;
011import org.jadira.scanner.classpath.types.JInnerClass;
012import org.jadira.scanner.classpath.types.JInterface;
013import org.jadira.scanner.classpath.types.JMethod;
014import org.jadira.scanner.classpath.types.JPackage;
015import org.jadira.scanner.classpath.types.JParameter;
016import org.jadira.scanner.classpath.types.JStaticInitializer;
017
018public class CollectingVisitor implements IntrospectionVisitor {
019
020        private ListOrderedSet<JElement> visitedElements = new ListOrderedSet<JElement>();
021        
022        public List<JElement> getVisitedElements() {
023                return visitedElements.asList();
024        }
025        
026        @Override
027        public void visit(JConstructor element) {
028                visitedElements.add(element);
029        }
030
031        @Override
032        public void visit(JMethod element) {
033                visitedElements.add(element);
034        }
035
036        @Override
037        public void visit(JStaticInitializer element) {
038                visitedElements.add(element);
039        }
040
041        @Override
042        public void visit(JPackage element) {
043                visitedElements.add(element);
044        }
045
046        @Override
047        public void visit(JAnnotation<?> element) {
048                visitedElements.add(element);
049        }
050
051        @Override
052        public void visit(JInnerClass element) {
053                visitedElements.add(element);
054        }
055
056        @Override
057        public void visit(JClass element) {
058                visitedElements.add(element);
059        }
060
061        @Override
062        public void visit(JInterface element) {
063                visitedElements.add(element);
064        }
065
066        @Override
067        public void visit(JField element) {
068                visitedElements.add(element);
069        }
070
071        @Override
072        public void visit(JParameter element) {
073                visitedElements.add(element);
074        }
075}