com.intellij.psi.util
Class PsiUtil

java.lang.Object
  extended by com.intellij.psi.util.PsiUtil

public final class PsiUtil
extends java.lang.Object


Field Summary
static int ACCESS_LEVEL_PACKAGE_LOCAL
           
static int ACCESS_LEVEL_PRIVATE
           
static int ACCESS_LEVEL_PROTECTED
           
static int ACCESS_LEVEL_PUBLIC
           
static Key<java.lang.Boolean> VALID_VOID_TYPE_IN_CODE_FRAGMENT
           
 
Method Summary
static void addException(PsiMethod method, PsiClass exceptionClass)
           
static void addException(PsiMethod method, java.lang.String exceptionFQName)
           
static boolean allMethodsHaveSameSignature(PsiMethod[] methods)
           
static boolean canBeOverriden(PsiMethod method)
           
static boolean checkName(PsiElement element, java.lang.String name)
           
static PsiType convertAnonymousToBaseType(PsiType type)
           
static java.util.regex.Pattern convertToRegexp(PsiIdPattern idPattern)
           
static java.util.regex.Pattern convertToRegexp(PsiTypeNamePattern typeNamePattern)
           
static PsiExpression deparenthesizeExpression(PsiExpression rExpression)
           
static boolean equalOnClass(PsiSubstitutor s1, PsiSubstitutor s2, PsiClass aClass)
           
static boolean equalOnEquivalentClasses(PsiSubstitutor s1, PsiClass aClass, PsiSubstitutor s2, PsiClass bClass)
           
static PsiMember findEnclosingConstructorOrInitializer(PsiElement expression)
           
static PsiElement findModifierInList(PsiModifierList modifierList, java.lang.String modifier)
           
static PsiDirectory findRelativeDirectory(java.lang.String uri, PsiElement base)
           
static PsiFile findRelativeFile(java.lang.String uri, PsiElement base)
           
static int getAccessLevel(PsiModifierList modifierList)
           
static java.lang.String getAccessModifier(int accessLevel)
           
static JavaResolveResult getAccessObjectClass(PsiExpression accessObject)
           
static PsiElement getElementInclusiveRange(PsiElement scope, TextRange range)
           
static PsiElement getEnclosingStatement(PsiElement element)
           
static PsiModifierListOwner getEnclosingStaticElement(PsiElement place, PsiClass aClass)
           
static Language getLanguageAtOffset(PsiFile file, int offset)
           
static java.lang.String getName(PsiElement element)
           
static int getRootIndex(PsiElement root)
           
static int getRootsCount(Language lang)
           
static PsiClass getTopLevelClass(PsiElement element)
           
static PsiElement getTopLevelEnclosingCodeBlock(PsiElement element, PsiElement scope)
           
static PsiType getTypeByPsiElement(PsiElement element)
           
static PsiElement getVariableCodeBlock(PsiVariable variable, PsiElement context)
           
static boolean hasErrorElementChild(PsiElement element)
           
static boolean isAccessedForReading(PsiExpression expr)
           
static boolean isAccessedForWriting(PsiExpression expr)
           
static boolean isAccessible(PsiMember member, PsiElement place, PsiClass accessObjectClass)
           
static boolean isAccessibleFromPackage(PsiModifierListOwner element, PsiPackage aPackage)
           
static boolean isApplicable(PsiMethod method, PsiSubstitutor substitutorForMethod, PsiExpressionList argList)
           
static boolean isCompileTimeConstant(PsiField field)
          JLS 15.28
static boolean isConstantExpression(PsiExpression expression)
           
static boolean isInCovariantPosition(PsiExpression expression)
           
static boolean isIncrementDecrementOperation(PsiElement element)
           
static boolean isInnerClass(PsiClass aClass)
          Checks whether given class is inner (as opposed to nested)
static boolean isInProject(PsiElement element)
          Deprecated. Use PsiManager.isInProject(com.intellij.psi.PsiElement)
static boolean isLocalClass(PsiClass psiClass)
           
static boolean isLocalOrAnonymousClass(PsiClass psiClass)
           
static boolean isLoopStatement(PsiElement element)
           
static boolean isOnAssignmentLeftHand(PsiExpression expr)
           
