From: Laramie Crocker Date: Wed, 15 Dec 2010 21:10:08 +0000 (+0000) Subject: CSPACE-3332 X-Git-Url: https://git.aero2k.de/?a=commitdiff_plain;h=8f8fc8b11c122066a6922cf7be4da4299ecc2919;p=tmp%2Fjakarta-migration.git CSPACE-3332 --- 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 6267b2c72..c8e5cde83 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,161 +23,35 @@ */ package org.collectionspace.services.acquisition.nuxeo; -import java.util.Iterator; -import java.util.List; -import java.util.StringTokenizer; - -import org.collectionspace.services.AcquisitionListItemJAXBSchema; -import org.collectionspace.services.common.document.DocumentWrapper; import org.collectionspace.services.acquisition.AcquisitionsCommon; -import org.collectionspace.services.acquisition.AcquisitionsCommonList; -import org.collectionspace.services.acquisition.AcquisitionsCommonList.AcquisitionListItem; -import org.collectionspace.services.acquisition.AcquisitionSourceList; -import org.collectionspace.services.acquisition.OwnerList; -import org.collectionspace.services.common.document.DocumentHandler.Action; import org.collectionspace.services.jaxb.AbstractCommonList; -import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl; -import org.collectionspace.services.nuxeo.util.NuxeoUtils; -import org.nuxeo.ecm.core.api.DocumentModel; -import org.nuxeo.ecm.core.api.DocumentModelList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.collectionspace.services.nuxeo.client.java.DocHandlerBase; -/** - * AcquisitionDocumentModelHandler - * - * $LastChangedRevision: $ - * $LastChangedDate: $ +/** AcquisitionDocumentModelHandler + * $LastChangedRevision: $ + * $LastChangedDate: $ */ public class AcquisitionDocumentModelHandler - extends RemoteDocumentModelHandlerImpl { - - private final Logger logger = LoggerFactory.getLogger(AcquisitionDocumentModelHandler.class); - /** - * acquisition is used to stash JAXB object to use when handle is called - * for Action.CREATE, Action.UPDATE or Action.GET - */ - private AcquisitionsCommon acquisition; - /** - * acquisitionList is stashed when handle is called - * for ACTION.GET_ALL - */ - private AcquisitionsCommonList acquisitionList; - - - /** - * getCommonPart get associated acquisition - * @return - */ - @Override - public AcquisitionsCommon getCommonPart() { - return acquisition; - } - - /** - * setCommonPart set associated acquisition - * @param acquisition - */ - @Override - public void setCommonPart(AcquisitionsCommon acquisition) { - this.acquisition = acquisition; - } - - /** - * getAcquisitionList get associated acquisition (for index/GET_ALL) - * @return - */ - @Override - public AcquisitionsCommonList getCommonPartList() { - return acquisitionList; - } - - @Override - public void setCommonPartList(AcquisitionsCommonList acquisitionList) { - this.acquisitionList = acquisitionList; - } - - @Override - public AcquisitionsCommon extractCommonPart(DocumentWrapper wrapDoc) - throws Exception { - throw new UnsupportedOperationException(); - } - - @Override - public void fillCommonPart(AcquisitionsCommon acquisitionObject, DocumentWrapper wrapDoc) throws Exception { - throw new UnsupportedOperationException(); - } - - @Override - public AcquisitionsCommonList extractCommonPartList(DocumentWrapper wrapDoc) throws Exception { - AcquisitionsCommonList coList = this.extractPagingInfo(new AcquisitionsCommonList(), wrapDoc); - AbstractCommonList commonList = (AbstractCommonList) coList; - commonList.setFieldsReturned("acquisitionReferenceNumber|acquisitionSources|owners|uri|csid"); - List list = coList.getAcquisitionListItem(); - Iterator iter = wrapDoc.getWrappedObject().iterator(); - String label = getServiceContext().getCommonPartLabel(); - while (iter.hasNext()) { - DocumentModel docModel = iter.next(); - AcquisitionListItem listItem = new AcquisitionListItem(); - - listItem.setAcquisitionReferenceNumber((String) docModel.getProperty(label, - AcquisitionListItemJAXBSchema.ACQUISITION_REFERENCE_NUMBER)); - - List acquisitionSources =(List) docModel.getProperty(label,AcquisitionListItemJAXBSchema.ACQUISITION_SOURCES); - String primaryAcquisitionSource = primaryValueFromMultivalue(acquisitionSources,AcquisitionListItemJAXBSchema.ACQUISITION_SOURCE); - listItem.setAcquisitionSource(primaryAcquisitionSource); - - List owners =(List) docModel.getProperty(label,AcquisitionListItemJAXBSchema.OWNERS); - String primaryOwner = primaryValueFromMultivalue(owners,AcquisitionListItemJAXBSchema.OWNER); - listItem.setOwner(primaryOwner); - - //need fully qualified context for URI - String id = NuxeoUtils.extractId(docModel.getPathAsString()); - listItem.setUri(getServiceContextPath() + id); - listItem.setCsid(id); - list.add(listItem); - } - - return coList; - } - - @Override - public void fillAllParts(DocumentWrapper wrapDoc, Action action) throws Exception { - - super.fillAllParts(wrapDoc, action); - fillDublinCoreObject(wrapDoc); //dublincore might not be needed in future - } - - private void fillDublinCoreObject(DocumentWrapper wrapDoc) throws Exception { - DocumentModel docModel = wrapDoc.getWrappedObject(); - //FIXME property setter should be dynamically set using schema inspection - //so it does not require hard coding - // a default title for the Dublin Core schema - docModel.setPropertyValue("dublincore:title", AcquisitionConstants.NUXEO_DC_TITLE); - } - - - /** - * getQProperty converts the given property to qualified schema property - * @param prop - * @return - */ - @Override - public String getQProperty(String prop) { - return AcquisitionConstants.NUXEO_SCHEMA_NAME + ":" + prop; + extends DocHandlerBase { + + private static DocHandlerBase.CommonListReflection clr; + static { + clr = new DocHandlerBase.CommonListReflection(); + clr.NuxeoSchemaName= "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.ListItemMethodName = "getAcquisitionListItem"; + //ListItemsArray array elements: SETTER=0, ELEMENT=1, CONTAINER=2, SUBELEMENT=3; + clr.ListItemsArray = new String[][] { {"setAcquisitionReferenceNumber","acquisitionReferenceNumber","",""}, + {"setAcquisitionSource","acquisitionSources","acquisitionSources","acquisitionSource"}, + {"setOwner","owner","owners","owner"} + }; + } + public DocHandlerBase.CommonListReflection getCommonListReflection(){ + return clr; } - // The following are all private in DocumentUtils; - // might be moved to a common class. - private static String NAME_VALUE_SEPARATOR = "|"; - - private static class NameValue { - NameValue() { - // default scoped constructor to remove "synthetic accessor" warning - } - String name; - String value; - }; - }