Skip to content

Commit 977d78a

Browse files
authored
cleanup ptype (#46)
1 parent e68f7d4 commit 977d78a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+389
-346
lines changed

protokt-codegen/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,13 @@ configure<JavaApplication> {
3232

3333
dependencies {
3434
implementation(files(buildSrcClasses))
35+
3536
implementation(project(":extensions:protokt-extensions-api"))
3637
implementation(project(":protokt-runtime"))
3738
implementation(project(":protokt-runtime-grpc"))
39+
40+
implementation(kotlin("reflect"))
41+
3842
libraries.arrow.forEach { implementation(it) }
3943
implementation(libraries.grpcStub)
4044
implementation(libraries.kollection)

protokt-codegen/src/main/kotlin/com/toasttab/protokt/Main.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ import arrow.fx.IO
2121
import arrow.syntax.collections.flatten
2222
import com.google.protobuf.ExtensionRegistry
2323
import com.google.protobuf.compiler.PluginProtos
24-
import com.toasttab.protokt.codegen.ProtocolContext
2524
import com.toasttab.protokt.codegen.generate
2625
import com.toasttab.protokt.codegen.impl.STAnnotator
2726
import com.toasttab.protokt.codegen.impl.STEffects
2827
import com.toasttab.protokt.codegen.impl.packagesByTypeName
29-
import com.toasttab.protokt.codegen.newFileName
30-
import com.toasttab.protokt.codegen.respectJavaPackage
31-
import com.toasttab.protokt.codegen.toProtocol
28+
import com.toasttab.protokt.codegen.protoc.ProtocolContext
29+
import com.toasttab.protokt.codegen.protoc.newFileName
30+
import com.toasttab.protokt.codegen.protoc.respectJavaPackage
31+
import com.toasttab.protokt.codegen.protoc.toProtocol
3232
import com.toasttab.protokt.ext.Protokt
3333
import java.io.OutputStream
3434
import kotlin.system.exitProcess

protokt-codegen/src/main/kotlin/com/toasttab/protokt/codegen/Generate.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ import com.toasttab.protokt.codegen.algebra.Accumulator
2020
import com.toasttab.protokt.codegen.algebra.Annotator
2121
import com.toasttab.protokt.codegen.algebra.Effects
2222
import com.toasttab.protokt.codegen.algebra.Interpreter
23+
import com.toasttab.protokt.codegen.protoc.AnnotatedType
24+
import com.toasttab.protokt.codegen.protoc.Protocol
25+
import com.toasttab.protokt.codegen.protoc.TypeDesc
2326

24-
// Generate kotlin code from a protocol
2527
fun generate(
2628
p: Protocol,
2729
a: Annotator<AST<TypeDesc>>,

protokt-codegen/src/main/kotlin/com/toasttab/protokt/codegen/impl/AnnotatorUtils.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ package com.toasttab.protokt.codegen.impl
1717

1818
import arrow.core.None
1919
import arrow.core.Some
20-
import com.toasttab.protokt.codegen.MessageType
21-
import com.toasttab.protokt.codegen.Oneof
22-
import com.toasttab.protokt.codegen.StandardField
23-
import com.toasttab.protokt.codegen.TypeDesc
2420
import com.toasttab.protokt.codegen.algebra.AST
2521
import com.toasttab.protokt.codegen.impl.STAnnotator.Context
26-
import com.toasttab.protokt.codegen.respectJavaPackage
22+
import com.toasttab.protokt.codegen.protoc.Message
23+
import com.toasttab.protokt.codegen.protoc.Oneof
24+
import com.toasttab.protokt.codegen.protoc.StandardField
25+
import com.toasttab.protokt.codegen.protoc.TypeDesc
26+
import com.toasttab.protokt.codegen.protoc.respectJavaPackage
2727
import com.toasttab.protokt.codegen.template.Renderers.ConcatWithScope
2828

29-
internal fun resolveMapEntry(m: MessageType, ctx: Context) =
29+
internal fun resolveMapEntry(m: Message, ctx: Context) =
3030
MapTypeParams(
3131
(m.fields[0] as StandardField).unqualifiedTypeName,
3232
(m.fields[1] as StandardField).typePClass.renderName(ctx.pkg)

protokt-codegen/src/main/kotlin/com/toasttab/protokt/codegen/impl/ClassLookup.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ import arrow.core.None
2020
import arrow.core.Some
2121
import arrow.core.getOrHandle
2222
import arrow.syntax.function.memoize
23-
import com.toasttab.protokt.codegen.ProtocolContext
24-
import com.toasttab.protokt.codegen.classpath
2523
import com.toasttab.protokt.codegen.model.PClass
24+
import com.toasttab.protokt.codegen.protoc.ProtocolContext
25+
import com.toasttab.protokt.codegen.protoc.classpath
2626
import com.toasttab.protokt.ext.Converter
2727
import java.io.File
2828
import java.net.URLClassLoader

protokt-codegen/src/main/kotlin/com/toasttab/protokt/codegen/impl/ContextExt.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@ package com.toasttab.protokt.codegen.impl
1818
import arrow.core.Option
1919
import arrow.core.extensions.list.foldable.firstOption
2020
import arrow.core.toOption
21-
import com.toasttab.protokt.codegen.MessageType
2221
import com.toasttab.protokt.codegen.impl.STAnnotator.Context
22+
import com.toasttab.protokt.codegen.protoc.Message
2323

2424
internal fun Context.stripRootMessageNamePrefix(s: String) =
2525
stripPrefix(enclosingMessage.firstOption(), s)
2626

2727
internal fun Context.stripEnclosingMessageNamePrefix(s: String) =
2828
stripPrefix(enclosingMessage.lastOrNull().toOption(), s)
2929

30-
private fun stripPrefix(o: Option<MessageType>, s: String) =
30+
private fun stripPrefix(o: Option<Message>, s: String) =
3131
o.map { it.name }
3232
.fold(
3333
{ s },

protokt-codegen/src/main/kotlin/com/toasttab/protokt/codegen/impl/Deprecation.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515

1616
package com.toasttab.protokt.codegen.impl
1717

18-
import com.toasttab.protokt.codegen.EnumType
19-
import com.toasttab.protokt.codegen.MessageType
20-
import com.toasttab.protokt.codegen.Oneof
21-
import com.toasttab.protokt.codegen.StandardField
2218
import com.toasttab.protokt.codegen.impl.STAnnotator.Context
19+
import com.toasttab.protokt.codegen.protoc.Enum
20+
import com.toasttab.protokt.codegen.protoc.Message
21+
import com.toasttab.protokt.codegen.protoc.Oneof
22+
import com.toasttab.protokt.codegen.protoc.StandardField
2323

2424
object Deprecation {
2525
fun enclosingDeprecation(ctx: Context): Boolean {
@@ -32,7 +32,7 @@ object Deprecation {
3232
}
3333
}
3434

35-
val MessageType.hasDeprecation: Boolean
35+
val Message.hasDeprecation: Boolean
3636
get() =
3737
options.default.deprecated ||
3838
fields.any {
@@ -43,13 +43,13 @@ object Deprecation {
4343
} ||
4444
nestedTypes.any {
4545
when (it) {
46-
is MessageType -> it.hasDeprecation
47-
is EnumType -> it.hasDeprecation
46+
is Message -> it.hasDeprecation
47+
is Enum -> it.hasDeprecation
4848
else -> false
4949
}
5050
}
5151

52-
val EnumType.hasDeprecation
52+
val Enum.hasDeprecation
5353
get() =
5454
options.default.deprecated ||
5555
values.any { it.options.default.deprecated }

protokt-codegen/src/main/kotlin/com/toasttab/protokt/codegen/impl/DeserializerAnnotator.kt

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,25 @@ import arrow.core.None
1919
import arrow.core.Option
2020
import arrow.core.Some
2121
import arrow.core.getOrElse
22-
import com.toasttab.protokt.codegen.MessageType
23-
import com.toasttab.protokt.codegen.Oneof
24-
import com.toasttab.protokt.codegen.StandardField
2522
import com.toasttab.protokt.codegen.impl.MessageAnnotator.idealMaxWidth
2623
import com.toasttab.protokt.codegen.impl.STAnnotator.Context
2724
import com.toasttab.protokt.codegen.impl.Wrapper.interceptReadFn
2825
import com.toasttab.protokt.codegen.impl.Wrapper.wrapped
2926
import com.toasttab.protokt.codegen.impl.Wrapper.wrapperName
27+
import com.toasttab.protokt.codegen.model.FieldType
28+
import com.toasttab.protokt.codegen.protoc.Message
29+
import com.toasttab.protokt.codegen.protoc.Oneof
30+
import com.toasttab.protokt.codegen.protoc.StandardField
3031
import com.toasttab.protokt.codegen.template.Message.Message.DeserializerInfo
3132
import com.toasttab.protokt.codegen.template.Message.Message.DeserializerInfo.Assignment
3233
import com.toasttab.protokt.codegen.template.Oneof as OneofTemplate
3334
import com.toasttab.protokt.codegen.template.Renderers.Deserialize
3435
import com.toasttab.protokt.codegen.template.Renderers.Deserialize.Options
3536
import com.toasttab.protokt.codegen.template.Renderers.Read
36-
import com.toasttab.protokt.rt.PType
3737

3838
internal class DeserializerAnnotator
3939
private constructor(
40-
private val msg: MessageType,
40+
private val msg: Message,
4141
private val ctx: Context
4242
) {
4343
private fun annotateDeserializer(): List<DeserializerInfo> =
@@ -103,7 +103,7 @@ private constructor(
103103
}
104104
)
105105

106-
private fun MessageType.flattenedSortedFields() =
106+
private fun Message.flattenedSortedFields() =
107107
fields.flatMap {
108108
when (it) {
109109
is StandardField ->
@@ -130,8 +130,7 @@ private constructor(
130130
type = type,
131131
builder =
132132
when (type) {
133-
PType.ENUM,
134-
PType.MESSAGE -> stripQualification(ctx, this)
133+
FieldType.ENUM, FieldType.MESSAGE -> stripQualification(ctx, this)
135134
else -> ""
136135
}
137136
)
@@ -152,7 +151,7 @@ private constructor(
152151
}
153152

154153
companion object {
155-
fun annotateDeserializer(msg: MessageType, ctx: Context) =
154+
fun annotateDeserializer(msg: Message, ctx: Context) =
156155
DeserializerAnnotator(msg, ctx).annotateDeserializer()
157156
}
158157
}

protokt-codegen/src/main/kotlin/com/toasttab/protokt/codegen/impl/DuplicateNameInFileImportFilterer.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
package com.toasttab.protokt.codegen.impl
1717

1818
import com.google.common.annotations.VisibleForTesting
19-
import com.toasttab.protokt.codegen.MessageType
20-
import com.toasttab.protokt.codegen.TypeDesc
2119
import com.toasttab.protokt.codegen.algebra.AST
20+
import com.toasttab.protokt.codegen.protoc.Message
21+
import com.toasttab.protokt.codegen.protoc.TypeDesc
2222

2323
fun Sequence<Import>.filterClassesWithSameNameAsMessageIn(
2424
asts: List<AST<TypeDesc>>
@@ -34,14 +34,14 @@ internal fun Sequence<Import>.filterClassesWithSameNameAsMessageIn(
3434
private fun allMessageNames(asts: List<AST<TypeDesc>>) =
3535
asts.asSequence().flatMap {
3636
when (val t = it.data.type.rawType) {
37-
is MessageType -> names(t)
37+
is Message -> names(t)
3838
else -> emptySequence()
3939
}
4040
}
4141

42-
private fun names(m: MessageType): Sequence<String> =
42+
private fun names(m: Message): Sequence<String> =
4343
sequenceOf(m.name) +
4444
m.nestedTypes
4545
.asSequence()
46-
.filterIsInstance<MessageType>()
46+
.filterIsInstance<Message>()
4747
.flatMap { names(it) }

protokt-codegen/src/main/kotlin/com/toasttab/protokt/codegen/impl/DuplicateNameInOneofImportFilterer.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515

1616
package com.toasttab.protokt.codegen.impl
1717

18-
import com.toasttab.protokt.codegen.MessageType
19-
import com.toasttab.protokt.codegen.Oneof
20-
import com.toasttab.protokt.codegen.TypeDesc
2118
import com.toasttab.protokt.codegen.algebra.AST
2219
import com.toasttab.protokt.codegen.model.PClass
20+
import com.toasttab.protokt.codegen.protoc.Message
21+
import com.toasttab.protokt.codegen.protoc.Oneof
22+
import com.toasttab.protokt.codegen.protoc.TypeDesc
2323

2424
fun Sequence<Import>.filterClassesWithSameNameAsOneofFieldTypeIn(
2525
asts: List<AST<TypeDesc>>
@@ -32,16 +32,16 @@ fun Sequence<Import>.filterClassesWithSameNameAsOneofFieldTypeIn(
3232
private fun allOneofFieldTypes(asts: List<AST<TypeDesc>>) =
3333
asts.asSequence().flatMap {
3434
when (val t = it.data.type.rawType) {
35-
is MessageType -> typeNames(t)
35+
is Message -> typeNames(t)
3636
else -> emptySequence()
3737
}
3838
}
3939

40-
private fun typeNames(m: MessageType): Sequence<String> =
40+
private fun typeNames(m: Message): Sequence<String> =
4141
m.fields.asSequence().filterIsInstance<Oneof>().flatMap { typeNames(it) } +
4242
m.nestedTypes
4343
.asSequence()
44-
.filterIsInstance<MessageType>()
44+
.filterIsInstance<Message>()
4545
.flatMap { typeNames(it) }
4646

4747
private fun typeNames(o: Oneof) =

protokt-codegen/src/main/kotlin/com/toasttab/protokt/codegen/impl/EnumAnnotator.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,23 @@
1515

1616
package com.toasttab.protokt.codegen.impl
1717

18-
import com.toasttab.protokt.codegen.EnumType
1918
import com.toasttab.protokt.codegen.impl.Deprecation.enclosingDeprecation
2019
import com.toasttab.protokt.codegen.impl.Deprecation.hasDeprecation
2120
import com.toasttab.protokt.codegen.impl.Deprecation.renderOptions
2221
import com.toasttab.protokt.codegen.impl.EnumDocumentationAnnotator.Companion.annotateEnumDocumentation
2322
import com.toasttab.protokt.codegen.impl.EnumDocumentationAnnotator.Companion.annotateEnumFieldDocumentation
2423
import com.toasttab.protokt.codegen.impl.STAnnotator.Context
25-
import com.toasttab.protokt.codegen.template.Enum.Enum
24+
import com.toasttab.protokt.codegen.protoc.Enum
25+
import com.toasttab.protokt.codegen.template.Enum.Enum as EnumTemplate
2626
import com.toasttab.protokt.codegen.template.Enum.Enum.EnumInfo
2727
import com.toasttab.protokt.codegen.template.Enum.Enum.EnumOptions
2828

2929
internal object EnumAnnotator {
3030
fun annotateEnum(
31-
e: EnumType,
31+
e: Enum,
3232
ctx: Context
3333
) =
34-
Enum.render(
34+
EnumTemplate.render(
3535
name = e.name,
3636
map =
3737
e.values.associate {

protokt-codegen/src/main/kotlin/com/toasttab/protokt/codegen/impl/EnumDocumentationAnnotator.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ package com.toasttab.protokt.codegen.impl
1717

1818
import com.google.protobuf.DescriptorProtos.DescriptorProto.ENUM_TYPE_FIELD_NUMBER
1919
import com.google.protobuf.DescriptorProtos.EnumDescriptorProto.VALUE_FIELD_NUMBER
20-
import com.toasttab.protokt.codegen.EnumType
2120
import com.toasttab.protokt.codegen.impl.MessageDocumentationAnnotator.baseLocation
2221
import com.toasttab.protokt.codegen.impl.STAnnotator.Context
22+
import com.toasttab.protokt.codegen.protoc.Enum
2323

2424
internal class EnumDocumentationAnnotator
2525
private constructor(
26-
enum: EnumType,
26+
enum: Enum,
2727
private val ctx: Context
2828
) {
2929
private val enumPath = listOf(ENUM_TYPE_FIELD_NUMBER, enum.index)
@@ -32,17 +32,17 @@ private constructor(
3232
baseLocation(ctx, enumPath)
3333
.cleanDocumentation()
3434

35-
private fun annotateEnumFieldDocumentation(value: EnumType.Value) =
35+
private fun annotateEnumFieldDocumentation(value: Enum.Value) =
3636
baseLocation(ctx, enumPath + listOf(VALUE_FIELD_NUMBER, value.index))
3737
.cleanDocumentation()
3838

3939
companion object {
40-
fun annotateEnumDocumentation(enum: EnumType, ctx: Context) =
40+
fun annotateEnumDocumentation(enum: Enum, ctx: Context) =
4141
EnumDocumentationAnnotator(enum, ctx).annotateEnumDocumentation()
4242

4343
fun annotateEnumFieldDocumentation(
44-
enum: EnumType,
45-
value: EnumType.Value,
44+
enum: Enum,
45+
value: Enum.Value,
4646
ctx: Context
4747
) =
4848
EnumDocumentationAnnotator(enum, ctx)

protokt-codegen/src/main/kotlin/com/toasttab/protokt/codegen/impl/HeaderAccumulator.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
package com.toasttab.protokt.codegen.impl
1717

1818
import arrow.core.firstOrNone
19-
import com.toasttab.protokt.codegen.TypeDesc
2019
import com.toasttab.protokt.codegen.algebra.AST
2120
import com.toasttab.protokt.codegen.model.PPackage
21+
import com.toasttab.protokt.codegen.protoc.TypeDesc
2222
import com.toasttab.protokt.codegen.template.Header.Header
2323

2424
internal object HeaderAccumulator {

protokt-codegen/src/main/kotlin/com/toasttab/protokt/codegen/impl/Implements.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@
1616
package com.toasttab.protokt.codegen.impl
1717

1818
import arrow.syntax.function.memoize
19-
import com.toasttab.protokt.codegen.MessageType
20-
import com.toasttab.protokt.codegen.StandardField
2119
import com.toasttab.protokt.codegen.impl.ClassLookup.getClass
2220
import com.toasttab.protokt.codegen.impl.STAnnotator.Context
2321
import com.toasttab.protokt.codegen.model.PClass
2422
import com.toasttab.protokt.codegen.model.possiblyQualify
23+
import com.toasttab.protokt.codegen.protoc.Message
24+
import com.toasttab.protokt.codegen.protoc.StandardField
2525

2626
internal object Implements {
2727
fun StandardField.overrides(
2828
ctx: Context,
29-
msg: MessageType
29+
msg: Message
3030
) =
3131
msg.options.protokt.implements.emptyToNone().fold(
3232
{ false },
@@ -43,10 +43,10 @@ internal object Implements {
4343
private fun String.delegates() =
4444
contains(" by ")
4545

46-
val MessageType.doesImplement
46+
val Message.doesImplement
4747
get() = options.protokt.implements.isNotEmpty()
4848

49-
val MessageType.implements
49+
val Message.implements
5050
get() = options.protokt.implements
5151
}
5252

0 commit comments

Comments
 (0)