View Javadoc

1   /**
2    * Copyright 2005-2013 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.rice.kns.service.impl;
17  
18  import java.util.Collection;
19  
20  import org.kuali.rice.kew.api.KewApiServiceLocator;
21  import org.kuali.rice.kew.api.doctype.DocumentType;
22  import org.kuali.rice.kns.service.TransactionalDocumentDictionaryService;
23  import org.kuali.rice.krad.datadictionary.DataDictionary;
24  import org.kuali.rice.krad.datadictionary.TransactionalDocumentEntry;
25  import org.kuali.rice.krad.document.TransactionalDocument;
26  import org.kuali.rice.krad.rules.rule.BusinessRule;
27  import org.kuali.rice.krad.service.DataDictionaryService;
28  
29  /**
30   * This class is the service implementation for the TransactionalDocumentDictionary structure. Defines the API for the interacting
31   * with Document-related entries in the data dictionary. This is the default implementation that gets delivered with Kuali.
32   */
33  @Deprecated
34  public class TransactionalDocumentDictionaryServiceImpl implements TransactionalDocumentDictionaryService {
35      private DataDictionaryService dataDictionaryService;
36  
37      /**
38       * @see org.kuali.rice.kns.service.TransactionalDocumentDictionaryService#getAllowsCopy(org.kuali.bo.TransactionalDocument)
39       */
40      public Boolean getAllowsCopy(TransactionalDocument document) {
41          Boolean allowsCopy = null;
42  
43          TransactionalDocumentEntry entry = getTransactionalDocumentEntry(document);
44          if (entry != null) {
45              allowsCopy = Boolean.valueOf(entry.getAllowsCopy());
46          }
47  
48          return allowsCopy;
49      }
50  
51      /**
52       * @see org.kuali.rice.kns.service.TransactionalDocumentDictionaryService#getDocumentClassByName(java.lang.String)
53       */
54      public Class getDocumentClassByName(String documentTypeName) {
55          Class documentClass = null;
56  
57          TransactionalDocumentEntry entry = getTransactionalDocumentEntryBydocumentTypeName(documentTypeName);
58          if (entry != null) {
59              documentClass = entry.getDocumentClass();
60          }
61  
62          return documentClass;
63      }
64  
65      /**
66       * @see org.kuali.rice.kns.service.TransactionalDocumentDictionaryService#getDescription(org.kuali.bo.TransactionalDocument)
67       */
68      public String getDescription(String transactionalDocumentTypeName) {
69          String description = null;
70  
71          DocumentType docType = getDocumentType(transactionalDocumentTypeName);
72          if (docType != null) {
73              description = docType.getDescription();
74          }
75  
76          return description;
77      }
78  
79      /**
80       * @see org.kuali.rice.kns.service.TransactionalDocumentDictionaryService#getDescription(org.kuali.bo.TransactionalDocument)
81       */
82      public String getLabel(String transactionalDocumentTypeName) {
83          String label = null;
84  
85          DocumentType docType = getDocumentType(transactionalDocumentTypeName);
86          if (docType != null) {
87              label = docType.getLabel();
88          }
89  
90          return label;
91      }
92  
93  
94      /**
95       * Sets the data dictionary instance.
96       * 
97       * @param dataDictionaryService
98       */
99      public void setDataDictionaryService(DataDictionaryService dataDictionaryService) {
100         this.dataDictionaryService = dataDictionaryService;
101     }
102 
103     /**
104      * Retrieves the data dictionary instance.
105      * 
106      * @return
107      */
108     public DataDictionary getDataDictionary() {
109         return this.dataDictionaryService.getDataDictionary();
110     }
111 
112     /**
113      * This method gets the workflow document type for the given documentTypeName
114      * 
115      * @param documentTypeName
116      * @return
117      */
118     protected DocumentType getDocumentType(String documentTypeName) {
119         return KewApiServiceLocator.getDocumentTypeService().getDocumentTypeByName(documentTypeName);
120     }
121 
122     /**
123      * Retrieves the document entry by transactional document class instance.
124      * 
125      * @param document
126      * @return TransactionalDocumentEntry
127      */
128     private TransactionalDocumentEntry getTransactionalDocumentEntry(TransactionalDocument document) {
129         if (document == null) {
130             throw new IllegalArgumentException("invalid (null) document");
131         }
132 
133         TransactionalDocumentEntry entry = (TransactionalDocumentEntry)getDataDictionary().getDocumentEntry(document.getClass().getName());
134 
135         return entry;
136     }
137 
138     /**
139      * Retrieves the document entry by transactional document type name.
140      * 
141      * @param documentTypeName
142      * @return
143      */
144     private TransactionalDocumentEntry getTransactionalDocumentEntryBydocumentTypeName(String documentTypeName) {
145         if (documentTypeName == null) {
146             throw new IllegalArgumentException("invalid (null) document type name");
147         }
148 
149         TransactionalDocumentEntry entry = (TransactionalDocumentEntry) getDataDictionary().getDocumentEntry(documentTypeName);
150 
151         return entry;
152     }
153 
154 	/**
155 	 * This overridden method ...
156 	 * 
157 	 * @see org.kuali.rice.kns.service.TransactionalDocumentDictionaryService#getDefaultExistenceChecks(java.lang.String)
158 	 */
159 	public Collection getDefaultExistenceChecks(String docTypeName) {
160         Collection defaultExistenceChecks = null;
161 
162         TransactionalDocumentEntry entry = getTransactionalDocumentEntryBydocumentTypeName(docTypeName);
163         if (entry != null) {
164             defaultExistenceChecks = entry.getDefaultExistenceChecks();
165         }
166 
167         return defaultExistenceChecks;
168 	}
169 
170 	/**
171 	 * This overridden method ...
172 	 * 
173 	 * @see org.kuali.rice.kns.service.TransactionalDocumentDictionaryService#getDefaultExistenceChecks(org.kuali.rice.krad.document.TransactionalDocument)
174 	 */
175 	public Collection getDefaultExistenceChecks(TransactionalDocument document) {
176 		return getDefaultExistenceChecks(getTransactionalDocumentEntry(document).getDocumentTypeName());
177 	}
178 }