package org.infinispan.counter.api;
import org.infinispan.counter.exception.CounterOutOfBoundsException;
/**
* The counter types.
*
* @author Pedro Ruivo
* @since 9.0
*/
public enum CounterType {
/**
* A strong consistent and unbounded counter. The counter will never throw a {@link
* CounterOutOfBoundsException}.
*/
UNBOUNDED_STRONG,
/**
* A strong consistent and bounded counter. The counter will throw {@link CounterOutOfBoundsException}
* if the boundaries are reached. The upper and lower bound are inclusive.
*/
BOUNDED_STRONG,
/**
* A weak consistent counter. It focus on write performance and its counter value is only calculated at read time.
*/
WEAK;
private static final CounterType[] CACHED_VALUES = values();
public static CounterType valueOf(int index) {
return CACHED_VALUES[index];
}
}