Displaying differences for changeset
 
display as  

src/java/m/wqm/nutappmgtscores/Crop.java

@@ -5,7 +5,6 @@
  * @author RUMPAL SIDHU
  */
 import java.util.Date;
-import csip.utils.Dates;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.GregorianCalendar;
@@ -29,30 +28,31 @@
         this.nutrientApplicationList = nutrientApplicationList;
     }
 
+    //Getter methods
     public int getMgtCropId() {
-        return mgtCropId;
+        return this.mgtCropId;
     }
 
     public boolean getLmod() {
-        return lmod;
+        return this.lmod;
     }
 
     public Date getCropPlantDate() throws Exception {
-        String[] parse = cropPlantDate.split("-");
-        Calendar date = new GregorianCalendar(Integer.parseInt(parse[0]), 
+        String[] parse = this.cropPlantDate.split("-");
+        Calendar date = new GregorianCalendar(Integer.parseInt(parse[0]),
                 Integer.parseInt(parse[1]) - 1, Integer.parseInt(parse[2]));
         return date.getTime();
     }
 
     public double getCropYield() {
-        return cropYield;
+        return this.cropYield;
     }
 
     public String getCropYieldUnits() {
-        return cropYieldUnits;
+        return this.cropYieldUnits;
     }
 
     public ArrayList getNutrientApplicationList() {
-        return nutrientApplicationList;
+        return this.nutrientApplicationList;
     }
 }

src/java/m/wqm/nutappmgtscores/Input.java

@@ -4,7 +4,6 @@
  *
  * @author RUMPAL SIDHU
  */
-
 import java.util.ArrayList;
 
 public class Input {
@@ -19,15 +18,16 @@
         this.pSoilTestResult = pSoilTestResult;
     }
 
+    //Getter methods
     public int getAoAId() {
-        return AoAId;
+        return this.AoAId;
     }
 
     public ArrayList getCropList() {
-        return cropList;
+        return this.cropList;
     }
 
     public String getPSoilTestResult() {
-        return pSoilTestResult;
+        return this.pSoilTestResult;
     }
 }

src/java/m/wqm/nutappmgtscores/Nutrient.java

@@ -4,7 +4,6 @@
  *
  * @author RUMPAL SIDHU
  */
-import csip.utils.Dates;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
@@ -22,18 +21,19 @@
         this.nutrientAppliedList = nutrientAppliedList;
     }
 
+    //Getter Methods
     public Date getApplicationDate() throws Exception {
-        String[] parse = applicationDate.split("-");
-        Calendar date = new GregorianCalendar(Integer.parseInt(parse[0]), 
+        String[] parse = this.applicationDate.split("-");
+        Calendar date = new GregorianCalendar(Integer.parseInt(parse[0]),
                 Integer.parseInt(parse[1]) - 1, Integer.parseInt(parse[2]));
         return date.getTime();
     }
 
     public boolean isIncorporated() {
-        return incorporated;
+        return this.incorporated;
     }
 
     public ArrayList getNutrientAppliedList() {
-        return nutrientAppliedList;
+        return this.nutrientAppliedList;
     }
 }

src/java/m/wqm/nutappmgtscores/NutrientApplied.java

@@ -14,11 +14,12 @@
         this.applicationRate = applicationRate;
     }
 
+    //Getter Methods
     public String getNutrientApplied() {
-        return nutrientApplied;
+        return this.nutrientApplied;
     }
 
     public double getApplicationRate() {
-        return applicationRate;
+        return this.applicationRate;
     }
 }

src/java/m/wqm/nutappmgtscores/Result.java

@@ -29,40 +29,41 @@
         this.p_app_timing_score = p_app_timing_score;
         this.app_method_score = app_method_score;
     }
-    
+
+    //Getter Methods
     public int getAoAId() {
-        return AoAId;
+        return this.AoAId;
     }
-    
+
     public int getNleachAppMgtScore() {
-        return nleach_app_mgt_score;
+        return this.nleach_app_mgt_score;
     }
-    
+
     public int getNsurfAppMgtScore() {
-        return nsurf_app_mgt_score;
+        return this.nsurf_app_mgt_score;
     }
-    
+
     public int getPsurfAppMgtScore() {
-        return psurf_app_mgt_score;
+        return this.psurf_app_mgt_score;
     }
