1   package org.kuali.ole.ingest.action;
2   
3   import org.apache.log4j.Logger;
4   import org.kuali.ole.DataCarrierService;
5   import org.kuali.ole.OLEConstants;
6   import org.kuali.ole.ingest.pojo.ProfileAttributeBo;
7   import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
8   import org.kuali.rice.krms.api.engine.ExecutionEnvironment;
9   import org.kuali.rice.krms.framework.engine.Action;
10  
11  import java.util.List;
12  
13  
14  
15  
16  
17  public class OverlayAction implements Action {
18      private static final Logger LOG = Logger.getLogger(OverlayAction.class);
19      private UpdateBibExcludingGPFieldAction updateBibExcludingGPFieldAction;
20      private UpdateBibIncludingGPFieldAction updateBibIncludingGPFieldAction;
21      private DataCarrierService dataCarrierService;
22  
23      
24  
25  
26  
27      @Override
28      public void execute(ExecutionEnvironment executionEnvironment) {
29          dataCarrierService = getDataCarrierService();
30          List<ProfileAttributeBo> profileAttributesList = (List<ProfileAttributeBo>) dataCarrierService.getData(OLEConstants.PROFILE_ATTRIBUTE_LIST);
31  
32          String overlayOption = new String();
33          try{
34              for(ProfileAttributeBo profileAttributeBo : profileAttributesList){
35                  if(profileAttributeBo.getAttributeName().equals(OLEConstants.HIGHLEVEL_OVERLAY_OPTION)){
36                      overlayOption = profileAttributeBo.getAttributeValue();
37                  }
38              }
39              if(LOG.isDebugEnabled()){
40                  LOG.debug("overlayOption------------->"+overlayOption);
41              }
42              if(overlayOption.equals(OLEConstants.OVERLAY_OPTION_DONT_IGNORE_GPF)){
43                  getUpdateBibExcludingGPFieldAction().execute(executionEnvironment);
44              }else if(overlayOption.equals(OLEConstants.OVERLAY_OPTION_IGNORE_GPF)){
45                  getUpdateBibIncludingGPFieldAction().execute(executionEnvironment);
46              }
47              else {
48                  getUpdateBibExcludingGPFieldAction().execute(executionEnvironment);
49              }
50              executionEnvironment.getEngineResults().setAttribute(OLEConstants.OVERLAY, true);
51          }catch (Exception e){
52              executionEnvironment.getEngineResults().setAttribute(OLEConstants.OVERLAY, null);
53          }
54      }
55  
56      
57  
58  
59  
60      public UpdateBibExcludingGPFieldAction getUpdateBibExcludingGPFieldAction() {
61          if (null == updateBibExcludingGPFieldAction) {
62              updateBibExcludingGPFieldAction = new UpdateBibExcludingGPFieldAction();
63          }
64          return updateBibExcludingGPFieldAction;
65      }
66  
67      
68  
69  
70  
71      public UpdateBibIncludingGPFieldAction getUpdateBibIncludingGPFieldAction() {
72          if (null == updateBibIncludingGPFieldAction) {
73              updateBibIncludingGPFieldAction = new UpdateBibIncludingGPFieldAction();
74          }
75          return updateBibIncludingGPFieldAction;
76      }
77  
78      
79  
80  
81  
82      protected DataCarrierService getDataCarrierService() {
83          return GlobalResourceLoader.getService(OLEConstants.DATA_CARRIER_SERVICE);
84      }
85      
86  
87  
88  
89  
90      @Override
91      public void executeSimulation(ExecutionEnvironment executionEnvironment) {
92          execute(executionEnvironment);
93      }
94  
95  }