All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ybo.trackingplugin.tasks.utils.impl.patterns.searchers.BasePatternSearcher.kt Maven / Gradle / Ivy

Go to download

gradle plugin allowing to add automatic logs (or other process) at the start of each traced method

There is a newer version: 0.6.2
Show newest version
package com.ybo.trackingplugin.tasks.utils.impl.patterns.searchers

import com.ybo.trackingplugin.tasks.data.PatternToSearch
import com.ybo.trackingplugin.tasks.utils.PatternSearcher
import com.ybo.trackingplugin.tasks.utils.impl.patterns.PatternName
import com.ybo.trackingplugin.tasks.utils.impl.patterns.searchers.resolvers.PatternResolver

internal open class BasePatternSearcher(
    private val resolver: PatternResolver,
) : PatternSearcher {

    override fun search(
        text: String,
        patterns: List>,
    ): List> {
        return patterns.mapNotNull { pattern ->
            val matcher = pattern.regex().findAll(text)
            if (matcher.count() == 0) {
                null
            } else {
                PatternSearcher.GroupOfResult(
                    patternName = pattern.name,
                    results = matcher
                        .map { resolver.resolve(it, pattern.name) }
                        .toList(),
                )
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy