From 6d1eaa3ea101631762ec77fe1fb43d8788f0305e Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Mon, 29 Apr 2013 12:11:56 +0400 Subject: [PATCH] visitor for tuple expression --- .../groovy/lang/psi/GroovyElementVisitor.java | 6 +++++- .../statements/expressions/GrTupleExpression.java | 6 ++++-- .../expressions/GrTupleExpressionImpl.java | 15 +++++++++++---- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/GroovyElementVisitor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/GroovyElementVisitor.java index 967fff60b4ca..08854d70c0f3 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/GroovyElementVisitor.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/GroovyElementVisitor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 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. @@ -443,4 +443,8 @@ public abstract class GroovyElementVisitor { public void visitTypeParameter(GrTypeParameter typeParameter) { visitTypeDefinition(typeParameter); } + + public void visitTupleExpression(GrTupleExpression tupleExpression) { + visitExpression(tupleExpression); + } } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrTupleExpression.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrTupleExpression.java index 498e5f9dd058..18523972b939 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrTupleExpression.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/api/statements/expressions/GrTupleExpression.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2013 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. @@ -17,12 +17,14 @@ package org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions; import com.intellij.psi.PsiElement; +import org.jetbrains.annotations.NotNull; /** * @author ilyas */ public interface GrTupleExpression extends GrExpression { - int indexOf(PsiElement element); + int indexOf(@NotNull PsiElement element); + @NotNull GrExpression[] getExpressions(); } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrTupleExpressionImpl.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrTupleExpressionImpl.java index 7696ea3c544f..002b9630c5b9 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrTupleExpressionImpl.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrTupleExpressionImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2013 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. @@ -20,8 +20,9 @@ import com.intellij.lang.ASTNode; import com.intellij.psi.CommonClassNames; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiType; -import com.intellij.util.ArrayUtil; +import com.intellij.util.ArrayUtilRt; import org.jetbrains.annotations.NotNull; +import org.jetbrains.plugins.groovy.lang.psi.GroovyElementVisitor; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrTupleExpression; @@ -44,12 +45,18 @@ public class GrTupleExpressionImpl extends GrExpressionImpl implements GrTupleEx } @Override - public int indexOf(PsiElement element) { + public int indexOf(@NotNull PsiElement element) { GrExpression[] children = getExpressions(); - return ArrayUtil.find(children, element); + return ArrayUtilRt.find(children, element); } + @NotNull public GrExpression[] getExpressions() { return findChildrenByClass(GrExpression.class); } + + @Override + public void accept(GroovyElementVisitor visitor) { + visitor.visitTupleExpression(this); + } }