@@ -9,17 +9,17 @@ import javax.validation.constraints.Min
99/* *
1010 * @author Yauheni Efimenko
1111 */
12- @Contains(value = " sortBy" , set = " setSortBy " , message = " Collection is not contains value for sorting" )
12+ @Contains(value = " sortBy" , map = " mapSortBy " , message = " Collection is not contains value for sorting" )
1313open class PageRequest (
1414 @field:Min(value = 0) var offset : Int = 0 ,
1515 @field:Min(value = 1) @field:Max(100) var limit : Int = 10 ,
1616 var sortDirection : Sort .Direction = Sort .Direction .ASC ,
17- var sortBy : String = ID_FIELD ,
18- private val setSortBy : Set <String > = setOf (ID_FIELD )
17+ var sortBy : String = ID_FIELD .first ,
18+ private val mapSortBy : Map <String , String > = mapOf (ID_FIELD )
1919) : Pageable {
2020
2121 companion object {
22- const val ID_FIELD = " id"
22+ val ID_FIELD = " id " to " id"
2323 }
2424
2525
@@ -28,25 +28,25 @@ open class PageRequest(
2828 override fun hasPrevious (): Boolean = offset > 0
2929
3030 override fun getSort (): Sort {
31- if (sortBy == ID_FIELD ) {
32- return Sort (sortDirection, ID_FIELD )
31+ if (sortBy == ID_FIELD .first ) {
32+ return Sort (sortDirection, ID_FIELD .second )
3333 }
34- return Sort (sortDirection, sortBy, ID_FIELD )
34+ return Sort (sortDirection, mapSortBy[ sortBy] , ID_FIELD .second )
3535 }
3636
37- override fun next (): Pageable = PageRequest (offset + limit, limit, sortDirection, sortBy, setSortBy )
37+ override fun next (): Pageable = PageRequest (offset + limit, limit, sortDirection, sortBy, mapSortBy )
3838
3939 override fun getPageSize (): Int = limit
4040
4141 override fun getOffset (): Long = offset.toLong()
4242
43- override fun first (): Pageable = PageRequest (0 , limit, sortDirection, sortBy, setSortBy )
43+ override fun first (): Pageable = PageRequest (0 , limit, sortDirection, sortBy, mapSortBy )
4444
4545 private fun previous (): Pageable {
4646 if (hasPrevious()) {
4747 var newOffset = this .offset - limit
4848 if (newOffset < 0 ) newOffset = 0
49- return PageRequest (newOffset, limit, sortDirection, sortBy, setSortBy )
49+ return PageRequest (newOffset, limit, sortDirection, sortBy, mapSortBy )
5050 }
5151 return first()
5252 }
@@ -63,7 +63,7 @@ open class PageRequest(
6363 if (limit != other.limit) return false
6464 if (sortDirection != other.sortDirection) return false
6565 if (sortBy != other.sortBy) return false
66- if (setSortBy != other.setSortBy ) return false
66+ if (mapSortBy != other.mapSortBy ) return false
6767
6868 return true
6969 }
@@ -73,7 +73,7 @@ open class PageRequest(
7373 result = 31 * result + limit
7474 result = 31 * result + sortDirection.hashCode()
7575 result = 31 * result + sortBy.hashCode()
76- result = 31 * result + setSortBy .hashCode()
76+ result = 31 * result + mapSortBy .hashCode()
7777 return result
7878 }
7979
0 commit comments