View Javadoc
1   /*
2    * Copyright 2007-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.module.purap.document.validation.event;
17  
18  import org.apache.commons.lang.StringUtils;
19  import org.apache.log4j.Logger;
20  import org.kuali.ole.integration.purap.CapitalAssetLocation;
21  import org.kuali.ole.sys.document.validation.event.AttributedDocumentEventBase;
22  import org.kuali.rice.krad.document.Document;
23  
24  /**
25   * Event Base class for Purchasing Item Capital Asset
26   * <p/>
27   * contains the base methods for item events
28   */
29  public abstract class AttributedPurchasingCapitalAssetLocationEventBase extends AttributedDocumentEventBase implements AttributedPurchasingCapitalAssetLocationEvent {
30      private static final Logger LOG = Logger.getLogger(AttributedPurchasingCapitalAssetLocationEventBase.class);
31  
32  
33      private final CapitalAssetLocation capitalAssetLocation;
34  
35      /**
36       * Copies the item and calls the super constructor
37       *
38       * @param description     the description of the event
39       * @param errorPathPrefix the error path
40       * @param document        the document the event is being called on
41       * @param location        the location that is having the event called on
42       */
43      public AttributedPurchasingCapitalAssetLocationEventBase(String description, String errorPathPrefix, Document document, CapitalAssetLocation capitalAssetLocation) {
44          super(description, errorPathPrefix, document);
45  
46          this.capitalAssetLocation = capitalAssetLocation;
47  
48          logEvent();
49      }
50  
51      /**
52       * @see org.kuali.ole.module.purap.document.validation.event.PurchasingCapitalAssetLocationEvent#getCapitalAssetLocation()
53       */
54      public CapitalAssetLocation getCapitalAssetLocation() {
55          return capitalAssetLocation;
56      }
57  
58      /**
59       * @see org.kuali.core.rule.event.KualiDocumentEvent#validate()
60       */
61      public void validate() {
62          super.validate();
63          if (getCapitalAssetLocation() == null) {
64              throw new IllegalArgumentException("invalid (null) location");
65          }
66      }
67  
68      /**
69       * Logs the event type and some information about the associated location
70       */
71      private void logEvent() {
72          StringBuffer logMessage = new StringBuffer(StringUtils.substringAfterLast(this.getClass().getName(), "."));
73          logMessage.append(" with ");
74  
75          // vary logging detail as needed
76          if (capitalAssetLocation == null) {
77              logMessage.append("null capital asset location");
78          } else {
79              logMessage.append(" capital asset location# ");
80              logMessage.append(capitalAssetLocation.getCapitalAssetLocationIdentifier());
81          }
82  
83          LOG.debug(logMessage);
84      }
85  }