| 8 | package com.chronoxor.proto; |
| 9 | |
| 10 | public final class State implements Comparable<State> |
| 11 | { |
| 12 | public static final State unknown = new State(StateEnum.unknown); |
| 13 | public static final State invalid = new State(StateEnum.invalid); |
| 14 | public static final State initialized = new State(StateEnum.initialized); |
| 15 | public static final State calculated = new State(StateEnum.calculated); |
| 16 | public static final State broken = new State(StateEnum.broken); |
| 17 | public static final State good = new State(StateEnum.good); |
| 18 | public static final State bad = new State(StateEnum.bad); |
| 19 | |
| 20 | private StateEnum value = StateEnum.values()[0]; |
| 21 | private byte flags = value.getRaw(); |
| 22 | |
| 23 | public State() {} |
| 24 | public State(byte value) { setEnum(value); } |
| 25 | public State(StateEnum value) { setEnum(value); } |
| 26 | public State(java.util.EnumSet<StateEnum> value) { setEnum(value); } |
| 27 | public State(State value) { setEnum(value); } |
| 28 | |
| 29 | public StateEnum getEnum() { return value; } |
| 30 | public byte getRaw() { return flags; } |
| 31 | |
| 32 | public void setDefault() { setEnum((byte)0); } |
| 33 | |
| 34 | public void setEnum(byte value) { this.flags = value; this.value = StateEnum.mapValue(value); } |
| 35 | public void setEnum(StateEnum value) { this.value = value; this.flags = value.getRaw(); } |
| 36 | public void setEnum(java.util.EnumSet<StateEnum> value) { setEnum(State.fromSet(value)); } |
| 37 | public void setEnum(State value) { this.value = value.value; this.flags = value.flags; } |
| 38 | |
| 39 | public boolean hasFlags(byte flags) { return (((this.flags & flags) != 0) && ((this.flags & flags) == flags)); } |
| 40 | public boolean hasFlags(StateEnum flags) { return hasFlags(flags.getRaw()); } |
| 41 | public boolean hasFlags(State flags) { return hasFlags(flags.flags); } |
| 42 | |
| 43 | public State setFlags(byte flags) { setEnum((byte)(this.flags | flags)); return this; } |
| 44 | public State setFlags(StateEnum flags) { setFlags(flags.getRaw()); return this; } |
| 45 | public State setFlags(State flags) { setFlags(flags.flags); return this; } |
| 46 | |
| 47 | public State removeFlags(byte flags) { setEnum((byte)(this.flags & ~flags)); return this; } |
| 48 | public State removeFlags(StateEnum flags) { removeFlags(flags.getRaw()); return this; } |
| 49 | public State removeFlags(State flags) { removeFlags(flags.flags); return this; } |
| 50 | |
| 51 | public java.util.EnumSet<StateEnum> getAllSet() { return value.getAllSet(); } |
| 52 | public java.util.EnumSet<StateEnum> getNoneSet() { return value.getNoneSet(); } |
| 53 | public java.util.EnumSet<StateEnum> getCurrentSet() { return value.getCurrentSet(); } |
| 54 | |
| 55 | public static State fromSet(java.util.EnumSet<StateEnum> set) |
| 56 | { |
| 57 | byte result = 0; |
| 58 | if (set.contains(unknown.getEnum())) |
| 59 | { |
| 60 | result |= unknown.flags; |
| 61 | } |
| 62 | if (set.contains(invalid.getEnum())) |
| 63 | { |
| 64 | result |= invalid.flags; |
| 65 | } |
| 66 | if (set.contains(initialized.getEnum())) |
| 67 | { |