package sk.stuba.fiit.perconik.eclipse.debug.core;
import java.util.Set;
import org.eclipse.debug.core.DebugEvent;
import sk.stuba.fiit.perconik.eclipse.jdt.core.JavaElementDeltaFlag;
import sk.stuba.fiit.perconik.utilities.constant.IntegralConstant;
import sk.stuba.fiit.perconik.utilities.constant.IntegralConstantSupport;
/**
* Debug event kinds.
*
* @see DebugEvent
*
* @author Pavol Zbell
* @since 1.0
*/
public enum DebugEventKind implements IntegralConstant {
/**
* @see DebugEvent#RESUME
*/
RESUME(DebugEvent.RESUME),
/**
* @see DebugEvent#SUSPEND
*/
SUSPEND(DebugEvent.SUSPEND),
/**
* @see DebugEvent#CREATE
*/
CREATE(DebugEvent.CREATE),
/**
* @see DebugEvent#TERMINATE
*/
TERMINATE(DebugEvent.TERMINATE),
/**
* @see DebugEvent#CHANGE
*/
CHANGE(DebugEvent.CHANGE),
/**
* @see DebugEvent#MODEL_SPECIFIC
*/
MODEL_SPECIFIC(DebugEvent.MODEL_SPECIFIC);
private static final IntegralConstantSupport<DebugEventKind> integers = IntegralConstantSupport.of(DebugEventKind.class);
private final int value;
private DebugEventKind(final int value) {
this.value = value;
}
public static Set<Integer> valuesAsIntegers() {
return integers.getIntegers();
}
public static int valuesAsInteger() {
return integers.getConstantsAsInteger();
}
public static int valuesAsInteger(final Set<JavaElementDeltaFlag> values) {
return IntegralConstantSupport.constantsAsInteger(values);
}
public static DebugEventKind valueOf(final int value) {
return integers.getConstant(value);
}
public static Set<DebugEventKind> setOf(final int values) {
return integers.getConstants(values);
}
public int getValue() {
return this.value;
}
}