dfe65a996e17ce0ebe5e749b75be698be5649c71
[idea/community.git] / plugins / groovy / groovy-psi / src / org / jetbrains / plugins / groovy / lang / psi / impl / statements / blocks / GrOpenBlockImpl.java
1 /*
2  * Copyright 2000-2014 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.jetbrains.plugins.groovy.lang.psi.impl.statements.blocks;
18
19 import com.intellij.psi.PsiElement;
20 import com.intellij.psi.tree.IElementType;
21 import org.jetbrains.annotations.NotNull;
22 import org.jetbrains.plugins.groovy.lang.psi.GroovyElementVisitor;
23 import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrClassInitializer;
24 import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrOpenBlock;
25 import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMethod;
26
27 /**
28  * @author ilyas
29  */
30 public class GrOpenBlockImpl extends GrBlockImpl implements GrOpenBlock {
31   public GrOpenBlockImpl(@NotNull IElementType type, CharSequence buffer) {
32     super(type, buffer);
33   }
34
35   @Override
36   public void accept(GroovyElementVisitor visitor) {
37     visitor.visitOpenBlock(this);
38   }
39
40   public String toString() {
41     return "Open block";
42   }
43
44   @Override
45   public boolean isTopControlFlowOwner() {
46     final PsiElement parent = getParent();
47     return parent instanceof GrMethod || parent instanceof GrClassInitializer;
48   }
49 }