<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>
<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>
//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
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
* @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
}\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
<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>
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
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
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