com.intellij.psi.util
Class PsiUtil
java.lang.Object
com.intellij.psi.util.PsiUtil
public final class PsiUtil
- extends java.lang.Object
|
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 |
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
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)