Value (Object value) { Object normalized = value; if (value instanceof Byte || value instanceof Short) { normalized = ((Number)value).intValue(); } else if (value instanceof Character ch) { normalized = (int)ch; } if (normalized instanceof Integer || normalized instanceof String) { String presentation = getPresentation(value); if (presentation != null) { return new Value(presentation, presentation, normalized); } } throw new IllegalArgumentException("Unexpected constant supplied: " + value); }