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

io.vertx.up.uca.web.origin.JobInquirer Maven / Gradle / Ivy

The newest version!
package io.vertx.up.uca.web.origin;

import io.horizon.eon.VMessage;
import io.horizon.uca.log.Annal;
import io.vertx.up.annotations.Job;
import io.vertx.up.atom.worker.Mission;
import io.vertx.up.uca.rs.Extractor;
import io.vertx.up.uca.rs.config.JobExtractor;
import io.vertx.up.util.Ut;

import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;

public class JobInquirer implements Inquirer> {

    private static final Annal LOGGER = Annal.get(JobInquirer.class);

    private final transient Extractor extractor = Ut.singleton(JobExtractor.class);

    @Override
    public Set scan(final Set> clazzes) {
        final Set> jobs = clazzes.stream()
            .filter(item -> item.isAnnotationPresent(Job.class))
            .collect(Collectors.toSet());
        /* All classes of jobs here */
        LOGGER.info(VMessage.Inquirer.JOB, jobs.size());
        return jobs.stream().map(this.extractor::extract)
            .filter(Objects::nonNull)
            .collect(Collectors.toSet());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy