/** * Validates a collection of anything splits. Negative values and values exceeding 100.00 are not * permissible. * * @param creditSplit_it * @param creditType * @param lesserCummulative * @return boolean <code>true</code> if it is a valid percentage (falls between 0.00 and 100.00) */ public boolean validateCreditSplit( Iterator<? extends CreditSplit> creditSplit_it, InvestigatorCreditType creditType, DecimalHolder lesserCummulative) { if (!creditSplit_it.hasNext()) { return false; } CreditSplit creditSplit = creditSplit_it.next(); if (creditType.getInvCreditTypeCode().equals(creditSplit.getInvCreditTypeCode())) { lesserCummulative.add(creditSplit.getCredit()); info("Credit split is %s", creditSplit.getCredit()); return isCreditSplitValid(creditSplit.getCredit()); } return validateCreditSplit(creditSplit_it, creditType, lesserCummulative); }
/** * Validates a collection of anything splitable. This implies that it contains <code> * {@link CreditSplit}</code> instances. * * @param splitable_it * @param creditType * @param greaterCummulative * @return boolean is valid? */ public boolean validateCreditSplitable( Iterator<? extends CreditSplitable> splitable_it, InvestigatorCreditType creditType, DecimalHolder greaterCummulative) { if (!splitable_it.hasNext()) { return isCreditSplitTotalValid(greaterCummulative.getValue()); } boolean retval = true; CreditSplitable splitable = splitable_it.next(); info(VALIDATING_MESSAGE, getCreditSplitableName(splitable)); DecimalHolder lesserCummulative = new DecimalHolder(KualiDecimal.ZERO); retval &= validateCreditSplit(splitable.getCreditSplits().iterator(), creditType, lesserCummulative); greaterCummulative.add(lesserCummulative); return retval & validateCreditSplitable(splitable_it, creditType, greaterCummulative); }