org.jetbrains.jet.lang.psi
Class JetPsiUtil

java.lang.Object
  extended by org.jetbrains.jet.lang.psi.JetPsiUtil

public class JetPsiUtil
extends java.lang.Object


Nested Class Summary
static interface JetPsiUtil.JetExpressionWrapper
           
 
Field Summary
static com.google.common.base.Predicate<JetElement> ANY_JET_ELEMENT
           
 
Method Summary
static boolean areParenthesesNecessary(JetExpression innerExpression, JetExpression currentInner, JetExpression parentExpression)
           
static boolean areParenthesesUseless(JetParenthesizedExpression expression)
           
static com.intellij.psi.PsiElement ascendIfPropertyAccessor(com.intellij.psi.PsiElement element)
           
static boolean checkVariableDeclarationInBlock(JetBlockExpression block, java.lang.String varName)
           
static boolean checkWhenExpressionHasSingleElse(JetWhenExpression whenExpression)
           
static
<T extends com.intellij.psi.PsiElement>
void
deleteChildlessElement(com.intellij.psi.PsiElement element, java.lang.Class<T> childClass)
           
static void deleteClass(JetClassOrObject clazz)
           
static void deleteElementWithDelimiters(com.intellij.psi.PsiElement element)
           
static JetExpression deparenthesize(JetExpression expression)
           
static JetExpression deparenthesize(JetExpression expression, boolean deparenthesizeBinaryExpressionWithTypeRHS)
           
static JetExpression deparenthesizeWithResolutionStrategy(JetExpression expression, boolean deparenthesizeBinaryExpressionWithTypeRHS, com.google.common.base.Function<JetTypeReference,java.lang.Void> typeResolutionStrategy)
          Deprecated. 
static com.intellij.psi.PsiElement findChildByType(com.intellij.psi.PsiElement element, com.intellij.psi.tree.IElementType type)
           
static java.util.Set<JetElement> findRootExpressions(java.util.Collection<JetElement> unreachableElements)
           
static Name getAliasName(JetImportDirective importDirective)
           
static JetExpression getBaseExpressionIfLabeledExpression(JetPrefixExpression expression)
           
static JetExpression getCalleeExpressionIfAny(JetExpression expression)
           
static JetClass getClassIfParameterIsProperty(JetParameter jetParameter)
           
static Name getConventionName(JetSimpleNameExpression simpleNameExpression)
           
static
<T extends com.intellij.psi.PsiElement>
T
getDirectParentOfTypeForBlock(JetBlockExpression block, java.lang.Class<T> aClass)
           
static java.lang.String getElementTextWithContext(JetElement element)
           
static JetElement getEnclosingElementForLocalDeclaration(JetDeclaration declaration)
           
static FqName getFQName(JetFile file)
           
static FqName getFQName(JetNamedDeclaration namedDeclaration)
           
static ImportPath getImportPath(JetImportDirective importDirective)
           
static
<T extends com.intellij.psi.PsiElement>
T
getLastChildByType(com.intellij.psi.PsiElement root, java.lang.Class<? extends T>... elementTypes)
           
static JetSimpleNameExpression getLastReference(JetExpression importedReference)
           
static JetElement getLastStatementInABlock(JetBlockExpression blockExpression)
           
static java.lang.String getNullableText(com.intellij.psi.PsiElement element)
           
static JetToken getOperationToken(JetOperationExpression expression)
           
static JetClassOrObject getOutermostClassOrObject(JetClassOrObject classOrObject)
           
static JetElement getOutermostDescendantElement(com.intellij.psi.PsiElement root, boolean first, com.google.common.base.Predicate<JetElement> predicate)
           
static JetElement getOutermostLastBlockElement(JetElement element, com.google.common.base.Predicate<JetElement> checkElement)
           
static com.intellij.psi.PsiElement getOutermostParent(com.intellij.psi.PsiElement element, com.intellij.psi.PsiElement upperBound, boolean strict)
           
static java.lang.String getPackageName(JetElement element)
           
static com.intellij.psi.NavigatablePsiElement getPackageReference(JetFile file, int partIndex)
           
static JetScript getScript(JetDeclaration namedDeclaration)
           
static Name getShortName(JetAnnotationEntry annotation)
           
static java.lang.String getText(com.intellij.psi.PsiElement element)
           
static com.intellij.psi.PsiElement getTopmostParentOfTypes(com.intellij.psi.PsiElement element, java.lang.Class<? extends com.intellij.psi.PsiElement>... parentTypes)
           
static FqNameUnsafe getUnsafeFQName(JetNamedDeclaration namedDeclaration)
           
static boolean isAbstract(JetDeclarationWithBody declaration)
           
