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

io.wizzie.normalizer.funcs.FlatMapperFunction Maven / Gradle / Ivy

package io.wizzie.normalizer.funcs;

import io.wizzie.metrics.MetricsManager;
import org.apache.kafka.streams.KeyValue;
import org.apache.kafka.streams.kstream.KeyValueMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Map;

/**
 * This class is used to implement flat-mapper process where you can generate zero or more messages from one message
 */
public abstract class FlatMapperFunction implements Function>>>,
        KeyValueMapper, Iterable>>> {
    private final Logger log = LoggerFactory.getLogger(getClass());

    /**
     * Initialize flat mapper function
     * @param properties Properties for flat mapper function
     * @param metricsManager MetricsManager object for flat mapper function
     */
    @Override
    public void init(Map properties, MetricsManager metricsManager) {
        prepare(properties, metricsManager);
        log.info("   with {}", toString());
    }

    /**
     * Apply a flat mapper function to Key-Value Kafka message
     * @param key The key of Kafka message
     * @param value The value of Kafka message
     * @return A Iterable object with Kafka messages after apply flat mapper
     */
    @Override
    public Iterable>> apply(String key, Map value) {
        return process(key, value);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy