]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-5128: Converted Person birthDate and deathDate to structuredDateGroups
authorAmy Wieliczka <amywieliczka@berkeley.edu>
Sat, 12 May 2012 00:09:05 +0000 (17:09 -0700)
committerAmy Wieliczka <amywieliczka@berkeley.edu>
Sat, 12 May 2012 00:09:05 +0000 (17:09 -0700)
services/person/3rdparty/nuxeo-platform-cs-person/src/main/resources/OSGI-INF/layouts-contrib.xml
services/person/3rdparty/nuxeo-platform-cs-person/src/main/resources/schemas/persons_common.xsd
services/person/client/src/main/java/org/collectionspace/services/client/PersonAuthorityClientUtils.java
services/person/jaxb/src/main/resources/person_common.xsd
services/person/sample/sample/src/main/java/org/collectionspace/services/person/client/sample/Sample.java

index f5099c5f759da8a6d38204115cdb44c9937edab8..309e8bb75fc35eb779cf5f806afa1493d5794d6b 100644 (file)
@@ -89,8 +89,6 @@
         <row><widget>salutation</widget></row>
         <row><widget>title</widget></row>
         <row><widget>nameAdditions</widget></row>
-        <row><widget>birthDate</widget></row>
-        <row><widget>deathDate</widget></row>
         <row><widget>birthPlace</widget></row>
         <row><widget>deathPlace</widget></row>
         <!-- Repeatable fields are commented out for now until we -->
           <property name="styleClass">dataInputText</property>
         </properties>
       </widget>
-      
-      <widget name="birthDate" type="text">
-        <labels>
-          <label mode="any">birthDate</label>
-        </labels>
-        <translated>true</translated>
-        <fields>
-          <field schema="persons_common">birthDate</field>
-        </fields>
-        <properties widgetMode="edit">
-          <property name="styleClass">dataInputText</property>
-        </properties>
-      </widget>
-      
-      <widget name="deathDate" type="text">
-        <labels>
-          <label mode="any">deathDate</label>
-        </labels>
-        <translated>true</translated>
-        <fields>
-          <field schema="persons_common">deathDate</field>
-        </fields>
-        <properties widgetMode="edit">
-          <property name="styleClass">dataInputText</property>
-        </properties>
-      </widget>
-      
+            
       <widget name="birthPlace" type="text">
         <labels>
           <label mode="any">birthPlace</label>
index 56cc99ce344d6ad11e351f8e097133f279c59c3a..a5678030bf793efd447fffbdaf3147b64570c16c 100644 (file)
@@ -30,8 +30,8 @@
     <xs:element name="personTermGroupList" type="personTermGroupList"/>
     
     <xs:element name="description" type="xs:string"/>
-    <xs:element name="birthDate" type="xs:string"/>
-    <xs:element name="deathDate" type="xs:string"/>
+    <xs:element name="birthDate" type="structuredDateGroup"/>
+    <xs:element name="deathDate" type="structuredDateGroup"/>
     <xs:element name="birthPlace" type="xs:string"/>
     <xs:element name="deathPlace" type="xs:string"/>
     <xs:element name="groups">
             <xs:element name="nameAdditions" type="xs:string"/>
         </xs:sequence>
     </xs:complexType>
+    
+    <!-- Before (re)using this generic complex type in any record type -->
+    <!-- other than CollectionObject, be sure to verify that Nuxeo handles -->
+    <!-- that correctly in its table creation/row linking. -->
+    <xs:complexType name="structuredDateGroup">
+        <xs:sequence>
+            <xs:element name="dateDisplayDate" type="xs:string"/>
+            <xs:element name="dateAssociation" type="xs:string"/>
+            <xs:element name="dateEarliestSingleYear" type="xs:integer"/>
+            <xs:element name="dateEarliestSingleMonth" type="xs:integer"/>
+            <xs:element name="dateEarliestSingleDay" type="xs:integer"/>
+            <xs:element name="dateEarliestSingleEra" type="xs:string"/>
+            <xs:element name="dateEarliestSingleCertainty" type="xs:string"/>
+            <xs:element name="dateEarliestSingleQualifier" type="xs:string"/>
+            <xs:element name="dateEarliestSingleQualifierValue" type="xs:integer"/>
+            <xs:element name="dateEarliestSingleQualifierUnit" type="xs:string"/>
+            <xs:element name="dateLatestYear" type="xs:integer"/>
+            <xs:element name="dateLatestMonth" type="xs:integer"/>
+            <xs:element name="dateLatestDay" type="xs:integer"/>
+            <xs:element name="dateLatestEra" type="xs:string"/>
+            <xs:element name="dateLatestCertainty" type="xs:string"/>
+            <xs:element name="dateLatestQualifier" type="xs:string"/>
+            <xs:element name="dateLatestQualifierValue" type="xs:integer"/>
+            <xs:element name="dateLatestQualifierUnit" type="xs:string"/>
+            <xs:element name="datePeriod" type="xs:string"/>
+            <xs:element name="dateNote" type="xs:string"/>
+            <xs:element name="dateEarliestScalarValue" type="xs:date"/>
+            <xs:element name="dateLatestScalarValue" type="xs:date"/>
+            <xs:element name="scalarValuesComputed" type="xs:boolean"/>
+        </xs:sequence>
+    </xs:complexType>
 
 </xs:schema>
 
index 83ccfd6e39ad3f5674b7059ee553ae23b69a549b..75745ebf7e37c5a4c9ebeff331d06d9f626efc10 100644 (file)
@@ -47,6 +47,7 @@ import org.jboss.resteasy.client.ClientResponse;
 //import org.jboss.resteasy.plugins.providers.multipart.OutputPart;\r
 import org.slf4j.Logger;\r
 import org.slf4j.LoggerFactory;\r
+import org.collectionspace.services.person.StructuredDateGroup;\r
 \r
 /**\r
  * The Class PersonAuthorityClientUtils.\r
@@ -203,10 +204,16 @@ public class PersonAuthorityClientUtils {
        String value;\r
         List<String> values = null;\r
 \r
-        if((value = (String)personInfo.get(PersonJAXBSchema.BIRTH_DATE))!=null)\r
-               person.setBirthDate(value);\r
-        if((value = (String)personInfo.get(PersonJAXBSchema.DEATH_DATE))!=null)\r
-               person.setDeathDate(value);\r
+        if((value = (String)personInfo.get(PersonJAXBSchema.BIRTH_DATE))!=null) {\r
+            StructuredDateGroup birthDate = new StructuredDateGroup();\r
+            birthDate.setDateDisplayDate(value);\r
+            person.setBirthDate(birthDate);\r
+        }\r
+        if((value = (String)personInfo.get(PersonJAXBSchema.DEATH_DATE))!=null) {\r
+            StructuredDateGroup deathDate = new StructuredDateGroup();\r
+            deathDate.setDateDisplayDate(value);\r
+            person.setDeathDate(deathDate);\r
+        }\r
         if((value = (String)personInfo.get(PersonJAXBSchema.BIRTH_PLACE))!=null)\r
                person.setBirthPlace(value);\r
         if((value = (String)personInfo.get(PersonJAXBSchema.DEATH_PLACE))!=null)\r
@@ -409,8 +416,8 @@ public class PersonAuthorityClientUtils {
      * @return display name\r
      */\r
     public static String prepareDefaultDisplayName(\r
-               String foreName, String middleName, String surName,\r
-               String birthDate, String deathDate ) {\r
+               String foreName, String middleName, String surName, \r
+            String birthDate, String deathDate) {\r
        StringBuilder newStr = new StringBuilder();\r
                final String sep = " ";\r
                final String dateSep = "-";\r
@@ -428,23 +435,23 @@ public class PersonAuthorityClientUtils {
        }\r
        // Now we add the dates. In theory could have dates with no name, but that is their problem.\r
        boolean foundBirth = false;\r
-               if(null != birthDate) {\r
-                       if(firstAdded) {\r
-                               newStr.append(sep);\r
-                       }\r
-                       newStr.append(birthDate);\r
-               newStr.append(dateSep);         // Put this in whether there is a death date or not\r
-                       foundBirth = true;\r
-               }\r
-               if(null != deathDate) {\r
-                       if(!foundBirth) {\r
-                               if(firstAdded) {\r
-                                       newStr.append(sep);\r
-                               }\r
-                       newStr.append(dateSep);\r
-                       }\r
-                       newStr.append(deathDate);\r
-               }\r
+        if(null != birthDate) {\r
+         if(firstAdded) {\r
+             newStr.append(sep);\r
+         }\r
+         newStr.append(birthDate);\r
+                 newStr.append(dateSep);     // Put this in whether there is a death date or not\r
+         foundBirth = true;\r
+        }\r
+        if(null != deathDate) {\r
+         if(!foundBirth) {\r
+             if(firstAdded) {\r
+                 newStr.append(sep);\r
+             }\r
+             newStr.append(dateSep);\r
+         }\r
+         newStr.append(deathDate);\r
+        }\r
                return newStr.toString();\r
     }\r
     \r
index 62402ff702720bca2be93d0e71b26fba8c7a28a7..c09112e52dbd75ffc381c6952b15244eb4d2aadc 100644 (file)
@@ -40,8 +40,8 @@
                 <xs:element name="personTermGroupList" type="personTermGroupList"/>
 
                 <xs:element name="description" type="xs:string"/>
-                <xs:element name="birthDate" type="xs:string"/>
-                <xs:element name="deathDate" type="xs:string"/>
+                <xs:element name="birthDate" type="structuredDateGroup"/>
+                <xs:element name="deathDate" type="structuredDateGroup"/>
                 <xs:element name="birthPlace" type="xs:string"/>
                 <xs:element name="deathPlace" type="xs:string"/>
                 <xs:element name="groups" type="groupList"/>
         </xs:sequence>
     </xs:complexType>
     
