@@ -15,7 +15,6 @@ import org.jetbrains.kotlinx.dataframe.api.getColumnGroup
1515import org.jetbrains.kotlinx.dataframe.api.getColumnWithPath
1616import org.jetbrains.kotlinx.dataframe.api.getColumns
1717import org.jetbrains.kotlinx.dataframe.api.move
18- import org.jetbrains.kotlinx.dataframe.api.toColumnAccessor
1918import org.jetbrains.kotlinx.dataframe.api.toDataFrame
2019import org.jetbrains.kotlinx.dataframe.columns.ColumnPath
2120import org.jetbrains.kotlinx.dataframe.columns.ColumnWithPath
@@ -26,7 +25,6 @@ import org.jetbrains.kotlinx.dataframe.impl.asList
2625import org.jetbrains.kotlinx.dataframe.impl.columns.toColumnWithPath
2726import org.jetbrains.kotlinx.dataframe.impl.columns.tree.ColumnPosition
2827import org.jetbrains.kotlinx.dataframe.impl.columns.tree.getOrPut
29- import org.jetbrains.kotlinx.dataframe.indices
3028import org.jetbrains.kotlinx.dataframe.path
3129
3230internal fun <T , C > MoveClause <T , C >.afterOrBefore (column : ColumnSelector <T , * >, isAfter : Boolean ): DataFrame <T > {
@@ -181,19 +179,23 @@ internal fun <T, C> MoveClause<T, C>.moveToImpl(columnIndex: Int, insideGroup: B
181179 }
182180
183181 // move columns
184- if (columnsBeforeReferenceToMove.isNotEmpty() && columnsAfterReferenceToMove.isNotEmpty()) {
185- val intermediateDf = df.move { columnsBeforeReferenceToMove.toColumnSet() }.after { reference }
186- val newReference = columnsBeforeReferenceToMove.last()
187- val finalDf = intermediateDf.move { columnsAfterReferenceToMove.toColumnSet() }.after { newReference }
188- return finalDf
189- }
190- if (columnsBeforeReferenceToMove.isNotEmpty()) {
191- return df.move { columnsBeforeReferenceToMove.toColumnSet() }.after { reference }
192- }
193- if (columnsAfterReferenceToMove.isNotEmpty()) {
194- return df.move { columnsAfterReferenceToMove.toColumnSet() }.before { reference }
195- }
182+ when {
183+ columnsBeforeReferenceToMove.isNotEmpty() && columnsAfterReferenceToMove.isNotEmpty() -> {
184+ val intermediateDf = df.move { columnsBeforeReferenceToMove.toColumnSet() }.after { reference }
185+ val newReference = columnsBeforeReferenceToMove.last()
186+ val finalDf = intermediateDf.move { columnsAfterReferenceToMove.toColumnSet() }.after { newReference }
187+ return finalDf
188+ }
196189
197- // if it is not needed to move any of the nested columns
198- return df
190+ columnsBeforeReferenceToMove.isNotEmpty() -> {
191+ return df.move { columnsBeforeReferenceToMove.toColumnSet() }.after { reference }
192+ }
193+
194+ columnsAfterReferenceToMove.isNotEmpty() -> {
195+ return df.move { columnsAfterReferenceToMove.toColumnSet() }.before { reference }
196+ }
197+
198+ // if it is not needed to move any of the nested columns
199+ else -> return df
200+ }
199201}
0 commit comments