/** * Saves user metadata. * * @param userId user name * @param holder metadata * @param merge true if the metadata should be merged with existing metadata */ @Override public void saveMetadata(final String userId, final HasMetadata holder, final boolean merge) { if (holder instanceof HasDefinitionMetadata) { final HasDefinitionMetadata defDto = (HasDefinitionMetadata) holder; // If the user is updating the definition metadata do a merge on the existing metadata final ObjectNode newMetadata = defDto.getDefinitionMetadata(); if (newMetadata != null) { saveDefinitionMetadata(defDto.getDefinitionName(), userId, Optional.of(newMetadata), merge); } } if (holder instanceof HasDataMetadata) { final HasDataMetadata dataDto = (HasDataMetadata) holder; // If the user is updating the data metadata and a separate data location exists, // do a merge on the existing metadata final ObjectNode newMetadata = dataDto.getDataMetadata(); if (newMetadata != null && dataDto.isDataExternal()) { saveDataMetadata(dataDto.getDataUri(), userId, Optional.of(newMetadata), merge); } } }
/** * Saves user metadata. * * @param userId user name * @param holder metadata * @param merge true if the metadata should be merged with existing metadata */ @Override public void saveMetadata(final String userId, final HasMetadata holder, final boolean merge) { if (holder instanceof HasDefinitionMetadata) { final HasDefinitionMetadata defDto = (HasDefinitionMetadata) holder; // If the user is updating the definition metadata do a merge on the existing metadata final ObjectNode newMetadata = defDto.getDefinitionMetadata(); if (newMetadata != null) { saveDefinitionMetadata(defDto.getDefinitionName(), userId, Optional.of(newMetadata), merge); } } if (holder instanceof HasDataMetadata) { final HasDataMetadata dataDto = (HasDataMetadata) holder; // If the user is updating the data metadata and a separate data location exists, // do a merge on the existing metadata final ObjectNode newMetadata = dataDto.getDataMetadata(); if (newMetadata != null && dataDto.isDataExternal()) { saveDataMetadata(dataDto.getDataUri(), userId, Optional.of(newMetadata), merge); } } }
if (oData.isDataExternal() && oData.getDataMetadata() != null && oData.getDataMetadata().size() > 0) { uris.add(oData.getDataUri()); dataMetadatas.add(oData); final String uri = oData.getDataUri(); final ObjectNode oNode = dataMap.get(uri); if (oData.getDataMetadata() != null && oData.getDataMetadata().size() != 0) { if (oNode == null) { insertDataMetadatas.add( new Object[]{ metacatJson.toJsonString(oData.getDataMetadata()), user, user, metacatJson.mergeIntoPrimary(oNode, oData.getDataMetadata()); updateDataMetadatas .add(new Object[]{metacatJson.toJsonString(oNode), user, uri});