Make StubIndexService responsible for serializing and deserializing file stubs
This commit is contained in:
+2
-9
@@ -67,20 +67,13 @@ public class JetFileElementType extends IStubFileElementType<KotlinFileStub> {
|
||||
@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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user