Update to stay in sync. with merged PRs

This commit is contained in:
Mark H. Wood
2014-10-22 12:48:06 -04:00
parent e440e64739
commit 1963282d54
4 changed files with 18 additions and 18 deletions

View File

@@ -11,7 +11,6 @@ import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.SolrInputDocument;
import org.dspace.content.DCValue;
import org.dspace.content.Item; import org.dspace.content.Item;
import org.dspace.utils.DSpace; import org.dspace.utils.DSpace;
import org.joda.time.DateTime; import org.joda.time.DateTime;
@@ -19,6 +18,7 @@ import org.joda.time.format.DateTimeFormatter;
import org.joda.time.format.ISODateTimeFormat; import org.joda.time.format.ISODateTimeFormat;
import java.util.*; import java.util.*;
import org.dspace.content.Metadatum;
/** /**
* *
@@ -167,8 +167,8 @@ public class AuthorityValue {
/** /**
* Replace an item's DCValue with this authority * Replace an item's DCValue with this authority
*/ */
public void updateItem(Item currentItem, DCValue value) { public void updateItem(Item currentItem, Metadatum value) {
DCValue newValue = value.copy(); Metadatum newValue = value.copy();
newValue.value = getValue(); newValue.value = getValue();
newValue.authority = getId(); newValue.authority = getId();
currentItem.replaceMetadataValue(value,newValue); currentItem.replaceMetadataValue(value,newValue);

View File

@@ -9,7 +9,6 @@ package org.dspace.authority;
import org.apache.commons.cli.*; import org.apache.commons.cli.*;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.dspace.content.DCValue;
import org.dspace.content.Item; import org.dspace.content.Item;
import org.dspace.content.ItemIterator; import org.dspace.content.ItemIterator;
import org.dspace.core.ConfigurationManager; import org.dspace.core.ConfigurationManager;
@@ -20,6 +19,7 @@ import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import org.dspace.content.Metadatum;
/** /**
* *
@@ -150,9 +150,9 @@ public class UpdateAuthorities {
ItemIterator itemIterator = Item.findByMetadataFieldAuthority(context, authority.getField(), authority.getId()); ItemIterator itemIterator = Item.findByMetadataFieldAuthority(context, authority.getField(), authority.getId());
while (itemIterator.hasNext()) { while (itemIterator.hasNext()) {
Item next = itemIterator.next(); Item next = itemIterator.next();
List<DCValue> metadata = next.getMetadata(authority.getField(), authority.getId()); List<Metadatum> metadata = next.getMetadata(authority.getField(), authority.getId());
authority.updateItem(next, metadata.get(0)); //should be only one authority.updateItem(next, metadata.get(0)); //should be only one
List<DCValue> metadataAfter = next.getMetadata(authority.getField(), authority.getId()); List<Metadatum> metadataAfter = next.getMetadata(authority.getField(), authority.getId());
if (!metadata.get(0).value.equals(metadataAfter.get(0).value)) { if (!metadata.get(0).value.equals(metadataAfter.get(0).value)) {
print.println("Updated item with handle " + next.getHandle()); print.println("Updated item with handle " + next.getHandle());
} }

View File

@@ -12,7 +12,7 @@ import org.dspace.authority.AuthorityValueFinder;
import org.dspace.authority.AuthorityValueGenerator; import org.dspace.authority.AuthorityValueGenerator;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.dspace.content.DCValue; import org.dspace.content.Metadatum;
import org.dspace.content.Item; import org.dspace.content.Item;
import org.dspace.content.ItemIterator; import org.dspace.content.ItemIterator;
import org.dspace.core.ConfigurationManager; import org.dspace.core.ConfigurationManager;
@@ -107,7 +107,7 @@ public class DSpaceAuthorityIndexer implements AuthorityIndexerInterface {
// 1. iterate over the metadata values // 1. iterate over the metadata values
String metadataField = metadataFields.get(currentFieldIndex); String metadataField = metadataFields.get(currentFieldIndex);
DCValue[] values = currentItem.getMetadataByMetadataString(metadataField); Metadatum[] values = currentItem.getMetadataByMetadataString(metadataField);
if (currentMetadataIndex < values.length) { if (currentMetadataIndex < values.length) {
prepareNextValue(metadataField, values[currentMetadataIndex]); prepareNextValue(metadataField, values[currentMetadataIndex]);
@@ -156,7 +156,7 @@ public class DSpaceAuthorityIndexer implements AuthorityIndexerInterface {
* @param metadataField Is one of the fields defined in dspace.cfg to be indexed. * @param metadataField Is one of the fields defined in dspace.cfg to be indexed.
* @param value Is one of the values of the given metadataField in one of the items being indexed. * @param value Is one of the values of the given metadataField in one of the items being indexed.
*/ */
private void prepareNextValue(String metadataField, DCValue value) { private void prepareNextValue(String metadataField, Metadatum value) {
nextValue = null; nextValue = null;

View File

@@ -703,18 +703,18 @@ public abstract class DSpaceObject
return null; return null;
} }
public List<DCValue> getMetadata(String mdString, String authority) { public List<Metadatum> getMetadata(String mdString, String authority) {
String[] elements = getElements(mdString); String[] elements = getElements(mdString);
return getMetadata(elements[0], elements[1], elements[2], elements[3], authority); return getMetadata(elements[0], elements[1], elements[2], elements[3], authority);
} }
public List<DCValue> getMetadata(String schema, String element, String qualifier, String lang, String authority) { public List<Metadatum> getMetadata(String schema, String element, String qualifier, String lang, String authority) {
DCValue[] metadata = getMetadata(schema, element, qualifier, lang); Metadatum[] metadata = getMetadata(schema, element, qualifier, lang);
List<DCValue> dcValues = Arrays.asList(metadata); List<Metadatum> dcValues = Arrays.asList(metadata);
if (!authority.equals(Item.ANY)) { if (!authority.equals(Item.ANY)) {
Iterator<DCValue> iterator = dcValues.iterator(); Iterator<Metadatum> iterator = dcValues.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
DCValue dcValue = iterator.next(); Metadatum dcValue = iterator.next();
if (!authority.equals(dcValue.authority)) { if (!authority.equals(dcValue.authority)) {
iterator.remove(); iterator.remove();
} }
@@ -759,7 +759,7 @@ public abstract class DSpaceObject
return elements; return elements;
} }
public void replaceMetadataValue(DCValue oldValue, DCValue newValue) public void replaceMetadataValue(Metadatum oldValue, Metadatum newValue)
{ {
// check both dcvalues are for the same field // check both dcvalues are for the same field
if (oldValue.hasSameFieldAs(newValue)) { if (oldValue.hasSameFieldAs(newValue)) {
@@ -769,9 +769,9 @@ public abstract class DSpaceObject
String qualifier = oldValue.qualifier; String qualifier = oldValue.qualifier;
// Save all metadata for this field // Save all metadata for this field
DCValue[] dcvalues = getMetadata(schema, element, qualifier, Item.ANY); Metadatum[] dcvalues = getMetadata(schema, element, qualifier, Item.ANY);
clearMetadata(schema, element, qualifier, Item.ANY); clearMetadata(schema, element, qualifier, Item.ANY);
for (DCValue dcvalue : dcvalues) { for (Metadatum dcvalue : dcvalues) {
if (dcvalue.equals(oldValue)) { if (dcvalue.equals(oldValue)) {
addMetadata(schema, element, qualifier, newValue.language, newValue.value, newValue.authority, newValue.confidence); addMetadata(schema, element, qualifier, newValue.language, newValue.value, newValue.authority, newValue.confidence);
} else { } else {