code: @Override
      public String indexValue(String name, Object value) {
  
          // Check not null
          if (value == null) {
              return null;
          }
  
          // Parse big decimal
          String svalue = value.toString();
          BigInteger bi;
          try {
              bi = new BigInteger(svalue);
          } catch (NumberFormatException e) {
              String message = String.format("Field %s requires a base 10 integer, but found \"%s\"", name, svalue);
              throw new IllegalArgumentException(message);
          }
  
          // Check size
          if (bi.abs().toString().length() > digits) {
              throw new IllegalArgumentException("Value has more than " + digits + " digits");
          }
  
          // Map
          bi = bi.add(complement);
          String bis = encode(bi);
          return StringUtils.leftPad(bis, hexDigits + 1, '0');
      }
docs: {@inheritDoc}