code: protected IntegerWithUoM eval(final Object... _values)
      {
          final IntegerWithUoM ret;
  
          if ((_values == null) || (_values.length < 2))  {
              ret = null;
          } else  {
              final Integer value;
              if ((_values[0] instanceof String) && (((String) _values[0]).length() > 0)) {
                  value = Integer.parseInt((String) _values[0]);
              } else if (_values[0] instanceof Number) {
                  value = ((Number) _values[0]).intValue();
              } else  {
                  value = null;
              }
  
              final UoM uom;
              if (_values[1] instanceof UoM) {
                  uom = (UoM) _values[1];
              } else if ((_values[1] instanceof String) && (((String) _values[1]).length() > 0)) {
                  uom = Dimension.getUoM(Long.parseLong((String) _values[1]));
              } else if (_values[1] instanceof Number) {
                  uom = Dimension.getUoM(((Number) _values[1]).longValue());
              } else  {
                  uom = null;
              }
              ret = new IntegerWithUoM(value, uom);
          }
          return ret;
      }
docs: The localized string and the internal string value are equal. So the
  internal value can be set directly with method {@link #setValue}.
  
  @param _values new value to set
  @return related value with unit of measure