@@ -7,6 +7,7 @@ import org.jetbrains.kotlinx.dataframe.AnyRow
7
7
import org.jetbrains.kotlinx.dataframe.ColumnGroupReference
8
8
import org.jetbrains.kotlinx.dataframe.DataColumn
9
9
import org.jetbrains.kotlinx.dataframe.DataFrame
10
+ import org.jetbrains.kotlinx.dataframe.DataRow
10
11
import org.jetbrains.kotlinx.dataframe.RowExpression
11
12
import org.jetbrains.kotlinx.dataframe.columns.ColumnAccessor
12
13
import org.jetbrains.kotlinx.dataframe.columns.ColumnPath
@@ -29,6 +30,8 @@ import kotlin.reflect.typeOf
29
30
30
31
// region create ColumnAccessor
31
32
33
+ // region column
34
+
32
35
public fun <T > column (): ColumnDelegate <T > = ColumnDelegate ()
33
36
public fun <T > column (name : String ): ColumnAccessor <T > = ColumnAccessorImpl (name)
34
37
public fun <T > column (path : ColumnPath ): ColumnAccessor <T > = ColumnAccessorImpl (path)
@@ -48,19 +51,63 @@ public inline fun <T, reified C> column(
48
51
noinline expression : RowExpression <T , C >
49
52
): ColumnReference <C > = createComputedColumnReference(name, typeOf<C >(), infer, expression as RowExpression <Any ?, C >)
50
53
54
+ // endregion
55
+
56
+ // region columnGroup
57
+
51
58
public fun columnGroup (): ColumnDelegate <AnyRow > = column()
59
+ @JvmName(" columnGroupTyped" )
60
+ public fun <T > columnGroup (): ColumnDelegate <DataRow <T >> = column()
61
+
52
62
public fun columnGroup (name : String ): ColumnAccessor <AnyRow > = column(name)
63
+ @JvmName(" columnGroupTyped" )
64
+ public fun <T > columnGroup (name : String ): ColumnAccessor <DataRow <T >> = column(name)
65
+
53
66
public fun columnGroup (path : ColumnPath ): ColumnAccessor <AnyRow > = column(path)
67
+ @JvmName(" columnGroupTyped" )
68
+ public fun <T > columnGroup (path : ColumnPath ): ColumnAccessor <DataRow <T >> = column(path)
69
+
54
70
public fun ColumnGroupReference.columnGroup (): ColumnDelegate <AnyRow > = ColumnDelegate (this )
71
+ @JvmName(" columnGroupTyped" )
72
+ public fun <T > ColumnGroupReference.columnGroup (): ColumnDelegate <DataRow <T >> = ColumnDelegate (this )
73
+
55
74
public fun ColumnGroupReference.columnGroup (name : String ): ColumnAccessor <AnyRow > = ColumnAccessorImpl (path() + name)
75
+ @JvmName(" columnGroupTyped" )
76
+ public fun <T > ColumnGroupReference.columnGroup (name : String ): ColumnAccessor <DataRow <T >> = ColumnAccessorImpl (path() + name)
77
+
56
78
public fun ColumnGroupReference.columnGroup (path : ColumnPath ): ColumnAccessor <AnyRow > = ColumnAccessorImpl (this .path() + path)
79
+ @JvmName(" columnGroupTyped" )
80
+ public fun <T > ColumnGroupReference.columnGroup (path : ColumnPath ): ColumnAccessor <DataRow <T >> = ColumnAccessorImpl (this .path() + path)
81
+
82
+ // endregion
83
+
84
+ // region frameColumn
57
85
58
86
public fun frameColumn (): ColumnDelegate <AnyFrame > = column()
87
+ @JvmName(" frameColumnTyped" )
88
+ public fun <T > frameColumn (): ColumnDelegate <DataFrame <T >> = column()
89
+
59
90
public fun frameColumn (name : String ): ColumnAccessor <AnyFrame > = column(name)
91
+ @JvmName(" frameColumnTyped" )
92
+ public fun <T > frameColumn (name : String ): ColumnAccessor <DataFrame <T >> = column(name)
93
+
60
94
public fun frameColumn (path : ColumnPath ): ColumnAccessor <AnyFrame > = column(path)
95
+ @JvmName(" frameColumnTyped" )
96
+ public fun <T > frameColumn (path : ColumnPath ): ColumnAccessor <DataFrame <T >> = column(path)
97
+
61
98
public fun ColumnGroupReference.frameColumn (): ColumnDelegate <AnyFrame > = ColumnDelegate (this )
99
+ @JvmName(" frameColumnTyped" )
100
+ public fun <T > ColumnGroupReference.frameColumn (): ColumnDelegate <DataFrame <T >> = ColumnDelegate (this )
101
+
62
102
public fun ColumnGroupReference.frameColumn (name : String ): ColumnAccessor <AnyFrame > = ColumnAccessorImpl (path() + name)
103
+ @JvmName(" frameColumnTyped" )
104
+ public fun <T > ColumnGroupReference.frameColumn (name : String ): ColumnAccessor <DataFrame <T >> = ColumnAccessorImpl (path() + name)
105
+
63
106
public fun ColumnGroupReference.frameColumn (path : ColumnPath ): ColumnAccessor <AnyFrame > = ColumnAccessorImpl (this .path() + path)
107
+ @JvmName(" frameColumnTyped" )
108
+ public fun <T > ColumnGroupReference.frameColumn (path : ColumnPath ): ColumnAccessor <DataFrame <T >> = ColumnAccessorImpl (this .path() + path)
109
+
110
+ // endregion
64
111
65
112
public class ColumnDelegate <T >(private val parent : ColumnGroupReference ? = null ) {
66
113
public operator fun getValue (thisRef : Any? , property : KProperty <* >): ColumnAccessor <T > = named(property.columnName)
0 commit comments