/*************************************************************************** * * {@inheritDoc} * **************************************************************************/ @Nonnull final public List<MetadataItemHolder<Item>> findOrCreateItems (@Nonnull final DataObject dataObject, @Nonnull final FindOption ... options) { logger.fine("findOrCreateItems(%s, %s)", dataObject, Arrays.toString(options)); if (dataObject == null) { throw new IllegalArgumentException("dataObject is mandatory"); } MetadataSpiUtils.validateOptions(options); final List<MetadataItemHolder<Item>> holders = findItems(itemClass, dataObject, options); // The new holder will have isAvailable() == false // FIXME: have a Map and make sure that the same instance for each DataObject is returned if (holders.isEmpty()) { holders.add(createNewItem()); } return holders; }