static boolean isRawSubstitutor(PsiTypeParameterListOwner owner, PsiSubstitutor substitutor)
           
static boolean isStatement(PsiElement element)
           
static boolean isUnderPsiRoot(PsiFile root, PsiElement element)
           
static boolean isVariableNameUnique(java.lang.String name, PsiElement place)
           
static PsiElement[] mapElements(ResolveResult[] candidates)
           
static void removeException(PsiMethod method, java.lang.String exceptionClass)
           
static PsiClass resolveClassInType(PsiType type)
           
static PsiClassType.ClassResolveResult resolveGenericsClassInType(PsiType type)
           
static java.util.Iterator<PsiTypeParameter> typeParametersIterator(PsiTypeParameterListOwner owner)
          Returns iterator of type parameters visible in owner.
static void updatePackageStatement(PsiFile file)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ACCESS_LEVEL_PUBLIC

public static final int ACCESS_LEVEL_PUBLIC
See Also:
Constant Field Values

ACCESS_LEVEL_PROTECTED

public static final int ACCESS_LEVEL_PROTECTED
See Also:
Constant Field Values

ACCESS_LEVEL_PACKAGE_LOCAL

public static final int ACCESS_LEVEL_PACKAGE_LOCAL
See Also:
Constant Field Values

ACCESS_LEVEL_PRIVATE

public static final int ACCESS_LEVEL_PRIVATE
See Also:
Constant Field Values

VALID_VOID_TYPE_IN_CODE_FRAGMENT

public static final Key<java.lang.Boolean> VALID_VOID_TYPE_IN_CODE_FRAGMENT
Method Detail

isOnAssignmentLeftHand

public static boolean isOnAssignmentLeftHand(PsiExpression expr)

isAccessibleFromPackage

public static boolean isAccessibleFromPackage(PsiModifierListOwner element,
                                              PsiPackage aPackage)

isAccessedForWriting

public static boolean isAccessedForWriting(PsiExpression expr)

isAccessedForReading

public static boolean isAccessedForReading(PsiExpression expr)

isAccessible

public static boolean isAccessible(PsiMember member,
                                   PsiElement place,
                                   PsiClass accessObjectClass)

getAccessObjectClass

public static JavaResolveResult getAccessObjectClass(PsiExpression accessObject)

isConstantExpression

public static boolean isConstantExpression(PsiExpression expression)

addException

public static void addException(PsiMethod method,
                                java.lang.String exceptionFQName)
                         throws IncorrectOperationException
Throws:
IncorrectOperationException

addException

public static void addException(PsiMethod method,
                                PsiClass exceptionClass)
                         throws IncorrectOperationException
Throws:
IncorrectOperationException

removeException

public static void removeException(PsiMethod method,
                                   java.lang.String exceptionClass)
                            throws IncorrectOperationException
Throws:
IncorrectOperationException

isVariableNameUnique

public static boolean isVariableNameUnique(java.lang.String name,
                                           PsiElement place)

isInProject

public static boolean isInProject(PsiElement element)
Deprecated. Use PsiManager.isInProject(com.intellij.psi.PsiElement)


updatePackageStatement

public static void updatePackageStatement(PsiFile file)
                                   throws IncorrectOperationException
Throws:
IncorrectOperationException

getTopLevelEnclosingCodeBlock

public static PsiElement getTopLevelEnclosingCodeBlock(PsiElement element,
                                                       PsiElement scope)
Returns:
enclosing outermost (method or class initializer) body but not higher than scope

isLocalOrAnonymousClass

public static boolean isLocalOrAnonymousClass(PsiClass psiClass)

isLocalClass

public static boolean isLocalClass(PsiClass psiClass)

getVariableCodeBlock

@Nullable
public static PsiElement getVariableCodeBlock(PsiVariable variable,
                                                       PsiElement context)
Returns:
codeblock topmost codeblock where variable makes sense

isIncrementDecrementOperation

public static boolean isIncrementDecrementOperation(PsiElement element)

getAccessLevel

public static int getAccessLevel(PsiModifierList modifierList)

getAccessModifier

@Nullable
public static java.lang.String getAccessModifier(int accessLevel)

findRelativeFile

@Nullable
public static PsiFile findRelativeFile(java.lang.String uri,
                                                PsiElement base)

