/** * 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); } } }
final HasDefinitionMetadata oDef = (HasDefinitionMetadata) hasMetadata; names.add(oDef.getDefinitionName()); if (oDef.getDefinitionMetadata() != null) { definitionMetadatas.add(oDef); definitionMetadatas.forEach(oDef -> { final QualifiedName qualifiedName = oDef.getDefinitionName(); if (qualifiedName != null && oDef.getDefinitionMetadata() != null && oDef.getDefinitionMetadata().size() != 0) { final String name = qualifiedName.toString(); final ObjectNode oNode = definitionMap.get(name); if (oNode == null) { final Object[] o = new Object[]{ metacatJson.toJsonString(oDef.getDefinitionMetadata()), user, user, name, }; if (qualifiedName.isPartitionDefinition()) { insertPartitionDefinitionMetadatas.add(o); metacatJson.mergeIntoPrimary(oNode, oDef.getDefinitionMetadata()); final Object[] o = new Object[]{metacatJson.toJsonString(oNode), user, name}; if (qualifiedName.isPartitionDefinition()) {