EN · DE · RU · FR · ES

#203 : CampaignValueFilterAdapter.kt

plugins/org.projectforge.plugins.marketing/src/main/kotlin/org/projectforge/plugins/marketing/rest/CampaignValueFilterAdapter.kt Type : Kotlin · Rôle : Enregistrement de plugin · Source : plugins/org.projectforge.plugins.marketing/src/main/kotlin/org/projectforge/plugins/marketing/rest/CampaignValueFilterAdapter.kt 50 lignes · 13 code · 33 commentaires · 4 vides
Bean de critères de filtre/recherche pour les requêtes CampaignValueAdapter. Étend BaseSearchFilter pour fournir des paramètres de requête typés pour les vues liste et les exportations Excel.

Structure du code

Annotations : param

Classes : CampaignValueFilterAdapter

Supertype(s) : CustomResultFilter

Fonctions (1) : match

Propriétés (3) : addressFilter, address, tempList

Importations : 3 paquetages

Paquetage : org.projectforge.plugins.marketing.rest

Code source (abrégé)

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

/**
 * Adaptateur générique qui encapsule tout CustomResultFilter<AddressDO> pour fonctionner avec AddressCampaignValueDO.
 * Cela permet de réutiliser les filtres d'adresse existants (comme FavoritesResultFilter, DoubletsResultFilter)
 * avec les valeurs de campagne d'adresse sans dupliquer la logique de filtrage.
 *
 * @param addressFilter Le filtre d'adresse à encapsuler
 */
class CampaignValueFilterAdapter(
    private val addressFilter: CustomResultFilter<AddressDO>
) : CustomResultFilter<AddressCampaignValueDO> {

    /**
     * Délègue la décision de correspondance au filtre d'adresse encapsulé.
     * Retourne false si la valeur de campagne n'a pas d'adresse associée.
     */
    override fun match(list: MutableList<AddressCampaignValueDO>, element: AddressCampaignValueDO): Boolean {
        val address = element.address ?: return false
        val tempList = mutableListOf<AddressDO>()
        return addressFilter.match(tempList, address)
    }
}

Historique Git

868d6abb7 2025 -> 2026
594a957dc WIP : Valeurs de campagne d'adresse