Refactoring - new interface for common method

This commit is contained in:
Nikolay Krasko
2012-05-11 15:02:41 +04:00
parent f67aebe4be
commit 9cb7cb56f1
5 changed files with 40 additions and 6 deletions
@@ -30,11 +30,13 @@ import java.util.List;
/** /**
* @author max * @author max
*/ */
public class JetClassBody extends JetElement { public class JetClassBody extends JetElement implements JetDeclarationContainer {
public JetClassBody(@NotNull ASTNode node) { public JetClassBody(@NotNull ASTNode node) {
super(node); super(node);
} }
@Override
@NotNull
public List<JetDeclaration> getDeclarations() { public List<JetDeclaration> getDeclarations() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JetDeclaration.class); return PsiTreeUtil.getChildrenOfTypeAsList(this, JetDeclaration.class);
} }
@@ -26,9 +26,7 @@ import java.util.List;
/** /**
* @author max * @author max
*/ */
public interface JetClassOrObject extends PsiElement, PsiNameIdentifierOwner { public interface JetClassOrObject extends PsiElement, PsiNameIdentifierOwner, JetDeclarationContainer {
List<JetDeclaration> getDeclarations();
@Nullable @Nullable
JetDelegationSpecifierList getDelegationSpecifierList(); JetDelegationSpecifierList getDelegationSpecifierList();
@@ -0,0 +1,29 @@
/*
* Copyright 2010-2012 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.lang.psi;
import org.jetbrains.annotations.NotNull;
import java.util.List;
/**
* @author Nikolay Krasko
*/
public interface JetDeclarationContainer {
@NotNull
List<JetDeclaration> getDeclarations();
}
@@ -33,11 +33,12 @@ import org.jetbrains.jet.plugin.JetLanguage;
import java.util.List; import java.util.List;
public class JetFile extends PsiFileBase { public class JetFile extends PsiFileBase implements JetDeclarationContainer {
public JetFile(FileViewProvider viewProvider) { public JetFile(FileViewProvider viewProvider) {
super(viewProvider, JetLanguage.INSTANCE); super(viewProvider, JetLanguage.INSTANCE);
} }
@Override
@NotNull @NotNull
public FileType getFileType() { public FileType getFileType() {
return JetFileType.INSTANCE; return JetFileType.INSTANCE;
@@ -48,6 +49,8 @@ public class JetFile extends PsiFileBase {
return "JetFile: " + getName(); return "JetFile: " + getName();
} }
@NotNull
@Override
public List<JetDeclaration> getDeclarations() { public List<JetDeclaration> getDeclarations() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JetDeclaration.class); return PsiTreeUtil.getChildrenOfTypeAsList(this, JetDeclaration.class);
} }
@@ -25,11 +25,13 @@ import java.util.List;
/** /**
* @author max * @author max
*/ */
public class JetNamespaceBody extends JetElement { public class JetNamespaceBody extends JetElement implements JetDeclarationContainer {
public JetNamespaceBody(@NotNull ASTNode node) { public JetNamespaceBody(@NotNull ASTNode node) {
super(node); super(node);
} }
@NotNull
@Override
public List<JetDeclaration> getDeclarations() { public List<JetDeclaration> getDeclarations() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JetDeclaration.class); return PsiTreeUtil.getChildrenOfTypeAsList(this, JetDeclaration.class);
} }