diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassFinderImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassFinderImpl.java index 9a5b7076c9a..bf099ac34c8 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassFinderImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassFinderImpl.java @@ -22,6 +22,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.resolve.java.structure.JavaClass; import org.jetbrains.jet.lang.resolve.java.structure.JavaPackage; +import org.jetbrains.jet.lang.resolve.java.structure.JavaPackageImpl; import org.jetbrains.jet.lang.resolve.name.FqName; import javax.inject.Inject; @@ -45,6 +46,6 @@ public class JavaClassFinderImpl implements JavaClassFinder { @Override public JavaPackage findPackage(@NotNull FqName fqName) { PsiPackage psiPackage = psiClassFinder.findPsiPackage(fqName); - return psiPackage == null ? null : new JavaPackage(psiPackage); + return psiPackage == null ? null : new JavaPackageImpl(psiPackage); } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaElementCollectionFromPsiArrayUtil.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaElementCollectionFromPsiArrayUtil.java index 04a061fa605..807403f2c2e 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaElementCollectionFromPsiArrayUtil.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaElementCollectionFromPsiArrayUtil.java @@ -44,7 +44,7 @@ public class JavaElementCollectionFromPsiArrayUtil { if (packages.length == 0) return Collections.emptyList(); List result = new ArrayList(packages.length); for (PsiPackage psiPackage : packages) { - result.add(new JavaPackage(psiPackage)); + result.add(new JavaPackageImpl(psiPackage)); } return result; } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackage.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackage.java index e522797078e..f60caf83aba 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackage.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackage.java @@ -22,32 +22,17 @@ import org.jetbrains.jet.lang.resolve.name.FqName; import java.util.Collection; -import static org.jetbrains.jet.lang.resolve.java.structure.JavaElementCollectionFromPsiArrayUtil.classes; -import static org.jetbrains.jet.lang.resolve.java.structure.JavaElementCollectionFromPsiArrayUtil.packages; - -public class JavaPackage extends JavaElementImpl { - public JavaPackage(@NotNull PsiPackage psiPackage) { - super(psiPackage); - } - +public interface JavaPackage extends JavaElement { @NotNull @Override - public PsiPackage getPsi() { - return (PsiPackage) super.getPsi(); - } + PsiPackage getPsi(); @NotNull - public Collection getClasses() { - return classes(getPsi().getClasses()); - } + Collection getClasses(); @NotNull - public Collection getSubPackages() { - return packages(getPsi().getSubPackages()); - } + Collection getSubPackages(); @NotNull - public FqName getFqName() { - return new FqName(getPsi().getQualifiedName()); - } + FqName getFqName(); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackageImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackageImpl.java new file mode 100644 index 00000000000..b11165969f9 --- /dev/null +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackageImpl.java @@ -0,0 +1,56 @@ +/* + * Copyright 2010-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. + * 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.resolve.java.structure; + +import com.intellij.psi.PsiPackage; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.resolve.name.FqName; + +import java.util.Collection; + +import static org.jetbrains.jet.lang.resolve.java.structure.JavaElementCollectionFromPsiArrayUtil.classes; +import static org.jetbrains.jet.lang.resolve.java.structure.JavaElementCollectionFromPsiArrayUtil.packages; + +public class JavaPackageImpl extends JavaElementImpl implements JavaPackage { + public JavaPackageImpl(@NotNull PsiPackage psiPackage) { + super(psiPackage); + } + + @NotNull + @Override + public PsiPackage getPsi() { + return (PsiPackage) super.getPsi(); + } + + @Override + @NotNull + public Collection getClasses() { + return classes(getPsi().getClasses()); + } + + @Override + @NotNull + public Collection getSubPackages() { + return packages(getPsi().getSubPackages()); + } + + @Override + @NotNull + public FqName getFqName() { + return new FqName(getPsi().getQualifiedName()); + } +}