private Object verify(Object value, FieldType type, String fieldName) { if (TypeName.ARRAY.equals(type.getTypeName())) { List<Object> arrayElements = verifyArray( value, type.getCollectionElementType(), type.getCollectionElementTypeNullable(), fieldName); return arrayElements; } else if (TypeName.MAP.equals(type.getTypeName())) { Map<Object, Object> mapElements = verifyMap( value, type.getMapKeyType().getTypeName(), type.getMapValueType(), type.getMapValueTypeNullable(), fieldName); return mapElements; } else if (TypeName.ROW.equals(type.getTypeName())) { return verifyRow(value, fieldName); } else { return verifyPrimitiveType(value, type.getTypeName(), fieldName); } }