static <T extends HasCapacity, R> String itemToStr(final T item) {
        if (item == null) {
            return "";
        } else if (item.getCapacityInfo() == null) {
            return LogUtil.message("{} - <NO CAPACITY INFO>",
                    item.getIdentifier());
        } else {
            final HasCapacityInfo capacityInfo = item.getCapacityInfo();
            return LogUtil.message("{} - used: {} ({}%), free {} ({}%), limit: {}, total: {}",
                    item.getIdentifier(),
                    optLongToStr(capacityInfo.getCapacityUsedBytes()),
                    optDoubleToStr(capacityInfo.getUsedCapacityPercent()),
                    optLongToStr(capacityInfo.getFreeCapacityBytes()),
                    optDoubleToStr(capacityInfo.getFreeCapacityPercent()),
                    optLongToStr(capacityInfo.getCapacityLimitBytes()),
                    optLongToStr(capacityInfo.getTotalCapacityBytes()));
        }
    }
Selects an item from the list containing more than one item.

@param filteredList Will not be null or empty
@return An item from the list. If one can't be selected then return null
and the fallback selector (if provided) will be used instead.
stroom-util/src/main/java/stroom/util/io/capacity/AbstractSelector.java