From ce911debc63bcac00d374a07b93b3be4956ea320 Mon Sep 17 00:00:00 2001 From: Patrick Schmitz Date: Tue, 1 Feb 2011 05:40:15 +0000 Subject: [PATCH] CSPACE-2597 Replaced the CommonListReflection class with support for DocHandlerParams.Params, in preparation for moving support to the DocHandlerBase class. --- .../orgauthorities_testorgauth.xml | 10 +++ .../AcquisitionDocumentModelHandler.java | 52 ++++++++++----- .../blob/nuxeo/BlobDocumentModelHandler.java | 45 ++++++++++--- .../services/common/ServiceMain.java | 9 ++- .../nuxeo/client/java/DocHandlerBase.java | 63 ++++++------------- .../nuxeo/LoaninDocumentModelHandler.java | 43 ++++++++++--- .../nuxeo/MediaDocumentModelHandler.java | 56 ++++++++++++----- .../nuxeo/ObjectExitDocumentModelHandler.java | 46 ++++++++++---- 8 files changed, 217 insertions(+), 107 deletions(-) create mode 100644 services/IntegrationTests/src/test/resources/test-data/xmlreplay/organization/orgauthorities_testorgauth.xml diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/organization/orgauthorities_testorgauth.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/organization/orgauthorities_testorgauth.xml new file mode 100644 index 000000000..864e8a81b --- /dev/null +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/organization/orgauthorities_testorgauth.xml @@ -0,0 +1,10 @@ + + + testorgauth + Test Org Authority + urn:cspace:org.collectionspace.demo:orgauthority:name(testorgauth)'Test Org Authority' + OrgAuthority + + diff --git a/services/acquisition/service/src/main/java/org/collectionspace/services/acquisition/nuxeo/AcquisitionDocumentModelHandler.java b/services/acquisition/service/src/main/java/org/collectionspace/services/acquisition/nuxeo/AcquisitionDocumentModelHandler.java index a40bc52ce..bdc2fcf5f 100644 --- a/services/acquisition/service/src/main/java/org/collectionspace/services/acquisition/nuxeo/AcquisitionDocumentModelHandler.java +++ b/services/acquisition/service/src/main/java/org/collectionspace/services/acquisition/nuxeo/AcquisitionDocumentModelHandler.java @@ -23,9 +23,14 @@ */ package org.collectionspace.services.acquisition.nuxeo; +import java.util.ArrayList; +import java.util.List; + import org.collectionspace.services.acquisition.AcquisitionsCommon; import org.collectionspace.services.jaxb.AbstractCommonList; import org.collectionspace.services.nuxeo.client.java.DocHandlerBase; +import org.collectionspace.services.common.service.DocHandlerParams; +import org.collectionspace.services.common.service.ListResultField; /** AcquisitionDocumentModelHandler * $LastChangedRevision: $ @@ -34,24 +39,39 @@ import org.collectionspace.services.nuxeo.client.java.DocHandlerBase; public class AcquisitionDocumentModelHandler extends DocHandlerBase { - private static DocHandlerBase.CommonListReflection clr; + private static DocHandlerParams.Params params; static { - clr = new DocHandlerBase.CommonListReflection(); - clr.SchemaName= "acquisition"; - clr.DublinCoreTitle = "";//"CollectionSpace-Acquisition"; - clr.SummaryFields = "acquisitionReferenceNumber|acquisitionSources|owners|uri|csid"; - clr.AbstractCommonListClassname = "org.collectionspace.services.acquisition.AcquisitionsCommonList"; - clr.CommonListItemClassname = "org.collectionspace.services.acquisition.AcquisitionsCommonList$AcquisitionListItem"; - clr.ListResultsItemMethodName = "getAcquisitionListItem"; - //ListItemsArray array elements: SETTER=0, XPATH=1 - clr.ListItemsArray = new String[][] { - {"setAcquisitionReferenceNumber","acquisitionReferenceNumber"}, - {"setAcquisitionSource","acquisitionSources/[0]"}, - {"setOwner","owners/[0]"} - }; + params = new DocHandlerParams.Params(); + params.setSchemaName("acquisition"); + params.setDublinCoreTitle("");//"CollectionSpace-Acquisition"; + params.setSummaryFields("acquisitionReferenceNumber|acquisitionSources|owners|uri|csid"); + params.setAbstractCommonListClassname("org.collectionspace.services.acquisition.AcquisitionsCommonList"); + params.setCommonListItemClassname("org.collectionspace.services.acquisition.AcquisitionsCommonList$AcquisitionListItem"); + params.setListResultsItemMethodName("getAcquisitionListItem"); + DocHandlerParams.Params.ListResultsFields lrfs = + new DocHandlerParams.Params.ListResultsFields(); + params.setListResultsFields(lrfs); + List lrfl = lrfs.getListResultField(); + ListResultField lrf = new ListResultField(); + lrf.setSetter("setAcquisitionReferenceNumber"); + lrf.setXpath("acquisitionReferenceNumber"); + lrfl.add( lrf ); + lrf = new ListResultField(); + lrf.setSetter("setAcquisitionSource"); + lrf.setXpath("acquisitionSources/[0]"); + lrfl.add( lrf ); + lrf = new ListResultField(); + lrf.setSetter("setOwner"); + lrf.setXpath("owners/[0]"); + lrfl.add( lrf ); + /* + {"setAcquisitionReferenceNumber","acquisitionReferenceNumber"}, + {"setAcquisitionSource","acquisitionSources/[0]"}, + {"setOwner","owners/[0]"} + }; */ } - public DocHandlerBase.CommonListReflection getCommonListReflection(){ - return clr; + public DocHandlerParams.Params getDocHandlerParams(){ + return params; } } diff --git a/services/blob/service/src/main/java/org/collectionspace/services/blob/nuxeo/BlobDocumentModelHandler.java b/services/blob/service/src/main/java/org/collectionspace/services/blob/nuxeo/BlobDocumentModelHandler.java index 903e05127..fdeca9b75 100644 --- a/services/blob/service/src/main/java/org/collectionspace/services/blob/nuxeo/BlobDocumentModelHandler.java +++ b/services/blob/service/src/main/java/org/collectionspace/services/blob/nuxeo/BlobDocumentModelHandler.java @@ -32,6 +32,8 @@ import org.collectionspace.services.common.blob.BlobUtil; import org.collectionspace.services.common.context.ServiceContext; import org.collectionspace.services.common.document.DocumentWrapper; import org.collectionspace.services.common.imaging.nuxeo.NuxeoImageUtils; +import org.collectionspace.services.common.service.DocHandlerParams; +import org.collectionspace.services.common.service.ListResultField; import org.collectionspace.services.jaxb.AbstractCommonList; import org.collectionspace.services.jaxb.BlobJAXBSchema; import org.nuxeo.ecm.core.api.ClientException; @@ -40,6 +42,7 @@ import org.nuxeo.ecm.core.api.repository.RepositoryInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.ArrayList; import java.util.List; /** @@ -51,22 +54,46 @@ extends DocHandlerBase { /** The logger. */ private final Logger logger = LoggerFactory.getLogger(BlobDocumentModelHandler.class); - public static DocHandlerBase.CommonListReflection clr; + private static DocHandlerParams.Params params; static { - clr = new DocHandlerBase.CommonListReflection(); - clr.SchemaName= "blobs"; - clr.SummaryFields = "name|mimeType|encoding|length|uri|csid"; - clr.AbstractCommonListClassname = "org.collectionspace.services.blob.BlobsCommonList"; - clr.CommonListItemClassname = "org.collectionspace.services.blob.BlobsCommonList$BlobListItem"; - clr.ListResultsItemMethodName = "getBlobListItem"; + params = new DocHandlerParams.Params(); + params.setSchemaName("blobs"); + params.setDublinCoreTitle("");//"CollectionSpace-Blob"; + params.setSummaryFields("name|mimeType|encoding|length|uri|csid"); + params.setAbstractCommonListClassname("org.collectionspace.services.blob.BlobsCommonList"); + params.setCommonListItemClassname("org.collectionspace.services.blob.BlobsCommonList$BlobListItem"); + params.setListResultsItemMethodName("getBlobListItem"); + DocHandlerParams.Params.ListResultsFields lrfs = + new DocHandlerParams.Params.ListResultsFields(); + params.setListResultsFields(lrfs); + List lrfl = lrfs.getListResultField(); + ListResultField lrf = new ListResultField(); + lrf.setSetter("setName"); + lrf.setXpath("name"); + lrfl.add( lrf ); + lrf = new ListResultField(); + lrf.setSetter("setMimeType"); + lrf.setXpath("mimeType"); + lrfl.add( lrf ); + lrf = new ListResultField(); + lrf.setSetter("setEncoding"); + lrf.setXpath("encoding"); + lrfl.add( lrf ); + lrf = new ListResultField(); + lrf.setSetter("setLength"); + lrf.setXpath("length"); + lrfl.add( lrf ); + /* clr.ListItemsArray = new String[][] {{"setEncoding", "encoding"}, {"setMimeType", "mimeType"}, {"setName", "name"}, {"setLength", "length"} }; + */ } - public DocHandlerBase.CommonListReflection getCommonListReflection(){ - return clr; + + public DocHandlerParams.Params getDocHandlerParams(){ + return params; } //============================================================================== diff --git a/services/common/src/main/java/org/collectionspace/services/common/ServiceMain.java b/services/common/src/main/java/org/collectionspace/services/common/ServiceMain.java index e52f23d99..416829902 100644 --- a/services/common/src/main/java/org/collectionspace/services/common/ServiceMain.java +++ b/services/common/src/main/java/org/collectionspace/services/common/ServiceMain.java @@ -560,6 +560,7 @@ public class ServiceMain { return null; } + /* private void loadDocHandlers() throws Exception { Hashtable tenantBindingTypeMap = tenantBindingConfigReader.getTenantBindings(); for (TenantBindingType tbt: tenantBindingTypeMap.values()){ @@ -573,9 +574,9 @@ public class ServiceMain { params.getClassname(); DocHandlerParams.Params p = params.getParams(); DocHandlerBase.CommonListReflection clr = new DocHandlerBase.CommonListReflection(); - //List items = p.getListItemsArrays(); //todo: this thing only returns one row. xsd is wrong. tenant-bindings.xml has an example of multiple elements in loansin. - List items = /*DocHandlerParams.Params.ListItemsArrays items =*/ - p.getListResultsFields().getListResultField(); //todo: this thing only returns one row. xsd is wrong. tenant-bindings.xml has an example of multiple elements in loansin. + clr.ListItemsArray = + p.getListResultsFields().getListResultField(); + /* int size = items.size(); String[][] rows = new String[size][4]; int r = 0; @@ -586,6 +587,7 @@ public class ServiceMain { r++; } clr.ListItemsArray = rows; + * / clr.AbstractCommonListClassname = p.getAbstractCommonListClassname(); clr.CommonListItemClassname = p.getCommonListItemClassname(); clr.DublinCoreTitle = p.getDublinCoreTitle(); @@ -596,6 +598,7 @@ public class ServiceMain { } } } + */ private Connection getConnection() throws LoginException, SQLException { return JDBCTools.getConnection(DEFAULT_REPOSITORY_NAME); diff --git a/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/DocHandlerBase.java b/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/DocHandlerBase.java index 767c7315f..6800cf479 100755 --- a/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/DocHandlerBase.java +++ b/services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/DocHandlerBase.java @@ -30,6 +30,8 @@ import java.util.List; import org.collectionspace.services.common.ReflectionMapper; import org.collectionspace.services.common.Tools; +import org.collectionspace.services.common.service.ListResultField; +import org.collectionspace.services.common.service.DocHandlerParams; import org.collectionspace.services.common.document.DocumentWrapper; import org.collectionspace.services.jaxb.AbstractCommonList; import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl; @@ -79,22 +81,24 @@ public abstract class DocHandlerBase extends RemoteDocumentModelHandlerIm } /** Subclass DocHandlers may override this method to control exact creation of the common list. - * This class instantiates an AbstractCommonList from the classname returned by getCommonListReflection().AbstractCommonListClassname. + * This class instantiates an AbstractCommonList from the classname returned by getDocHandlerParams().AbstractCommonListClassname. * @return * @throws Exception */ public AbstractCommonList createAbstractCommonListImpl() throws Exception { // String classname = this.commonList.getClass().getName(); - String classname = getAbstractCommonListClassname(); + String classname = getDocHandlerParams().getAbstractCommonListClassname(); return (AbstractCommonList)(ReflectionMapper.instantiate(classname)); } /** DocHandlerBase calls this method with the CSID as id */ public Object createItemForCommonList(DocumentModel docModel, String label, String id) throws Exception { - return createItemForCommonList(getCommonListItemClassname(), docModel, label, id, true); + return createItemForCommonList(getDocHandlerParams().getCommonListItemClassname(), + docModel, label, id, true); } + /* public static class CommonListReflection { public String SchemaName; // May be Repository schema, or a pseudo schema we manage public String DublinCoreTitle; // TODO: for CollectionObjectDocumentModelHandler, NUXEO_DC_TITLE = "CollectionSpace-CollectionObject" @@ -102,34 +106,20 @@ public abstract class DocHandlerBase extends RemoteDocumentModelHandlerIm public String AbstractCommonListClassname; public String CommonListItemClassname; public String ListResultsItemMethodName; - public String[][] ListItemsArray; //setter, xpath - public static int SETTER=0, XPATH=1; + public List ListItemsArray; //setter, xpath } + */ - public abstract CommonListReflection getCommonListReflection(); - - public String getSchemaName(){ - return getCommonListReflection().SchemaName; - } + public abstract DocHandlerParams.Params getDocHandlerParams(); public String getSummaryFields(AbstractCommonList commonList){ - return getCommonListReflection().SummaryFields; - } - - public String getAbstractCommonListClassname(){ - return getCommonListReflection().AbstractCommonListClassname; + return getDocHandlerParams().getSummaryFields(); } - public String getCommonListItemClassname(){ - return getCommonListReflection().CommonListItemClassname; + public List getListItemsArray(){ + return getDocHandlerParams().getListResultsFields().getListResultField(); } - public String[][] getListItemsArray(){ - return getCommonListReflection().ListItemsArray; - } - - - @Override public T extractCommonPart(DocumentWrapper wrapDoc) throws Exception { throw new UnsupportedOperationException(); @@ -159,7 +149,7 @@ public abstract class DocHandlerBase extends RemoteDocumentModelHandlerIm @Override public String getQProperty(String prop) { - return getSchemaName() + ":" + prop; + return getDocHandlerParams().getSchemaName() + ":" + prop; } //============= dublin core handling ======================================= @@ -171,7 +161,7 @@ public abstract class DocHandlerBase extends RemoteDocumentModelHandlerIm } protected void fillDublinCoreObject(DocumentWrapper wrapDoc) throws Exception { - String title = getCommonListReflection().DublinCoreTitle; + String title = getDocHandlerParams().getDublinCoreTitle(); if (Tools.isEmpty(title)){ return; } @@ -204,23 +194,10 @@ public abstract class DocHandlerBase extends RemoteDocumentModelHandlerIm String schema, String id, boolean includeStdFields) throws Exception { //createItemForCommonList(docModel, label, id); Object item = ReflectionMapper.instantiate(commonListClassname); - String [][] names = getListItemsArray(); - for (String[] row : names){ - /* - if (row.length >2 - && Tools.notEmpty(row[CommonListReflection.CONTAINER]) - && Tools.notEmpty(row[CommonListReflection.SUBELEMENT])){ - String container = row[CommonListReflection.CONTAINER];//"lenderGroupList"; //LoaninListItemJAXBSchema.LENDER_GROUP_LIST; - String element = row[CommonListReflection.SUBELEMENT];//"lender"; //LoaninListItemJAXBSchema.LENDER; - String setter = row[CommonListReflection.SETTER]; - List listOfMulti = (List) docModel.getProperty(label, container); - String primary = primaryValueFromMultivalue(listOfMulti, element); - callSetter(item, setter, primary); //"Lender" //item.setLender(primary); - } else { - */ - callPropertySetterWithXPathValue(docModel, item, row[CommonListReflection.SETTER], - schema, row[CommonListReflection.XPATH]); - //} + List resultsFields = getListItemsArray(); + for (ListResultField field : resultsFields ){ + callPropertySetterWithXPathValue(docModel, item, + field.getSetter(), schema, field.getXpath()); } if (includeStdFields){ callSimplePropertySetter(item, "setCsid", id); @@ -235,7 +212,7 @@ public abstract class DocHandlerBase extends RemoteDocumentModelHandlerIm * field for you if specified. */ public List createItemsList(AbstractCommonList commonList) throws Exception { - return createItemsList(commonList, getCommonListReflection().ListResultsItemMethodName); + return createItemsList(commonList, getDocHandlerParams().getListResultsItemMethodName()); } /** e.g. createItemsList(commonList, "getObjectexitListItem" */ diff --git a/services/loanin/service/src/main/java/org/collectionspace/services/loanin/nuxeo/LoaninDocumentModelHandler.java b/services/loanin/service/src/main/java/org/collectionspace/services/loanin/nuxeo/LoaninDocumentModelHandler.java index cb995029f..82d4232e6 100644 --- a/services/loanin/service/src/main/java/org/collectionspace/services/loanin/nuxeo/LoaninDocumentModelHandler.java +++ b/services/loanin/service/src/main/java/org/collectionspace/services/loanin/nuxeo/LoaninDocumentModelHandler.java @@ -23,6 +23,11 @@ */ package org.collectionspace.services.loanin.nuxeo; +import java.util.ArrayList; +import java.util.List; + +import org.collectionspace.services.common.service.ListResultField; +import org.collectionspace.services.common.service.DocHandlerParams; import org.collectionspace.services.jaxb.AbstractCommonList; import org.collectionspace.services.loanin.LoansinCommon; import org.collectionspace.services.nuxeo.client.java.DocHandlerBase; @@ -34,23 +39,43 @@ import org.collectionspace.services.nuxeo.client.java.DocHandlerBase; public class LoaninDocumentModelHandler extends DocHandlerBase { - private static DocHandlerBase.CommonListReflection clr; + private static DocHandlerParams.Params params; static { - clr = new DocHandlerBase.CommonListReflection(); - clr.SchemaName= "loanin"; - clr.SummaryFields = "loanInNumber|lender|loanReturnDate|uri|csid"; - clr.AbstractCommonListClassname = "org.collectionspace.services.loanin.LoansinCommonList"; - clr.CommonListItemClassname = "org.collectionspace.services.loanin.LoansinCommonList$LoaninListItem"; - clr.ListResultsItemMethodName = "getLoaninListItem"; + params = new DocHandlerParams.Params(); + params.setSchemaName("loanin"); + params.setDublinCoreTitle("");//"CollectionSpace-Media"; + params.setSummaryFields("loanInNumber|lender|loanReturnDate|uri|csid"); + params.setAbstractCommonListClassname("org.collectionspace.services.loanin.LoansinCommonList"); + params.setCommonListItemClassname("org.collectionspace.services.loanin.LoansinCommonList$LoaninListItem"); + params.setListResultsItemMethodName("getLoaninListItem"); + DocHandlerParams.Params.ListResultsFields lrfs = + new DocHandlerParams.Params.ListResultsFields(); + params.setListResultsFields(lrfs); + List lrfl = lrfs.getListResultField(); + ListResultField lrf = new ListResultField(); + lrf.setSetter("setLoanInNumber"); + lrf.setXpath("loanInNumber"); + lrfl.add( lrf ); + lrf = new ListResultField(); + lrf.setSetter("setLender"); + lrf.setXpath("lenderGroupList/[0]/lender"); + lrfl.add( lrf ); + lrf = new ListResultField(); + lrf.setSetter("setLoanReturnDate"); + lrf.setXpath("loanReturnDate"); + lrfl.add( lrf ); + /* //ListItemsArray array elements: SETTER=0, ELEMENT=1, CONTAINER=2, SUBELEMENT=3; clr.ListItemsArray = new String[][] { {"setLoanInNumber", "loanInNumber"}, {"setLender", "lenderGroupList/[0]/lender"}, {"setLoanReturnDate", "loanReturnDate"} }; + */ } - public DocHandlerBase.CommonListReflection getCommonListReflection(){ - return clr; + + public DocHandlerParams.Params getDocHandlerParams(){ + return params; } } diff --git a/services/media/service/src/main/java/org/collectionspace/services/media/nuxeo/MediaDocumentModelHandler.java b/services/media/service/src/main/java/org/collectionspace/services/media/nuxeo/MediaDocumentModelHandler.java index 08d4f76af..cc47980b8 100644 --- a/services/media/service/src/main/java/org/collectionspace/services/media/nuxeo/MediaDocumentModelHandler.java +++ b/services/media/service/src/main/java/org/collectionspace/services/media/nuxeo/MediaDocumentModelHandler.java @@ -25,6 +25,8 @@ package org.collectionspace.services.media.nuxeo; import org.collectionspace.services.MediaJAXBSchema; import org.collectionspace.services.nuxeo.client.java.DocHandlerBase; +import org.collectionspace.services.common.service.DocHandlerParams; +import org.collectionspace.services.common.service.ListResultField; import org.collectionspace.services.common.blob.BlobInput; import org.collectionspace.services.common.blob.BlobUtil; import org.collectionspace.services.common.context.ServiceContext; @@ -33,6 +35,7 @@ import org.collectionspace.services.jaxb.AbstractCommonList; import org.collectionspace.services.media.MediaCommon; import org.nuxeo.ecm.core.api.DocumentModel; +import java.util.ArrayList; import java.util.List; /** @@ -41,22 +44,47 @@ import java.util.List; public class MediaDocumentModelHandler extends DocHandlerBase { - public static DocHandlerBase.CommonListReflection clr; + private static DocHandlerParams.Params params; static { - clr = new DocHandlerBase.CommonListReflection(); - clr.SchemaName= "media"; - clr.SummaryFields = "title|source|filename|identificationNumber|uri|csid"; - clr.AbstractCommonListClassname = "org.collectionspace.services.media.MediaCommonList"; - clr.CommonListItemClassname = "org.collectionspace.services.media.MediaCommonList$MediaListItem"; - clr.ListResultsItemMethodName = "getMediaListItem"; - clr.ListItemsArray = new String[][] {{"setTitle", "title"}, - {"setSource", "source"}, - {"setFilename", "filename"}, - {"setIdentificationNumber", "identificationNumber"} - }; + params = new DocHandlerParams.Params(); + params.setSchemaName("media"); + params.setDublinCoreTitle("");//"CollectionSpace-Media"; + params.setSummaryFields("title|source|filename|identificationNumber|uri|csid"); + params.setAbstractCommonListClassname("org.collectionspace.services.media.MediaCommonList"); + params.setCommonListItemClassname("org.collectionspace.services.media.MediaCommonList$MediaListItem"); + params.setListResultsItemMethodName("getMediaListItem"); + DocHandlerParams.Params.ListResultsFields lrfs = + new DocHandlerParams.Params.ListResultsFields(); + params.setListResultsFields(lrfs); + List lrfl = lrfs.getListResultField(); + ListResultField lrf = new ListResultField(); + lrf.setSetter("setTitle"); + lrf.setXpath("title"); + lrfl.add( lrf ); + lrf = new ListResultField(); + lrf.setSetter("setSource"); + lrf.setXpath("source"); + lrfl.add( lrf ); + lrf = new ListResultField(); + lrf.setSetter("setFilename"); + lrf.setXpath("filename"); + lrfl.add( lrf ); + lrf = new ListResultField(); + lrf.setSetter("setIdentificationNumber"); + lrf.setXpath("identificationNumber"); + lrfl.add( lrf ); + /* + clr.ListItemsArray = new String[][] + {{"setTitle", "title"}, + {"setSource", "source"}, + {"setFilename", "filename"}, + {"setIdentificationNumber", "identificationNumber"} + }; + */ } - public DocHandlerBase.CommonListReflection getCommonListReflection(){ - return clr; + + public DocHandlerParams.Params getDocHandlerParams(){ + return params; } //============================================================================== diff --git a/services/objectexit/service/src/main/java/org/collectionspace/services/objectexit/nuxeo/ObjectExitDocumentModelHandler.java b/services/objectexit/service/src/main/java/org/collectionspace/services/objectexit/nuxeo/ObjectExitDocumentModelHandler.java index 44184e75c..903f26523 100644 --- a/services/objectexit/service/src/main/java/org/collectionspace/services/objectexit/nuxeo/ObjectExitDocumentModelHandler.java +++ b/services/objectexit/service/src/main/java/org/collectionspace/services/objectexit/nuxeo/ObjectExitDocumentModelHandler.java @@ -23,27 +23,47 @@ */ package org.collectionspace.services.objectexit.nuxeo; +import org.collectionspace.services.common.service.ListResultField; +import org.collectionspace.services.common.service.DocHandlerParams; + +import java.util.ArrayList; +import java.util.List; + import org.collectionspace.services.nuxeo.client.java.DocHandlerBase; import org.collectionspace.services.objectexit.ObjectexitCommon; import org.collectionspace.services.jaxb.AbstractCommonList; public class ObjectExitDocumentModelHandler extends DocHandlerBase { - - public static DocHandlerBase.CommonListReflection clr; + private static DocHandlerParams.Params params; static { - clr = new DocHandlerBase.CommonListReflection(); - clr.SchemaName= "objectexit"; - clr.SummaryFields = "exitNumber|currentOwner|uri|csid"; - clr.AbstractCommonListClassname = "org.collectionspace.services.objectexit.ObjectexitCommonList"; - clr.CommonListItemClassname = "org.collectionspace.services.objectexit.ObjectexitCommonList$ObjectexitListItem"; - clr.ListResultsItemMethodName = "getObjectexitListItem"; - clr.ListItemsArray = new String[][] { + params = new DocHandlerParams.Params(); + params.setSchemaName("objectexit"); + params.setDublinCoreTitle("");//"CollectionSpace-Media"; + params.setSummaryFields("exitNumber|currentOwner|uri|csid"); + params.setAbstractCommonListClassname("org.collectionspace.services.objectexit.ObjectexitCommonList"); + params.setCommonListItemClassname("org.collectionspace.services.objectexit.ObjectexitCommonList$ObjectexitListItem"); + params.setListResultsItemMethodName("getObjectexitListItem"); + DocHandlerParams.Params.ListResultsFields lrfs = + new DocHandlerParams.Params.ListResultsFields(); + params.setListResultsFields(lrfs); + List lrfl = lrfs.getListResultField(); + ListResultField lrf = new ListResultField(); + lrf.setSetter("setExitNumber"); + lrf.setXpath("exitNumber"); + lrfl.add( lrf ); + lrf = new ListResultField(); + lrf.setSetter("setCurrentOwner"); + lrf.setXpath("currentOwner"); + lrfl.add( lrf ); + + /*clr.ListItemsArray = new String[][] { {"setExitNumber", "exitNumber"}, - {"setCurrentOwner", "currentOwner"} - }; + {"setCurrentOwner", "currentOwner"}}; + */ } - public DocHandlerBase.CommonListReflection getCommonListReflection(){ - return clr; + + public DocHandlerParams.Params getDocHandlerParams(){ + return params; } } -- 2.47.3