]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
c2f448da2d39b0ae0b947b85e2a73326ba9420c9
[tmp/jakarta-migration.git] /
1 /**
2  *  This document is a part of the source code and related artifacts
3  *  for CollectionSpace, an open source collections management system
4  *  for museums and related institutions:
5
6  *  http://www.collectionspace.org
7  *  http://wiki.collectionspace.org
8
9  *  Copyright 2009 University of California at Berkeley
10
11  *  Licensed under the Educational Community License (ECL), Version 2.0.
12  *  You may not use this file except in compliance with this License.
13
14  *  You may obtain a copy of the ECL 2.0 License at
15
16  *  https://source.collectionspace.org/collection-space/LICENSE.txt
17
18  *  Unless required by applicable law or agreed to in writing, software
19  *  distributed under the License is distributed on an "AS IS" BASIS,
20  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  *  See the License for the specific language governing permissions and
22  *  limitations under the License.
23  */
24 package org.collectionspace.services.vocabulary;
25
26 import org.collectionspace.services.client.VocabularyClient;
27 import org.collectionspace.services.common.context.ServiceBindingUtils;
28 import org.collectionspace.services.common.vocabulary.AuthorityItemJAXBSchema;
29 import org.collectionspace.services.common.vocabulary.AuthorityResource;
30 import org.collectionspace.services.nuxeo.util.NuxeoUtils;
31 import org.collectionspace.services.vocabulary.nuxeo.VocabularyItemDocumentModelHandler;
32 import org.slf4j.Logger;
33 import org.slf4j.LoggerFactory;
34
35 import javax.ws.rs.Path;
36
37 @Path("/" + VocabularyClient.SERVICE_PATH_COMPONENT)
38 public class VocabularyResource extends 
39         AuthorityResource<VocabulariesCommon, VocabularyItemDocumentModelHandler> {
40
41     private final static String vocabularyServiceName = VocabularyClient.SERVICE_PATH_COMPONENT;
42
43         private final static String VOCABULARIES_COMMON = "vocabularies_common";
44     
45     private final static String vocabularyItemServiceName = "vocabularyitems";
46         private final static String VOCABULARYITEMS_COMMON = "vocabularyitems_common";
47     
48     final Logger logger = LoggerFactory.getLogger(VocabularyResource.class);
49
50         public VocabularyResource() {
51                 super(VocabulariesCommon.class, VocabularyResource.class,
52                                 VOCABULARIES_COMMON, VOCABULARYITEMS_COMMON);
53         }
54
55     @Override
56     public String getServiceName() {
57         return vocabularyServiceName;
58     }
59
60     @Override
61     public String getItemServiceName() {
62         return vocabularyItemServiceName;
63     }
64     
65         @Override
66         public Class<VocabulariesCommon> getCommonPartClass() {
67                 return VocabulariesCommon.class;
68         }
69
70     /**
71      * @return the name of the property used to specify references for items in this type of
72      * authority. For most authorities, it is ServiceBindingUtils.AUTH_REF_PROP ("authRef").
73      * Some types (like Vocabulary) use a separate property.
74      */
75         @Override
76     protected String getRefPropName() {
77         return ServiceBindingUtils.TERM_REF_PROP;
78     }
79         
80         protected String getQualifiedDisplayNameField() {
81                 String result = null;
82
83                 result = authorityItemCommonSchemaName + ":" + VocabularyItemJAXBSchema.DISPLAY_NAME;
84
85                 return result;
86         }       
87
88         /*
89          * The item schema for the Vocabulary service does not support a multi-valued term list.  Only authorities that support
90          * term lists need to implement this method.
91          */
92         @Override
93         public String getItemTermInfoGroupXPathBase() {
94                 throw new UnsupportedOperationException("operation not relevant for AccountDocumentHandler");
95         }
96 }