package org.springframework.roo.classpath.antlrjavaparser;
import java.util.List;
import org.springframework.roo.classpath.PhysicalTypeCategory;
import org.springframework.roo.model.JavaPackage;
import org.springframework.roo.model.JavaType;
import com.github.antlrjavaparser.api.ImportDeclaration;
import com.github.antlrjavaparser.api.body.TypeDeclaration;
/**
* An interface that enables Java Parser types to query relevant information
* about a compilation unit.
*
* @author Ben Alex
* @author James Tyrrell
* @since 1.0
*/
public interface CompilationUnitServices {
JavaPackage getCompilationUnitPackage();
/**
* @return the enclosing type (never null)
*/
JavaType getEnclosingTypeName();
List<ImportDeclaration> getImports();
/**
* @return the names of each inner type and the enclosing type (never null
* but may be empty)
*/
List<TypeDeclaration> getInnerTypes();
PhysicalTypeCategory getPhysicalTypeCategory();
}