1 /** 2 * Copyright 2005-2011 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.krad.lookup; 17 18 import java.util.ArrayList; 19 import java.util.Collection; 20 import java.util.List; 21 import java.util.Map; 22 23 import org.kuali.rice.kns.document.authorization.BusinessObjectRestrictions; 24 import org.kuali.rice.kns.lookup.HtmlData; 25 import org.kuali.rice.kns.lookup.LookupableHelperService; 26 import org.kuali.rice.kns.web.struts.form.LookupForm; 27 import org.kuali.rice.kns.web.ui.Field; 28 import org.kuali.rice.kns.web.ui.Row; 29 import org.kuali.rice.krad.bo.BusinessObject; 30 import org.kuali.rice.krad.service.BusinessObjectDictionaryService; 31 import org.kuali.rice.krad.service.DataDictionaryService; 32 import org.kuali.rice.krad.service.KRADServiceLocatorWeb; 33 34 /** 35 * Mock lookupable helper service for the LookupResultsService test 36 * 37 * @author Kuali Rice Team (rice.collab@kuali.org) 38 * 39 */ 40 public class LookupResultsDDBoLookupableHelperServiceImpl implements LookupableHelperService { 41 42 /** 43 * Just sends back whatever someValue was sent in - or "A" as some value if nothing else was out there 44 * @see org.kuali.rice.krad.lookup.AbstractLookupableHelperServiceImpl#getSearchResults(java.util.Map) 45 */ 46 public List<? extends BusinessObject> getSearchResults(Map<String, String> fieldValues) { 47 final String valueToPopulate = (fieldValues.containsKey("someValue")) ? fieldValues.get("someValue") : "A"; 48 final LookupResultsDDBo result = new LookupResultsDDBo(valueToPopulate); 49 List<LookupResultsDDBo> results = new ArrayList<LookupResultsDDBo>(); 50 results.add(result); 51 return results; 52 } 53 54 /** 55 * Always return false 56 * 57 * @see org.kuali.rice.krad.lookup.LookupableHelperService#allowsMaintenanceNewOrCopyAction() 58 */ 59 public boolean allowsMaintenanceNewOrCopyAction() { 60 return false; 61 } 62 63 /** 64 * Always return false 65 * 66 * @see org.kuali.rice.krad.lookup.LookupableHelperService#allowsNewOrCopyAction(java.lang.String) 67 */ 68 public boolean allowsNewOrCopyAction(String documentTypeName) { 69 return false; 70 } 71 72 /** 73 * Don't do anything 74 * 75 * @see org.kuali.rice.krad.lookup.LookupableHelperService#applyFieldAuthorizationsFromNestedLookups(org.kuali.rice.krad.web.ui.Field) 76 */ 77 public void applyFieldAuthorizationsFromNestedLookups(Field field) {} 78 79 /** 80 * Always returns false 81 * 82 * @see org.kuali.rice.krad.lookup.LookupableHelperService#checkForAdditionalFields(java.util.Map) 83 */ 84 public boolean checkForAdditionalFields(Map fieldValues) { 85 return false; 86 } 87 88 /** 89 * Always returns a blank String 90 * 91 * @see org.kuali.rice.krad.lookup.LookupableHelperService#getActionUrls(org.kuali.rice.krad.bo.BusinessObject, java.util.List, org.kuali.rice.krad.authorization.BusinessObjectRestrictions) 92 */ 93 public String getActionUrls(BusinessObject businessObject, List pkNames, BusinessObjectRestrictions businessObjectRestrictions) { 94 return ""; 95 } 96 97 /** 98 * Always returns blank String 99 * 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 }