static boolean isAssignment(com.intellij.psi.PsiElement element)
           
static boolean isBackingFieldReference(JetElement element)
           
static boolean isBackingFieldReference(JetSimpleNameExpression expression)
           
static boolean isDeprecated(JetModifierListOwner owner)
           
static boolean isImplicitlyUsed(JetElement element)
           
static boolean isInComment(com.intellij.psi.PsiElement element)
          CommentUtilCore.isComment fails if element inside comment.
static boolean isLabeledExpression(JetPrefixExpression expression)
           
static boolean isLabelIdentifierExpression(com.intellij.psi.PsiElement element)
           
static boolean isLHSOfDot(JetExpression expression)
           
static boolean isLocal(JetDeclaration declaration)
           
static boolean isNullConstant(JetExpression expression)
           
static boolean isOrdinaryAssignment(com.intellij.psi.PsiElement element)
           
static boolean isSafeCall(Call call)
           
static boolean isScriptDeclaration(JetDeclaration namedDeclaration)
           
static boolean isSelectorInQualified(JetSimpleNameExpression nameExpression)
           
static boolean isTrait(JetClassOrObject classOrObject)
           
static boolean isVariableNotParameterDeclaration(JetDeclaration declaration)
           
static boolean isVoidType(JetTypeReference typeReference)
           
static JetModifierList replaceModifierList(JetModifierListOwner owner, JetModifierList modifierList)
           
static JetExpression safeDeparenthesize(JetExpression expression, boolean deparenthesizeBinaryExpressionWithTypeRHS)
           
static Name safeName(java.lang.String name)
           
static com.intellij.psi.PsiElement skipSiblingsBackwardByPredicate(com.intellij.psi.PsiElement element, com.google.common.base.Predicate<com.intellij.psi.PsiElement> elementsToSkip)
           
static com.intellij.psi.PsiElement skipSiblingsForwardByPredicate(com.intellij.psi.PsiElement element, com.google.common.base.Predicate<com.intellij.psi.PsiElement> elementsToSkip)
           
static com.intellij.psi.PsiElement skipTrailingWhitespacesAndComments(com.intellij.psi.PsiElement element)
           
static FqName toQualifiedName(JetUserType userType)
           
static java.lang.String unquoteIdentifier(java.lang.String quoted)
           
static java.lang.String unquoteIdentifierOrFieldReference(java.lang.String quoted)
           
static
<D> void
visitChildren(JetElement element, JetTreeVisitor<D> visitor, D data)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ANY_JET_ELEMENT

public static final com.google.common.base.Predicate<JetElement> ANY_JET_ELEMENT
Method Detail

visitChildren

public static <D> void visitChildren(@NotNull
                                     JetElement element,
                                     @NotNull
                                     JetTreeVisitor<D> visitor,
                                     D data)

safeDeparenthesize

@NotNull
public static JetExpression safeDeparenthesize(@NotNull
                                                       JetExpression expression,
                                                       boolean deparenthesizeBinaryExpressionWithTypeRHS)

deparenthesize

@Nullable
public static JetExpression deparenthesize(@Nullable
                                                    JetExpression expression)

deparenthesize

@Nullable
public static JetExpression deparenthesize(@Nullable
                                                    JetExpression expression,
                                                    boolean deparenthesizeBinaryExpressionWithTypeRHS)

deparenthesizeWithResolutionStrategy

@Nullable
@Deprecated
public static JetExpression deparenthesizeWithResolutionStrategy(@Nullable
                                                                                     JetExpression expression,
                                                                                     boolean deparenthesizeBinaryExpressionWithTypeRHS,
                                                                                     @Nullable
                                                                                     com.google.common.base.Function<JetTypeReference,java.lang.Void> typeResolutionStrategy)
Deprecated. 


getBaseExpressionIfLabeledExpression

@Nullable
public static JetExpression getBaseExpressionIfLabeledExpression(@NotNull
                                                                          JetPrefixExpression expression)

isLabeledExpression

public static boolean isLabeledExpression(JetPrefixExpression expression)

safeName

@NotNull
public static Name safeName(@Nullable
                                    java.lang.String name)

findRootExpressions

@NotNull
public static java.util.Set<JetElement> findRootExpressions(@NotNull
                                                                    java.util.Collection<JetElement> unreachableElements)

unquoteIdentifier

@NotNull
public static java.lang.String unquoteIdentifier(@NotNull
                                                         java.lang.String quoted)

unquoteIdentifierOrFieldReference

@NotNull
public static java.lang.String unquoteIdentifierOrFieldReference(@NotNull
                                                                         java.lang.String quoted)

getFQName

