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

com.ringcentral.platform.metrics.samples.SpecModsProvider Maven / Gradle / Ivy

package com.ringcentral.platform.metrics.samples;

import com.ringcentral.platform.metrics.MetricInstance;
import com.ringcentral.platform.metrics.infoProviders.PredicativeMetricNamedInfoProvider;
import com.ringcentral.platform.metrics.predicates.MetricNamedPredicate;
import com.ringcentral.platform.metrics.predicates.MetricNamedPredicateBuilder;

import java.util.List;
import java.util.function.Predicate;

public interface SpecModsProvider> extends PredicativeMetricNamedInfoProvider {
    default MP addMod(MetricNamedPredicateBuilder predicateBuilder, M mod) {
        return addMod(null, predicateBuilder, mod);
    }

    /**
     * @see #addInfo(String, MetricNamedPredicate, Object)
     */
    default MP addMod(String key, MetricNamedPredicateBuilder predicateBuilder, M mod) {
        return addMod(key, predicateBuilder.build(), mod);
    }

    default MP addMod(MetricNamedPredicate predicate, M mod) {
        return addMod(null, predicate, mod);
    }

    /**
     * @see #addInfo(String, MetricNamedPredicate, Object)
     */
    default MP addMod(String key, MetricNamedPredicate predicate, M mod) {
        return addInfo(key, predicate, mod);
    }

    @Override
    default MP addInfo(MetricNamedPredicate predicate, M info) {
        return addInfo(null, predicate, info);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    MP addInfo(String key, MetricNamedPredicate predicate, M info);

    /**
     * @see #removeInfo(String)
     */
    default MP removeMod(String key) {
        return removeInfo(key);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    MP removeInfo(String key);

    /**
     * @see #removeInfos(Predicate)
     */
    default MP removeMods(Predicate keyPredicate) {
        return removeInfos(keyPredicate);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    MP removeInfos(Predicate keyPredicate);

    default List modsFor(MetricInstance instance) {
        return infosFor(instance);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy