docs: public static PrimitiveValue parse(final String value, final PrimitiveType primitiveType)
      {
          switch (primitiveType)
          {
              case CHAR:
                  if (value.length() > 1)
                  {
                      throw new IllegalArgumentException("Constant char value malformed: " + value);
                  }
                  return new PrimitiveValue((long)value.getBytes(US_ASCII)[0], 1);
  
              case INT8:
                  return new PrimitiveValue(Byte.parseByte(value), 1);
  
              case INT16:
                  return new PrimitiveValue(Short.parseShort(value), 2);
  
              case INT32:
                  return new PrimitiveValue(Integer.parseInt(value), 4);
  
              case INT64:
                  return new PrimitiveValue(Long.parseLong(value), 8);
  
              case UINT8:
                  return new PrimitiveValue(Short.parseShort(value), 1);
  
              case UINT16:
                  return new PrimitiveValue(Integer.parseInt(value), 2);
  
              case UINT32:
                  return new PrimitiveValue(Long.parseLong(value), 4);
  
              case UINT64:
                  final BigInteger biValue = new BigInteger(value);
                  if (biValue.compareTo(BI_NULL_VALUE_UINT64) > 0)
                  {
                      throw new IllegalArgumentException("Value greater than UINT64 allows: value=" + value);
                  }
                  return new PrimitiveValue(biValue.longValue(), 8);
  
              case FLOAT:
                  return new PrimitiveValue(Float.parseFloat(value), 4);
  
              case DOUBLE:
                  return new PrimitiveValue(Double.parseDouble(value), 8);
  
              default:
                  throw new IllegalArgumentException("Unknown PrimitiveType: " + primitiveType);
          }
      }