}
return name;
}
+
+
+ /**
+ * Extracts the display name from a refName. The refName may either be for an
+ * authority term, or an authority/procedure.
+ *
+ * @param refName The refName
+ * @return The display name contained in the refName
+ */
+ public static String getDisplayName(String refName) throws IllegalArgumentException {
+ String displayName = null;
+
+ try {
+ AuthorityTermInfo authorityTermInfo = parseAuthorityTermInfo(refName);
+ displayName = authorityTermInfo.displayName;
+ }
+ catch(IllegalArgumentException invalidAuthorityTermRefNameException) {
+ try {
+ AuthorityInfo termInfo = parseAuthorityInfo(refName);
+ displayName = termInfo.displayName;
+ }
+ catch(IllegalArgumentException invalidRefNameException) {
+ throw new IllegalArgumentException("Invalid refName");
+ }
+ }
+
+ return displayName;
+ }
/**
* Creates a refName in the name / shortIdentifier form.
<artifactId>commons-codec</artifactId>\r
<version>1.4</version>\r
</dependency>\r
+ <dependency>\r
+ <groupId>commons-lang</groupId>\r
+ <artifactId>commons-lang</artifactId>\r
+ <version>2.6</version>\r
+ </dependency>\r
<dependency>\r
<groupId>org.apache.tomcat</groupId>\r
<artifactId>dbcp</artifactId>\r
import javax.ws.rs.core.MultivaluedMap;
+import org.apache.commons.lang.StringUtils;
import org.collectionspace.services.client.Profiler;
import org.collectionspace.services.client.CollectionSpaceClient;
import org.collectionspace.services.client.IQueryManager;
import org.collectionspace.services.common.api.GregorianCalendarDateTimeUtils;
import org.collectionspace.services.common.api.RefName;
import org.collectionspace.services.common.api.RefName.RefNameInterface;
+import org.collectionspace.services.common.api.RefNameUtils;
import org.collectionspace.services.common.api.Tools;
import org.collectionspace.services.common.authorityref.AuthorityRefList;
import org.collectionspace.services.common.context.ServiceContext;
if (newRefNameOnUpdate.equalsIgnoreCase(oldRefNameOnUpdate) == false) {
result = true; // refNames are different so updates are needed
}
+ else {
+ String newDisplayNameOnUpdate = RefNameUtils.getDisplayName(newRefNameOnUpdate);
+ String oldDisplayNameOnUpdate = RefNameUtils.getDisplayName(oldRefNameOnUpdate);
+
+ if (StringUtils.equals(newDisplayNameOnUpdate, oldDisplayNameOnUpdate) == false) {
+ result = true; // display names are different so updates are needed
+ }
+ }
}
return result;