From: Richard Millet Date: Fri, 7 Aug 2009 23:55:41 +0000 (+0000) Subject: CSPACE-332: Changes towards supporting new "handler" model for services. X-Git-Url: https://git.aero2k.de/?a=commitdiff_plain;h=0fe8d625fd987ee2f88fad47fc884a2850e55572;p=tmp%2Fjakarta-migration.git CSPACE-332: Changes towards supporting new "handler" model for services. --- diff --git a/services/collectionobject/service/src/main/java/org/collectionspace/services/collectionobject/CollectionObjectDocumentModelHandler.java b/services/collectionobject/service/src/main/java/org/collectionspace/services/collectionobject/CollectionObjectDocumentModelHandler.java deleted file mode 100644 index 263c36afc..000000000 --- a/services/collectionobject/service/src/main/java/org/collectionspace/services/collectionobject/CollectionObjectDocumentModelHandler.java +++ /dev/null @@ -1,218 +0,0 @@ -/** - * This document is a part of the source code and related artifacts - * for CollectionSpace, an open source collections management system - * for museums and related institutions: - - * http://www.collectionspace.org - * http://wiki.collectionspace.org - - * Copyright 2009 University of California at Berkeley - - * Licensed under the Educational Community License (ECL), Version 2.0. - * You may not use this file except in compliance with this License. - - * You may obtain a copy of the ECL 2.0 License at - - * https://source.collectionspace.org/collection-space/LICENSE.txt - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.collectionspace.services.collectionobject.nuxeo; - -import java.util.Iterator; -import java.util.List; -import org.collectionspace.services.CollectionObjectJAXBSchema; -import org.collectionspace.services.collectionobject.CollectionObject; -import org.collectionspace.services.collectionobject.CollectionObjectList; -import org.collectionspace.services.collectionobject.CollectionObjectList.CollectionObjectListItem; -import org.collectionspace.services.common.repository.DocumentWrapper; -import org.collectionspace.services.nuxeo.client.java.DocumentModelHandler; -import org.nuxeo.ecm.core.api.DocumentModel; -import org.nuxeo.ecm.core.api.DocumentModelList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * CollectionObjectDocumentModelHandler - * - * $LastChangedRevision: $ - * $LastChangedDate: $ - */ -public class CollectionObjectDocumentModelHandler - extends DocumentModelHandler { - - private final Logger logger = LoggerFactory.getLogger(CollectionObjectDocumentModelHandler.class); - /** - * collectionObject is used to stash JAXB object to use when handle is called - * for Action.CREATE, Action.UPDATE or Action.GET - */ - private CollectionObject collectionObject; - /** - * collectionObjectList is stashed when handle is called - * for ACTION.GET_ALL - */ - private CollectionObjectList collectionObjectList; - - @Override - public void prepare(Action action) throws Exception { - //no specific action needed - } - - - /** - * getCommonObject get associated CollectionObject - * @return - */ - @Override - public CollectionObject getCommonObject() { - return collectionObject; - } - - /** - * setCommonObject set associated collectionobject - * @param collectionObject - */ - @Override - public void setCommonObject(CollectionObject collectionObject) { - this.collectionObject = collectionObject; - } - - /** - * getCollectionObjectList get associated CollectionObject (for index/GET_ALL) - * @return - */ - @Override - public CollectionObjectList getCommonObjectList() { - return collectionObjectList; - } - - @Override - public void setCommonObjectList(CollectionObjectList collectionObjectList) { - this.collectionObjectList = collectionObjectList; - } - - @Override - public CollectionObject extractCommonObject(DocumentWrapper wrapDoc) - throws Exception { - DocumentModel docModel = (DocumentModel) wrapDoc.getWrappedObject(); - CollectionObject co = new CollectionObject(); - - //FIXME property get should be dynamically set using schema inspection - //so it does not require hard coding - - // CollectionObject core values - co.setObjectNumber((String) docModel.getPropertyValue( - getQProperty(CollectionObjectJAXBSchema.OBJECT_NUMBER))); - co.setOtherNumber((String) docModel.getPropertyValue( - getQProperty(CollectionObjectJAXBSchema.OTHER_NUMBER))); - co.setBriefDescription((String) docModel.getPropertyValue( - getQProperty(CollectionObjectJAXBSchema.BRIEF_DESCRIPTION))); - co.setComments((String) docModel.getPropertyValue( - getQProperty(CollectionObjectJAXBSchema.COMMENTS))); - co.setDistFeatures((String) docModel.getPropertyValue( - getQProperty(CollectionObjectJAXBSchema.DIST_FEATURES))); - co.setObjectName((String) docModel.getPropertyValue( - getQProperty(CollectionObjectJAXBSchema.OBJECT_NAME))); - co.setResponsibleDept((String) docModel.getPropertyValue( - getQProperty(CollectionObjectJAXBSchema.RESPONSIBLE_DEPT))); - co.setTitle((String) docModel.getPropertyValue( - getQProperty(CollectionObjectJAXBSchema.TITLE))); - - return co; - } - - @Override - public void fillCommonObject(CollectionObject co, DocumentWrapper wrapDoc) throws Exception { - DocumentModel docModel = (DocumentModel) 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", CollectionObjectConstants.CO_NUXEO_DC_TITLE); - - // CollectionObject core values - if(co.getObjectNumber() != null){ - docModel.setPropertyValue( - getQProperty(CollectionObjectJAXBSchema.OBJECT_NUMBER), - co.getObjectNumber()); - } - if(co.getOtherNumber() != null){ - docModel.setPropertyValue( - getQProperty(CollectionObjectJAXBSchema.OTHER_NUMBER), - co.getOtherNumber()); - } - if(co.getBriefDescription() != null){ - docModel.setPropertyValue( - getQProperty(CollectionObjectJAXBSchema.BRIEF_DESCRIPTION), - co.getBriefDescription()); - } - if(co.getComments() != null){ - docModel.setPropertyValue( - getQProperty(CollectionObjectJAXBSchema.COMMENTS), - co.getComments()); - } - if(co.getDistFeatures() != null){ - docModel.setPropertyValue( - getQProperty(CollectionObjectJAXBSchema.DIST_FEATURES), - co.getDistFeatures()); - } - if(co.getObjectName() != null){ - docModel.setPropertyValue( - getQProperty(CollectionObjectJAXBSchema.OBJECT_NAME), - co.getObjectName()); - } - if(co.getResponsibleDept() != null){ - docModel.setPropertyValue( - getQProperty(CollectionObjectJAXBSchema.RESPONSIBLE_DEPT), - co.getResponsibleDept()); - } - if(co.getTitle() != null){ - docModel.setPropertyValue( - getQProperty(CollectionObjectJAXBSchema.TITLE), - co.getTitle()); - } - } - - @Override - public CollectionObjectList extractCommonObjectList(DocumentWrapper wrapDoc) throws Exception { - DocumentModelList docList = (DocumentModelList) wrapDoc.getWrappedObject(); - - CollectionObjectList coList = new CollectionObjectList(); - List list = coList.getCollectionObjectListItem(); - - //FIXME: iterating over a long list of documents is not a long term - //strategy...need to change to more efficient iterating in future - Iterator iter = docList.iterator(); - while(iter.hasNext()){ - DocumentModel docModel = iter.next(); - CollectionObjectListItem coListItem = new CollectionObjectListItem(); - coListItem.setObjectNumber((String) docModel.getPropertyValue( - getQProperty(CollectionObjectJAXBSchema.OBJECT_NUMBER))); - //need fully qualified context for URI - coListItem.setUri("/collectionobjects/" + docModel.getId()); - coListItem.setCsid(docModel.getId()); - list.add(coListItem); - } - - return coList; - } - - @Override - public void fillCommonObjectList(CollectionObjectList obj, DocumentWrapper wrapDoc) throws Exception { - throw new UnsupportedOperationException(); - } - - /** - * getQProperty converts the given property to qualified schema property - * @param prop - * @return - */ - private String getQProperty(String prop) { - return CollectionObjectConstants.CO_NUXEO_SCHEMA_NAME + ":" + prop; - } -} - diff --git a/services/collectionobject/service/src/main/java/org/collectionspace/services/collectionobject/CollectionObjectHandlerFactory.java b/services/collectionobject/service/src/main/java/org/collectionspace/services/collectionobject/CollectionObjectHandlerFactory.java deleted file mode 100644 index bcaa606b1..000000000 --- a/services/collectionobject/service/src/main/java/org/collectionspace/services/collectionobject/CollectionObjectHandlerFactory.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * This document is a part of the source code and related artifacts - * for CollectionSpace, an open source collections management system - * for museums and related institutions: - - * http://www.collectionspace.org - * http://wiki.collectionspace.org - - * Copyright 2009 University of California at Berkeley - - * Licensed under the Educational Community License (ECL), Version 2.0. - * You may not use this file except in compliance with this License. - - * You may obtain a copy of the ECL 2.0 License at - - * https://source.collectionspace.org/collection-space/LICENSE.txt - - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.collectionspace.services.collectionobject.nuxeo; - -import org.collectionspace.services.common.NuxeoClientType; -import org.collectionspace.services.common.repository.DocumentHandler; - -/** - * CollectionObjectHandlerFactory creates handlers for collectionobject based - * on type of Nuxeo client used - * - * $LastChangedRevision: $ - * $LastChangedDate: $ - */ -public class CollectionObjectHandlerFactory { - - private static final CollectionObjectHandlerFactory self = new CollectionObjectHandlerFactory(); - - private CollectionObjectHandlerFactory() { - } - - public static CollectionObjectHandlerFactory getInstance() { - return self; - } - - public DocumentHandler getHandler(String clientType) { - if(NuxeoClientType.JAVA.toString().equals(clientType)){ - return new CollectionObjectDocumentModelHandler(); - } else if(NuxeoClientType.REST.toString().equals(clientType)) { - return new CollectionObjectRepresenationHandler(); - } - throw new IllegalArgumentException("Not supported client=" + clientType); - } -}