@NotNull
public static FqName getFQName(@NotNull
                                       JetFile file)

getUnsafeFQName

@Nullable
public static FqNameUnsafe getUnsafeFQName(@NotNull
                                                    JetNamedDeclaration namedDeclaration)

getFQName

@Nullable
public static FqName getFQName(@NotNull
                                        JetNamedDeclaration namedDeclaration)

toQualifiedName

@Nullable
public static FqName toQualifiedName(@NotNull
                                              JetUserType userType)
Returns:
null iff the tye has syntactic errors

getShortName

@Nullable
public static Name getShortName(@NotNull
                                         JetAnnotationEntry annotation)

isDeprecated

public static boolean isDeprecated(@NotNull
                                   JetModifierListOwner owner)

getImportPath

@Nullable
public static ImportPath getImportPath(@NotNull
                                                JetImportDirective importDirective)

getDirectParentOfTypeForBlock

@Nullable
public static <T extends com.intellij.psi.PsiElement> T getDirectParentOfTypeForBlock(@NotNull
                                                                                               JetBlockExpression block,
                                                                                               @NotNull
                                                                                               java.lang.Class<T> aClass)

isImplicitlyUsed

public static boolean isImplicitlyUsed(@NotNull
                                       JetElement element)

deleteClass

public static void deleteClass(@NotNull
                               JetClassOrObject clazz)

getAliasName

@Nullable
public static Name getAliasName(@NotNull
                                         JetImportDirective importDirective)

getLastReference

@Nullable
public static JetSimpleNameExpression getLastReference(@NotNull
                                                                JetExpression importedReference)

isSelectorInQualified

public static boolean isSelectorInQualified(@NotNull
                                            JetSimpleNameExpression nameExpression)

isLHSOfDot

public static boolean isLHSOfDot(@NotNull
                                 JetExpression expression)

isVoidType

public static boolean isVoidType(@Nullable
                                 JetTypeReference typeReference)

isSafeCall

public static boolean isSafeCall(@NotNull
                                 Call call)

isScriptDeclaration

public static boolean isScriptDeclaration(@NotNull
                                          JetDeclaration namedDeclaration)

getScript

@Nullable
public static JetScript getScript(@NotNull
                                           JetDeclaration namedDeclaration)

isVariableNotParameterDeclaration

public static boolean isVariableNotParameterDeclaration(@NotNull
                                                        JetDeclaration declaration)

getConventionName

@Nullable
public static Name getConventionName(@NotNull
                                              JetSimpleNameExpression simpleNameExpression)

getTopmostParentOfTypes

@Nullable
public static com.intellij.psi.PsiElement getTopmostParentOfTypes(@Nullable
                                                                           com.intellij.psi.PsiElement element,
                                                                           @NotNull
                                                                           java.lang.Class<? extends com.intellij.psi.PsiElement>... parentTypes)

isNullConstant

public static boolean isNullConstant(@NotNull
                                     JetExpression expression)

isAbstract

public static boolean isAbstract(@NotNull
                                 JetDeclarationWithBody declaration)

isBackingFieldReference

public static boolean isBackingFieldReference(@NotNull
                                              JetSimpleNameExpression expression)

isBackingFieldReference

public static boolean isBackingFieldReference(@Nullable
                                              JetElement element)

getLastStatementInABlock

@Nullable
public static JetElement getLastStatementInABlock(@Nullable
                                                           JetBlockExpression blockExpression)

isTrait

public static boolean isTrait(@NotNull
                              JetClassOrObject classOrObject)

getOutermostClassOrObject

@Nullable
public static JetClassOrObject getOutermostClassOrObject(@NotNull
                                                                  JetClassOrObject classOrObject)

getClassIfParameterIsProperty

@Nullable
public static JetClass getClassIfParameterIsProperty(@NotNull
                                                              JetParameter jetParameter)

areParenthesesUseless

public static boolean areParenthesesUseless(@NotNull
                                            JetParenthesizedExpression expression)

areParenthesesNecessary

public static boolean areParenthesesNecessary(@NotNull
                                              JetExpression innerExpression,
                                              @NotNull
                                              JetExpression currentInner,
                                              @NotNull
                                              JetExpression parentExpression)

isAssignment

public static boolean isAssignment(@NotNull
                                   com.intellij.psi.PsiElement element)

isOrdinaryAssignment

public static boolean isOrdinaryAssignment(@NotNull
                                           com.intellij.psi.PsiElement element)

getOutermostLastBlockElement

@Nullable
public static JetElement getOutermostLastBlockElement(@Nullable
                                                               JetElement element,
                                                               @NotNull
                                                               com.google.common.base.Predicate<JetElement> checkElement)

