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 · Role: Plugin Registration · Source: plugins/org.projectforge.plugins.marketing/src/main/kotlin/org/projectforge/plugins/marketing/rest/CampaignValueFilterAdapter.kt 50 lines · 13 code · 33 comments · 4 blank
Filter/search criteria bean for CampaignValueAdapter queries. Extends BaseSearchFilter to provide typed query parameters for list views and Excel exports.

Code Structure

Annotations: param

Classes: CampaignValueFilterAdapter

Supertype(s): CustomResultFilter

Functions (1): match

Properties (3): addressFilter, address, tempList

Imports: 3 packages

Package: org.projectforge.plugins.marketing.rest

Source Code (abridged)

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

/**
 * Generic adapter that wraps any CustomResultFilter<AddressDO> to work with AddressCampaignValueDO.
 * This allows reusing existing address filters (like FavoritesResultFilter, DoubletsResultFilter)
 * with address campaign values without duplicating filter logic.
 *
 * @param addressFilter The address filter to wrap
 */
class CampaignValueFilterAdapter(
    private val addressFilter: CustomResultFilter<AddressDO>
) : CustomResultFilter<AddressCampaignValueDO> {

    /**
     * Delegates the match decision to the wrapped address filter.
     * Returns false if the campaign value has no associated address.
     */
    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 History

868d6abb7 2025 -> 2026
594a957dc WIP: Address campaign values