Ejemplo n.º 1
0
  public void replaceMetadataValue(DCValue oldValue, DCValue newValue) {
    // check both dcvalues are for the same field
    if (oldValue.hasSameFieldAs(newValue)) {

      String schema = oldValue.schema;
      String element = oldValue.element;
      String qualifier = oldValue.qualifier;

      // Save all metadata for this field
      DCValue[] dcvalues = getMetadata(schema, element, qualifier, Item.ANY);
      clearMetadata(schema, element, qualifier, Item.ANY);
      for (DCValue dcvalue : dcvalues) {
        if (dcvalue.equals(oldValue)) {
          addMetadata(
              schema,
              element,
              qualifier,
              newValue.language,
              newValue.value,
              newValue.authority,
              newValue.confidence);
        } else {
          addMetadata(
              schema,
              element,
              qualifier,
              dcvalue.language,
              dcvalue.value,
              dcvalue.authority,
              dcvalue.confidence);
        }
      }
    }
  }