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
|
@Override
|
||||||
public void serialize(@NotNull KotlinFileStub stub, @NotNull StubOutputStream dataStream)
|
public void serialize(@NotNull KotlinFileStub stub, @NotNull StubOutputStream dataStream)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
dataStream.writeName(stub.getPackageFqName().asString());
|
StubIndexService.getInstance().serializeFileStub(stub, dataStream);
|
||||||
dataStream.writeName(stub.getFacadeSimpleName());
|
|
||||||
dataStream.writeName(stub.getPartSimpleName());
|
|
||||||
dataStream.writeBoolean(stub.isScript());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KotlinFileStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
|
public KotlinFileStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
|
||||||
StringRef packageFqNameAsString = dataStream.readName();
|
return StubIndexService.getInstance().deserializeFileStub(dataStream);
|
||||||
boolean isScript = dataStream.readBoolean();
|
|
||||||
StringRef facadeSimpleName = dataStream.readName();
|
|
||||||
StringRef partSimpleName = dataStream.readName();
|
|
||||||
return new KotlinFileStubImpl(null, packageFqNameAsString, facadeSimpleName, partSimpleName, isScript);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ package org.jetbrains.kotlin.psi.stubs.elements
|
|||||||
|
|
||||||
import com.intellij.openapi.components.ServiceManager
|
import com.intellij.openapi.components.ServiceManager
|
||||||
import com.intellij.psi.stubs.IndexSink
|
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.JetFile
|
||||||
import org.jetbrains.kotlin.psi.stubs.*
|
import org.jetbrains.kotlin.psi.stubs.*
|
||||||
import org.jetbrains.kotlin.psi.stubs.impl.KotlinFileStubImpl
|
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)
|
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 {
|
companion object {
|
||||||
@jvmStatic
|
@jvmStatic
|
||||||
public fun getInstance(): StubIndexService {
|
public fun getInstance(): StubIndexService {
|
||||||
|
|||||||
Reference in New Issue
Block a user