checkVariableDeclarationInBlock

public static boolean checkVariableDeclarationInBlock(@NotNull
                                                      JetBlockExpression block,
                                                      @NotNull
                                                      java.lang.String varName)

checkWhenExpressionHasSingleElse

public static boolean checkWhenExpressionHasSingleElse(@NotNull
                                                       JetWhenExpression whenExpression)

skipTrailingWhitespacesAndComments

@Nullable
public static com.intellij.psi.PsiElement skipTrailingWhitespacesAndComments(@Nullable
                                                                                      com.intellij.psi.PsiElement element)

getText

@NotNull
public static java.lang.String getText(@Nullable
                                               com.intellij.psi.PsiElement element)

getNullableText

@Nullable
public static java.lang.String getNullableText(@Nullable
                                                        com.intellij.psi.PsiElement element)

isInComment

public static boolean isInComment(com.intellij.psi.PsiElement element)
CommentUtilCore.isComment fails if element inside comment. Also, we can not add KDocTokens to COMMENTS TokenSet, because it is used in JetParserDefinition.getCommentTokens(), and therefor all COMMENTS tokens will be ignored by PsiBuilder.

Parameters:
element -
Returns:

getOutermostParent

@Nullable
public static com.intellij.psi.PsiElement getOutermostParent(@NotNull
                                                                      com.intellij.psi.PsiElement element,
                                                                      @NotNull
                                                                      com.intellij.psi.PsiElement upperBound,
                                                                      boolean strict)

getLastChildByType

public static <T extends com.intellij.psi.PsiElement> T getLastChildByType(@NotNull
                                                                           com.intellij.psi.PsiElement root,
                                                                           @NotNull
                                                                           java.lang.Class<? extends T>... elementTypes)

getOutermostDescendantElement

@Nullable
public static JetElement getOutermostDescendantElement(@Nullable
                                                                com.intellij.psi.PsiElement root,
                                                                boolean first,
                                                                @NotNull
                                                                com.google.common.base.Predicate<JetElement> predicate)

findChildByType

@Nullable
public static com.intellij.psi.PsiElement findChildByType(@NotNull
                                                                   com.intellij.psi.PsiElement element,
                                                                   @NotNull
                                                                   com.intellij.psi.tree.IElementType type)

getCalleeExpressionIfAny

@Nullable
public static JetExpression getCalleeExpressionIfAny(@NotNull
                                                              JetExpression expression)

skipSiblingsBackwardByPredicate

@Nullable
public static com.intellij.psi.PsiElement skipSiblingsBackwardByPredicate(@Nullable
                                                                                   com.intellij.psi.PsiElement element,
                                                                                   com.google.common.base.Predicate<com.intellij.psi.PsiElement> elementsToSkip)

skipSiblingsForwardByPredicate

@Nullable
public static com.intellij.psi.PsiElement skipSiblingsForwardByPredicate(@Nullable
                                                                                  com.intellij.psi.PsiElement element,
                                                                                  com.google.common.base.Predicate<com.intellij.psi.PsiElement> elementsToSkip)

getPackageReference

public static com.intellij.psi.NavigatablePsiElement getPackageReference(@NotNull
                                                                         JetFile file,
                                                                         int partIndex)

deleteElementWithDelimiters

public static void deleteElementWithDelimiters(@NotNull
                                               com.intellij.psi.PsiElement element)

deleteChildlessElement

public static <T extends com.intellij.psi.PsiElement> void deleteChildlessElement(com.intellij.psi.PsiElement element,
                                                                                  java.lang.Class<T> childClass)

ascendIfPropertyAccessor

public static com.intellij.psi.PsiElement ascendIfPropertyAccessor(com.intellij.psi.PsiElement element)

getElementTextWithContext

@NotNull
public static java.lang.String getElementTextWithContext(@NotNull
                                                                 JetElement element)

replaceModifierList

@Nullable
public static JetModifierList replaceModifierList(@NotNull
                                                           JetModifierListOwner owner,
                                                           @Nullable
                                                           JetModifierList modifierList)

getPackageName

@Nullable
public static java.lang.String getPackageName(@NotNull
                                                       JetElement element)

getEnclosingElementForLocalDeclaration

@Nullable
public static JetElement getEnclosingElementForLocalDeclaration(@Nullable
                                                                         JetDeclaration declaration)

isLocal

public static boolean isLocal(@NotNull
                              JetDeclaration declaration)

getOperationToken

@Nullable
public static JetToken getOperationToken(@NotNull
                                                  JetOperationExpression expression)

isLabelIdentifierExpression

public static boolean isLabelIdentifierExpression(com.intellij.psi.PsiElement element)