findRelativeDirectory

@Nullable
public static PsiDirectory findRelativeDirectory(java.lang.String uri,
                                                          PsiElement base)

isStatement

public static boolean isStatement(PsiElement element)
Returns:
true if element specified is statement or expression statement. see JLS 14.5-14.8

getEnclosingStatement

@Nullable
public static PsiElement getEnclosingStatement(PsiElement element)

getElementInclusiveRange

@Nullable
public static PsiElement getElementInclusiveRange(PsiElement scope,
                                                           TextRange range)

convertToRegexp

public static java.util.regex.Pattern convertToRegexp(PsiIdPattern idPattern)

convertToRegexp

public static java.util.regex.Pattern convertToRegexp(PsiTypeNamePattern typeNamePattern)

resolveClassInType

@Nullable
public static PsiClass resolveClassInType(PsiType type)

resolveGenericsClassInType

public static PsiClassType.ClassResolveResult resolveGenericsClassInType(PsiType type)

convertAnonymousToBaseType

public static PsiType convertAnonymousToBaseType(PsiType type)

getName

public static java.lang.String getName(PsiElement element)
Returns:
name for element using element structure info TODO: Extend functionality for XML/JSP

isApplicable

public static boolean isApplicable(PsiMethod method,
                                   PsiSubstitutor substitutorForMethod,
                                   PsiExpressionList argList)

equalOnClass

public static boolean equalOnClass(PsiSubstitutor s1,
                                   PsiSubstitutor s2,
                                   PsiClass aClass)

equalOnEquivalentClasses

public static boolean equalOnEquivalentClasses(PsiSubstitutor s1,
                                               PsiClass aClass,
                                               PsiSubstitutor s2,
                                               PsiClass bClass)

isCompileTimeConstant

public static boolean isCompileTimeConstant(PsiField field)
JLS 15.28


allMethodsHaveSameSignature

public static boolean allMethodsHaveSameSignature(PsiMethod[] methods)

deparenthesizeExpression

public static PsiExpression deparenthesizeExpression(PsiExpression rExpression)

isInnerClass

public static boolean isInnerClass(PsiClass aClass)
Checks whether given class is inner (as opposed to nested)

Parameters:
aClass -

findModifierInList

@Nullable
public static PsiElement findModifierInList(PsiModifierList modifierList,
                                                     java.lang.String modifier)

isLoopStatement

public static boolean isLoopStatement(PsiElement element)

getTopLevelClass

@Nullable
public static PsiClass getTopLevelClass(PsiElement element)

getEnclosingStaticElement

@Nullable
public static PsiModifierListOwner getEnclosingStaticElement(PsiElement place,
                                                                      PsiClass aClass)
Returns:
element with static modifier enclosing place and enclosed by aClass (if not null)

getTypeByPsiElement

@Nullable
public static PsiType getTypeByPsiElement(PsiElement element)

getRootIndex

public static int getRootIndex(PsiElement root)

getRootsCount

public static int getRootsCount(Language lang)

typeParametersIterator

public static java.util.Iterator<PsiTypeParameter> typeParametersIterator(PsiTypeParameterListOwner owner)
Returns iterator of type parameters visible in owner. Type parameters are iterated in inner-to-outer, right-to-left order.

Parameters:
owner -

canBeOverriden

public static boolean canBeOverriden(PsiMethod method)

mapElements

public static PsiElement[] mapElements(ResolveResult[] candidates)

hasErrorElementChild

public static boolean hasErrorElementChild(PsiElement element)

findEnclosingConstructorOrInitializer

@Nullable
public static PsiMember findEnclosingConstructorOrInitializer(PsiElement expression)

checkName

public static boolean checkName(PsiElement element,
                                java.lang.String name)

isInCovariantPosition

public static boolean isInCovariantPosition(PsiExpression expression)

isRawSubstitutor

public static boolean isRawSubstitutor(PsiTypeParameterListOwner owner,
                                       PsiSubstitutor substitutor)

isUnderPsiRoot

public static boolean isUnderPsiRoot(PsiFile root,
                                     PsiElement element)

getLanguageAtOffset

@NotNull
public static Language getLanguageAtOffset(PsiFile file,
                                                   int offset)