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

io.nosqlbench.nb.api.annotations.BuilderFacets Maven / Gradle / Ivy

package io.nosqlbench.nb.api.annotations;

public interface BuilderFacets {

    interface All extends
            WantsSession, WantsInterval, WantsLayer, WantsLabels, WantsMoreDetailsOrBuild, WantsMoreLabelsOrDetails {
    }

    interface WantsSession {
        /**
         * The session is the global name of a NoSQLBench process which run a scenario. It is required.
         */
        WantsInterval session(String session);
    }

    interface WantsInterval {

        /**
         * Specify the instant of the annotated event.
         *
         * @param epochMillis
         */
        WantsLayer at(long epochMillis);

        /**
         * An interval annotation spans the time between two instants.
         */
        WantsLayer interval(long startMillis, long endMillis);

        /**
         * Use the current UTC time as the annotation instant.
         */
        WantsLayer now();
    }

    interface WantsLayer {
        WantsMoreLabelsOrDetails layer(Layer layer);
    }

    interface WantsLabels {
        WantsMoreLabelsOrDetails label(String name, String value);
    }

    interface WantsMoreLabelsOrDetails {
        WantsMoreLabelsOrDetails label(String name, String value);

        WantsMoreDetailsOrBuild detail(String name, String value);
    }

    interface WantsMoreDetailsOrBuild {
        WantsMoreDetailsOrBuild detail(String name, String value);

        Annotation build();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy