View Javadoc
1   /*
2    * Copyright 2008 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.ole.fp.document.validation.impl;
17  
18  import org.kuali.ole.sys.OLEConstants;
19  import org.kuali.ole.sys.OLEKeyConstants;
20  import org.kuali.ole.sys.businessobject.AccountingLine;
21  import org.kuali.ole.sys.document.validation.GenericValidation;
22  import org.kuali.ole.sys.document.validation.event.AttributedDocumentEvent;
23  import org.kuali.rice.core.api.util.type.KualiDecimal;
24  import org.kuali.rice.krad.util.GlobalVariables;
25  
26  /**
27   * Validates that the amount on a given accounting line is not zero
28   */
29  public class AccountingLineAmountNonZeroValidation extends GenericValidation {
30      private AccountingLine accountingLineForValidation;
31      
32      /**
33       * Validates that the amount of the given accounting line is not zero
34       * <strong>the accounting document must be the first parameter, the accounting line must be the second parameter</strong>
35       * @see org.kuali.ole.sys.document.validation.GenericValidation#validate(java.lang.Object[])
36       */
37      public boolean validate(AttributedDocumentEvent event) {
38          KualiDecimal amount = accountingLineForValidation.getAmount();
39  
40          if (KualiDecimal.ZERO.compareTo(amount) == 0) { // amount == 0
41              GlobalVariables.getMessageMap().putError(OLEConstants.AMOUNT_PROPERTY_NAME, OLEKeyConstants.ERROR_ZERO_AMOUNT, "an accounting line");
42              return false;
43          }
44  
45          return true;
46      }
47  
48      /**
49       * Gets the accountingLineForValidation attribute. 
50       * @return Returns the accountingLineForValidation.
51       */
52      public AccountingLine getAccountingLineForValidation() {
53          return accountingLineForValidation;
54      }
55  
56      /**
57       * Sets the accountingLineForValidation attribute value.
58       * @param accountingLineForValidation The accountingLineForValidation to set.
59       */
60      public void setAccountingLineForValidation(AccountingLine accountingLineForValidation) {
61          this.accountingLineForValidation = accountingLineForValidation;
62      }
63  }