From 25f31582c9dfc2243e3414dc5dc4433c8fa05bec Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Thu, 3 Sep 2015 20:54:41 +0300 Subject: [PATCH] Make StubIndexService responsible for serializing and deserializing file stubs --- .../psi/stubs/elements/JetFileElementType.java | 11 ++--------- .../psi/stubs/elements/StubIndexService.kt | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/elements/JetFileElementType.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/elements/JetFileElementType.java index f655d9029a4..fb7622e2434 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/elements/JetFileElementType.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/elements/JetFileElementType.java @@ -67,20 +67,13 @@ public class JetFileElementType extends IStubFileElementType { @Override public void serialize(@NotNull KotlinFileStub stub, @NotNull StubOutputStream dataStream) throws IOException { - dataStream.writeName(stub.getPackageFqName().asString()); - dataStream.writeName(stub.getFacadeSimpleName()); - dataStream.writeName(stub.getPartSimpleName()); - dataStream.writeBoolean(stub.isScript()); + StubIndexService.getInstance().serializeFileStub(stub, dataStream); } @NotNull @Override public KotlinFileStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException { - StringRef packageFqNameAsString = dataStream.readName(); - boolean isScript = dataStream.readBoolean(); - StringRef facadeSimpleName = dataStream.readName(); - StringRef partSimpleName = dataStream.readName(); - return new KotlinFileStubImpl(null, packageFqNameAsString, facadeSimpleName, partSimpleName, isScript); + return StubIndexService.getInstance().deserializeFileStub(dataStream); } @Override diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/elements/StubIndexService.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/elements/StubIndexService.kt index 0a78e4f8362..5a536f63c45 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/elements/StubIndexService.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/elements/StubIndexService.kt @@ -18,6 +18,8 @@ package org.jetbrains.kotlin.psi.stubs.elements import com.intellij.openapi.components.ServiceManager import com.intellij.psi.stubs.IndexSink +import com.intellij.psi.stubs.StubInputStream +import com.intellij.psi.stubs.StubOutputStream import org.jetbrains.kotlin.psi.JetFile import org.jetbrains.kotlin.psi.stubs.* import org.jetbrains.kotlin.psi.stubs.impl.KotlinFileStubImpl @@ -45,6 +47,21 @@ public open class StubIndexService protected constructor() { return KotlinFileStubImpl(file, file.packageFqNameByTree.asString(), file.isScriptByTree) } + public open fun serializeFileStub(stub: KotlinFileStub, dataStream: StubOutputStream) { + dataStream.writeName(stub.getPackageFqName().asString()) + dataStream.writeName(stub.getFacadeSimpleName()) + dataStream.writeName(stub.getPartSimpleName()) + dataStream.writeBoolean(stub.isScript()) + } + + public open fun deserializeFileStub(dataStream: StubInputStream): KotlinFileStub { + val packageFqNameAsString = dataStream.readName() + val isScript = dataStream.readBoolean() + val facadeSimpleName = dataStream.readName() + val partSimpleName = dataStream.readName() + return KotlinFileStubImpl(null, packageFqNameAsString!!, facadeSimpleName, partSimpleName, isScript) + } + companion object { @jvmStatic public fun getInstance(): StubIndexService {