private Object parseBoxedWrapper()

in hollow/src/main/java/com/netflix/hollow/core/write/objectmapper/HollowObjectTypeMapper.java [713:779]


        private Object parseBoxedWrapper(GenericHollowObject record) {
            switch (fieldType) {
                case BOOLEAN:
                    return Boolean.valueOf(record.getBoolean(fieldName));
                case INT:
                    int intValue = record.getInt(fieldName);
                    if (intValue == Integer.MIN_VALUE) {
                        return null;
                    }
                    return Integer.valueOf(intValue);
                case SHORT:
                    int shortValue = record.getInt(fieldName);
                    if (shortValue == Integer.MIN_VALUE) {
                        return null;
                    }
                    return Short.valueOf((short) shortValue);
                case BYTE:
                    int byteValue = record.getInt(fieldName);
                    if (byteValue == Integer.MIN_VALUE) {
                        return null;
                    }
                    return Byte.valueOf((byte) byteValue);
                case CHAR:
                    int charValue = record.getInt(fieldName);
                    if (charValue == Integer.MIN_VALUE) {
                        return null;
                    }
                    return Character.valueOf((char) charValue);
                case LONG:
                    long longValue = record.getLong(fieldName);
                    if (longValue == Long.MIN_VALUE) {
                        return null;
                    }
                    return Long.valueOf(longValue);
                case FLOAT:
                    float floatValue = record.getFloat(fieldName);
                    if (Float.isNaN(floatValue)) {
                        return null;
                    }
                    return Float.valueOf(floatValue);
                case DOUBLE:
                    double doubleValue = record.getDouble(fieldName);
                    if (Double.isNaN(doubleValue)) {
                        return null;
                    }
                    return Double.valueOf(doubleValue);
                case STRING:
                    return record.getString(fieldName);
                case BYTES:
                    return record.getBytes(fieldName);
                case ENUM_NAME:
                    String enumName = record.getString(fieldName);
                    if (enumName == null) {
                        return null;
                    }
                    return Enum.valueOf((Class<Enum>) clazz, enumName);
                case DATE_TIME: {
                    long dateValue = record.getLong(fieldName);
                    if (dateValue == Long.MIN_VALUE) {
                        return null;
                    }
                    return new Date(dateValue);
                }
                default:
                    throw new IllegalArgumentException("Unexpected field type " + fieldType + " for field " + fieldName);
            }
        }