View Javadoc
1   package org.kuali.ole.ingest.function;
2   
3   import org.apache.log4j.Logger;
4   import org.kuali.ole.DataCarrierService;
5   import org.kuali.ole.OLEConstants;
6   import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
7   import org.kuali.rice.krms.framework.engine.Function;
8   
9   import java.sql.Timestamp;
10  import java.text.DateFormat;
11  import java.text.ParseException;
12  import java.text.SimpleDateFormat;
13  import java.util.Date;
14  
15  /**
16   * PatronMembershipExpiration is used for validating checkMembershipExpirationDate
17   */
18  public class OleRenewalDateComparison implements Function {
19      private static final Logger LOG = Logger.getLogger(OleRenewalDateComparison.class);
20      /**
21       * This method takes the request and invoke the methods to checkMembershipExpirationDate.
22       * @param arguments
23       * @return  Object
24       */
25      @Override
26      public Object invoke(Object... arguments) {
27          LOG.info(" --------- Inside OleRenewalDateComparison ------------");
28          DataCarrierService dataCarrierService = GlobalResourceLoader.getService(OLEConstants.DATA_CARRIER_SERVICE);
29          boolean comparison = false;
30          if(arguments!=null && arguments.length==1){
31              Object object = arguments[0];
32              if(object==null)
33                  return false;
34              Date orginalDueDate = null;
35              if(object instanceof String){
36                  DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
37                  try {
38                      orginalDueDate= (Date)formatter.parse((String)object);
39                  } catch (ParseException e) {
40                      e.printStackTrace();
41                  }
42  
43              }else{
44                  orginalDueDate =(Date)object;
45              }
46              if(dataCarrierService.getData(OLEConstants.DUE_DATE)!=null){
47                  Timestamp newDueDate =  (Timestamp) dataCarrierService.getData(OLEConstants.DUE_DATE);
48                  comparison =checkRenewalDate(orginalDueDate,newDueDate);
49              }
50          }
51  
52          return comparison;
53      }
54  
55      /**
56       *  This method check the membership ExpiryDate with current date.
57       * @param orginalDueDate
58       * @param newDueDate
59       * @return  boolean
60       */
61      private boolean checkRenewalDate(Date orginalDueDate,Date newDueDate){
62          if(orginalDueDate!=null && newDueDate.compareTo(orginalDueDate)>=0){
63              return  true;
64          }
65          return false;
66      }
67  }