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

net.anotheria.moskito.aop.annotation.withsubclasses.AccumulateWithSubClasses Maven / Gradle / Ivy

There is a newer version: 4.0.3
Show newest version
package net.anotheria.moskito.aop.annotation.withsubclasses;

import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import net.anotheria.moskito.aop.annotation.Accumulate;
import net.anotheria.moskito.core.stats.TimeUnit;


/**
 * This annotation is a signaling annotation for aop style integration.
 * If found it will lead to creation of an accumulator(s).
 * The created accumulator(s) will have either a specified name(followed with '#' and a class name)
 * or a name consisting of producerID.valueName.interval.
 *
 *  Inherited by sub-classes if they don't have their own annotation of this type.
 *  In case if some sub-classes should not inherit this annotation consider changing it to {@link AccumulatesWithSubClasses}.
 *
 * @author sshscp
 * @see Accumulate
 * @see AccumulatesWithSubClasses
 */
@Inherited
@Target (ElementType.TYPE)
@Retention (RetentionPolicy.RUNTIME)
public @interface AccumulateWithSubClasses {
	/**
	 * Name of the accumulator. Optional, if set will be concatenated with '#' and a class name, otherwise - calculated from producerID.valueName.interval.
	 *
	 * @return name of the accumulator.
	 */
	String name() default "";

	/**
	 * Name of the value. This is in fact the only required settings. Depends on the StatsFactory you are using.
	 * Typically this will be Service stats and typically this value should be one of "TR", "TT", "CR", "MCR", "ERR", "Last", "Min", "Max", "Avg", "ERate".
	 * Note that 'req' is alias for 'TR'.
	 *
	 * @return name of the accumulated value.
	 */
	String valueName();

	/**
	 * Name of the interval. Default is 5 minutes.
	 *
	 * @return name of the interval.
	 */
	String intervalName() default "5m";

	/**
	 * TimeUnit. Default is milliseconds.
	 *
	 * @return time unit
	 */
	TimeUnit timeUnit() default TimeUnit.MILLISECONDS;

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy