/*
* Copyright 2012 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.jboss.forge.roaster.model.ast;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jdt.core.dom.ASTVisitor;
import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
import org.eclipse.jdt.core.dom.AnnotationTypeDeclaration;
import org.eclipse.jdt.core.dom.EnumDeclaration;
import org.eclipse.jdt.core.dom.PackageDeclaration;
import org.eclipse.jdt.core.dom.TypeDeclaration;
/**
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
public class TypeDeclarationFinderVisitor extends ASTVisitor
{
private final List<AbstractTypeDeclaration> declarations = new ArrayList<AbstractTypeDeclaration>();
private PackageDeclaration packageDeclaration;
@Override
public boolean visit(final TypeDeclaration node)
{
declarations.add(node);
return true;
}
@Override
public boolean visit(final AnnotationTypeDeclaration node)
{
declarations.add(node);
return super.visit(node);
}
@Override
public boolean visit(final EnumDeclaration node)
{
declarations.add(node);
return super.visit(node);
}
@Override
public boolean visit(PackageDeclaration node)
{
packageDeclaration = node;
return super.visit(node);
}
public PackageDeclaration getPackageDeclaration()
{
return packageDeclaration;
}
public List<AbstractTypeDeclaration> getTypeDeclarations()
{
return declarations;
}
}