001    /**
002     * Copyright 2005-2013 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.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.service.KNSServiceLocator;
027    import org.kuali.rice.kns.web.struts.form.LookupForm;
028    import org.kuali.rice.kns.web.ui.Column;
029    import org.kuali.rice.kns.web.ui.Field;
030    import org.kuali.rice.kns.web.ui.Row;
031    import org.kuali.rice.krad.bo.BusinessObject;
032    import org.kuali.rice.kns.service.BusinessObjectDictionaryService;
033    import org.kuali.rice.krad.service.DataDictionaryService;
034    import 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     */
042    public 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    }