001/* 002 * Copyright 2007 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 017package org.kuali.ole.coa.businessobject; 018 019import java.util.ArrayList; 020import java.util.Collection; 021import java.util.HashMap; 022import java.util.LinkedHashMap; 023import java.util.List; 024import java.util.Map; 025 026import org.kuali.ole.coa.service.ChartService; 027import org.kuali.ole.sys.OLEPropertyConstants; 028import org.kuali.ole.sys.businessobject.SystemOptions; 029import org.kuali.ole.sys.context.SpringContext; 030import org.kuali.rice.krad.bo.DocumentHeader; 031import org.kuali.rice.krad.bo.GlobalBusinessObject; 032import org.kuali.rice.krad.bo.GlobalBusinessObjectDetail; 033import org.kuali.rice.krad.bo.PersistableBusinessObject; 034import org.kuali.rice.krad.bo.PersistableBusinessObjectBase; 035import org.kuali.rice.krad.service.BusinessObjectService; 036 037/** 038 * 039 */ 040public class ObjectCodeGlobal extends PersistableBusinessObjectBase implements GlobalBusinessObject { 041 042 private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(ObjectCodeGlobal.class); 043 044 private String documentNumber; 045 private Integer universityFiscalYear; 046 private String chartOfAccountsCode; 047 private String financialObjectCode; 048 private String financialObjectCodeName; 049 private String financialObjectCodeShortName; 050 private String financialObjectLevelCode; 051 private String reportsToChartOfAccountsCode; 052 private String reportsToFinancialObjectCode; 053 private String financialObjectTypeCode; 054 private String financialObjectSubTypeCode; 055 private String historicalFinancialObjectCode; 056 private boolean financialObjectActiveIndicator; 057 private String financialBudgetAggregationCd; 058 private String finObjMandatoryTrnfrOrElimCd; 059 private String financialFederalFundedCode; 060 private String nextYearFinancialObjectCode; 061 062 private DocumentHeader financialDocument; 063 private ObjectCode financialObject; 064 private ObjectCode reportsToFinancialObject; 065 private SystemOptions universityFiscal; 066 private Chart chartOfAccounts; 067 private Chart reportsToChartOfAccounts; 068 private ObjectType financialObjectType; 069 private ObjectSubType financialObjectSubType; 070 private ObjectLevel financialObjectLevel; 071 private BudgetAggregationCode financialBudgetAggregation; 072 private MandatoryTransferEliminationCode finObjMandatoryTrnfrelim; 073 private FederalFundedCode financialFederalFunded; 074 075 private List<ObjectCodeGlobalDetail> objectCodeGlobalDetails; 076 077 /** 078 * Default constructor. 079 */ 080 public ObjectCodeGlobal() { 081 objectCodeGlobalDetails = new ArrayList<ObjectCodeGlobalDetail>(); 082 } 083 084 /** 085 * Gets the documentNumber attribute. 086 * 087 * @return Returns the documentNumber 088 */ 089 @Override 090 public String getDocumentNumber() { 091 return documentNumber; 092 } 093 094 /** 095 * Sets the documentNumber attribute. 096 * 097 * @param documentNumber The documentNumber to set. 098 */ 099 @Override 100 public void setDocumentNumber(String documentNumber) { 101 this.documentNumber = documentNumber; 102 } 103 104 105 /** 106 * Gets the universityFiscalYear attribute. 107 * 108 * @return Returns the universityFiscalYear 109 */ 110 public Integer getUniversityFiscalYear() { 111 return universityFiscalYear; 112 } 113 114 /** 115 * Sets the universityFiscalYear attribute. 116 * 117 * @param universityFiscalYear The universityFiscalYear to set. 118 */ 119 public void setUniversityFiscalYear(Integer universityFiscalYear) { 120 this.universityFiscalYear = universityFiscalYear; 121 } 122 123 124 /** 125 * Gets the chartOfAccountsCode attribute. 126 * 127 * @return Returns the chartOfAccountsCode 128 */ 129 public String getChartOfAccountsCode() { 130 return chartOfAccountsCode; 131 } 132 133 /** 134 * Sets the chartOfAccountsCode attribute. 135 * 136 * @param chartOfAccountsCode The chartOfAccountsCode to set. 137 */ 138 public void setChartOfAccountsCode(String chartOfAccountsCode) { 139 this.chartOfAccountsCode = chartOfAccountsCode; 140 } 141 142 143 /** 144 * Gets the financialObjectCode attribute. 145 * 146 * @return Returns the financialObjectCode 147 */ 148 public String getFinancialObjectCode() { 149 return financialObjectCode; 150 } 151 152 /** 153 * Sets the financialObjectCode attribute. 154 * 155 * @param financialObjectCode The financialObjectCode to set. 156 */ 157 public void setFinancialObjectCode(String financialObjectCode) { 158 this.financialObjectCode = financialObjectCode; 159 } 160 161 162 /** 163 * Gets the financialObjectCodeName attribute. 164 * 165 * @return Returns the financialObjectCodeName 166 */ 167 public String getFinancialObjectCodeName() { 168 return financialObjectCodeName; 169 } 170 171 /** 172 * Sets the financialObjectCodeName attribute. 173 * 174 * @param financialObjectCodeName The financialObjectCodeName to set. 175 */ 176 public void setFinancialObjectCodeName(String financialObjectCodeName) { 177 this.financialObjectCodeName = financialObjectCodeName; 178 } 179 180 181 /** 182 * Gets the financialObjectCodeShortName attribute. 183 * 184 * @return Returns the financialObjectCodeShortName 185 */ 186 public String getFinancialObjectCodeShortName() { 187 return financialObjectCodeShortName; 188 } 189 190 /** 191 * Sets the financialObjectCodeShortName attribute. 192 * 193 * @param financialObjectCodeShortName The financialObjectCodeShortName to set. 194 */ 195 public void setFinancialObjectCodeShortName(String financialObjectCodeShortName) { 196 this.financialObjectCodeShortName = financialObjectCodeShortName; 197 } 198 199 200 /** 201 * Gets the financialObjectLevelCode attribute. 202 * 203 * @return Returns the financialObjectLevelCode 204 */ 205 public String getFinancialObjectLevelCode() { 206 return financialObjectLevelCode; 207 } 208 209 /** 210 * Sets the financialObjectLevelCode attribute. 211 * 212 * @param financialObjectLevelCode The financialObjectLevelCode to set. 213 */ 214 public void setFinancialObjectLevelCode(String financialObjectLevelCode) { 215 this.financialObjectLevelCode = financialObjectLevelCode; 216 } 217 218 219 /** 220 * Gets the reportsToChartOfAccountsCode attribute. 221 * 222 * @return Returns the reportsToChartOfAccountsCode 223 */ 224 public String getReportsToChartOfAccountsCode() { 225 return reportsToChartOfAccountsCode; 226 } 227 228 /** 229 * Sets the reportsToChartOfAccountsCode attribute. 230 * 231 * @param reportsToChartOfAccountsCode The reportsToChartOfAccountsCode to set. 232 */ 233 public void setReportsToChartOfAccountsCode(String reportsToChartOfAccountsCode) { 234 this.reportsToChartOfAccountsCode = reportsToChartOfAccountsCode; 235 } 236 237 238 /** 239 * Gets the reportsToFinancialObjectCode attribute. 240 * 241 * @return Returns the reportsToFinancialObjectCode 242 */ 243 public String getReportsToFinancialObjectCode() { 244 return reportsToFinancialObjectCode; 245 } 246 247 /** 248 * Sets the reportsToFinancialObjectCode attribute. 249 * 250 * @param reportsToFinancialObjectCode The reportsToFinancialObjectCode to set. 251 */ 252 public void setReportsToFinancialObjectCode(String reportsToFinancialObjectCode) { 253 this.reportsToFinancialObjectCode = reportsToFinancialObjectCode; 254 } 255 256 257 /** 258 * Gets the financialObjectTypeCode attribute. 259 * 260 * @return Returns the financialObjectTypeCode 261 */ 262 public String getFinancialObjectTypeCode() { 263 return financialObjectTypeCode; 264 } 265 266 /** 267 * Sets the financialObjectTypeCode attribute. 268 * 269 * @param financialObjectTypeCode The financialObjectTypeCode to set. 270 */ 271 public void setFinancialObjectTypeCode(String financialObjectTypeCode) { 272 this.financialObjectTypeCode = financialObjectTypeCode; 273 } 274 275 276 /** 277 * Gets the financialObjectSubTypeCode attribute. 278 * 279 * @return Returns the financialObjectSubTypeCode 280 */ 281 public String getFinancialObjectSubTypeCode() { 282 return financialObjectSubTypeCode; 283 } 284 285 /** 286 * Sets the financialObjectSubTypeCode attribute. 287 * 288 * @param financialObjectSubTypeCode The financialObjectSubTypeCode to set. 289 */ 290 public void setFinancialObjectSubTypeCode(String financialObjectSubTypeCode) { 291 this.financialObjectSubTypeCode = financialObjectSubTypeCode; 292 } 293 294 295 /** 296 * Gets the historicalFinancialObjectCode attribute. 297 * 298 * @return Returns the historicalFinancialObjectCode 299 */ 300 public String getHistoricalFinancialObjectCode() { 301 return historicalFinancialObjectCode; 302 } 303 304 /** 305 * Sets the historicalFinancialObjectCode attribute. 306 * 307 * @param historicalFinancialObjectCode The historicalFinancialObjectCode to set. 308 */ 309 public void setHistoricalFinancialObjectCode(String historicalFinancialObjectCode) { 310 this.historicalFinancialObjectCode = historicalFinancialObjectCode; 311 } 312 313 314 /** 315 * Gets the financialObjectActiveIndicator attribute. 316 * 317 * @return Returns the financialObjectActiveIndicator 318 */ 319 public boolean isFinancialObjectActiveIndicator() { 320 return financialObjectActiveIndicator; 321 } 322 323 324 /** 325 * Sets the financialObjectActiveIndicator attribute. 326 * 327 * @param financialObjectActiveIndicator The financialObjectActiveIndicator to set. 328 */ 329 public void setFinancialObjectActiveIndicator(boolean financialObjectActiveIndicator) { 330 this.financialObjectActiveIndicator = financialObjectActiveIndicator; 331 } 332 333 334 /** 335 * Gets the financialBudgetAggregationCd attribute. 336 * 337 * @return Returns the financialBudgetAggregationCd 338 */ 339 public String getFinancialBudgetAggregationCd() { 340 return financialBudgetAggregationCd; 341 } 342 343 /** 344 * Sets the financialBudgetAggregationCd attribute. 345 * 346 * @param financialBudgetAggregationCd The financialBudgetAggregationCd to set. 347 */ 348 public void setFinancialBudgetAggregationCd(String financialBudgetAggregationCd) { 349 this.financialBudgetAggregationCd = financialBudgetAggregationCd; 350 } 351 352 353 /** 354 * Gets the finObjMandatoryTrnfrOrElimCd attribute. 355 * 356 * @return Returns the finObjMandatoryTrnfrOrElimCd 357 */ 358 public String getFinObjMandatoryTrnfrOrElimCd() { 359 return finObjMandatoryTrnfrOrElimCd; 360 } 361 362 /** 363 * Sets the finObjMandatoryTrnfrOrElimCd attribute. 364 * 365 * @param finObjMandatoryTrnfrOrElimCd The finObjMandatoryTrnfrOrElimCd to set. 366 */ 367 public void setFinObjMandatoryTrnfrOrElimCd(String finObjMandatoryTrnfrOrElimCd) { 368 this.finObjMandatoryTrnfrOrElimCd = finObjMandatoryTrnfrOrElimCd; 369 } 370 371 372 /** 373 * Gets the financialFederalFundedCode attribute. 374 * 375 * @return Returns the financialFederalFundedCode 376 */ 377 public String getFinancialFederalFundedCode() { 378 return financialFederalFundedCode; 379 } 380 381 /** 382 * Sets the financialFederalFundedCode attribute. 383 * 384 * @param financialFederalFundedCode The financialFederalFundedCode to set. 385 */ 386 public void setFinancialFederalFundedCode(String financialFederalFundedCode) { 387 this.financialFederalFundedCode = financialFederalFundedCode; 388 } 389 390 391 /** 392 * Gets the nextYearFinancialObjectCode attribute. 393 * 394 * @return Returns the nextYearFinancialObjectCode 395 */ 396 public String getNextYearFinancialObjectCode() { 397 return nextYearFinancialObjectCode; 398 } 399 400 /** 401 * Sets the nextYearFinancialObjectCode attribute. 402 * 403 * @param nextYearFinancialObjectCode The nextYearFinancialObjectCode to set. 404 */ 405 public void setNextYearFinancialObjectCode(String nextYearFinancialObjectCode) { 406 this.nextYearFinancialObjectCode = nextYearFinancialObjectCode; 407 } 408 409 410 /** 411 * Gets the financialDocument attribute. 412 * 413 * @return Returns the financialDocument 414 */ 415 public DocumentHeader getFinancialDocument() { 416 return financialDocument; 417 } 418 419 /** 420 * Sets the financialDocument attribute. 421 * 422 * @param financialDocument The financialDocument to set. 423 * @deprecated 424 */ 425 @Deprecated 426 public void setFinancialDocument(DocumentHeader financialDocument) { 427 this.financialDocument = financialDocument; 428 } 429 430 /** 431 * Gets the financialObject attribute. 432 * 433 * @return Returns the financialObject 434 */ 435 public ObjectCode getFinancialObject() { 436 return financialObject; 437 } 438 439 /** 440 * Sets the financialObject attribute. 441 * 442 * @param financialObject The financialObject to set. 443 * @deprecated 444 */ 445 @Deprecated 446 public void setFinancialObject(ObjectCode financialObject) { 447 this.financialObject = financialObject; 448 } 449 450 /** 451 * Gets the reportsToFinancialObject attribute. 452 * 453 * @return Returns the reportsToFinancialObject 454 */ 455 public ObjectCode getReportsToFinancialObject() { 456 return reportsToFinancialObject; 457 } 458 459 /** 460 * Sets the reportsToFinancialObject attribute. 461 * 462 * @param reportsToFinancialObject The reportsToFinancialObject to set. 463 * @deprecated 464 */ 465 @Deprecated 466 public void setReportsToFinancialObject(ObjectCode reportsToFinancialObject) { 467 this.reportsToFinancialObject = reportsToFinancialObject; 468 } 469 470 /** 471 * Gets the universityFiscal attribute. 472 * 473 * @return Returns the universityFiscal 474 */ 475 public SystemOptions getUniversityFiscal() { 476 return universityFiscal; 477 } 478 479 /** 480 * Sets the universityFiscal attribute. 481 * 482 * @param universityFiscal The universityFiscal to set. 483 * @deprecated 484 */ 485 @Deprecated 486 public void setUniversityFiscal(SystemOptions universityFiscal) { 487 this.universityFiscal = universityFiscal; 488 } 489 490 /** 491 * Gets the chartOfAccounts attribute. 492 * 493 * @return Returns the chartOfAccounts 494 */ 495 public Chart getChartOfAccounts() { 496 return chartOfAccounts; 497 } 498 499 /** 500 * Sets the chartOfAccounts attribute. 501 * 502 * @param chartOfAccounts The chartOfAccounts to set. 503 * @deprecated 504 */ 505 @Deprecated 506 public void setChartOfAccounts(Chart chartOfAccounts) { 507 this.chartOfAccounts = chartOfAccounts; 508 } 509 510 /** 511 * Gets the reportsToChartOfAccounts attribute. 512 * 513 * @return Returns the reportsToChartOfAccounts 514 */ 515 public Chart getReportsToChartOfAccounts() { 516 return reportsToChartOfAccounts; 517 } 518 519 /** 520 * Sets the reportsToChartOfAccounts attribute. 521 * 522 * @param reportsToChartOfAccounts The reportsToChartOfAccounts to set. 523 * @deprecated 524 */ 525 @Deprecated 526 public void setReportsToChartOfAccounts(Chart reportsToChartOfAccounts) { 527 this.reportsToChartOfAccounts = reportsToChartOfAccounts; 528 } 529 530 /** 531 * This method returns the FinancialObjectSubType attribute. 532 * 533 * @return Returns FinancialObjectSubType attribute. 534 */ 535 public ObjectSubType getFinancialObjectSubType() { 536 return financialObjectSubType; 537 } 538 539 /** 540 * This method sets the FinancialObjectSubType attribute. 541 * 542 * @param financialObjectSubType The financialObjectSubType to set. 543 * @deprecated 544 */ 545 @Deprecated 546 public void setFinancialObjectSubType(ObjectSubType financialObjectSubType) { 547 this.financialObjectSubType = financialObjectSubType; 548 } 549 550 /** 551 * This method returns the FinancialObjectType 552 * 553 * @return an ObjectType for this ObjectCodeGlobal. 554 */ 555 public ObjectType getFinancialObjectType() { 556 return financialObjectType; 557 } 558 559 /** 560 * This method sets a FinancialObjectType 561 * 562 * @param financialObjectType the ObjectType to set. 563 * @deprecated 564 */ 565 @Deprecated 566 public void setFinancialObjectType(ObjectType financialObjectType) { 567 this.financialObjectType = financialObjectType; 568 } 569 570 /** 571 * This method returns the FinancialBudgetAggregation 572 * 573 * @return the FinancialBudgetAggregation 574 */ 575 public BudgetAggregationCode getFinancialBudgetAggregation() { 576 return financialBudgetAggregation; 577 } 578 579 /** 580 * This method sets a FinancialBudgetAggregation 581 * 582 * @param financialBudgetAggregation the BudgetAggregationCode to set 583 * @deprecated 584 */ 585 @Deprecated 586 public void setFinancialBudgetAggregation(BudgetAggregationCode financialBudgetAggregation) { 587 this.financialBudgetAggregation = financialBudgetAggregation; 588 } 589 590 /** 591 * This method the financial federal funded code for this ObjectCodeGlobal 592 * 593 * @return the Federal Funded Code 594 */ 595 public FederalFundedCode getFinancialFederalFunded() { 596 return financialFederalFunded; 597 } 598 599 /** 600 * This method sets FinancialFederalFunded 601 * 602 * @param financialFederalFunded the FederalFundedCode to set 603 * @deprecated 604 */ 605 @Deprecated 606 public void setFinancialFederalFunded(FederalFundedCode financialFederalFunded) { 607 this.financialFederalFunded = financialFederalFunded; 608 } 609 610 /** 611 * This method returns the Object Level 612 * 613 * @return ObjectLevel 614 */ 615 public ObjectLevel getFinancialObjectLevel() { 616 return financialObjectLevel; 617 } 618 619 /** 620 * This method sets the FinancialObjectLevel 621 * 622 * @param financialObjectLevel the ObjLevel to set 623 * @deprecated 624 */ 625 @Deprecated 626 public void setFinancialObjectLevel(ObjectLevel financialObjectLevel) { 627 this.financialObjectLevel = financialObjectLevel; 628 } 629 630 /** 631 * This method returns the Mandatory Transfer or Elimination Code 632 * 633 * @return the MandatoryTransferEliminationCode 634 */ 635 public MandatoryTransferEliminationCode getFinObjMandatoryTrnfrelim() { 636 return finObjMandatoryTrnfrelim; 637 } 638 639 /** 640 * This method pretty much sets the FinObjMandatoryTrnfrelm (the Mandatory Transfer or Elimination Code) 641 * 642 * @param finObjMandatoryTrnfrelim the MandatoryTransferEliminationCode to set 643 * @deprecated 644 */ 645 @Deprecated 646 public void setFinObjMandatoryTrnfrelim(MandatoryTransferEliminationCode finObjMandatoryTrnfrelim) { 647 this.finObjMandatoryTrnfrelim = finObjMandatoryTrnfrelim; 648 } 649 650 /** 651 * @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper() 652 */ 653 protected LinkedHashMap toStringMapper_RICE20_REFACTORME() { 654 LinkedHashMap<String,String> m = new LinkedHashMap<String,String>(); 655 m.put(OLEPropertyConstants.DOCUMENT_NUMBER, this.documentNumber); 656 return m; 657 } 658 659 public List<ObjectCodeGlobalDetail> getObjectCodeGlobalDetails() { 660 return objectCodeGlobalDetails; 661 } 662 663 public void setObjectCodeGlobalDetails(List<ObjectCodeGlobalDetail> objectCodeGlobalDetails) { 664 this.objectCodeGlobalDetails = objectCodeGlobalDetails; 665 } 666 667 /** 668 * @see org.kuali.rice.krad.document.GlobalBusinessObject#getGlobalChangesToDelete() 669 */ 670 @Override 671 public List<PersistableBusinessObject> generateDeactivationsToPersist() { 672 return null; 673 } 674 675 /** 676 * This returns a list of Object Codes to Update and/or Add 677 * 678 * @see org.kuali.rice.krad.document.GlobalBusinessObject#applyGlobalChanges() 679 */ 680 @Override 681 public List<PersistableBusinessObject> generateGlobalChangesToPersist() { 682 LOG.debug("applyGlobalChanges"); 683 List<PersistableBusinessObject> persistables = new ArrayList<PersistableBusinessObject>(); 684 685 // Iterate through Object Codes; create new or update as necessary 686 // Set reports-to Chart to appropriate value 687 688 for (ObjectCodeGlobalDetail detail : objectCodeGlobalDetails) { 689 690 Map pk = new HashMap(); 691 692 Integer fiscalYear = detail.getUniversityFiscalYear(); 693 String chart = detail.getChartOfAccountsCode(); 694 695 if (fiscalYear != null && chart != null && chart.length() > 0) { 696 pk.put("UNIV_FISCAL_YR", fiscalYear); 697 pk.put("FIN_COA_CD", chart); 698 pk.put("FIN_OBJECT_CD", financialObjectCode); 699 700 ObjectCode objectCode = SpringContext.getBean(BusinessObjectService.class).findByPrimaryKey(ObjectCode.class, pk); 701 if (objectCode == null) { 702 objectCode = new ObjectCode(fiscalYear, chart, financialObjectCode); 703 objectCode.setFinancialObjectActiveCode(true); 704 } 705 populate(objectCode, detail); 706 Map<String, String> hierarchy = SpringContext.getBean(ChartService.class).getReportsToHierarchy(); 707 objectCode.setReportsToChartOfAccountsCode(hierarchy.get(chart)); 708 709 persistables.add(objectCode); 710 } 711 } 712 713 return persistables; 714 } 715 716 public void populate(ObjectCode old, ObjectCodeGlobalDetail detail) { 717 718 old.setFinancialObjectCodeName(update(financialObjectCodeName, old.getFinancialObjectCodeName())); 719 old.setFinancialObjectCodeShortName(update(financialObjectCodeShortName, old.getFinancialObjectCodeShortName())); 720 721 old.setFinancialObjectLevelCode(update(financialObjectLevelCode, old.getFinancialObjectLevelCode())); 722 old.setFinancialObjectTypeCode(update(financialObjectTypeCode, old.getFinancialObjectTypeCode())); 723 old.setFinancialObjectSubTypeCode(update(financialObjectSubTypeCode, old.getFinancialObjectSubTypeCode())); 724 old.setHistoricalFinancialObjectCode(update(historicalFinancialObjectCode, old.getHistoricalFinancialObjectCode())); 725 old.setFinancialObjectActiveCode(update(financialObjectActiveIndicator, old.isFinancialObjectActiveCode())); 726 old.setFinancialBudgetAggregationCd(update(financialBudgetAggregationCd, old.getFinancialBudgetAggregationCd())); 727 old.setFinObjMandatoryTrnfrelimCd(update(finObjMandatoryTrnfrOrElimCd, old.getFinObjMandatoryTrnfrelimCd())); 728 old.setFinancialFederalFundedCode(update(financialFederalFundedCode, old.getFinancialFederalFundedCode())); 729 old.setNextYearFinancialObjectCode(update(nextYearFinancialObjectCode, old.getNextYearFinancialObjectCode())); 730 old.setReportsToFinancialObjectCode(update(reportsToFinancialObjectCode, old.getReportsToFinancialObjectCode())); 731 } 732 733 734 /** 735 * This method returns newvalue iff it is not empty 736 * 737 * @param oldValue 738 * @param newValue 739 * @return 740 */ 741 private String update(String newValue, String oldValue) { 742 if (newValue == null || newValue.length() == 0) { 743 return oldValue; 744 } 745 return newValue; 746 } 747 748 private boolean update(boolean newValue, boolean oldValue) { 749 return newValue; 750 } 751 752 753 @Override 754 public boolean isPersistable() { 755 return true; 756 } 757 758 @Override 759 public List<? extends GlobalBusinessObjectDetail> getAllDetailObjects() { 760 return getObjectCodeGlobalDetails(); 761 } 762 763 /** 764 * @see org.kuali.rice.krad.bo.PersistableBusinessObjectBase#buildListOfDeletionAwareLists() 765 */ 766 @Override 767 public List<Collection<PersistableBusinessObject>> buildListOfDeletionAwareLists() { 768 List<Collection<PersistableBusinessObject>> managedLists = super.buildListOfDeletionAwareLists(); 769 770 managedLists.add( new ArrayList<PersistableBusinessObject>( getObjectCodeGlobalDetails() ) ); 771 772 return managedLists; 773 } 774}