-    
+
     public int getnAppRateScore() {
-        return n_app_rate_score;
+        return this.n_app_rate_score;
     }
-    
+
     public int getnAppTimingScore() {
-        return n_app_timing_score;
+        return this.n_app_timing_score;
     }
-    
+
     public int getpAppRateScore() {
-        return p_app_rate_score;
+        return this.p_app_rate_score;
     }
-    
+
     public int getpAppTimingScore() {
-        return p_app_timing_score;
+        return this.p_app_timing_score;
     }
-    
+
     public int getAppMethodScore() {
-        return app_method_score;
+        return this.app_method_score;
     }
-}
\ No newline at end of file
+}

src/java/m/wqm/nutappmgtscores/V1_0.java

@@ -5,52 +5,51 @@
  * @author RUMPAL SIDHU
  */
 import csip.ModelDataService;
-import static csip.ModelDataService.EXEC_OK;
 import csip.utils.JSONUtils;
 import csip.utils.Dates;
+import csip.annotations.Polling;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.ArrayList;
-import java.util.Calendar;
 import java.util.Map;
 import javax.ws.rs.Path;
+import oms3.annotations.Name;
 import oms3.annotations.Description;
-import oms3.annotations.Name;
 import org.codehaus.jettison.json.JSONArray;
 import org.codehaus.jettison.json.JSONObject;
-import java.util.Date;
 import java.util.concurrent.TimeUnit;
 
 @Name("WQM-16")
 @Description("Nutrient Application Management Scores")
 @Path("m/nutappmgtscores/1.0")
