@@ -7,7 +7,7 @@ import org.jetbrains.kotlinx.dataframe.codeGen.MarkerVisibility
7
7
public inline fun <reified T > DataFrame<T>.generateCode (
8
8
fields : Boolean = true,
9
9
extensionProperties : Boolean = true,
10
- ): String {
10
+ ): CodeString {
11
11
val name = markerName<T >()
12
12
return generateCode(name, fields, extensionProperties)
13
13
}
@@ -17,7 +17,7 @@ public fun <T> DataFrame<T>.generateCode(
17
17
fields : Boolean = true,
18
18
extensionProperties : Boolean = true,
19
19
visibility : MarkerVisibility = MarkerVisibility .IMPLICIT_PUBLIC ,
20
- ): String {
20
+ ): CodeString {
21
21
val codeGen = CodeGenerator .create()
22
22
return codeGen.generate(
23
23
schema = schema(),
@@ -26,10 +26,10 @@ public fun <T> DataFrame<T>.generateCode(
26
26
extensionProperties = extensionProperties,
27
27
isOpen = true ,
28
28
visibility = visibility,
29
- ).code.declarations
29
+ ).code.declarations.toCodeString()
30
30
}
31
31
32
- public inline fun <reified T > DataFrame<T>.generateInterfaces (): String = generateCode(
32
+ public inline fun <reified T > DataFrame<T>.generateInterfaces (): CodeString = generateCode(
33
33
fields = true ,
34
34
extensionProperties = false
35
35
)
@@ -39,7 +39,7 @@ public inline fun <reified T> DataFrame<T>.generateDataClasses(
39
39
extensionProperties : Boolean = true,
40
40
visibility : MarkerVisibility = MarkerVisibility .IMPLICIT_PUBLIC ,
41
41
useFqNames : Boolean = false
42
- ): String {
42
+ ): CodeString {
43
43
val name = markerName ? : markerName<T >()
44
44
val codeGen = CodeGenerator .create(useFqNames)
45
45
return codeGen.generate(
@@ -51,15 +51,29 @@ public inline fun <reified T> DataFrame<T>.generateDataClasses(
51
51
visibility = visibility,
52
52
asDataClass = true
53
53
).code.declarations
54
+ ).code.declarations.toCodeString()
54
55
}
55
56
56
57
@PublishedApi
57
58
internal inline fun <reified T > markerName (): String = if (T ::class .isAbstract) {
58
59
T ::class .simpleName!!
59
60
} else " DataEntry"
60
61
61
- public fun <T > DataFrame<T>.generateInterfaces (markerName : String ): String = generateCode(
62
+ public fun <T > DataFrame<T>.generateInterfaces (markerName : String ): CodeString = generateCode(
62
63
markerName = markerName,
63
64
fields = true ,
64
65
extensionProperties = false
65
66
)
67
+
68
+ /* *
69
+ * Converts delimited 'my_name', 'my name', etc, String to camelCase 'myName'
70
+ */
71
+ public val NameNormalizer .Companion .default: NameNormalizer get() = NameNormalizer .from(setOf (' \t ' , ' ' , ' _' ))
72
+
73
+ @JvmInline
74
+ public value class CodeString (public val value : String ) {
75
+ override fun toString (): String = value
76
+ }
77
+
78
+ @PublishedApi
79
+ internal fun String.toCodeString (): CodeString = CodeString (this )
0 commit comments