EN · DE · RU · FR · ES

#203: CampaignValueFilterAdapter.kt

plugins/org.projectforge.plugins.marketing/src/main/kotlin/org/projectforge/plugins/marketing/rest/CampaignValueFilterAdapter.kt Typ: Kotlin · Rolle: Plugin-Registrierung · Quelle: plugins/org.projectforge.plugins.marketing/src/main/kotlin/org/projectforge/plugins/marketing/rest/CampaignValueFilterAdapter.kt 50 Zeilen · 13 Code · 33 Kommentare · 4 leer
Filter-/Suchkriterien-Bean für CampaignValueAdapter-Abfragen. Erweitert BaseSearchFilter, um typisierte Abfrageparameter für Listenansichten und Excel-Exporte bereitzustellen.

Codestruktur

Annotationen: param

Klassen: CampaignValueFilterAdapter

Obertyp(en): CustomResultFilter

Funktionen (1): match

Eigenschaften (3): addressFilter, address, tempList

Importe: 3 Pakete

Paket: org.projectforge.plugins.marketing.rest

Quellcode (gekürzt)

package org.projectforge.plugins.marketing.rest

import org.projectforge.business.address.AddressDO
import org.projectforge.framework.persistence.api.impl.CustomResultFilter
import org.projectforge.plugins.marketing.AddressCampaignValueDO

/**
 * Generischer Adapter, der jeden CustomResultFilter<AddressDO> umschließt, um mit AddressCampaignValueDO zu arbeiten.
 * Dies ermöglicht die Wiederverwendung vorhandener Adressfilter (wie FavoritesResultFilter, DoubletsResultFilter)
 * mit Adresskampagnenwerten, ohne die Filterlogik zu duplizieren.
 *
 * @param addressFilter Der zu umschließende Adressfilter
 */
class CampaignValueFilterAdapter(
    private val addressFilter: CustomResultFilter<AddressDO>
) : CustomResultFilter<AddressCampaignValueDO> {

    /**
     * Delegiert die Entscheidung über die Übereinstimmung an den umschlossenen Adressfilter.
     * Gibt false zurück, wenn der Kampagnenwert keine zugehörige Adresse hat.
     */
    override fun match(list: MutableList<AddressCampaignValueDO>, element: AddressCampaignValueDO): Boolean {
        val address = element.address ?: return false
        val tempList = mutableListOf<AddressDO>()
        return addressFilter.match(tempList, address)
    }
}

Git-Verlauf

868d6abb7 2025 -> 2026
594a957dc WIP: Adresskampagnenwerte