+@Polling(first = 10000, next = 2000)
 
 public class V1_0 extends ModelDataService {
 
     //SQL params here for quick modification
     private final String USER = "postgres";
-    private final String PASS = "postgresql";
-    private final String SERVER = "localhost:5432/postgres";
+    private final String PASS = "admin";
+    private final String HOST = "localhost";
+    private final String PORT = "5432";
+    private final String DBNAME = "postgres";
     private final String JDBC_TYPE = "jdbc:postgresql://";
+    private final String CONNECTION = JDBC_TYPE + HOST + ":" + PORT + "/" + DBNAME;
     private final String CLASS_NAME = "org.postgresql.Driver";
 
-    ArrayList<m.wqm.nutappmgtscores.Input> input = new ArrayList<>(); //Store input
-    ArrayList<m.wqm.nutappmgtscores.Result> result = new ArrayList<>(); //Store result
+    //Request
+    private ArrayList<Input> input;
+    //Response
+    private ArrayList<Result> result;
 
     @Override
-    // reading the inputs from the json file into input object and placing it in the arraylist
     protected void preProcess() throws Exception {
-
+        input = new ArrayList<>();
         int AoAId = getIntParam("aoa_id", 0);
         String p_soil_test_result = getStringParam("p_soil_test_result", "err");
         ArrayList<Crop> cropList = new ArrayList<>();
-        
-        //System.out.println("AoAId = " + AoAId);
-        //System.out.println("p_soil_test_result = " + p_soil_test_result);
-
         JSONArray cropIds = getJSONArrayParam("cropIds");
         for (int i = 0; i < cropIds.length(); i++) {
             Map<String, JSONObject> mgtCropId = JSONUtils.preprocess(cropIds.getJSONArray(i));
@@ -58,33 +57,20 @@
             int cropId = JSONUtils.getIntParam(mgtCropId, "mgt_crop_id", 0);
             boolean lmod = JSONUtils.getBooleanParam(mgtCropId, "from_lmod", false);
             String cropPlantDate = JSONUtils.getStringParam(mgtCropId, "crop_plant_date", "err");
-            //Date crop_plant_date = Dates.parse(crop_plant_date_string);
             double cropYield = JSONUtils.getDoubleParam(mgtCropId, "crop_yield", 0);
             String cropYieldUnits = JSONUtils.getStringParam(mgtCropId, "crop_yield_units", "err");
-
-            //System.out.println("cropId = " + cropId);
-            //System.out.println("lmod = " + lmod);
-            //System.out.println("cropPlantDate = " + cropPlantDate);
-           // System.out.println("cropYield = " + cropYield);
-            //System.out.println("cropYieldUnits = " + cropYieldUnits);
             ArrayList<Nutrient> nutrientApplicationList = new ArrayList<>();
             JSONArray applicationList = JSONUtils.getJSONArrayParam(mgtCropId, "applicationList");
             for (int j = 0; j < applicationList.length(); j++) {
                 Map<String, JSONObject> application = JSONUtils.preprocess(applicationList.getJSONArray(j));
                 String nutrient_application_date = JSONUtils.getStringParam(application, "nutrient_application_date", "err");
                 boolean incorporated = JSONUtils.getBooleanParam(application, "incorporated", false);
-
-                //tem.out.println("nutrient_application_date = " + nutrient_application_date);
-               // System.out.println("incorporated = " + incorporated);
                 ArrayList<NutrientApplied> nutrientAppliedList = new ArrayList<>();
                 JSONArray applicate = JSONUtils.getJSONArrayParam(application, "application");
                 for (int k = 0; k < applicate.length(); k++) {
                     Map<String, JSONObject> a = JSONUtils.preprocess(applicate.getJSONArray(k));
                     String nutrient_applied = JSONUtils.getStringParam(a, "nutrient_applied", "err");
                     double application_rate = JSONUtils.getDoubleParam(a, "application_rate", 0);
-                    //System.out.println("nutrient_applied = " + nutrient_applied);
-                    //System.out.println("application_rate = " + application_rate);
-                    
                     nutrientAppliedList.add(new NutrientApplied(nutrient_applied, application_rate));
                 }
                 nutrientApplicationList.add(new Nutrient(nutrient_application_date, incorporated, nutrientAppliedList));
@@ -92,42 +78,31 @@
             cropList.add(new Crop(cropId, lmod, cropPlantDate, cropYield, cropYieldUnits, nutrientApplicationList));
         }
         input.add(new m.wqm.nutappmgtscores.Input(AoAId, cropList, p_soil_test_result));
-        //tem.out.println(input.size());
-       // System.out.println("Input = " + input.get(0));
     }
 
     @Override
     protected String process() throws Exception {
-
+        result = new ArrayList<>();
         Connection conn = null;
         Statement statement = null;
         String query;
-        ResultSet resultSet = null;
+        ResultSet resultSet;
 
         try {
             Class.forName(CLASS_NAME);
-            conn = DriverManager.getConnection(JDBC_TYPE + SERVER, USER, PASS);
-            //System.out.println("Closed = " + conn.isClosed());
+            conn = DriverManager.getConnection(CONNECTION, USER, PASS);
             conn.setAutoCommit(false);
-
             statement = conn.createStatement();
-
-            for (m.wqm.nutappmgtscores.Input ip : input) {
-                //System.out.println("In for 1");
-                
+            for (Input ip : input) {
                 int n_app_timing_score = 100;
                 int p_app_timing_score = 100;
-
                 int app_method_score = 0;
                 int n_app_rate_score = 0;
                 int p_app_rate_score = 0;
                 int this_crop_id = 0;
-
                 ArrayList<Crop> cropList = ip.getCropList();
                 for (Crop crop : cropList) {
-                    //System.out.println("Crop loop");
                     ArrayList<Nutrient> nutrientApplicationList = crop.getNutrientApplicationList();
-
                     //#If request payload crop is an LMOD vegetation, then convert it to a wqm_crop using the link table
                     if (crop.getLmod()) {
                         query = "SELECT wqm_crop_id FROM wqm_lmod_crop_link WHERE lmod_crop_id=" + crop.getMgtCropId() + ";";
@@ -160,16 +135,10 @@
                     } else {
                         app_type = "split";
                     }
-
-                   // System.out.println("crop id" + this_crop_id);
-                   // System.out.println("crop type" + crop_type);
-                  //  System.out.println("app type" + app_type);
                     //If no nutrient_application_date (no nutrient applications for the crop)
                     int ncrop_app_rate_score = 0;
                     int pcrop_app_rate_score = 0;
                     if (nutrientApplicationList.isEmpty()) {
-                    //    System.out.println("nutrientApplicationList is empty");
-                        
                         //#Compute score for not fertilizing.
                         query = "SELECT app_mgt_score FROM wqm_nutrient_application_mgt_scores WHERE nutrient='" + "Nitrogen" + "' AND app_mgt_kind='" + "Rate" + "' AND app_mgt_factor='" + "None" + "';";
                         resultSet = statement.executeQuery(query);
@@ -202,18 +171,11 @@
                             }
                         }
                     } else { //Else #Compute N and P removal ratios
-
-                      //  System.out.println("nutrientApplicationList is not empty!!!");
-                        
                         double nrate = 0.0;
                         double prate = 0.0;
-
                         for (Nutrient nutrient : nutrientApplicationList) {
-                      //      System.out.println("In nutrientApplicationList for loop!!!");
-                            
                             ArrayList<NutrientApplied> nutrientAppliedList = nutrient.getNutrientAppliedList();
                             for (NutrientApplied nApplied : nutrientAppliedList) {
-                          //      System.out.println("nApplied = " + nApplied.getNutrientApplied());
                                 if (nApplied.getNutrientApplied().equals("Nitrogen")) {
                                     nrate = nrate + nApplied.getApplicationRate();
                                 } else {
@@ -221,7 +183,6 @@
                                 }
                             }
                         }
-
                         double wqm_crop_pct_dmat = 0.0;
                         double wqm_pct_nitrogen = 0.0;
                         double wqm_pct_phosphorus = 0.0;
@@ -305,23 +266,18 @@
                                 break;
                             }
                         }
-
                         //#Update N and P application management rate scores for the AoA
                         n_app_rate_score = n_app_rate_score + ncrop_app_rate_score;
                         p_app_rate_score = p_app_rate_score + pcrop_app_rate_score;
                     }
-
                     //#Compute N and P application timing scores for the crop and update timin scores for the AoA
                     int ncrop_app_timing_score = 0;
                     int pcrop_app_timing_score = 0;
                     for (Nutrient nutrient : nutrientApplicationList) {
                         long app_day_diff = Dates.diffInMillis(crop.getCropPlantDate(), nutrient.getApplicationDate());
                         app_day_diff = TimeUnit.MICROSECONDS.convert(app_day_diff, TimeUnit.DAYS);
-                      //  System.out.println(app_day_diff);
-
                         ArrayList<NutrientApplied> nutrientAppliedList = nutrient.getNutrientAppliedList();
                         for (NutrientApplied nApplied : nutrientAppliedList) {
-                       //     System.out.println("In for nApplied");
                             switch (nApplied.getNutrientApplied()) {
                                 case "Nitrogen": {
                                     if (app_type.equals("split")) {
@@ -381,10 +337,8 @@
                                 }
                             }
                         }
-                  //      System.out.println("out of nApplied");
                     }
                     for (Nutrient nutrient : nutrientApplicationList) {
-                  //      System.out.println("final for loop");
                         //#If any nutrient application for any crop is not incorporated, the method score for the AoA is zero
                         if (!nutrient.isIncorporated()) {
                             app_method_score = 0;
@@ -394,15 +348,10 @@
                             resultSet = statement.executeQuery(query);
                             while (resultSet.next()) {
                                 app_method_score = resultSet.getInt("app_mgt_score");
-
                             }
-
                         }
-
                     }
-          //          System.out.println("Out of final loop");
                 }
-           //     System.out.println("Out");
                 //#Compute application management scores for nitrogen in groundwater, nitrogen in surface water, and phosphorus in surface water
                 int nleach_app_mgt_score = n_app_rate_score + n_app_timing_score + app_method_score;
                 int nsurf_app_mgt_score = n_app_rate_score + n_app_timing_score + app_method_score;
@@ -410,12 +359,8 @@
                 m.wqm.nutappmgtscores.Result result1 = new m.wqm.nutappmgtscores.Result(ip.getAoAId(), nleach_app_mgt_score, nsurf_app_mgt_score, psurf_app_mgt_score, n_app_rate_score, n_app_timing_score, p_app_rate_score, p_app_timing_score, app_method_score);
                 result.add(result1);
             }
-         //   System.out.println("out of for");
             conn.close();
-       //     System.out.println("closed = " + conn.isClosed());
         } catch (SQLException se) {
-      //      System.out.println(se.getCause());
-       //     System.out.println(se.getStackTrace());
             LOG.info("Did not open database for WQM-16!");
             LOG.info(se.getMessage());
         } finally {