Skip to content

Commit

Permalink
Remove the context inheritance feature
Browse files Browse the repository at this point in the history
  • Loading branch information
ermadmi78 committed Apr 3, 2023
1 parent 4c658a0 commit 7a65d33
Showing 80 changed files with 3 additions and 7,550 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package io.github.ermadmi78.kobby.generator.kotlin

import com.squareup.kotlinpoet.FileSpec
import com.squareup.kotlinpoet.KModifier.*
import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy
import com.squareup.kotlinpoet.KModifier.ABSTRACT
import com.squareup.kotlinpoet.KModifier.OVERRIDE
import io.github.ermadmi78.kobby.model.KobbyNode
import io.github.ermadmi78.kobby.model.KobbyNodeKind.OBJECT
import io.github.ermadmi78.kobby.model.KobbySchema
@@ -57,39 +57,13 @@ internal fun generateEntity(schema: KobbySchema, layout: KotlinLayout): List<Fil

private fun FileSpecBuilder.buildEntity(node: KobbyNode, layout: KotlinLayout) = with(layout) {
buildInterface(node.entityName) {
if (entity.contextInheritanceEnabled) {
addSuperinterface(context.contextClass)
}
node.implements {
addSuperinterface(it.entityClass)
}
node.comments {
addKdoc("%L", it)
}

if (entity.contextInheritanceEnabled) {
// context query
buildFunction(context.query) {
addModifiers(OVERRIDE, SUSPEND, ABSTRACT)
buildParameter(entity.projection.projectionArgument, node.schema.query.projectionLambda)
returns(node.schema.query.entityClass)
}

// context mutation
buildFunction(context.mutation) {
addModifiers(OVERRIDE, SUSPEND, ABSTRACT)
buildParameter(entity.projection.projectionArgument, node.schema.mutation.projectionLambda)
returns(node.schema.mutation.entityClass)
}

// context subscription
buildFunction(context.subscription) {
addModifiers(OVERRIDE, ABSTRACT)
buildParameter(entity.projection.projectionArgument, node.schema.subscription.projectionLambda)
returns(context.subscriberClass.parameterizedBy(node.schema.subscription.entityClass))
}
}

if (entity.contextFunEnabled) {
// context access function
buildFunction(entity.contextFunName) {
Original file line number Diff line number Diff line change
@@ -2,7 +2,6 @@ package io.github.ermadmi78.kobby.generator.kotlin

import com.squareup.kotlinpoet.*
import com.squareup.kotlinpoet.KModifier.*
import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy
import io.github.ermadmi78.kobby.model.*
import io.github.ermadmi78.kobby.model.KobbyNodeKind.INTERFACE
import io.github.ermadmi78.kobby.model.KobbyNodeKind.UNION
@@ -277,41 +276,6 @@ private fun FileSpecBuilder.buildEntity(node: KobbyNode, layout: KotlinLayout) =
}
}

if (entity.contextInheritanceEnabled) {
// context query
buildFunction(context.query) {
addModifiers(OVERRIDE, SUSPEND)
buildParameter(entity.projection.projectionArgument, node.schema.query.projectionLambda)
returns(node.schema.query.entityClass)

addStatement(
"return·${impl.contextPropertyName}.${context.query}(${entity.projection.projectionArgument})"
)
}

// context mutation
buildFunction(context.mutation) {
addModifiers(OVERRIDE, SUSPEND)
buildParameter(entity.projection.projectionArgument, node.schema.mutation.projectionLambda)
returns(node.schema.mutation.entityClass)

addStatement(
"return·${impl.contextPropertyName}.${context.mutation}(${entity.projection.projectionArgument})"
)
}

// context subscription
buildFunction(context.subscription) {
addModifiers(OVERRIDE)
buildParameter(entity.projection.projectionArgument, node.schema.subscription.projectionLambda)
returns(context.subscriberClass.parameterizedBy(node.schema.subscription.entityClass))

addStatement(
"return·${impl.contextPropertyName}.${context.subscription}(${entity.projection.projectionArgument})"
)
}
}

if (entity.contextFunEnabled) {
buildFunction(entity.contextFunName) {
addModifiers(OVERRIDE)
Original file line number Diff line number Diff line change
@@ -581,7 +581,6 @@ class KotlinEntityLayout(
val enabled: Boolean,
packageName: String,
val decoration: Decoration,
val contextInheritanceEnabled: Boolean,
val contextFunEnabled: Boolean,
val contextFunName: String,
val withCurrentProjectionFun: String,
Original file line number Diff line number Diff line change
@@ -68,7 +68,6 @@ class SchemaValidationTest {
"kobby.entity",
Decoration(null, null),
true,
false,
"__context",
"__withCurrentProjection",
KotlinEntityProjectionLayout(
Original file line number Diff line number Diff line change
@@ -527,19 +527,11 @@ open class KobbyKotlinEntityExtension {
/** Postfix for entities interfaces */
var postfix: String? = null

/**
* Inherit context interface in entity interface.
* [More details](https://github.com/ermadmi78/kobby/issues/20)
* [More details](https://github.com/ermadmi78/kobby/issues/29)
*
* Default: false
*/
var contextInheritanceEnabled: Boolean? = null

/**
* Generate context access function in entity interface.
* [More details](https://github.com/ermadmi78/kobby/issues/20)
* [More details](https://github.com/ermadmi78/kobby/issues/29)
* [More details](https://github.com/ermadmi78/kobby/issues/35)
*
* Default: true
*/
Original file line number Diff line number Diff line change
@@ -212,9 +212,6 @@ class KobbyPlugin : Plugin<Project> {
postfix?.also {
kotlinTask.entityPostfix.convention(it)
}
contextInheritanceEnabled?.also {
kotlinTask.entityContextInheritanceEnabled.convention(it)
}
contextFunEnabled?.also {
kotlinTask.entityContextFunEnabled.convention(it)
}
Original file line number Diff line number Diff line change
@@ -430,14 +430,6 @@ open class KobbyKotlin : DefaultTask() {
)
val entityPostfix: Property<String> = project.objects.property(String::class.java)

@Input
@Optional
@Option(
option = "entityContextInheritanceEnabled",
description = "Inherit context interface in entity interface (default false)"
)
val entityContextInheritanceEnabled: Property<Boolean> = project.objects.property(Boolean::class.java)

@Input
@Optional
@Option(
@@ -844,7 +836,6 @@ open class KobbyKotlin : DefaultTask() {

entityEnabled.convention(true)
entityPackageName.convention("entity")
entityContextInheritanceEnabled.convention(false)
entityContextFunEnabled.convention(true)
entityContextFunName.convention("__context")
entityWithCurrentProjectionFun.convention("__withCurrentProjection")
@@ -1011,7 +1002,6 @@ open class KobbyKotlin : DefaultTask() {
entityEnabled.get(),
entityPackage.toPackageName(),
Decoration(entityPrefix.orNull, entityPostfix.orNull),
entityContextInheritanceEnabled.get(),
entityContextFunEnabled.get(),
entityContextFunName.get(),
entityWithCurrentProjectionFun.get(),

This file was deleted.

Loading

0 comments on commit 7a65d33

Please sign in to comment.