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

kr.jm.metric.input.publisher.TransferSubmissionPublisherInterface Maven / Gradle / Ivy

There is a newer version: 0.2.7.3
Show newest version
package kr.jm.metric.input.publisher;

import kr.jm.metric.data.Transfer;
import kr.jm.utils.flow.publisher.JMPublisherInterface;
import kr.jm.utils.helper.JMOptional;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public interface TransferSubmissionPublisherInterface extends
        JMPublisherInterface>> {

    default int submit(String inputId, List dataList) {
        return submit(inputId, dataList, null);
    }

    default int submit(String inputId, List dataList,
            Map meta) {
        return submit(inputId, dataList, System.currentTimeMillis(), meta);
    }

    default int submit(String inputId, List dataList, long timestamp) {
        return submit(inputId, dataList, timestamp, null);
    }

    default int submit(String inputId, List dataList, long timestamp,
            Map meta) {
        return submit(
                JMOptional.getOptional(dataList).stream().flatMap(List::stream)
                        .map(data -> new Transfer<>(inputId, data, timestamp,
                                meta)).collect(Collectors.toList()));
    }

    int submit(List> transferList);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy