<template mode="any">/layouts/layout_default_template.xhtml</template>
</templates>
<rows>
- <row><widget>accessionDate</widget></row>
+ <!-- <row><widget>accessionDate</widget></row> -->
<row><widget>acquisitionAuthorizer</widget></row>
<row><widget>acquisitionAuthorizerDate</widget></row>
<row><widget>acquisitionDate</widget></row>
<row><widget>fieldCollectionEventName</widget></row>
</rows>
- <widget name="accessionDate" type="text">
+ <!-- <widget name="accessionDate" type="text">
<labels>
<label mode="any">accessionDate</label>
</labels>
<properties widgetMode="edit">
<property name="styleClass">dataInputText</property>
</properties>
- </widget>
+ </widget> -->
<widget name="acquisitionAuthorizer" type="text">
<labels>
<!-- See http://wiki.collectionspace.org/display/collectionspace/Acquisition+Schema -->\r
\r
<!-- Object Entry Information Group -->\r
- <xs:element name="accessionDate" type="xs:date"/>\r
+ <xs:element name="accessionDate" type="structuredDateGroup"/>\r
<xs:element name="acquisitionAuthorizer" type="xs:string"/>\r
<xs:element name="acquisitionAuthorizerDate" type="xs:date"/>\r
<xs:element name="acquisitionDates">\r
<xs:complexType>\r
<xs:sequence>\r
- <xs:element name="acquisitionDate" type="xs:date" minOccurs="0" maxOccurs="unbounded"/>\r
+ <xs:element name="acquisitionDate" type="structuredDateGroup" minOccurs="0" maxOccurs="unbounded"/>\r
</xs:sequence>\r
</xs:complexType>\r
</xs:element>\r
+ \r
+ <!-- <xs:element name="acquisitionDateGroupList" type="acquisitionDateGroupList"/>\r
+ \r
+ <xs:complexType name="acquisitionDateGroupList">\r
+ <xs:sequence>\r
+ <xs:element name="acquisitionDateGroup" type="structuredDateGroup" minOccurs="0"\r
+ maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ </xs:complexType> -->\r
+ \r
<xs:element name="acquisitionFundingList" type="acquisitionFundingList"/>\r
<xs:element name="acquisitionMethod" type="xs:string"/>\r
<xs:element name="acquisitionNote" type="xs:string"/>\r
<xs:element name="acquisitionFundingSourceProvisos" type="xs:string"/>\r
</xs:sequence>\r
</xs:complexType>\r
+ \r
+ <!-- Before (re)using this generic complex type in any record type -->\r
+ <!-- other than CollectionObject, be sure to verify that Nuxeo handles -->\r
+ <!-- that correctly in its table creation/row linking. -->\r
+ <xs:complexType name="structuredDateGroup">\r
+ <xs:sequence>\r
+ <xs:element name="dateDisplayDate" type="xs:string"/>\r
+ <xs:element name="dateAssociation" type="xs:string"/>\r
+ <xs:element name="dateEarliestSingleYear" type="xs:integer"/>\r
+ <xs:element name="dateEarliestSingleMonth" type="xs:integer"/>\r
+ <xs:element name="dateEarliestSingleDay" type="xs:integer"/>\r
+ <xs:element name="dateEarliestSingleEra" type="xs:string"/>\r
+ <xs:element name="dateEarliestSingleCertainty" type="xs:string"/>\r
+ <xs:element name="dateEarliestSingleQualifier" type="xs:string"/>\r
+ <xs:element name="dateEarliestSingleQualifierValue" type="xs:integer"/>\r
+ <xs:element name="dateEarliestSingleQualifierUnit" type="xs:string"/>\r
+ <xs:element name="dateLatestYear" type="xs:integer"/>\r
+ <xs:element name="dateLatestMonth" type="xs:integer"/>\r
+ <xs:element name="dateLatestDay" type="xs:integer"/>\r
+ <xs:element name="dateLatestEra" type="xs:string"/>\r
+ <xs:element name="dateLatestCertainty" type="xs:string"/>\r
+ <xs:element name="dateLatestQualifier" type="xs:string"/>\r
+ <xs:element name="dateLatestQualifierValue" type="xs:integer"/>\r
+ <xs:element name="dateLatestQualifierUnit" type="xs:string"/>\r
+ <xs:element name="datePeriod" type="xs:string"/>\r
+ <xs:element name="dateNote" type="xs:string"/>\r
+ <xs:element name="dateEarliestScalarValue" type="xs:date"/>\r
+ <xs:element name="dateLatestScalarValue" type="xs:date"/>\r
+ <xs:element name="scalarValuesComputed" type="xs:boolean"/>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
\r
</xs:schema>\r
createPersonRefs();
PoxPayloadOut multipart = createAcquisitionInstance(
- "April 1, 2010",
acquisitionAuthorizerRefName,
acquisitionFundingSourcesRefNames,
ownersRefNames,
acquisitionSourcesRefNames);
+ // "April 1, 2010",
AcquisitionClient acquisitionClient = new AcquisitionClient();
ClientResponse<Response> res = acquisitionClient.create(multipart);
}
private PoxPayloadOut createAcquisitionInstance(
- String accessionDate,
String acquisitionAuthorizer,
List<String> acquisitionFundingSources,
List<String> acqOwners,
List<String> acquisitionSources) {
+ // String accessionDate,
AcquisitionsCommon acquisition = new AcquisitionsCommon();
- acquisition.setAccessionDate(accessionDate);
+ // acquisition.setAccessionDate(accessionDate);
acquisition.setAcquisitionAuthorizer(acquisitionAuthorizer);
// AcquisitionFunding-related authrefs fields are *not* currently
Assert.assertTrue(acqSources.size() > 0);
Assert.assertNotNull(acqSources.get(0));
- List<String> acqDates =
- acquisitionObject.getAcquisitionDates().getAcquisitionDate();
- Assert.assertTrue(acqDates.size() > 0);
- Assert.assertNotNull(acqDates.get(0));
+ // List<String> acqDates =
+ // acquisitionObject.getAcquisitionDates().getAcquisitionDate();
+ // Assert.assertTrue(acqDates.size() > 0);
+ // Assert.assertNotNull(acqDates.get(0));
List<String> owners =
acquisitionObject.getOwners().getOwner();
acqSources.add("Museum Acquisition Source-" + identifier);
acquisition.setAcquisitionSources(acqSourcesList);
- AcquisitionDateList acqDatesList = new AcquisitionDateList();
- List<String> acqDates = acqDatesList.getAcquisitionDate();
- acqDates.add(CURRENT_DATE_UTC);
- acqDates.add(CURRENT_DATE_UTC);
- acquisition.setAcquisitionDates(acqDatesList);
+ // AcquisitionDateList acqDatesList = new AcquisitionDateList();
+ // List<String> acqDates = acqDatesList.getAcquisitionDate();
+ // acqDates.add(CURRENT_DATE_UTC);
+ // acqDates.add(CURRENT_DATE_UTC);
+ // acquisition.setAcquisitionDates(acqDatesList);
OwnerList ownersList = new OwnerList();
List<String> owners = ownersList.getOwner();
*\r
*/\r
public interface AcquisitionJAXBSchema {\r
- final static String ACCESSIONDATE = "accessionDate";\r
+ // final static String ACCESSIONDATE = "accessionDate";\r
}\r
\r
\r
<xs:sequence>
<xs:element name="csid" type="xs:string" />
<!-- Object Entry Information Group -->
- <xs:element name="accessionDate" type="xs:string"/>
+ <xs:element name="accessionDate" type="structuredDateGroup"/>
<xs:element name="acquisitionAuthorizer" type="xs:string"/>
<xs:element name="acquisitionAuthorizerDate" type="xs:string"/>
<xs:element name="acquisitionDates" type="acquisitionDateList"/>
<xs:complexType name="acquisitionDateList">
<xs:sequence>
- <xs:element name="acquisitionDate" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="acquisitionDate" type="structuredDateGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</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>
<!-- ObjectExit Information Group -->\r
<xs:element name="currentOwner" type="xs:string"/>\r
<xs:element name="depositor" type="xs:string"/>\r
- <xs:element name="exitDate" type="xs:date"/>\r
+ <xs:element name="exitDate" type="structuredDateGroup"/>\r
<xs:element name="exitMethods">\r
<xs:complexType>\r
<xs:sequence>\r
<xs:element name="exitNote" type="xs:string"/>\r
<xs:element name="exitNumber" type="xs:string"/>\r
<xs:element name="exitReason" type="xs:string"/>\r
- <xs:element name="packingNote" type="xs:string"/> \r
+ <xs:element name="packingNote" type="xs:string"/>\r
+ \r
+ <!-- Before (re)using this generic complex type in any record type -->\r
+ <!-- other than CollectionObject, be sure to verify that Nuxeo handles -->\r
+ <!-- that correctly in its table creation/row linking. -->\r
+ <xs:complexType name="structuredDateGroup">\r
+ <xs:sequence>\r
+ <xs:element name="dateDisplayDate" type="xs:string"/>\r
+ <xs:element name="dateAssociation" type="xs:string"/>\r
+ <xs:element name="dateEarliestSingleYear" type="xs:integer"/>\r
+ <xs:element name="dateEarliestSingleMonth" type="xs:integer"/>\r
+ <xs:element name="dateEarliestSingleDay" type="xs:integer"/>\r
+ <xs:element name="dateEarliestSingleEra" type="xs:string"/>\r
+ <xs:element name="dateEarliestSingleCertainty" type="xs:string"/>\r
+ <xs:element name="dateEarliestSingleQualifier" type="xs:string"/>\r
+ <xs:element name="dateEarliestSingleQualifierValue" type="xs:integer"/>\r
+ <xs:element name="dateEarliestSingleQualifierUnit" type="xs:string"/>\r
+ <xs:element name="dateLatestYear" type="xs:integer"/>\r
+ <xs:element name="dateLatestMonth" type="xs:integer"/>\r
+ <xs:element name="dateLatestDay" type="xs:integer"/>\r
+ <xs:element name="dateLatestEra" type="xs:string"/>\r
+ <xs:element name="dateLatestCertainty" type="xs:string"/>\r
+ <xs:element name="dateLatestQualifier" type="xs:string"/>\r
+ <xs:element name="dateLatestQualifierValue" type="xs:integer"/>\r
+ <xs:element name="dateLatestQualifierUnit" type="xs:string"/>\r
+ <xs:element name="datePeriod" type="xs:string"/>\r
+ <xs:element name="dateNote" type="xs:string"/>\r
+ <xs:element name="dateEarliestScalarValue" type="xs:date"/>\r
+ <xs:element name="dateLatestScalarValue" type="xs:date"/>\r
+ <xs:element name="scalarValuesComputed" type="xs:boolean"/>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
</xs:schema>\r
private List<String> personIdsCreated = new ArrayList<String>();
private String personAuthCSID = null;
private String depositorRefName = null;
- private String exitDate = null;
+ // private String exitDate = null;
private String exitNumber = null;
private final static String CURRENT_DATE_UTC =
GregorianCalendarDateTimeUtils.currentDateUTC();
throw new UnsupportedOperationException(); //method not supported (or needed) in this test class
}
- private PoxPayloadOut createObjectExitInstance(String depositorRefName, String exitNumber, String exitDate) {
- this.exitDate = exitDate;
+ private PoxPayloadOut createObjectExitInstance(String depositorRefName, String exitNumber) {
+ // , String exitDate
+ // this.exitDate = exitDate;
this.exitNumber = exitNumber;
this.depositorRefName = depositorRefName;
ObjectexitCommon objectexit = new ObjectexitCommon();
objectexit.setDepositor(depositorRefName);
objectexit.setExitNumber(exitNumber);
- objectexit.setExitDate(exitDate);
+ // objectexit.setExitDate(exitDate);
PoxPayloadOut multipart = new PoxPayloadOut(ObjectExitClient.SERVICE_PAYLOAD_NAME);
PayloadOutputPart commonPart = multipart.addPart(new ObjectExitClient().getCommonPartName(),
// references, and will refer to Person resources by their refNames.
ObjectExitClient objectexitClient = new ObjectExitClient();
PoxPayloadOut multipart = createObjectExitInstance(depositorRefName,
- "exitNumber-" + identifier, CURRENT_DATE_UTC);
+ "exitNumber-" + identifier);
+ // , CURRENT_DATE_UTC
ClientResponse<Response> res = objectexitClient.create(multipart);
try {
assertStatusCode(res, testName);
public interface ObjectexitJAXBSchema {
final static String OBJECT_EXIT_CURRENT_OWNER = "currentOwner";
final static String OBJECT_EXIT_DEPOSITOR = "depositor";
- final static String OBJECT_EXIT_DATE = "exitDate";
+ // final static String OBJECT_EXIT_DATE = "exitDate";
final static String OBJECT_EXIT_METHODS = "exitMethods";
final static String OBJECT_EXIT_METHOD = "exitMethod";
final static String OBJECT_EXIT_NOTE = "exitNote";
<!-- ObjectExit Information Group -->
<xs:element name="currentOwner" type="xs:string"/>
<xs:element name="depositor" type="xs:string"/>
- <xs:element name="exitDate" type="xs:string"/>
+ <xs:element name="exitDate" type="structuredDateGroup"/>
<xs:element name="exitMethods" type="exitMethods"/>
<xs:element name="exitNote" type="xs:string"/>
<xs:element name="exitNumber" 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>
<!-- Repeatable fields are commented out for now until we -->
<!-- identify how to represent these complex types in layouts. -->
<!-- <row><widget>contactName</widget></row>-->
- <row><widget>foundingDate</widget></row>
- <row><widget>dissolutionDate</widget></row>
+ <!-- <row><widget>foundingDate</widget></row>
+ <row><widget>dissolutionDate</widget></row> -->
<row><widget>foundingPlace</widget></row>
<!-- <row><widget>group</widget></row> -->
<!-- <row><widget>function</widget></row> -->
<property name="styleClass">dataInputText</property>
</properties>
</widget>
--->
<widget name="foundingDate" type="text">
<labels>
<property name="styleClass">dataInputText</property>
</properties>
</widget>
-
+-->
<widget name="foundingPlace" type="text">
<labels>
<label mode="any">foundingPlace</label>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="foundingDate" type="xs:string"/>
- <xs:element name="dissolutionDate" type="xs:string"/>
+ <xs:element name="foundingDate" type="structuredDateGroup"/>
+ <!-- <xs:element name="foundingDate" type="xs:string"/> -->
+ <xs:element name="dissolutionDate" type="structuredDateGroup"/>
+ <!-- <xs:element name="dissolutionDate" type="xs:string"/> -->
<xs:element name="foundingPlace" type="xs:string"/>
<xs:element name="groups">
<xs:complexType>
<xs:element name="historyNote" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</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>
contactNames.addAll(values);\r
organization.setContactNames(contactsList);\r
}\r
- if((value = (String)orgInfo.get(OrganizationJAXBSchema.FOUNDING_DATE))!=null)\r
- organization.setFoundingDate(value);\r
- if((value = (String)orgInfo.get(OrganizationJAXBSchema.DISSOLUTION_DATE))!=null)\r
- organization.setDissolutionDate(value);\r
+ // if((value = (String)orgInfo.get(OrganizationJAXBSchema.FOUNDING_DATE))!=null)\r
+ // organization.setFoundingDate(value);\r
+ // if((value = (String)orgInfo.get(OrganizationJAXBSchema.DISSOLUTION_DATE))!=null)\r
+ // organization.setDissolutionDate(value);\r
if((value = (String)orgInfo.get(OrganizationJAXBSchema.FOUNDING_PLACE))!=null)\r
organization.setFoundingPlace(value);\r
if((values = (List<String>)orgRepeatablesInfo.get(OrganizationJAXBSchema.GROUPS))!=null) {\r
testOrgMap.put(OrganizationJAXBSchema.SHORT_IDENTIFIER, shortId);
testOrgMap.put(OrganizationJAXBSchema.SHORT_NAME, TEST_ORG_SHORTNAME);
testOrgMap.put(OrganizationJAXBSchema.LONG_NAME, "The real official test organization");
- testOrgMap.put(OrganizationJAXBSchema.FOUNDING_DATE, "May 26, 1907");
+ // testOrgMap.put(OrganizationJAXBSchema.FOUNDING_DATE, "May 26, 1907");
testOrgMap.put(OrganizationJAXBSchema.FOUNDING_PLACE, TEST_ORG_FOUNDING_PLACE);
return OrgAuthorityClientUtils.createOrganizationInstance(identifier, testOrgMap, headerLabel);
testOrgMap.put(OrganizationJAXBSchema.SHORT_IDENTIFIER, shortId);
testOrgMap.put(OrganizationJAXBSchema.SHORT_NAME, TEST_ORG_SHORTNAME);
testOrgMap.put(OrganizationJAXBSchema.LONG_NAME, "The real official test organization");
- testOrgMap.put(OrganizationJAXBSchema.FOUNDING_DATE, "May 26, 1907");
+ // testOrgMap.put(OrganizationJAXBSchema.FOUNDING_DATE, "May 26, 1907");
testOrgMap.put(OrganizationJAXBSchema.FOUNDING_PLACE, TEST_ORG_FOUNDING_PLACE);
Map<String, List<String>> testOrgRepeatablesMap = new HashMap<String, List<String>>();
final static String SHORT_NAME = "shortName";\r
final static String NAME_ADDITIONS = "nameAdditions";\r
final static String CONTACT_NAMES = "contactNames";\r
- final static String FOUNDING_DATE = "foundingDate";\r
- final static String DISSOLUTION_DATE = "dissolutionDate";\r
+ // final static String FOUNDING_DATE = "foundingDate";\r
+ // final static String DISSOLUTION_DATE = "dissolutionDate";\r
final static String FOUNDING_PLACE = "foundingPlace";\r
final static String GROUPS = "groups";\r
final static String FUNCTIONS = "functions";\r
<xs:element name="description" type="xs:string"/>
<xs:element name="mainBodyGroupList" type="mainBodyGroupList"/>
<xs:element name="contactNames" type="contactNameList"/>
- <xs:element name="foundingDate" type="xs:string"/>
- <xs:element name="dissolutionDate" type="xs:string"/>
+ <xs:element name="foundingDate" type="structuredDateGroup"/>
+ <xs:element name="dissolutionDate" type="structuredDateGroup"/>
+ <!-- <xs:element name="foundingDate" type="xs:string"/>
+ <xs:element name="dissolutionDate" type="xs:string"/> -->
<xs:element name="foundingPlace" type="xs:string"/>
<xs:element name="groups" type="groupList"/>
<xs:element name="functions" type="functionList"/>
<xs:element name="historyNote" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</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>
<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 -->
</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="nameAdditions" type="xs:string"/>
<!-- FIXME: End of provisional repeatable group. -->
- <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="bioNote" type="xs:string"/>
<xs:element name="nameNote" type="xs:string"/>
+ <!-- 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>
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_PLACE))!=null)\r
person.setBirthPlace(value);\r
if((value = (String)personInfo.get(PersonJAXBSchema.DEATH_PLACE))!=null)\r
prepareDefaultDisplayName(\r
personMap.get(PersonJAXBSchema.FORE_NAME),\r
personMap.get(PersonJAXBSchema.MIDDLE_NAME),\r
- personMap.get(PersonJAXBSchema.SUR_NAME),\r
- personMap.get(PersonJAXBSchema.BIRTH_DATE),\r
- personMap.get(PersonJAXBSchema.DEATH_DATE));\r
+ personMap.get(PersonJAXBSchema.SUR_NAME));\r
personMap.put(PersonJAXBSchema.DISPLAY_NAME, displayName);\r
}\r
String shortDisplayName = personMap.get(PersonJAXBSchema.SHORT_DISPLAY_NAME);\r
shortDisplayName = \r
prepareDefaultDisplayName(\r
personMap.get(PersonJAXBSchema.FORE_NAME), null,\r
- personMap.get(PersonJAXBSchema.SUR_NAME),null,null);\r
+ personMap.get(PersonJAXBSchema.SUR_NAME));\r
personMap.put(PersonJAXBSchema.SHORT_DISPLAY_NAME, shortDisplayName);\r
}\r
\r
* @param foreName \r
* @param middleName\r
* @param surName\r
- * @param birthDate\r
- * @param deathDate\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
StringBuilder newStr = new StringBuilder();\r
final String sep = " ";\r
final String dateSep = "-";\r
firstAdded = true;\r
}\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
+\r
return newStr.toString();\r
}\r
\r
final String TEST_MIDDLE_NAME = null;
/** The test surname. */
final String TEST_SUR_NAME = "Wayne";
- /** The test birthdate. */
- final String TEST_BIRTH_DATE = "May 26, 1907";
- /** The test death date. */
- final String TEST_DEATH_DATE = "June 11, 1979";
//private String knownResourceRefName = null;
private String knownItemResourceShortIdentifer = null;
// The resource ID of an item resource used for partial term matching tests.
johnWayneMap.put(PersonJAXBSchema.FORE_NAME, TEST_FORE_NAME);
johnWayneMap.put(PersonJAXBSchema.SUR_NAME, TEST_SUR_NAME);
johnWayneMap.put(PersonJAXBSchema.GENDER, "male");
- johnWayneMap.put(PersonJAXBSchema.BIRTH_DATE, TEST_BIRTH_DATE);
johnWayneMap.put(PersonJAXBSchema.BIRTH_PLACE, "Winterset, Iowa");
- johnWayneMap.put(PersonJAXBSchema.DEATH_DATE, TEST_DEATH_DATE);
johnWayneMap.put(PersonJAXBSchema.BIO_NOTE, "born Marion Robert Morrison and better"
+ "known by his stage name John Wayne, was an American film actor, director "
+ "and producer. He epitomized rugged masculinity and has become an enduring "
String displayName = person.getDisplayName();
String expectedDisplayName =
PersonAuthorityClientUtils.prepareDefaultDisplayName(
- TEST_FORE_NAME, null, TEST_SUR_NAME,
- TEST_BIRTH_DATE, TEST_DEATH_DATE);
+ TEST_FORE_NAME, null, TEST_SUR_NAME);
Assert.assertFalse(displayName.equals(expectedDisplayName));
// Make sure short displayName matches computed form
String shortDisplayName = person.getShortDisplayName();
String expectedShortDisplayName =
PersonAuthorityClientUtils.prepareDefaultDisplayName(
- TEST_FORE_NAME, null, TEST_SUR_NAME, null, null);
+ TEST_FORE_NAME, null, TEST_SUR_NAME);
+ // , null
Assert.assertFalse(expectedShortDisplayName.equals(shortDisplayName));
// Update the forename and verify the computed name is updated.
person.setForeName("updated-" + TEST_FORE_NAME);
expectedDisplayName =
PersonAuthorityClientUtils.prepareDefaultDisplayName(
- "updated-" + TEST_FORE_NAME, null, TEST_SUR_NAME,
- TEST_BIRTH_DATE, TEST_DEATH_DATE);
+ "updated-" + TEST_FORE_NAME, null, TEST_SUR_NAME);
expectedShortDisplayName =
PersonAuthorityClientUtils.prepareDefaultDisplayName(
- "updated-" + TEST_FORE_NAME, null, TEST_SUR_NAME, null, null);
+ "updated-" + TEST_FORE_NAME, null, TEST_SUR_NAME);
+ // , null
// Submit the updated resource to the service and store the response.
PoxPayloadOut output = new PoxPayloadOut(PersonAuthorityClient.SERVICE_ITEM_PAYLOAD_NAME);
final static String SALUTATIONS = "salutations";\r
final static String TITLE = "title";\r
final static String NAME_ADDITIONS = "nameAdditions";\r
- final static String BIRTH_DATE = "birthDate";\r
- final static String DEATH_DATE = "deathDate";\r
final static String BIRTH_PLACE = "birthPlace";\r
final static String DEATH_PLACE = "deathPlace";\r
final static String GROUPS = "groups";\r
<xs:element name="salutation" type="xs:string"/>
<xs:element name="title" type="xs:string"/>
<xs:element name="nameAdditions" 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
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
\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_PLACE))!=null)\r
person.setBirthPlace(value);\r
if((value = (String)personInfo.get(PersonJAXBSchema.DEATH_PLACE))!=null)\r
String lastname =
(String)docModel.getProperty(commonPartLabel, PersonJAXBSchema.SUR_NAME);
if(shortDisplayNameComputed) {
- String displayName = prepareDefaultDisplayName(forename, null, lastname,
- null, null);
+ String displayName = prepareDefaultDisplayName(forename, null, lastname);
docModel.setProperty(commonPartLabel, PersonJAXBSchema.SHORT_DISPLAY_NAME,
displayName);
}
if(displayNameComputed) {
String midname =
(String)docModel.getProperty(commonPartLabel, PersonJAXBSchema.MIDDLE_NAME);
- String birthdate =
- (String)docModel.getProperty(commonPartLabel, PersonJAXBSchema.BIRTH_DATE);
- String deathdate =
- (String)docModel.getProperty(commonPartLabel, PersonJAXBSchema.DEATH_DATE);
- String displayName = prepareDefaultDisplayName(forename, midname, lastname,
- birthdate, deathdate);
+ String displayName = prepareDefaultDisplayName(forename, midname, lastname);
docModel.setProperty(commonPartLabel, PersonJAXBSchema.DISPLAY_NAME,
displayName);
}
* @param foreName
* @param middleName
* @param surName
- * @param birthDate
- * @param deathDate
* @return
* @throws Exception
*/
private static String prepareDefaultDisplayName(
- String foreName, String middleName, String surName,
- String birthDate, String deathDate ) throws Exception {
+ String foreName, String middleName, String surName) throws Exception {
final String SEP = " ";
final String DATE_SEP = "-";
firstAdded = true;
}
}
- // Now we add the dates. In theory could have dates with no name, but that is their problem.
- boolean foundBirth = false;
- if (birthDate != null) {
- if (firstAdded) {
- newStr.append(SEP);
- }
- newStr.append(birthDate);
- newStr.append(DATE_SEP); // Put this in whether there is a death date or not
- foundBirth = true;
- }
- if (deathDate != null) {
- if (!foundBirth) {
- if (firstAdded == true) {
- newStr.append(SEP);
- }
- newStr.append(DATE_SEP);
- }
- newStr.append(deathDate);
- }
return newStr.toString();
}