package org.erlide.runtime.api; import java.util.EnumSet; public enum ErlDebugFlags { // @formatter:off DISTRIBUTED_DEBUG(1), ATTACH_ON_FIRST_CALL(2), ATTACH_ON_BREAKPOINT(4), ATTACH_ON_EXIT(8); // @formatter:on public static final EnumSet<ErlDebugFlags> DEFAULT_DEBUG_FLAGS = EnumSet .of(ATTACH_ON_BREAKPOINT); private final int flag; private ErlDebugFlags(final int flag) { this.flag = flag; } public int getFlag() { return flag; } public static int getFlag(final EnumSet<ErlDebugFlags> set) { int result = 0; for (final ErlDebugFlags f : set) { result |= f.getFlag(); } return result; } public static EnumSet<ErlDebugFlags> makeSet(final int flags) { final EnumSet<ErlDebugFlags> result = EnumSet.noneOf(ErlDebugFlags.class); for (final ErlDebugFlags f : ErlDebugFlags.values()) { if ((flags & f.getFlag()) != 0) { result.add(f); } } return result; } }