2022-01-25 Die Extensions halten Einzug

Diese Woche gibt es gar nicht so viel Neues zu zeigen. Wir haben uns hauptsächlich mit Refactoring beschäftigt, da die Methodennamen teilweise von der Länge her ausgeartet sind. Es sind DataObjectMeta-Klassen entstanden, auf die direkt durch das DataObject zugegriffen werden kann. Somit wurde z.B. aus Folgendem in den AttributeProperties:

SP.fetch<IDataObjectMetaRepository>().fetch(dataObject::class)
dataObjectMeta.findAttributePropertyNameByDataObject(dataObject, this)

eine lesbarere Schreibweise:

dataObject.meta.instanceProperties.findAttributePropertyName(this)

Außerdem machen wir immer mehr von den Kotlin-Features Gebrauch und legen Extensions an, was das Coding nochmal etwas lesbarer macht, z.B.:

val KClass<out IDataObject>.properties: List<KMutableProperty<Any>>
    get() {
        return SP.fetch<IDataObjectMetaRepository>().fetch(this).properties
    }

fun List<AttributeProperty<out Any>>.createColumnValues(): ColumnValues {
    return SP.fetch<IColumnValueFactory>().createFromAttributeProperties(this)
}

Ansonsten unterstützt der QueryGenerator ein paar mehr Funktionen wie limit, offset, min und max und ist komplett unitgetestet und das war es diese Woche auch schon wieder mit unserem Fortschritt.