LightClassGenerationSupport: refactor, minor

Use typealias where appropriate
Less verbose method names
This commit is contained in:
Pavel V. Talanov
2017-03-15 14:13:04 +03:00
parent a645dc109a
commit d62db8dc6b
5 changed files with 18 additions and 18 deletions
@@ -32,15 +32,13 @@ import org.jetbrains.kotlin.psi.KtElement
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.BindingContext
typealias LightClassBuilder = (LightClassConstructionContext) -> LightClassBuilderResult
abstract class LightClassGenerationSupport {
abstract fun createLightClassDataHolderForClassOrObject(
classOrObject: KtClassOrObject, builder: (LightClassConstructionContext) -> LightClassBuilderResult
): LightClassDataHolder
abstract fun createDataHolderForClassOrObject(classOrObject: KtClassOrObject, builder: LightClassBuilder): LightClassDataHolder
abstract fun createLightClassDataHolderForFacade(
files: Collection<KtFile>, build: (LightClassConstructionContext) -> LightClassBuilderResult
): LightClassDataHolder
abstract fun createDataHolderForFacade(files: Collection<KtFile>, builder: LightClassBuilder): LightClassDataHolder
abstract fun findClassOrObjectDeclarations(fqName: FqName, searchScope: GlobalSearchScope): Collection<KtClassOrObject>
@@ -41,7 +41,7 @@ class LightClassDataProviderForClassOrObject(private val classOrObject: KtClassO
private fun computeLightClassData(): LightClassDataHolder {
val file = classOrObject.containingKtFile
val packageFqName = file.packageFqName
return LightClassGenerationSupport.getInstance(classOrObject.project).createLightClassDataHolderForClassOrObject(classOrObject) {
return LightClassGenerationSupport.getInstance(classOrObject.project).createDataHolderForClassOrObject(classOrObject) {
constructionContext ->
buildLightClass(packageFqName, listOf(file), ClassFilterForClassOrObject(classOrObject), constructionContext) {
state, files ->
@@ -72,7 +72,7 @@ sealed class LightClassDataProviderForFileFacade constructor(
abstract fun findFiles(): Collection<KtFile>
private fun computeLightClassData(files: Collection<KtFile>): LightClassDataHolder {
return LightClassGenerationSupport.getInstance(project).createLightClassDataHolderForFacade(files) {
return LightClassGenerationSupport.getInstance(project).createDataHolderForFacade(files) {
constructionContext ->
buildLightClass(facadeFqName.parent(), files, ClassFilterForFacade, constructionContext) generate@ {
state, files ->