001/**
002 * Copyright 2005-2011 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 */
016package org.kuali.rice.krad.lookup;
017
018import java.util.ArrayList;
019import java.util.Collection;
020import java.util.List;
021import java.util.Map;
022
023import org.kuali.rice.kns.document.authorization.BusinessObjectRestrictions;
024import org.kuali.rice.kns.lookup.HtmlData;
025import org.kuali.rice.kns.lookup.LookupableHelperService;
026import org.kuali.rice.kns.service.KNSServiceLocator;
027import org.kuali.rice.kns.web.struts.form.LookupForm;
028import org.kuali.rice.kns.web.ui.Column;
029import org.kuali.rice.kns.web.ui.Field;
030import org.kuali.rice.kns.web.ui.Row;
031import org.kuali.rice.krad.bo.BusinessObject;
032import org.kuali.rice.kns.service.BusinessObjectDictionaryService;
033import org.kuali.rice.krad.service.DataDictionaryService;
034import org.kuali.rice.krad.service.KRADServiceLocatorWeb;
035
036/**
037 * Mock lookupable helper service for the LookupResultsService test
038 *
039 * @author Kuali Rice Team (rice.collab@kuali.org)
040 *
041 */
042public class LookupResultsDDBoLookupableHelperServiceImpl implements LookupableHelperService {
043
044        /**
045         * Just sends back whatever someValue was sent in - or "A" as some value if nothing else was out there
046         * @see org.kuali.rice.krad.lookup.AbstractLookupableHelperServiceImpl#getSearchResults(java.util.Map)
047         */
048        public List<? extends BusinessObject> getSearchResults(Map<String, String> fieldValues) {
049                final String valueToPopulate = (fieldValues.containsKey("someValue")) ? fieldValues.get("someValue") : "A";
050                final LookupResultsDDBo result = new LookupResultsDDBo(valueToPopulate);
051                List<LookupResultsDDBo> results = new ArrayList<LookupResultsDDBo>();
052                results.add(result);
053                return results;
054        }
055
056        /**
057         * Always return false
058         *
059         * @see org.kuali.rice.krad.lookup.LookupableHelperService#allowsMaintenanceNewOrCopyAction()
060         */
061        public boolean allowsMaintenanceNewOrCopyAction() {
062                return false;
063        }
064
065        /**
066         * Always return false
067         *
068         * @see org.kuali.rice.krad.lookup.LookupableHelperService#allowsNewOrCopyAction(java.lang.String)
069         */
070        public boolean allowsNewOrCopyAction(String documentTypeName) {
071                return false;
072        }
073
074        /**
075         * Don't do anything
076         *
077         * @see org.kuali.rice.krad.lookup.LookupableHelperService#applyFieldAuthorizationsFromNestedLookups(org.kuali.rice.krad.web.ui.Field)
078         */
079        public void applyFieldAuthorizationsFromNestedLookups(Field field) {}
080
081        /**
082         * Always returns false
083         *
084         * @see org.kuali.rice.krad.lookup.LookupableHelperService#checkForAdditionalFields(java.util.Map)
085         */
086        public boolean checkForAdditionalFields(Map<String, String> fieldValues) {
087                return false;
088        }
089
090        /**
091         * Always returns a blank String
092         *
093         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getActionUrls(org.kuali.rice.krad.bo.BusinessObject, java.util.List, org.kuali.rice.krad.authorization.BusinessObjectRestrictions)
094         */
095        public String getActionUrls(BusinessObject businessObject, List pkNames, BusinessObjectRestrictions businessObjectRestrictions) {
096                return "";
097        }
098
099        /**
100         * Always returns blank String
101         *
102         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getBackLocation()
103         */
104        public String getBackLocation() {
105                return "";
106        }
107
108        /**
109         * Always returns the class of LookupResultsDDBo
110         *
111         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getBusinessObjectClass()
112         */
113        public Class getBusinessObjectClass() {
114                return LookupResultsDDBo.class;
115        }
116
117        /**
118         * Gets the class from the KRADServiceLocatorInternal
119         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getBusinessObjectDictionaryService()
120         */
121        public BusinessObjectDictionaryService getBusinessObjectDictionaryService() {
122                return KNSServiceLocator.getBusinessObjectDictionaryService();
123        }
124
125        /**
126         * Always returns null
127         *
128         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getColumns()
129         */
130        public List<Column> getColumns() {
131                return null;
132        }
133
134        /**
135         * Always returns null
136         *
137         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getCustomActionUrls(org.kuali.rice.krad.bo.BusinessObject, java.util.List)
138         */
139        public List<HtmlData> getCustomActionUrls(BusinessObject businessObject, List pkNames) {
140                return null;
141        }
142
143        /**
144         * Returns DataDictionaryService from KRADServiceLocatorInternal
145         *
146         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getDataDictionaryService()
147         */
148        public DataDictionaryService getDataDictionaryService() {
149                return KRADServiceLocatorWeb.getDataDictionaryService();
150        }
151
152        /**
153         * Always returns null
154         *
155         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getDefaultSortColumns()
156         */
157        public List getDefaultSortColumns() {
158                return null;
159        }
160
161        /**
162         * Always returns an empty String
163         *
164         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getDocFormKey()
165         */
166        public String getDocFormKey() {
167                return "";
168        }
169
170        /**
171         * Always returns empty String
172         *
173         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getDocNum()
174         */
175        public String getDocNum() {
176                return "";
177        }
178
179        /**
180         * Always returns null
181         *
182         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getExtraField()
183         */
184        public Field getExtraField() {
185                return null;
186        }
187
188        /**
189         * Always returns null
190         *
191         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getInquiryUrl(org.kuali.rice.krad.bo.BusinessObject, java.lang.String)
192         */
193        public HtmlData getInquiryUrl(BusinessObject businessObject, String propertyName) {
194                return null;
195        }
196
197        /**
198         * Always returns null
199         *
200         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getMaintenanceUrl(org.kuali.rice.krad.bo.BusinessObject, org.kuali.rice.krad.lookup.HtmlData, java.util.List, org.kuali.rice.krad.authorization.BusinessObjectRestrictions)
201         */
202        public String getMaintenanceUrl(BusinessObject businessObject, HtmlData htmlData, List pkNames, BusinessObjectRestrictions businessObjectRestrictions) {
203                return null;
204        }
205
206        /**
207         * Always returns null
208         *
209         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getParameters()
210         */
211        public Map getParameters() {
212                return null;
213        }
214
215        /**
216         * Returns an incredibly sophisticated puzzle that would require the smartest genius on earth years to disentangle.  It only appears to return null
217         *
218         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getPrimaryKeyFieldLabels()
219         */
220        public String getPrimaryKeyFieldLabels() {
221                return null;
222        }
223
224        /**
225         * Isn't this class exciting?
226         *
227         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getReadOnlyFieldsList()
228         */
229        public List<String> getReadOnlyFieldsList() {
230                return null;
231        }
232
233        /**
234         * It does ever so much work
235         *
236         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getReturnKeys()
237         */
238        public List<String> getReturnKeys() {
239                return null;
240        }
241
242        /**
243         * Returns null for everything
244         *
245         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getReturnLocation()
246         */
247        public String getReturnLocation() {
248                return null;
249        }
250
251        /**
252         * Yeah, this too
253         *
254         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getReturnUrl(org.kuali.rice.krad.bo.BusinessObject, org.kuali.rice.krad.web.struts.form.LookupForm, java.util.List, org.kuali.rice.krad.authorization.BusinessObjectRestrictions)
255         */
256        public HtmlData getReturnUrl(BusinessObject businessObject, LookupForm lookupForm, List returnKeys, BusinessObjectRestrictions businessObjectRestrictions) {
257                return null;
258        }
259
260        /**
261         * Why am I doing all of this?
262         *
263         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getReturnUrl(org.kuali.rice.krad.bo.BusinessObject, java.util.Map, java.lang.String, java.util.List, org.kuali.rice.krad.authorization.BusinessObjectRestrictions)
264         */
265        public HtmlData getReturnUrl(BusinessObject businessObject, Map fieldConversions, String lookupImpl, List returnKeys, BusinessObjectRestrictions businessObjectRestrictions) {
266                return null;
267        }
268
269        /**
270         * Why not just extend AbstractLookupableHelperServiceImpl?
271         *
272         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getRows()
273         */
274        public List<Row> getRows() {
275                return null;
276        }
277
278        /**
279         * Oh, trust me...
280         *
281         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getSearchResultsUnbounded(java.util.Map)
282         */
283        public List getSearchResultsUnbounded(Map<String, String> fieldValues) {
284                return null;
285        }
286
287        /**
288         * There's a story there
289         *
290         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getSupplementalMenuBar()
291         */
292        public String getSupplementalMenuBar() {
293                return null;
294        }
295
296        /**
297         * At any rate, my unit test works
298         *
299         * @see org.kuali.rice.krad.lookup.LookupableHelperService#getTitle()
300         */
301        public String getTitle() {
302                return null;
303        }
304
305        /**
306         * And I just have a lot of dead methods
307         *
308         * @see org.kuali.rice.krad.lookup.LookupableHelperService#isResultReturnable(org.kuali.rice.krad.bo.BusinessObject)
309         */
310        public boolean isResultReturnable(BusinessObject object) {
311                return false;
312        }
313
314        /**
315         * I'm not injecting dependencies
316         *
317         * @see org.kuali.rice.krad.lookup.LookupableHelperService#isSearchUsingOnlyPrimaryKeyValues()
318         */
319        public boolean isSearchUsingOnlyPrimaryKeyValues() {
320                return false;
321        }
322
323        /**
324         * This method found it hard pressed to do anything...
325         *
326         * @see org.kuali.rice.krad.lookup.LookupableHelperService#performClear(org.kuali.rice.krad.web.struts.form.LookupForm)
327         */
328        public void performClear(LookupForm lookupForm) {}
329
330        /**
331         * Always returns false
332         *
333         * @see org.kuali.rice.krad.lookup.LookupableHelperService#performCustomAction(boolean)
334         */
335        public boolean performCustomAction(boolean ignoreErrors) {
336                return false;
337        }
338
339        /**
340         * Always returns null
341         *
342         * @see org.kuali.rice.krad.lookup.LookupableHelperService#performLookup(org.kuali.rice.krad.web.struts.form.LookupForm, java.util.Collection, boolean)
343         */
344        public Collection performLookup(LookupForm lookupForm, Collection resultTable, boolean bounded) {
345                return null;
346        }
347
348        /**
349         * Ignores the passed in value
350         *
351         * @see org.kuali.rice.krad.lookup.LookupableHelperService#setBackLocation(java.lang.String)
352         */
353        public void setBackLocation(String backLocation) {}
354
355        /**
356         * Throws the passed in value away
357         *
358         * @see org.kuali.rice.krad.lookup.LookupableHelperService#setBusinessObjectClass(java.lang.Class)
359         */
360        public void setBusinessObjectClass(Class businessObjectClass) {}
361
362        /**
363         * Did you actually want this mock service to save this information?  I think not...
364         *
365         * @see org.kuali.rice.krad.lookup.LookupableHelperService#setDocFormKey(java.lang.String)
366         */
367        public void setDocFormKey(String docFormKey) {}
368
369        /**
370         * Does nothing
371         *
372         * @see org.kuali.rice.krad.lookup.LookupableHelperService#setDocNum(java.lang.String)
373         */
374        public void setDocNum(String docNum) {}
375
376        /**
377         * Doesn't do a thing
378         *
379         * @see org.kuali.rice.krad.lookup.LookupableHelperService#setFieldConversions(java.util.Map)
380         */
381        public void setFieldConversions(Map fieldConversions) {}
382
383        /**
384         * Doesn't set anything
385         *
386         * @see org.kuali.rice.krad.lookup.LookupableHelperService#setParameters(java.util.Map)
387         */
388        public void setParameters(Map parameters) {}
389
390        /**
391         * doesn't set anything
392         *
393         * @see org.kuali.rice.krad.lookup.LookupableHelperService#setReadOnlyFieldsList(java.util.List)
394         */
395        public void setReadOnlyFieldsList(List<String> readOnlyFieldsList) {}
396
397        /**
398         * Always returns true, so that James isn't completely bored
399         *
400         * @see org.kuali.rice.krad.lookup.LookupableHelperService#shouldDisplayHeaderNonMaintActions()
401         */
402        public boolean shouldDisplayHeaderNonMaintActions() {
403                return true;
404        }
405
406        /**
407         * Flips a coin to determine whether to return true or false
408         *
409         * @see org.kuali.rice.krad.lookup.LookupableHelperService#shouldDisplayLookupCriteria()
410         */
411        public boolean shouldDisplayLookupCriteria() {
412                java.util.Random r = new java.util.Random();
413                double value = r.nextDouble();
414                return (value < 0.5);
415        }
416
417        /**
418         * Everything's valid, trust us
419         *
420         * @see org.kuali.rice.krad.lookup.LookupableHelperService#validateSearchParameters(java.util.Map)
421         */
422        public void validateSearchParameters(Map<String, String> fieldValues) {}
423
424        /**
425         * @see org.kuali.rice.krad.lookup.LookupableHelperService#applyConditionalLogicForFieldDisplay()
426         */
427        public void applyConditionalLogicForFieldDisplay() {
428
429        }
430
431}