| /* |
| * Copyright 2000-2011 JetBrains s.r.o. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package com.intellij.psi; |
| |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| import com.intellij.pom.java.LanguageLevel; |
| |
| /** |
| * Represents a Java, JSP or class file. |
| */ |
| public interface PsiJavaFile extends PsiImportHolder, PsiClassOwner { |
| /** |
| * Returns the package statement contained in the file. |
| * |
| * @return the package statement, or null if one is missing. |
| */ |
| @Nullable PsiPackageStatement getPackageStatement(); |
| |
| /** |
| * Returns the name of the package to which the file belongs. |
| * |
| * @return the name specified in the package statement, or an empty string for a JSP page or |
| * file which has no package statement. |
| */ |
| @Override |
| @NotNull String getPackageName(); |
| |
| /** |
| * Returns the import list contained in the file. |
| * |
| * @return the import list, or null if this element represents a compiled class. |
| */ |
| @Nullable PsiImportList getImportList(); |
| |
| /** |
| * Returns the list of classes or packages which have been |
| * imported on demand (for example, javax.swing.*) |
| * |
| * @param includeImplicit if true, implicitly imported packages (like java.lang) are included. |
| * @param checkIncludes deprecated, no longer used |
| * @return the list of PsiClass or PsiPackage elements for the imports. |
| */ |
| @NotNull PsiElement[] getOnDemandImports(boolean includeImplicit, @Deprecated boolean checkIncludes); |
| |
| /** |
| * Returns the list of classes which have been imported as |
| * single-class imports. |
| * |
| * @param checkIncludes deprecated, no longer used. |
| * @return the list of PsiClass elements for the import. |
| */ |
| @NotNull PsiClass[] getSingleClassImports(@Deprecated boolean checkIncludes); |
| |
| /** |
| * Returns the list of names of implicitly imported packages |
| * (for example, java.lang). |
| * |
| * @return the list of implicitly imported package names. |
| */ |
| @NotNull String[] getImplicitlyImportedPackages(); |
| |
| /** |
| * returns the list of reference elements for the |
| * implicitly imported packages (for example, java.lang). |
| * |
| * @return the list of implicitly imported package reference elements. |
| */ |
| @NotNull PsiJavaCodeReferenceElement[] getImplicitlyImportedPackageReferences(); |
| |
| /** |
| * Returns the single-class import statement which references |
| * the specified class, or null if there is no such statement. |
| * |
| * @param aClass the class to return the import statement for. |
| * @return the Java code reference under the import statement, or null if there is no such statement. |
| */ |
| @Nullable PsiJavaCodeReferenceElement findImportReferenceTo(PsiClass aClass); |
| |
| @NotNull LanguageLevel getLanguageLevel(); |
| } |