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 }