@ -55,16 +55,24 @@ sealed class QueryCondition : RowRepresentable {
}
}
inline fun < reified T : QueryCondition > more ( ) : T {
return newInstance ( T :: class ) . apply { this . operator = Operator . MORE }
// inline fun <reified T : QueryCondition> more(): T {
// return newInstance(T::class).apply { this.operator = Operator.MORE }
// }
//
// inline fun <reified T : QueryCondition> less(): T {
// return newInstance(T::class).apply { this.operator = Operator.LESS }
// }
inline fun < reified T : QueryCondition > moreOrEqual ( ) : T {
return newInstance ( T :: class ) . apply { this . operator = Operator . MORE _OR _EQUAL }
}
inline fun < reified T : QueryCondition > less ( ) : T {
return newInstance ( T :: class ) . apply { this . operator = Operator . LESS }
inline fun < reified T : QueryCondition > lessOrEqual ( ) : T {
return newInstance ( T :: class ) . apply { this . operator = Operator . LESS _OR _EQUAL }
}
inline fun < reified T : QueryCondition > moreOrLess ( ) : ArrayList < T > {
return arrayListOf ( more ( ) , less ( ) )
inline fun < reified T : QueryCondition > moreEqual OrLessEqual ( ) : ArrayList < T > {
return arrayListOf ( moreOrEqual ( ) , lessOrEqual ( ) )
}
fun < T : QueryCondition > valueOf ( name : String ) : T {
@ -104,7 +112,9 @@ sealed class QueryCondition : RowRepresentable {
ANY ,
ALL ,
MORE ,
MORE _OR _EQUAL ,
LESS ,
LESS _OR _EQUAL ,
EQUALS ,
TRUE ,
NOTNULL
@ -116,7 +126,7 @@ sealed class QueryCondition : RowRepresentable {
val groupId : String
get ( ) {
return when ( this . operator ) {
Operator . MORE , Operator . LESS -> return " ${this.operator.name.toLowerCase().capitalize()} $baseId "
Operator . MORE , Operator . LESS , Operator . MORE _OR _EQUAL , Operator . LESS _OR _EQUAL -> return " ${this.operator.name.toLowerCase().capitalize()} $baseId "
else -> this . baseId
}
}
@ -124,7 +134,7 @@ sealed class QueryCondition : RowRepresentable {
val id : List < String >
get ( ) {
when ( this . operator ) {
Operator . MORE , Operator . LESS -> return listOf ( " $baseId + ${this.operator.name} " )
Operator . MORE , Operator . LESS , Operator . MORE _OR _EQUAL , Operator . LESS _OR _EQUAL -> return listOf ( " $baseId + ${this.operator.name} " )
else -> { }
}
@ -542,19 +552,19 @@ sealed class QueryCondition : RowRepresentable {
}
class StartedFromDate ( date : Date ) : DateQuery ( date ) {
override var operator = Operator . MORE
override var operator = Operator . MORE _OR _EQUAL
}
class StartedToDate ( date : Date ) : DateQuery ( date ) {
override var operator = Operator . LESS
override var operator = Operator . LESS _OR _EQUAL
}
class EndedFromDate ( date : Date ) : DateQuery ( date ) {
override var operator = Operator . MORE
override var operator = Operator . MORE _OR _EQUAL
}
class EndedToDate ( date : Date ) : DateQuery ( date ) {
override var operator = Operator . LESS
override var operator = Operator . LESS _OR _EQUAL
}
class AnyDayOfWeek : ListOfInt ( ) {
@ -636,11 +646,11 @@ sealed class QueryCondition : RowRepresentable {
object BiggestBetNotNull : NotNullQueryCondition ( )
class StartedFromTime ( date : Date ) : TimeQuery ( date ) {
override var operator = Operator . MORE
override var operator = Operator . MORE _OR _EQUAL
}
class EndedToTime ( date : Date ) : TimeQuery ( date ) {
override var operator = Operator . LESS
override var operator = Operator . LESS _OR _EQUAL
}
interface CustomFieldRelated {
@ -857,12 +867,22 @@ sealed class QueryCondition : RowRepresentable {
else -> realmQuery
}
}
Operator . MORE -> {
Operator . MORE _OR _EQUAL -> {
when ( this ) {
is SingleDate -> realmQuery . greaterThanOrEqualTo ( fieldName , singleValue . startOfDay ( ) )
is Duration -> realmQuery . greaterThan ( fieldName , netDuration )
is TournamentFinalPosition -> realmQuery . greaterThanOrEqualTo ( fieldName , listOfValues . first ( ) )
is TournamentNumberOfPlayer -> realmQuery . greaterThanOrEqualTo ( fieldName , listOfValues . first ( ) )
is Duration -> realmQuery . greaterThanOrEqualTo ( fieldName , netDuration )
is SingleInt -> realmQuery . greaterThanOrEqualTo ( fieldName , singleValue )
is ListOfInt -> realmQuery . greaterThanOrEqualTo ( fieldName , listOfValues . first ( ) )
is NetAmountLost -> realmQuery . greaterThanOrEqualTo ( fieldName , listOfValues . first ( ) * - 1 )
is ListOfDouble -> realmQuery . greaterThanOrEqualTo ( fieldName , listOfValues . first ( ) * sign )
else -> realmQuery
}
}
Operator . MORE -> {
when ( this ) {
is Duration -> realmQuery . greaterThan ( fieldName , netDuration )
is SingleInt -> realmQuery . greaterThan ( fieldName , singleValue )
is ListOfInt -> realmQuery . greaterThan ( fieldName , listOfValues . first ( ) )
is NetAmountLost -> realmQuery . lessThan ( fieldName , listOfValues . first ( ) * - 1 )
@ -870,12 +890,30 @@ sealed class QueryCondition : RowRepresentable {
else -> realmQuery
}
}
Operator . LESS -> {
Operator . LESS _OR _EQUAL -> {
when ( this ) {
is SingleDate -> realmQuery . lessThanOrEqualTo ( fieldName , singleValue . endOfDay ( ) )
is Duration -> realmQuery . lessThan ( fieldName , netDuration )
is TournamentFinalPosition -> realmQuery . lessThanOrEqualTo ( fieldName , listOfValues . first ( ) )
is TournamentNumberOfPlayer -> realmQuery . lessThanOrEqualTo ( fieldName , listOfValues . first ( ) )
is Duration -> realmQuery . lessThanOrEqualTo ( fieldName , netDuration )
is SingleInt -> realmQuery . lessThanOrEqualTo ( fieldName , singleValue )
is ListOfInt -> realmQuery . lessThanOrEqualTo ( fieldName , listOfValues . first ( ) )
is NetAmountLost -> {
realmQuery . greaterThanOrEqualTo ( fieldName , listOfValues . first ( ) * - 1 )
realmQuery . lessThan ( fieldName , 0.0 )
}
is NetAmountWon -> {
realmQuery . lessThanOrEqualTo ( fieldName , listOfValues . first ( ) )
realmQuery . greaterThan ( fieldName , 0.0 )
}
is ListOfDouble -> realmQuery . lessThanOrEqualTo ( fieldName , listOfValues . first ( ) * sign )
else -> realmQuery
}
}
Operator . LESS -> {
when ( this ) {
is Duration -> realmQuery . lessThan ( fieldName , netDuration )
is SingleInt -> realmQuery . lessThan ( fieldName , singleValue )
is ListOfInt -> realmQuery . lessThan ( fieldName , listOfValues . first ( ) )
is NetAmountLost -> {
@ -932,8 +970,8 @@ sealed class QueryCondition : RowRepresentable {
is PastDay -> RowViewType . TITLE _VALUE _CHECK . ordinal
else -> {
when ( this . operator ) {
Operator . MORE -> RowViewType . TITLE _VALUE _CHECK . ordinal
Operator . LESS -> RowViewType . TITLE _VALUE _CHECK . ordinal
Operator . MORE , Operator . MORE _OR _EQUAL -> RowViewType . TITLE _VALUE _CHECK . ordinal
Operator . LESS , Operator . LESS _OR _EQUAL -> RowViewType . TITLE _VALUE _CHECK . ordinal
else -> RowViewType . TITLE _CHECK . ordinal
}
}
@ -946,8 +984,8 @@ sealed class QueryCondition : RowRepresentable {
is PastDay -> BottomSheetType . EDIT _TEXT
else -> {
when ( this . operator ) {
Operator . MORE -> BottomSheetType . EDIT _TEXT
Operator . LESS -> BottomSheetType . EDIT _TEXT
Operator . MORE , Operator . MORE _OR _EQUAL -> BottomSheetType . EDIT _TEXT
Operator . LESS , Operator . LESS _OR _EQUAL -> BottomSheetType . EDIT _TEXT
else -> BottomSheetType . NONE
}
}
@ -974,27 +1012,27 @@ sealed class QueryCondition : RowRepresentable {
is IsWeekDay -> R . string . week _days
is IsWeekEnd -> R . string . weekend
is PastDay -> R . string . period _in _days
is TournamentNumberOfPlayer -> {
when ( this . operator ) {
Operator . MORE -> R . string . minimum
Operator . LESS -> R . string . maximum
else -> null
}
}
is NetAmountWon -> {
when ( this . operator ) {
Operator . MORE -> R . string . won _amount _more _than
Operator . LESS -> R . string . won _amount _less _than
else -> null
}
}
is NetAmountLost -> {
when ( this . operator ) {
Operator . MORE -> R . string . lost _amount _more _than
Operator . LESS -> R . string . lost _amount _less _than
else -> null
}
}
// is TournamentNumberOfPlayer -> {
// when (this.operator) {
// Operator.MORE -> R.string. minimum
// Operator.LESS -> R.string. maximum
// else -> null
// }
// }
// is NetAmountWon -> {
// when (this.operator) {
// Operator.MORE -> R.string.won_amount_more _than
// Operator.LESS -> R.string.won_amount_less _than
// else -> null
// }
// }
// is NetAmountLost -> {
// when (this.operator) {
// Operator.MORE -> R.string.lost_amount_more _than
// Operator.LESS -> R.string.lost_amount_less _than
// else -> null
// }
// }
is TournamentFinalPosition -> {
when ( this . operator ) {
Operator . MORE -> R . string . minimum
@ -1004,8 +1042,10 @@ sealed class QueryCondition : RowRepresentable {
}
else -> {
when ( this . operator ) {
Operator . MORE -> R . string . more _than
Operator . LESS -> R . string . less _than
Operator . MORE _OR _EQUAL -> R . string . more _or _equal _sign
Operator . MORE -> R . string . more _sign
Operator . LESS _OR _EQUAL -> R . string . less _or _equal _sign
Operator . LESS -> R . string . less _sign
else -> null
}
}