KotlinFileStubImpl: J2K

This commit is contained in:
Dmitry Jemerov
2015-08-05 15:03:30 +02:00
parent 2f724e6a99
commit ae6acd1f85
@@ -14,69 +14,50 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.psi.stubs.impl; package org.jetbrains.kotlin.psi.stubs.impl
import com.google.common.collect.Lists; import com.google.common.collect.Lists
import com.intellij.psi.PsiClass; import com.intellij.psi.PsiClass
import com.intellij.psi.impl.java.stubs.PsiClassStub; import com.intellij.psi.impl.java.stubs.PsiClassStub
import com.intellij.psi.stubs.PsiClassHolderFileStub; import com.intellij.psi.stubs.PsiClassHolderFileStub
import com.intellij.psi.stubs.PsiFileStubImpl; import com.intellij.psi.stubs.PsiFileStubImpl
import com.intellij.psi.stubs.StubElement; import com.intellij.psi.tree.IStubFileElementType
import com.intellij.psi.tree.IStubFileElementType; import com.intellij.util.io.StringRef
import com.intellij.util.io.StringRef; import org.jetbrains.kotlin.name.FqName
import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.psi.JetFile; import org.jetbrains.kotlin.psi.stubs.KotlinFileStub
import org.jetbrains.kotlin.psi.stubs.KotlinFileStub; import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes
import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes;
import org.jetbrains.kotlin.name.FqName;
import java.util.List; public class KotlinFileStubImpl(jetFile: JetFile?, private val packageName: StringRef, private val isScript: Boolean)// SCRIPT: PsiJetFileStubImpl knows about scripting
: PsiFileStubImpl<JetFile>(jetFile), KotlinFileStub, PsiClassHolderFileStub<JetFile> {
public class KotlinFileStubImpl extends PsiFileStubImpl<JetFile> implements KotlinFileStub, PsiClassHolderFileStub<JetFile> { public constructor(jetFile: JetFile?, packageName: String, isScript: Boolean)
: this(jetFile, StringRef.fromString(packageName)!!, isScript) {
private final StringRef packageName;
private final boolean isScript;
public KotlinFileStubImpl(JetFile jetFile, @NotNull StringRef packageName, boolean isScript) {
super(jetFile);
this.packageName = packageName;
// SCRIPT: PsiJetFileStubImpl knows about scripting
this.isScript = isScript;
} }
public KotlinFileStubImpl(JetFile jetFile, @NotNull String packageName, boolean isScript) { override fun getPackageFqName(): FqName {
this(jetFile, StringRef.fromString(packageName), isScript); return FqName(StringRef.toString(packageName)!!)
} }
@Override override fun isScript(): Boolean {
@NotNull return isScript
public FqName getPackageFqName() {
return new FqName(StringRef.toString(packageName));
} }
@Override override fun getType(): IStubFileElementType<KotlinFileStub> {
public boolean isScript() { return JetStubElementTypes.FILE
return isScript;
} }
@Override override fun toString(): String {
public IStubFileElementType getType() { return "PsiJetFileStubImpl[" + "package=" + getPackageFqName().asString() + "]"
return JetStubElementTypes.FILE;
} }
@Override override fun getClasses(): Array<PsiClass> {
public String toString() { val result = Lists.newArrayList<PsiClass>()
return "PsiJetFileStubImpl[" + "package=" + getPackageFqName().asString() + "]"; for (child in getChildrenStubs()) {
} if (child is PsiClassStub<*>) {
result.add(child.getPsi() as PsiClass)
@Override
public PsiClass[] getClasses() {
List<PsiClass> result = Lists.newArrayList();
for (StubElement child : getChildrenStubs()) {
if (child instanceof PsiClassStub) {
result.add((PsiClass) child.getPsi());
} }
} }
return result.toArray(new PsiClass[result.size()]); return result.toArray<PsiClass>(arrayOfNulls<PsiClass>(result.size()))
} }
} }