private Object parseBoxedWrapper()

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


        private Object parseBoxedWrapper(FlatRecordTraversalObjectNode record) {
            switch (fieldType) {
                case BOOLEAN:
                    return record.getFieldValueBooleanBoxed(fieldName);
                case INT:
                    return record.getFieldValueIntBoxed(fieldName);
                case SHORT:
                    int shortValue = record.getFieldValueInt(fieldName);
                    if (shortValue == Integer.MIN_VALUE) {
                        return null;
                    }
                    return Short.valueOf((short) shortValue);
                case BYTE:
                    int byteValue = record.getFieldValueInt(fieldName);
                    if (byteValue == Integer.MIN_VALUE) {
                        return null;
                    }
                    return Byte.valueOf((byte) byteValue);
                case CHAR:
                    int charValue = record.getFieldValueInt(fieldName);
                    if (charValue == Integer.MIN_VALUE) {
                        return null;
                    }
                    return Character.valueOf((char) charValue);
                case LONG:
                    return record.getFieldValueLongBoxed(fieldName);
                case FLOAT:
                    return record.getFieldValueFloatBoxed(fieldName);
                case DOUBLE:
                    return record.getFieldValueDoubleBoxed(fieldName);
                case STRING:
                    return record.getFieldValueString(fieldName);
                case BYTES:
                    return record.getFieldValueBytes(fieldName);
                case ENUM_NAME:
                    String enumName = record.getFieldValueString(fieldName);
                    if (enumName == null) {
                        return null;
                    }
                    return Enum.valueOf((Class<Enum>) clazz, enumName);
                case DATE_TIME: {
                    long dateValue = record.getFieldValueLong(fieldName);
                    if (dateValue == Long.MIN_VALUE) {
                        return null;
                    }
                    return new Date(dateValue);
                }
                default:
                    throw new IllegalArgumentException("Unexpected field type " + fieldType + " for field " + fieldName);
            }
        }