001 /** 002 * Copyright 2005-2012 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.rice.kns.service; 017 018 import org.kuali.rice.kns.datadictionary.MaintainableCollectionDefinition; 019 import org.kuali.rice.kns.datadictionary.MaintainableFieldDefinition; 020 import org.kuali.rice.kns.datadictionary.MaintainableItemDefinition; 021 import org.kuali.rice.kns.datadictionary.MaintainableSectionDefinition; 022 import org.kuali.rice.krad.bo.PersistableBusinessObject; 023 import org.kuali.rice.kns.datadictionary.MaintenanceDocumentEntry; 024 import org.kuali.rice.kns.document.MaintenanceDocument; 025 import org.kuali.rice.krad.rules.rule.BusinessRule; 026 027 import java.util.Collection; 028 import java.util.List; 029 030 /** 031 * Defines methods that a MaintenanceDocumentDictionary Service must provide. Defines the API for the interacting 032 * with Document-related entries in the data dictionary. 033 * 034 *@author Kuali Rice Team (rice.collab@kuali.org) 035 */ 036 @Deprecated 037 public interface MaintenanceDocumentDictionaryService { 038 039 /** 040 * Retrieves the label for a maintenance document type 041 * 042 * @param docTypeName - doc type to retrieve label for 043 * @return String doc type label 044 */ 045 public String getMaintenanceLabel(String docTypeName); 046 047 /** 048 * The document type name for a class instance 049 * 050 * @param dataObjectClass 051 * @return The document type name for the class as a String. 052 */ 053 public String getDocumentTypeName(Class dataObjectClass); 054 055 /** 056 * Retrieves the description of the maintenance document 057 * 058 * @param docTypeName 059 * @return The description as a String. 060 */ 061 public String getMaintenanceDescription(String docTypeName); 062 063 /** 064 * The collection of ReferenceDefinition objects defined as DefaultExistenceChecks for the MaintenanceDocument 065 * 066 * @param dataObjectClass 067 * @return A Collection of ReferenceDefinitions 068 */ 069 public Collection getDefaultExistenceChecks(Class dataObjectClass); 070 071 /** 072 * The collection of ReferenceDefinition objects defined as DefaultExistenceChecks for the MaintenanceDocument 073 * 074 * @param docTypeName 075 * @return A Collection of ReferenceDefinitions 076 */ 077 public Collection getDefaultExistenceChecks(String docTypeName); 078 079 /** 080 * A List of field names used as locking keys 081 * 082 * @param docTypeName 083 * @return A List of strings 084 */ 085 public List getLockingKeys(String docTypeName); 086 087 /** 088 * The instance of the business object class associated with this document type name 089 * 090 * @param docTypeName 091 * @return The class instance corresponding to the document type name. 092 */ 093 public Class getDataObjectClass(String docTypeName); 094 095 /** 096 * Retrieves the configured business rule class for the maintenance document 097 * 098 * @param document - maintenance document instance to retrieve rule class for 099 * @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 }