1 /**
2 * Copyright 2005-2012 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.inquiry.InquiryAuthorizer;
19 import org.kuali.rice.kns.inquiry.InquiryPresentationController;
20 import org.kuali.rice.krad.bo.BusinessObject;
21 import org.kuali.rice.krad.valuefinder.ValueFinder;
22
23 import java.util.List;
24
25
26 /**
27 * This interface defines the API for the interacting with the data dictionary.
28 */
29 @Deprecated
30 public interface BusinessObjectDictionaryService {
31 public <T extends BusinessObject> InquiryPresentationController getInquiryPresentationController(Class<T> businessObjectClass);
32
33 public <T extends BusinessObject> InquiryAuthorizer getInquiryAuthorizer(Class<T> businessObjectClass);
34
35 /**
36 * the list of business object class names being maintained
37 */
38 public List getBusinessObjectClassnames();
39
40
41 /**
42 * indicates whether business object has lookup defined
43 */
44 public Boolean isLookupable(Class businessObjectClass);
45
46
47 /**
48 * indicates whether business object has inquiry defined
49 */
50 public Boolean isInquirable(Class businessObjectClass);
51
52
53 /**
54 * indicates whether business object has maintainable defined
55 */
56 public Boolean isMaintainable(Class businessObjectClass);
57
58
59 /**
60 * indicates whether business object has an exporter defined
61 */
62 public Boolean isExportable(Class businessObjectClass);
63
64 /**
65 * the list defined as lookup fields for the business object.
66 */
67 public List getLookupFieldNames(Class businessObjectClass);
68
69
70 /**
71 * the text to be displayed for the title of business object lookup.
72 */
73 public String getLookupTitle(Class businessObjectClass);
74
75
76 /**
77 * menu bar html defined for the business object.
78 */
79 public String getLookupMenuBar(Class businessObjectClass);
80
81
82 /**
83 * source for optional extra button
84 */
85 public String getExtraButtonSource(Class businessObjectClass);
86
87
88 /**
89 * return parameters for optional extra button
90 */
91 public String getExtraButtonParams(Class businessObjectClass);
92
93
94 /**
95 * the property names of the bo used to sort the initial result set
96 */
97 public List getLookupDefaultSortFieldNames(Class businessObjectClass);
98
99
100 /**
101 * the list defined as lookup result fields for the business object.
102 */
103 public List<String> getLookupResultFieldNames(Class businessObjectClass);
104
105 /**
106 * This method returns the maximum display length of the value of the given field in the lookup results. While the actual value may
107 * be longer than the specified length, this value specifies the maximum length substring that should be displayed.
108 * It is up to the UI layer to intepret the results of the field
109 *
110 * @param businessObjectClass
111 * @param resultFieldName
112 * @return the maximum length of the lookup results field that should be displayed. Returns null
113 * if this value has not been defined. If negative, denotes that the is maximum length is unlimited.
114 */
115 public Integer getLookupResultFieldMaxLength(Class businessObjectClass, String resultFieldName);
116
117 /**
118 * returns boolean indicating whether lookup result field marked to force an inquiry
119 */
120 public Boolean forceLookupResultFieldInquiry(Class businessObjectClass, String attributeName);
121
122
123 /**
124 * returns boolean indicating whether lookup result field marked to not do an inquiry
125 */
126 public Boolean noLookupResultFieldInquiry(Class businessObjectClass, String attributeName);
127
128
129 /**
130 * returns boolean indicating whether lookup search field marked to force a lookup
131 */
132 public Boolean forceLookupFieldLookup(Class businessObjectClass, String attributeName);
133
134 /**
135 * returns boolean indicating whether lookup search field marked to force an inquiry
136 */
137 public Boolean forceInquiryFieldLookup(Class businessObjectClass, String attributeName);
138
139 /**
140 * returns boolean indicating whether lookup search field marked to not do a lookup
141 */
142 public Boolean noLookupFieldLookup(Class businessObjectClass, String attributeName);
143
144
145 /**
146 * returns boolean indicating whether lookup search field marked to not do a direct inquiry
147 */
148 public Boolean noDirectInquiryFieldLookup(Class businessObjectClass, String attributeName);
149
150
151 /**
152 * returns boolean indicating whether inquiry result field marked to force an inquiry
153 */
154 public Boolean forceInquiryFieldInquiry(Class businessObjectClass, String attributeName);
155
156
157 /**
158 * returns boolean indicating whether inquiry result field marked to not do an inquiry
159 */
160 public Boolean noInquiryFieldInquiry(Class businessObjectClass, String attributeName);
161
162 /**
163 * returns boolean indicating whether lookup result field to use shortLabel
164 */
165 public Boolean getLookupResultFieldUseShortLabel(Class businessObjectClass, String attributeName);
166
167 /**
168 * returns boolean indicating whether lookup result field should be totaled
169 */
170 public Boolean getLookupResultFieldTotal(Class businessObjectClass, String attributeName);
171
172 /**
173 * returns String indicating the default search value for the lookup field
174 */
175 public String getLookupFieldDefaultValue(Class businessObjectClass, String attributeName);
176
177
178 /**
179 * returns Class used to generate a lookup field default value
180 */
181 public Class getLookupFieldDefaultValueFinderClass(Class businessObjectClass, String attributeName);
182
183 /**
184 * See {@link FieldDefinition#getQuickfinderParameterString()}.
185 * returns String indicating the default search value for the lookup field.
186 */
187 public String getLookupFieldQuickfinderParameterString(Class businessObjectClass, String attributeName);
188
189
190 /**
191 * returns Class used to generate quickfinder lookup field default values.
192 * See {@link FieldDefinition#getQuickfinderParameterStringBuilderClass()}.
193 */
194 public Class<? extends ValueFinder> getLookupFieldQuickfinderParameterStringBuilderClass(Class businessObjectClass, String attributeName);
195
196
197 /**
198 * returns String indicating the result set limit for the lookup
199 */
200 public Integer getLookupResultSetLimit(Class businessObjectClass);
201
202 /**
203 * returns Integer indicating the result set limit for a multiple values lookup
204 */
205 public Integer getMultipleValueLookupResultSetLimit(Class businessObjectClass);
206
207 /**
208 * @return number of search columns configured for the lookup associated with the class
209 */
210 public Integer getLookupNumberOfColumns(Class businessObjectClass);
211
212 /**
213 * returns String indicating the location of the lookup icon.
214 */
215 public String getSearchIconOverride(Class businessObjectClass);
216
217 /**
218 * indicates whether a field is required for a lookup
219 */
220 public Boolean getLookupAttributeRequired(Class businessObjectClass, String attributeName);
221
222 /**
223 * indicates whether a field is read only for a lookup
224 */
225 public Boolean getLookupAttributeReadOnly(Class businessObjectClass, String attributeName);
226
227
228 /**
229 * the list defined as inquiry fields for the business object and inquiry section.
230 */
231 public List getInquiryFieldNames(Class businessObjectClass, String sectionTitle);
232
233
234 /**
235 * the list defined as inquiry sections for the business object.
236 */
237 public List getInquirySections(Class businessObjectClass);
238
239
240 /**
241 * the text to be displayed for the title of business object inquiry.
242 */
243 public String getInquiryTitle(Class businessObjectClass);
244
245
246 /**
247 * the class to be used for building inquiry pages.
248 */
249 public Class getInquirableClass(Class businessObjectClass);
250
251 /**
252 * the text to be displayed for the title of business object maintenance document.
253 */
254 public String getMaintainableLabel(Class businessObjectClass);
255
256
257 /**
258 * the attribute to be associated with for object level markings
259 */
260 public String getTitleAttribute(Class businessObjectClass);
261
262
263 /**
264 * the Lookupable implementation id for the associated Lookup, if one has been specified
265 */
266 public String getLookupableID(Class businessObjectClass);
267
268
269 /**
270 * This method takes any business object and recursively walks through it checking to see if any attributes need to be forced to
271 * uppercase based on settings in the data dictionary
272 *
273 * @param bo
274 */
275 public void performForceUppercase(BusinessObject bo);
276
277 /**
278 * returns whether on a lookup, field/attribute values with wildcards and operators should treat them as literal characters
279 *
280 * @param businessObjectClass
281 * @param attributeName
282 * @return
283 */
284 public boolean isLookupFieldTreatWildcardsAndOperatorsAsLiteral(Class businessObjectClass, String attributeName);
285
286 /**
287 * returns String giving alternate display attribute name for lookup field if configured, or null
288 */
289 public String getLookupFieldAlternateDisplayAttributeName(Class businessObjectClass, String attributeName);
290
291 /**
292 * returns String giving alternate display attribute name for inquiry field if configured, or null
293 */
294 public String getInquiryFieldAlternateDisplayAttributeName(Class businessObjectClass, String attributeName);
295
296 /**
297 * returns String giving additional display attribute name for lookup field if configured, or null
298 */
299
300 public String getLookupFieldAdditionalDisplayAttributeName(Class businessObjectClass, String attributeName);
301
302 /**
303 * returns String giving additional display attribute name for inquiry field if configured, or null
304 */
305 public String getInquiryFieldAdditionalDisplayAttributeName(Class businessObjectClass, String attributeName);
306
307 /**
308 * @param businessObjectClass - business object class for lookup definition
309 * @return Boolean indicating whether translating of codes is configured to true in lookup definition
310 */
311 public Boolean tranlateCodesInLookup(Class businessObjectClass);
312
313 /**
314 * @param businessObjectClass - business object class for inquiry definition
315 * @return Boolean indicating whether translating of codes is configured to true in inquiry definition
316 */
317 public Boolean tranlateCodesInInquiry(Class businessObjectClass);
318
319 /**
320 * Indicates whether a lookup field has been configured to trigger on value change
321 *
322 * @param businessObjectClass - Class for business object to lookup
323 * @param attributeName - name of attribute in the business object to check configuration for
324 * @return true if field is configured to trigger on value change, false if not
325 */
326 public boolean isLookupFieldTriggerOnChange(Class businessObjectClass, String attributeName);
327
328 /**
329 * Indicates whether the search and clear buttons should be disabled based on the data
330 * dictionary configuration
331 *
332 * @param businessObjectClass
333 * - business object class for lookup definition
334 * @return Boolean indicating whether disable search buttons is configured to true in lookup
335 * definition
336 */
337 public boolean disableSearchButtonsInLookup(Class businessObjectClass);
338
339
340 }