// Package: com.lightningkite.lightningdb // Generated by Khrysalis - customized. import { DataClassPathAccess, DataClassPathPartial, DataClassPathSelf } from './DataClassPath' import {Comparator, ReifiedType, TProperty1, setUpDataClass, safeCompare} from '@lightningkite/khrysalis-runtime' //! Declares com.lightningkite.lightningdb.SortPart export class SortPart { public constructor(public readonly field: DataClassPathPartial, public readonly ascending: boolean = true, public readonly ignoreCase: boolean = false) { } public static properties = ["field", "ascending", "ignoreCase"] public static propertyTypes(T: ReifiedType) { return {field: [DataClassPathPartial, T], ascending: [Boolean], ignoreCase: [Boolean]} } copy: (values: Partial>) => this; equals: (other: any) => boolean; hashCode: () => number; public static constructorKProperty1comSortPartTAnyBooleanBoolean(field: TProperty1, ascending: boolean = true, ignoreCase: boolean = false) { let result = new SortPart(new DataClassPathAccess(new DataClassPathSelf(), field), ascending, ignoreCase); return result; } } setUpDataClass(SortPart) //! Declares com.lightningkite.lightningdb.comparator>kotlin.collections.Listcom.lightningkite.lightningdb.SortPartcom.lightningkite.lightningdb.comparator.T export function xListComparatorGet(this_: Array>): (Comparator | null) { if (this_.length === 0) { return null } return (a: T, b: T): number => { for (const part of this_) { if (part.ignoreCase) { const aString = part.field.getAny(a) as string; const bString = part.field.getAny(b) as string; const result = aString.toLowerCase().compareTo(bString) if (!(result === 0)) { return part.ascending ? result : (-result) } } else { const result = safeCompare(a, b); if (!(result === 0)) { return part.ascending ? result : (-result) } } } return 0; }; }