+    
+    <!-- Before (re)using this generic complex type in any record type -->
+    <!-- other than CollectionObject, be sure to verify that Nuxeo handles -->
+    <!-- that correctly in its table creation/row linking. -->
+    <xs:complexType name="structuredDateGroup">
+        <xs:sequence>
+            <xs:element name="dateDisplayDate" type="xs:string"/>
+            <xs:element name="dateAssociation" type="xs:string"/>
+            <xs:element name="dateEarliestSingleYear" type="xs:integer"/>
+            <xs:element name="dateEarliestSingleMonth" type="xs:integer"/>
+            <xs:element name="dateEarliestSingleDay" type="xs:integer"/>
+            <xs:element name="dateEarliestSingleEra" type="xs:string"/>
+            <xs:element name="dateEarliestSingleCertainty" type="xs:string"/>
+            <xs:element name="dateEarliestSingleQualifier" type="xs:string"/>
+            <xs:element name="dateEarliestSingleQualifierValue" type="xs:integer"/>
+            <xs:element name="dateEarliestSingleQualifierUnit" type="xs:string"/>
+            <xs:element name="dateLatestYear" type="xs:integer"/>
+            <xs:element name="dateLatestMonth" type="xs:integer"/>
+            <xs:element name="dateLatestDay" type="xs:integer"/>
+            <xs:element name="dateLatestEra" type="xs:string"/>
+            <xs:element name="dateLatestCertainty" type="xs:string"/>
+            <xs:element name="dateLatestQualifier" type="xs:string"/>
+            <xs:element name="dateLatestQualifierValue" type="xs:integer"/>
+            <xs:element name="dateLatestQualifierUnit" type="xs:string"/>
+            <xs:element name="datePeriod" type="xs:string"/>
+            <xs:element name="dateNote" type="xs:string"/>
+            <xs:element name="dateEarliestScalarValue" type="xs:date"/>
+            <xs:element name="dateLatestScalarValue" type="xs:date"/>
+            <xs:element name="scalarValuesComputed" type="xs:boolean"/>
+        </xs:sequence>
+    </xs:complexType>
+    
 </xs:schema>
 
index 3ff81ae99837a655f512866c287900ce2d89a2d3..105d374313f236fad4d5329b0ba29607249c2ca7 100644 (file)
@@ -123,8 +123,8 @@ public class Sample {
        String foreName = personMap.get(PersonJAXBSchema.FORE_NAME);\r
        String middleName = personMap.get(PersonJAXBSchema.MIDDLE_NAME);\r
        String surName = personMap.get(PersonJAXBSchema.SUR_NAME);\r
-       String birthDate = personMap.get(PersonJAXBSchema.BIRTH_DATE);\r
-       String deathDate = personMap.get(PersonJAXBSchema.DEATH_DATE);\r
+        String birthDate = personMap.get(PersonJAXBSchema.BIRTH_DATE);\r
+        String deathDate = personMap.get(PersonJAXBSchema.DEATH_DATE);\r
        StringBuilder builtName = new StringBuilder();\r
        if(foreName!=null)\r
                builtName.append(foreName);\r
@@ -132,11 +132,11 @@ public class Sample {
                builtName.append(middleName);\r
        if(surName!=null)\r
                builtName.append(surName);\r
-       if(birthDate!=null)\r
-               builtName.append(birthDate);\r
-               builtName.append("-");\r
-       if(deathDate!=null)\r
-               builtName.append(deathDate);\r
+        if(birthDate!=null)\r
+             builtName.append(birthDate);\r
+        builtName.append("-");\r
+        if(deathDate!=null)\r
+             builtName.append(deathDate);\r
 \r
         String displaySuffix = "displayName-" + System.currentTimeMillis(); //TODO: Laramie20100728 temp fix, made-up displaySuffix.\r
 \r
@@ -372,10 +372,16 @@ public class Sample {
                person.setTitle(value);\r
             if((value = (String)personInfo.get(PersonJAXBSchema.NAME_ADDITIONS))!=null)\r
                person.setNameAdditions(value);\r
-            if((value = (String)personInfo.get(PersonJAXBSchema.BIRTH_DATE))!=null)\r
-               person.setBirthDate(value);\r
-            if((value = (String)personInfo.get(PersonJAXBSchema.DEATH_DATE))!=null)\r
-               person.setDeathDate(value);\r
+            if((value = (String)personInfo.get(PersonJAXBSchema.BIRTH_DATE))!=null) {\r
+                StructuredDateGroup birthDate = new StructuredDateGroup();\r
+                birthDate.setDateDisplayDate(value);\r
+                person.setBirthDate(birthDate);\r
+            }\r
+            if((value = (String)personInfo.get(PersonJAXBSchema.DEATH_DATE))!=null) {\r
+                StructuredDateGroup deathDate = new StructuredDateGroup();\r
+                deathDate.setDateDisplayDate(value);\r
+                person.setDeathDate(deathDate);\r
+            }\r
             if((value = (String)personInfo.get(PersonJAXBSchema.BIRTH_PLACE))!=null)\r
                person.setBirthPlace(value);\r
             if((value = (String)personInfo.get(PersonJAXBSchema.DEATH_PLACE))!=null)\r