package com.nightscout.core.dexcom; import com.nightscout.core.utils.GlucoseReading; import net.tribe7.common.base.Optional; public enum SpecialValue { NONE("??0", 0), SENSOR_NOT_ACTIVE("?SN", 1), MINIMALLY_EGV_AB("??2", 2), NO_ANTENNA("?NA", 3), SENSOR_OUT_OF_CAL("?NC", 5), COUNTS_AB("?CD", 6), ABSOLUTE_AB("?AD", 9), POWER_AB("???", 10), RF_BAD_STATUS("?RF", 12); private String name; private int val; SpecialValue(String s, int i) { name = s; val = i; } public static Optional<SpecialValue> getEGVSpecialValue(int val) { for (SpecialValue e : values()) { if (e.getValue() == val) return Optional.of(e); } return Optional.absent(); } public static Optional<SpecialValue> getEGVSpecialValue(GlucoseReading reading) { return getEGVSpecialValue(reading.asMgdl()); } public static boolean isSpecialValue(GlucoseReading reading) { return isSpecialValue(reading.asMgdl()); } public static boolean isSpecialValue(int val) { return getEGVSpecialValue(val).isPresent(); } public int getValue() { return val; } public String toString() { return name; } }