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