You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.0 KiB
89 lines
2.0 KiB
package network.Messages.Enums;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* Enumeration that encapsulates the various mark identities.
|
|
*/
|
|
public enum MarkRoundingIDEnum {
|
|
|
|
UNKNOWN(0),
|
|
|
|
|
|
ENTRY_LIMIT_LINE(100),
|
|
|
|
ENTRY_LINE(101),
|
|
|
|
START_LINE(102),
|
|
|
|
FINISH_LINE(103),
|
|
|
|
SPEED_TEST_START(104),
|
|
|
|
SPEED_TEST_FINISH(105),
|
|
|
|
CLEAR_START(106),
|
|
|
|
NOT_AN_ID(-1);
|
|
|
|
|
|
/**
|
|
* Primitive value of the enum.
|
|
*/
|
|
private byte value;
|
|
|
|
|
|
/**
|
|
* Ctor. Creates a {@link MarkRoundingIDEnum} from a given primitive integer value, cast to a byte.
|
|
* @param value Integer, which is cast to byte, to construct from.
|
|
*/
|
|
private MarkRoundingIDEnum(int value) {
|
|
this.value = (byte)value;
|
|
}
|
|
|
|
/**
|
|
* Returns the primitive value of the enum.
|
|
* @return Primitive value of the enum.
|
|
*/
|
|
public byte getValue() {
|
|
return value;
|
|
}
|
|
|
|
|
|
///Stores a mapping between Byte values and MarkRoundingIDEnum values.
|
|
private static final Map<Byte, MarkRoundingIDEnum> byteToIDMap = new HashMap<>();
|
|
|
|
|
|
/*
|
|
Static initialization block. Initializes the byteToIDMap.
|
|
*/
|
|
static {
|
|
for (MarkRoundingIDEnum type : MarkRoundingIDEnum.values()) {
|
|
byteToIDMap.put(type.value, type);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Returns the enumeration value which corresponds to a given byte value.
|
|
* @param sideByte Byte value to convert to a {@link MarkRoundingIDEnum} value.
|
|
* @return The {@link MarkRoundingIDEnum} value which corresponds to the given byte value.
|
|
*/
|
|
public static MarkRoundingIDEnum fromByte(byte sideByte) {
|
|
//Gets the corresponding MarkRoundingIDEnum from the map.
|
|
MarkRoundingIDEnum type = byteToIDMap.get(sideByte);
|
|
|
|
if (type == null) {
|
|
//If the byte value wasn't found, return the NOT_AN_ID MarkRoundingIDEnum.
|
|
return MarkRoundingIDEnum.NOT_AN_ID;
|
|
}
|
|
else {
|
|
//Otherwise, return the MarkRoundingIDEnum.
|
|
return type;
|
|
}
|
|
|
|
}
|
|
|
|
}
|