1 /** 2 * Copyright 2005-2011 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; 17 18 import org.kuali.rice.kns.datadictionary.MaintainableCollectionDefinition; 19 import org.kuali.rice.kns.datadictionary.MaintainableFieldDefinition; 20 import org.kuali.rice.kns.datadictionary.MaintainableItemDefinition; 21 import org.kuali.rice.kns.datadictionary.MaintainableSectionDefinition; 22 import org.kuali.rice.krad.bo.PersistableBusinessObject; 23 import org.kuali.rice.kns.datadictionary.MaintenanceDocumentEntry; 24 import org.kuali.rice.kns.document.MaintenanceDocument; 25 import org.kuali.rice.krad.rule.BusinessRule; 26 27 import java.util.Collection; 28 import java.util.List; 29 30 /** 31 * Defines methods that a MaintenanceDocumentDictionary Service must provide. Defines the API for the interacting 32 * with Document-related entries in the data dictionary. 33 * 34 *@author Kuali Rice Team (rice.collab@kuali.org) 35 */ 36 @Deprecated 37 public interface MaintenanceDocumentDictionaryService { 38 39 /** 40 * Retrieves the label for a maintenance document type 41 * 42 * @param docTypeName - doc type to retrieve label for 43 * @return String doc type label 44 */ 45 public String getMaintenanceLabel(String docTypeName); 46 47 /** 48 * The document type name for a class instance 49 * 50 * @param dataObjectClass 51 * @return The document type name for the class as a String. 52 */ 53 public String getDocumentTypeName(Class dataObjectClass); 54 55 /** 56 * Retrieves the description of the maintenance document 57 * 58 * @param docTypeName 59 * @return The description as a String. 60 */ 61 public String getMaintenanceDescription(String docTypeName); 62 63 /** 64 * The collection of ReferenceDefinition objects defined as DefaultExistenceChecks for the MaintenanceDocument 65 * 66 * @param dataObjectClass 67 * @return A Collection of ReferenceDefinitions 68 */ 69 public Collection getDefaultExistenceChecks(Class dataObjectClass); 70 71 /** 72 * The collection of ReferenceDefinition objects defined as DefaultExistenceChecks for the MaintenanceDocument 73 * 74 * @param docTypeName 75 * @return A Collection of ReferenceDefinitions 76 */ 77 public Collection getDefaultExistenceChecks(String docTypeName); 78 79 /** 80 * A List of field names used as locking keys 81 * 82 * @param docTypeName 83 * @return A List of strings 84 */ 85 public List getLockingKeys(String docTypeName); 86 87 /** 88 * The instance of the business object class associated with this document type name 89 * 90 * @param docTypeName 91 * @return The class instance corresponding to the document type name. 92 */ 93 public Class getDataObjectClass(String docTypeName); 94 95 /** 96 * Retrieves the configured business rule class for the maintenance document 97 * 98 * @param document - maintenance document instance to retrieve rule class for 99 * @return businessRulesClass associated with the given document's type 100 */ 101 public Class<? extends BusinessRule> getBusinessRulesClass(MaintenanceDocument document); 102 103 /** 104 * Returns whether or not this document's data dictionary file has flagged it to allow document copies 105 * 106 * @param document - maintenance document instance to check copy flag for 107 * @return boolean true if copies are allowed, false otherwise 108 */ 109 public Boolean getAllowsCopy(MaintenanceDocument document); 110 111 /** 112 * Returns whether or not this document's data dictionary file has flagged it to allow maintenance new 113 * or copy actions 114 * 115 * @param document - maintenance document instance to check new or copy flag for 116 * @return boolean true if new or copy maintenance actions are allowed 117 */ 118 public Boolean getAllowsNewOrCopy(String docTypeName); 119 120 public MaintenanceDocumentEntry getMaintenanceDocumentEntry(String docTypeName); 121 122 /** 123 * Indicates whether the configured locking keys for a class should be cleared on a maintenance 124 * copy action or values carried forward 125 * 126 * @param dataObjectClass - class for the data object to check 127 * @return boolean true if locking keys should be copied, false if they should be cleared 128 */ 129 public boolean getPreserveLockingKeysOnCopy(Class dataObjectClass); 130 131 /** 132 * Indicates whether the given data object class is configured to allow record deletions 133 * 134 * @param dataObjectClass - class for the data object to check 135 * @return Boolean true if record deletion is allowed, false if not allowed, null if not configured 136 */ 137 public Boolean getAllowsRecordDeletion(Class dataObjectClass); 138 139 /** 140 * Indicates whether the given maintenance document is configured to allow record deletions 141 * 142 * @param document - maintenance document instance to check 143 * @return Boolean true if record deletion is allowed, false if not allowed, null if not configured 144 */ 145 public Boolean getAllowsRecordDeletion(MaintenanceDocument document); 146 147 /** 148 * Retrieves an instance of the class that represents the maintenance document. This is done by 149 * 150 * @param docTypeName 151 * @return A class instance. 152 */ 153 public Class getMaintainableClass(String docTypeName); 154 155 /** 156 * A List of maintainable section object instances corresponding to the document type name. 157 * 158 * @param docTypeName 159 * @return A List of maintable section objects. 160 */ 161 @Deprecated 162 public List<MaintainableSectionDefinition> getMaintainableSections(String docTypeName); 163 164 /** 165 * 166 * This method returns the defaultValue as it would appear in the UI on a maintenance document. 167 * 168 * If both a defaultValue and a defaultValueFinderClass is present in the MaintainableFieldDefinition instance, then the 169 * defaultValue will be preferentially returned. If only one is present, then that will be returned. 170 * 171 * Note that if a defaultValueFinderClass value is present, then this method will attempt to create a new instance of the 172 * specified class. If this attempt to generate a new instance fails, the error will be suppressed, and an null result will be 173 * returned. 174 * 175 * @param boClass - the class of BO being maintained 176 * @param fieldName - the fieldName of the attribute for which the default is desired 177 * @return the default if one is available, null otherwise 178 * 179 */ 180 @Deprecated 181 public String getFieldDefaultValue(Class boClass, String fieldName); 182 183 /** 184 * 185 * This method returns the defaultValue as it would appear in the UI on a maintenance document. 186 * 187 * If both a defaultValue and a defaultValueFinderClass is present in the MaintainableFieldDefinition instance, then the 188 * defaultValue will be preferentially returned. If only one is present, then that will be returned. 189 * 190 * Note that if a defaultValueFinderClass value is present, then this method will attempt to create a new instance of the 191 * specified class. If this attempt to generate a new instance fails, the error will be suppressed, and an null result will be 192 * returned. 193 * 194 * @param docTypeName - the document type name of the maintainable 195 * @param fieldName - the fieldName of the attribute for which the default is desired 196 * @return the default if one is available, null otherwise 197 * 198 */ 199 @Deprecated 200 public String getFieldDefaultValue(String docTypeName, String fieldName); 201 202 /** 203 * 204 * This method returns the defaultValue as it would appear in the UI on a maintenance document for a collection. 205 * 206 * If both a defaultValue and a defaultValueFinderClass is present in the MaintainableFieldDefinition instance, then the 207 * defaultValue will be preferentially returned. If only one is present, then that will be returned. 208 * 209 * Note that if a defaultValueFinderClass value is present, then this method will attempt to create a new instance of the 210 * specified class. If this attempt to generate a new instance fails, the error will be suppressed, and an null result will be 211 * returned. 212 * 213 * @param docTypeName - the document type name of the maintainable 214 * @param collectionName - the name attribute of the collection to which the field belongs 215 * @param fieldName - the fieldName of the attribute for which the default is desired 216 * @return the default if one is available, null otherwise 217 */ 218 @Deprecated 219 public String getCollectionFieldDefaultValue(String docTypeName, String collectionName, String fieldName); 220 221 /** 222 * Returns the business object used to store the values for the given collection. 223 * 224 * @param docTypeName 225 * @param collectionName 226 * @return 227 */ 228 @Deprecated 229 public Class getCollectionBusinessObjectClass( String docTypeName, String collectionName ); 230 231 /** 232 * Returns the definition for the maintainable item identified by "itemName". 233 * 234 * @param docTypeName 235 * @param itemName 236 * @return The item or <b>null</b> if the item does not exist. 237 */ 238 @Deprecated 239 public MaintainableItemDefinition getMaintainableItem( String docTypeName, String itemName ); 240 241 /** 242 * Returns the definition for the maintainable field identified by "fieldName". 243 * 244 * @param docTypeName 245 * @param fieldName 246 * @return The field or <b>null</b> if the item does not exist or is not a field. 247 */ 248 @Deprecated 249 public MaintainableFieldDefinition getMaintainableField( String docTypeName, String fieldName ); 250 251 /** 252 * Returns the definition for the maintainable collection identified by "collectionName". 253 * 254 * @param docTypeName 255 * @param collectionName 256 * @return The collection or <b>null</b> if the item does not exist or is not a collection. 257 */ 258 @Deprecated 259 public MaintainableCollectionDefinition getMaintainableCollection( String docTypeName, String collectionName ); 260 261 /** 262 * Gets a list of all top-level maintainable collections on the document 263 * 264 * @param docTypeName 265 * @return 266 */ 267 @Deprecated 268 public List<MaintainableCollectionDefinition> getMaintainableCollections( String docTypeName ); 269 270 /** 271 * Returns a list of all collections within the given collection 272 * 273 * @param parentCollection 274 * @return 275 */ 276 @Deprecated 277 public List<MaintainableCollectionDefinition> getMaintainableCollections( MaintainableCollectionDefinition parentCollection ); 278 279 280 /** 281 * Validates the maintenance document contains values for the fields declared as required in the 282 * maintenance document data dictionary file. 283 * 284 * @param document 285 */ 286 @Deprecated 287 public void validateMaintenanceRequiredFields(MaintenanceDocument document); 288 289 /** 290 * validates the collections of the maintenance document checking to see if duplicate entries in the collection exist 291 * @param document 292 */ 293 public void validateMaintainableCollectionsForDuplicateEntries(MaintenanceDocument document); 294 295 @Deprecated 296 public void validateMaintainableCollectionsAddLineRequiredFields(MaintenanceDocument document, PersistableBusinessObject businessObject, String collectionName ); 297 298 /** 299 * @param businessObjectClass - business object class for maintenance definition 300 * @return Boolean indicating whether translating of codes is configured to true in maintenance definition 301 */ 302 @Deprecated 303 public Boolean translateCodes(Class businessObjectClass); 304 305 }