EN · DE · RU · FR · ES

#203: CampaignValueFilterAdapter.kt

plugins/org.projectforge.plugins.marketing/src/main/kotlin/org/projectforge/plugins/marketing/rest/CampaignValueFilterAdapter.kt Тип: Kotlin · Роль: Регистрация плагина · Источник: plugins/org.projectforge.plugins.marketing/src/main/kotlin/org/projectforge/plugins/marketing/rest/CampaignValueFilterAdapter.kt 50 строк · 13 кода · 33 комментария · 4 пустых
Бин критериев фильтрации/поиска для запросов CampaignValueAdapter. Расширяет BaseSearchFilter, предоставляя типизированные параметры запроса для представлений списков и экспорта в Excel.

Структура кода

Аннотации: param

Классы: CampaignValueFilterAdapter

Супертип(ы): CustomResultFilter

Функции (1): match

Свойства (3): addressFilter, address, tempList

Импорты: 3 пакета

Пакет: org.projectforge.plugins.marketing.rest

Исходный код (сокращён)

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

/**
 * Универсальный адаптер, оборачивающий любой CustomResultFilter<AddressDO> для работы с AddressCampaignValueDO.
 * Это позволяет повторно использовать существующие фильтры адресов (например, FavoritesResultFilter, DoubletsResultFilter)
 * с кампанийными значениями адресов без дублирования логики фильтрации.
 *
 * @param addressFilter Фильтр адресов для обёртки
 */
class CampaignValueFilterAdapter(
    private val addressFilter: CustomResultFilter<AddressDO>
) : CustomResultFilter<AddressCampaignValueDO> {

    /**
     * Делегирует решение о соответствии обёрнутому фильтру адресов.
     * Возвращает false, если кампанийное значение не имеет связанного адреса.
     */
    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

868d6abb7 2025 -> 2026
594a957dc WIP: Кампанийные значения адресов