private static <T> FieldInfo<?> getFieldInfo( final DataWriter dataWriter, final String fieldName, final Object fieldValue, final T entry, final VisibilityWriter<T> customFieldVisibilityWriter, final boolean visibilityEnabled) { final FieldWriter fieldWriter = dataWriter.getWriter(fieldName); final FieldVisibilityHandler<T, Object> customVisibilityHandler = customFieldVisibilityWriter.getFieldVisibilityHandler(fieldName); if (fieldWriter != null) { return new FieldInfo( fieldName, fieldWriter.writeField(fieldValue), visibilityEnabled ? DataStoreUtils.mergeVisibilities( customVisibilityHandler.getVisibility(entry, fieldName, fieldValue), fieldWriter.getVisibility(entry, fieldName, fieldValue)) : new byte[0]); } else if (fieldValue != null) { LOGGER.warn( "Data writer of class " + dataWriter.getClass() + " does not support field for " + fieldValue); } return null; }