code: static final <X extends Value> TypeInformation<X> getValueTypeInfo(Class<X> typeClass) {
  		if (Value.class.isAssignableFrom(typeClass) && !typeClass.equals(Value.class)) {
  			return new ValueTypeInfo<X>(typeClass);
  		}
  		else {
  			throw new InvalidTypesException("The given class is no subclass of " + Value.class.getName());
  		}
  	}
docs: --------------------------------------------------------------------------------------------