001 /* 002 * Copyright 2011 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.kfs.module.endow.document; 017 018 import java.util.List; 019 020 import org.kuali.kfs.module.endow.businessobject.EndowmentSourceTransactionLine; 021 import org.kuali.kfs.module.endow.businessobject.EndowmentTargetTransactionLine; 022 import org.kuali.kfs.module.endow.businessobject.EndowmentTransactionLine; 023 import org.kuali.kfs.module.endow.businessobject.EndowmentTransactionLineParser; 024 import org.kuali.kfs.module.endow.util.LineParser; 025 import org.kuali.rice.kns.util.KualiDecimal; 026 027 028 public interface EndowmentTransactionLinesDocument extends EndowmentTransactionalDocument { 029 030 /** 031 * This method is used to return the title that a transactional document should give to it's source transaction line section. 032 * 033 * @return The source transaction line section's title. 034 */ 035 public String getSourceTransactionLinesSectionTitle(); 036 037 /** 038 * This method is used to return the title that a transactional document should give to it's target transaction line section. 039 * 040 * @return The target transaction line section's title. 041 */ 042 public String getTargetTransactionLinesSectionTitle(); 043 044 /** 045 * Sums up the amounts of all of the target transaction lines for income. 046 */ 047 public KualiDecimal getTargetIncomeTotal(); 048 049 /** 050 * Sums up the amounts of all of the target transaction lines for principal. 051 */ 052 public KualiDecimal getTargetPrincipalTotal(); 053 054 /** 055 * Sums up the amounts of all of the source transaction lines for income. 056 */ 057 public KualiDecimal getSourceIncomeTotal(); 058 059 /** 060 * Sums up the amounts of all of the source transaction lines for principal. 061 */ 062 public KualiDecimal getSourcePrincipalTotal(); 063 064 /** 065 * Sums up the units of all the source transaction lines for income. 066 * 067 * @return the total income units 068 */ 069 public KualiDecimal getSourceIncomeTotalUnits(); 070 071 /** 072 * Sums up the units of all source transaction lines for principal. 073 * 074 * @return the total principal units 075 */ 076 public KualiDecimal getSourcePrincipalTotalUnits(); 077 078 /** 079 * Sums up the units of all the target transaction lines for income. 080 * 081 * @return the total income units 082 */ 083 public KualiDecimal getTargetIncomeTotalUnits(); 084 085 /** 086 * Sums up the units of all source transaction lines for principal. 087 * 088 * @return the total principal units 089 */ 090 public KualiDecimal getTargetPrincipalTotalUnits(); 091 092 /** 093 * Compute the total amount for the target transaction lines. 094 * 095 * @return the total amount for the target transaction lines 096 */ 097 public KualiDecimal getTargetTotalAmount(); 098 099 /** 100 * Compute the total amount for the source transaction lines. 101 * 102 * @return the total amount for the source transaction lines 103 */ 104 public KualiDecimal getSourceTotalAmount(); 105 106 /** 107 * Computes the total units for the source transaction lines. 108 * 109 * @return the total units for the source transaction lines 110 */ 111 public KualiDecimal getSourceTotalUnits(); 112 113 /** 114 * Computes the total units for the target transaction lines. 115 * 116 * @return the total units for the target transaction lines 117 */ 118 public KualiDecimal getTargetTotalUnits(); 119 120 /** 121 * Base implementation to compute the document total units. Documents that display the total units will implement the 122 * UnitsTotaling interface and can override this method if needed. 123 * 124 * @return the total units for the document 125 */ 126 public KualiDecimal getTotalUnits(); 127 128 /** 129 * @return TransactionLineParser instance appropriate for importing TransactionLines for this document type 130 */ 131 public EndowmentTransactionLineParser getTransactionLineParser(); 132 133 134 /** 135 * Retrieves the next line sequence number for a transaction line in the Source transaction line section on an endowment 136 * transactional document. 137 * 138 * @return The next available source line number. 139 */ 140 public Integer getNextSourceLineNumber(); 141 142 /** 143 * @param nextLineNumber 144 */ 145 public void setNextSourceLineNumber(Integer nextLineNumber); 146 147 /** 148 * Retrieves the next line sequence number for an transaction line in the Target transaction line section on an endowment 149 * transactional document. 150 * 151 * @return The next available target line number. 152 */ 153 public Integer getNextTargetLineNumber(); 154 155 /** 156 * @param nextLineNumber 157 */ 158 public void setNextTargetLineNumber(Integer nextLineNumber); 159 160 /** 161 * This method adds a source transaction line. 162 * 163 * @param line 164 */ 165 public void addSourceTransactionLine(EndowmentSourceTransactionLine line); 166 167 /** 168 * This method returns a list of source transaction lines. 169 * 170 * @return The list of source transaction lines. 171 */ 172 public List<EndowmentTransactionLine> getSourceTransactionLines(); 173 174 /** 175 * This method sets the list of source transaction lines for this document. 176 * 177 * @param sourceLines 178 */ 179 public void setSourceTransactionLines(List<EndowmentTransactionLine> sourceLines); 180 181 /** 182 * This method adds a target transaction line to the document. 183 * 184 * @param line 185 */ 186 public void addTargetTransactionLine(EndowmentTargetTransactionLine line); 187 188 /** 189 * This method retrieves all of the target transaction lines associated with this document. 190 */ 191 public List<EndowmentTransactionLine> getTargetTransactionLines(); 192 193 /** 194 * This method sets the list of target transaction lines for this document. 195 * 196 * @param targetLines 197 */ 198 public void setTargetTransactionLines(List<EndowmentTransactionLine> targetLines); 199 200 /** 201 * This method returns the transaction line at a particular spot in the overall list of transaction lines. 202 * 203 * @param index 204 * @return The source transaction line at the specified index. 205 */ 206 public EndowmentSourceTransactionLine getSourceTransactionLine(int index); 207 208 /** 209 * This method retrieves the target transaction line at the specified index. 210 * 211 * @param index 212 * @return The target transaction line at the passed in index. 213 */ 214 public EndowmentTargetTransactionLine getTargetTransactionLine(int index); 215 216 public Class getTranLineClass(boolean isSource); 217 218 public LineParser getLineParser(); 219 }