code: @Override
      public Long indexValue(String name, Object value) {
          if (value == null) {
              return null;
          } else if (value instanceof Date) {
              return ((Date) value).getTime();
          } else if (value instanceof Number) {
              return ((Number) value).longValue();
          } else if (value instanceof String) {
              try {
                  return concurrentDateFormat.get().parse(value.toString()).getTime();
              } catch (ParseException e) {
                  throw new IllegalArgumentException(e);
              }
          } else {
              throw new IllegalArgumentException();
          }
      }
docs: {@inheritDoc}