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 */ 016package org.kuali.ole.sys.businessobject; 017 018import java.io.Serializable; 019import java.util.LinkedHashMap; 020 021import org.kuali.ole.coa.businessobject.Account; 022import org.kuali.rice.core.api.util.type.KualiDecimal; 023import org.kuali.rice.krad.bo.TransientBusinessObjectBase; 024 025/** 026 * This class holds respnsibility information pertaining to an account specifically whether or not the responsibility is of type 027 * Fiscal Officer, Primary Delegate of Fiscal Officer, or Secondary Delegate of Fiscal Officer, and if it is one of the delegated 028 * responsibility types, then there is additional information about the responsibility such as dollar range and document type 029 */ 030public class AccountResponsibility extends TransientBusinessObjectBase implements Serializable { 031 032 private static final long serialVersionUID = 3101634819409319387L; 033 public static final int FISCAL_OFFICER_RESPONSIBILITY = 1; 034 public static final int DELEGATED_RESPONSIBILITY = 2; 035 036 private Account account; 037 private int accountResponsibilityType; 038 private KualiDecimal minimumDollarAmount; 039 private KualiDecimal maximumDollarAmount; 040 private String documentTypeId; 041 042 public AccountResponsibility() { 043 } 044 045 /** 046 * Constructor that allows us to create and pop on same line in other files 047 * 048 * @param accountResponsibilityType 049 * @param minimumDollarAmount 050 * @param maximumDollarAmount 051 * @param documentTypeId 052 */ 053 public AccountResponsibility(int accountResponsibilityType, KualiDecimal minimumDollarAmount, KualiDecimal maximumDollarAmount, String documentTypeId, Account account) { 054 if (!isValidResponsibilityType(accountResponsibilityType)) { 055 throw new IllegalArgumentException("invalid accountResponsibilityType passed in"); 056 } 057 this.accountResponsibilityType = accountResponsibilityType; 058 this.minimumDollarAmount = minimumDollarAmount; 059 this.maximumDollarAmount = maximumDollarAmount; 060 this.documentTypeId = documentTypeId; 061 this.account = account; 062 } 063 064 private boolean isValidResponsibilityType(int type) { 065 return type == FISCAL_OFFICER_RESPONSIBILITY || type == DELEGATED_RESPONSIBILITY; 066 } 067 068 069 public Account getAccount() { 070 return account; 071 } 072 073 public void setAccount(Account account) { 074 this.account = account; 075 } 076 077 public int getAccountResponsibilityType() { 078 return accountResponsibilityType; 079 } 080 081 public void setAccountResponsibilityType(int accountResponsibilityType) { 082 this.accountResponsibilityType = accountResponsibilityType; 083 } 084 085 public String getDocumentTypeId() { 086 return documentTypeId; 087 } 088 089 public void setDocumentTypeId(String documentTypeId) { 090 this.documentTypeId = documentTypeId; 091 } 092 093 public KualiDecimal getMaximumDollarAmount() { 094 return maximumDollarAmount; 095 } 096 097 public void setMaximumDollarAmount(KualiDecimal maximumDollarAmount) { 098 this.maximumDollarAmount = maximumDollarAmount; 099 } 100 101 public KualiDecimal getMinimumDollarAmount() { 102 return minimumDollarAmount; 103 } 104 105 public void setMinimumDollarAmount(KualiDecimal minimumDollarAmount) { 106 this.minimumDollarAmount = minimumDollarAmount; 107 } 108 109 /** 110 * @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper() 111 */ 112 113 protected LinkedHashMap toStringMapper_RICE20_REFACTORME() { 114 LinkedHashMap m = new LinkedHashMap(); 115 if (account != null) { 116 m.put("accountNumber", this.account.getAccountNumber()); 117 } 118 m.put("accountResponsibilityType", this.accountResponsibilityType); 119 m.put("minimumDollarAmount", this.minimumDollarAmount); 120 m.put("maximumDollarAmount", this.maximumDollarAmount); 121 m.put("documentTypeId", this.documentTypeId); 122 return m; 123 } 124 125 126}