From da54af9c786490cb17596908686f9ed4cccd6ac6 Mon Sep 17 00:00:00 2001 From: Patrick Schmitz Date: Thu, 21 Apr 2011 19:06:36 +0000 Subject: [PATCH] CSPACE-3872 - Fix Location authority schema to put conditionNode and conditionNodeDate into a repeatable group. --- .../resources/schemas/locations_common.xsd | 16 +++++++++++-- .../client/LocationAuthorityClientUtils.java | 23 ++++++++++++++----- .../test/LocationAuthorityServiceTest.java | 9 +++++--- .../services/LocationJAXBSchema.java | 2 ++ .../src/main/resources/location_common.xsd | 16 +++++++++++-- 5 files changed, 53 insertions(+), 13 deletions(-) diff --git a/services/location/3rdparty/nuxeo-platform-cs-location/src/main/resources/schemas/locations_common.xsd b/services/location/3rdparty/nuxeo-platform-cs-location/src/main/resources/schemas/locations_common.xsd index 62c41681f..6028c10ec 100644 --- a/services/location/3rdparty/nuxeo-platform-cs-location/src/main/resources/schemas/locations_common.xsd +++ b/services/location/3rdparty/nuxeo-platform-cs-location/src/main/resources/schemas/locations_common.xsd @@ -31,12 +31,24 @@ - - + + + + + + + + + + + + + + diff --git a/services/location/client/src/main/java/org/collectionspace/services/client/LocationAuthorityClientUtils.java b/services/location/client/src/main/java/org/collectionspace/services/client/LocationAuthorityClientUtils.java index eb2f5fadd..d1ab2e8b1 100644 --- a/services/location/client/src/main/java/org/collectionspace/services/client/LocationAuthorityClientUtils.java +++ b/services/location/client/src/main/java/org/collectionspace/services/client/LocationAuthorityClientUtils.java @@ -14,6 +14,8 @@ import org.apache.commons.io.FileUtils; import org.collectionspace.services.LocationJAXBSchema; import org.collectionspace.services.client.test.ServiceRequestType; import org.collectionspace.services.location.LocationsCommon; +import org.collectionspace.services.location.ConditionGroupList; +import org.collectionspace.services.location.ConditionGroup; import org.collectionspace.services.location.LocationauthoritiesCommon; import org.dom4j.DocumentException; import org.jboss.resteasy.client.ClientResponse; @@ -54,12 +56,14 @@ public class LocationAuthorityClientUtils { /** * @param locationRefName The proper refName for this authority - * @param locationInfo the properties for the new Location + * @param locationInfo the properties for the new Location. Can pass in one condition + * note and date string. * @param headerLabel The common part label * @return The PoxPayloadOut payload for the create call */ public static PoxPayloadOut createLocationInstance( - String locationAuthRefName, Map locationInfo, String headerLabel){ + String locationAuthRefName, Map locationInfo, + String headerLabel){ LocationsCommon location = new LocationsCommon(); String shortId = locationInfo.get(LocationJAXBSchema.SHORT_IDENTIFIER); String displayName = locationInfo.get(LocationJAXBSchema.DISPLAY_NAME); @@ -72,10 +76,16 @@ public class LocationAuthorityClientUtils { location.setDisplayNameComputed(displayNameComputed); if((value = (String)locationInfo.get(LocationJAXBSchema.NAME))!=null) location.setName(value); - if((value = (String)locationInfo.get(LocationJAXBSchema.CONDITION_NOTE))!=null) - location.setConditionNote(value); - if((value = (String)locationInfo.get(LocationJAXBSchema.CONDITION_NOTE_DATE))!=null) - location.setConditionNoteDate(value); + if((value = (String)locationInfo.get(LocationJAXBSchema.CONDITION_NOTE))!=null) { + ConditionGroupList conditionGroupList = new ConditionGroupList(); + List conditionGroups = conditionGroupList.getConditionGroup(); + ConditionGroup conditionGroup = new ConditionGroup(); + conditionGroup.setConditionNote(value); + if((value = (String)locationInfo.get(LocationJAXBSchema.CONDITION_NOTE_DATE))!=null) + conditionGroup.setConditionNoteDate(value); + conditionGroups.add(conditionGroup); + location.setConditionGroupList(conditionGroupList); + } if((value = (String)locationInfo.get(LocationJAXBSchema.SECURITY_NOTE))!=null) location.setSecurityNote(value); if((value = (String)locationInfo.get(LocationJAXBSchema.ACCESS_NOTE))!=null) @@ -86,6 +96,7 @@ public class LocationAuthorityClientUtils { location.setAddress(value); if((value = (String)locationInfo.get(LocationJAXBSchema.TERM_STATUS))!=null) location.setTermStatus(value); + PoxPayloadOut multipart = new PoxPayloadOut(LocationAuthorityClient.SERVICE_ITEM_PAYLOAD_NAME); PayloadOutputPart commonPart = multipart.addPart(location, MediaType.APPLICATION_XML_TYPE); diff --git a/services/location/client/src/test/java/org/collectionspace/services/client/test/LocationAuthorityServiceTest.java b/services/location/client/src/test/java/org/collectionspace/services/client/test/LocationAuthorityServiceTest.java index 81b3babab..a35fe7616 100644 --- a/services/location/client/src/test/java/org/collectionspace/services/client/test/LocationAuthorityServiceTest.java +++ b/services/location/client/src/test/java/org/collectionspace/services/client/test/LocationAuthorityServiceTest.java @@ -156,9 +156,10 @@ public class LocationAuthorityServiceTest extends AbstractServiceTestImpl { //FI @Override protected PoxPayloadOut createInstance(String identifier) { LocationAuthorityClient client = new LocationAuthorityClient(); - String shortId = createIdentifier(); + String shortId = identifier; String displayName = "displayName-" + shortId; - String baseRefName = LocationAuthorityClientUtils.createLocationAuthRefName(shortId, null); + String baseRefName = + LocationAuthorityClientUtils.createLocationAuthRefName(shortId, null); PoxPayloadOut multipart = LocationAuthorityClientUtils.createLocationAuthorityInstance( displayName, shortId, client.getCommonPartName()); @@ -189,7 +190,9 @@ public class LocationAuthorityServiceTest extends AbstractServiceTestImpl { //FI LocationAuthorityClient client = new LocationAuthorityClient(); String shortId = createIdentifier(); String displayName = "displayName-" + shortId; - String baseRefName = LocationAuthorityClientUtils.createLocationAuthRefName(shortId, null); + String baseRefName = + LocationAuthorityClientUtils.createLocationAuthRefName(shortId, null); + PoxPayloadOut multipart = LocationAuthorityClientUtils.createLocationAuthorityInstance( displayName, shortId, client.getCommonPartName()); diff --git a/services/location/jaxb/src/main/java/org/collectionspace/services/LocationJAXBSchema.java b/services/location/jaxb/src/main/java/org/collectionspace/services/LocationJAXBSchema.java index 1621792a5..65ad36ae9 100644 --- a/services/location/jaxb/src/main/java/org/collectionspace/services/LocationJAXBSchema.java +++ b/services/location/jaxb/src/main/java/org/collectionspace/services/LocationJAXBSchema.java @@ -11,6 +11,8 @@ import org.collectionspace.services.common.vocabulary.AuthorityItemJAXBSchema; public interface LocationJAXBSchema extends AuthorityItemJAXBSchema { final static String LOCATIONS_COMMON = "locations_common"; final static String NAME = "name"; + final static String CONDITION_GROUP_LIST = "conditionGroupList"; + final static String CONDITION_GROUP = "conditionGroup"; final static String CONDITION_NOTE = "conditionNote"; final static String CONDITION_NOTE_DATE = "conditionNoteDate"; final static String SECURITY_NOTE = "securityNote"; diff --git a/services/location/jaxb/src/main/resources/location_common.xsd b/services/location/jaxb/src/main/resources/location_common.xsd index 673c55364..a21d01fa1 100644 --- a/services/location/jaxb/src/main/resources/location_common.xsd +++ b/services/location/jaxb/src/main/resources/location_common.xsd @@ -30,8 +30,7 @@ - - + @@ -40,6 +39,19 @@ + + + + + + + + + + + + + -- 2.47.3