public void draw(LowLevelRenderer renderer) {
    int decimalSize = range.getValue() & 0xF;
    Object value = getData(DataSourceType.NUMBER, range.getValue());
    if (value == null) {
      return;
    }
    int intValue = (int) value;

    int digit_no = (range.getValue() >> 4) / 2 + 1 + decimalSize;
    boolean is_1X_format = (range.getValue() >> 4) % 2 == 0;

    if (is_1X_format) {
      drawOneStartingIntDigits(
          renderer,
          trimToRange(intValue, 0, 2 * pow(10, digit_no - 1) - 1),
          digit_no,
          decimalSize,
          x,
          y);
    } else {
      drawIntDigits(
          renderer,
          trimToRange(intValue, 0, pow(10, digit_no) - 1),
          digit_no,
          decimalSize,
          x,
          y,
          zeroPadded);
    }
  }
 public static NumberRange resolveByKey(int key) {
   for (NumberRange format : NumberRange.values()) {
     if (format.key == key) {
       return format;
     }
   }
   return null;
 }