Displaying differences for changeset
 
display as  

src/java/m/rusle2/V3_0.java

@@ -11,31 +11,31 @@
  */
 package m.rusle2;
 
-import csip.utils.Client;
 import csip.Config;
-import csip.api.server.Executable;
 import csip.ModelDataService;
-import static csip.ModelDataService.ERROR;
-import static csip.ModelDataService.KEY_METAINFO;
-import static csip.ModelDataService.KEY_NAME;
-import static csip.ModelDataService.KEY_PARAMETER;
-import static csip.ModelDataService.KEY_REQUEST_RESULTS;
-import static csip.ModelDataService.KEY_RESULT;
-import static csip.ModelDataService.KEY_STATUS;
-import static csip.ModelDataService.KEY_VALUE;
-import static csip.ModelDataService.REPORT_DESC;
-import static csip.ModelDataService.REPORT_DIM;
-import static csip.ModelDataService.REPORT_NAME;
-import static csip.ModelDataService.REPORT_TYPE;
-import static csip.ModelDataService.REPORT_UNITS;
-import static csip.ModelDataService.VALUE;
-import csip.api.server.ServiceException;
+import static csip.ModelDataServiceConstants.ERROR;
+import static csip.ModelDataServiceConstants.KEY_METAINFO;
+import static csip.ModelDataServiceConstants.KEY_NAME;
+import static csip.ModelDataServiceConstants.KEY_PARAMETER;
+import static csip.ModelDataServiceConstants.KEY_REQUEST_RESULTS;
+import static csip.ModelDataServiceConstants.KEY_RESULT;
+import static csip.ModelDataServiceConstants.KEY_STATUS;
+import static csip.ModelDataServiceConstants.KEY_VALUE;
+import static csip.ModelDataServiceConstants.REPORT_DESC;
+import static csip.ModelDataServiceConstants.REPORT_DIM;
+import static csip.ModelDataServiceConstants.REPORT_NAME;
+import static csip.ModelDataServiceConstants.REPORT_TYPE;
+import static csip.ModelDataServiceConstants.REPORT_UNITS;
+import static csip.ModelDataServiceConstants.VALUE;
 import static csip.Utils.removeFirstLastChar;
 import csip.annotations.*;
 import static csip.annotations.ResourceType.ARCHIVE;
 import static csip.annotations.ResourceType.FILE;
 import static csip.annotations.ResourceType.REFERENCE;
 import static csip.annotations.State.RELEASED;
+import csip.api.server.Executable;
+import csip.api.server.ServiceException;
+import csip.utils.Client;
 import csip.utils.JSONUtils;
 import java.io.File;
 import java.io.FileOutputStream;
@@ -53,6 +53,7 @@
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
 import org.w3c.dom.Document;
+import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.xml.sax.SAXException;
 import static util.Constants.*;
@@ -134,7 +135,7 @@
   protected JSONArray managements;
   protected JSONArray aSoils;
   protected String climatePtr;
-
+  protected double r_factor;
   String[] reqResults;
 
   //
@@ -202,6 +203,7 @@
       LOG.log(Level.SEVERE, "ERROR EXECUTING PYTHON-RUSLE2", e);
       throw e;
     }
+    getR_factor();
   }
 
 
@@ -270,9 +272,36 @@
       results().put(KEY_MANAGEMENTS, new JSONArray(r2run.getResultPyromeArray("SEG_MAN", true, true, true)));
     }
 
+    results().put("R_FACTOR", r_factor);
     additionalOutputs();
   }
 
+   protected void getR_factor() throws ParserConfigurationException, SAXException, IOException {
+    boolean r_found = false;
+
+    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+    DocumentBuilder builder = factory.newDocumentBuilder();
+    Document doc = builder.parse(new File(workspace().getDir(), "cli_file0.xml"));
+    NodeList floatNodes = doc.getElementsByTagName("Flt");
+
+    // go through all the flt nodes to find the specific r_factor node
+    for (int i = 0; i < floatNodes.getLength() && !r_found; i++) {
+      Node node = floatNodes.item(i);
+      for (int j = 0; j < node.getChildNodes().getLength(); j++) {
+        Node child = node.getChildNodes().item(j);
+        // pull the r_factor value from the flt node
+        if (r_found && child.getNodeName().equals("Data")) {
+          r_factor = Double.parseDouble(child.getTextContent());
+          break;
+        }
+        if (child.getNodeName().equals("Name")) {
+          if (child.getTextContent().equals("R_FACTOR")) {
+            r_found = true;
+          }
+        }
+      }
+    }
+  }
 
   protected void createInputFile(File file, Map<String, JSONObject> param)
       throws Exception {

src/java/m/rusle2/V4_0.java

@@ -5,10 +5,7 @@
  */
 package m.rusle2;
 
-import csip.utils.Client;
 import csip.Config;
-import csip.api.server.Executable;
-import csip.api.server.ServiceException;
 import csip.annotations.Description;
 import csip.annotations.Name;
 import csip.annotations.Resource;
@@ -18,12 +15,14 @@
 import csip.annotations.State;
 import static csip.annotations.State.DEVELOPMENT;
 import csip.annotations.VersionInfo;
+import csip.api.server.Executable;
 import csip.api.server.PayloadMetaInfo;
+import csip.api.server.ServiceException;
+import csip.utils.Client;
 import csip.utils.JSONUtils;
 import database.ServiceResources;
 import static database.ServiceResources.LMOD_ID;
 import java.io.File;
-import java.io.IOException;
 import java.sql.Connection;
 import java.sql.SQLException;
 import java.util.Collection;
@@ -31,9 +30,6 @@
 import java.util.List;
 import java.util.logging.Level;
 import javax.ws.rs.Path;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
 import static m.rusle2.V3_0.OUT_JSON_TEMPLATE_FILENAME;
 import static m.rusle2.V3_0.PYROME;
 import static m.rusle2.V3_0.PYROMESRC;
@@ -47,10 +43,6 @@
 import org.codehaus.jettison.json.JSONArray;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
 import soils.Component;
 import soils.MapUnit;
 import soils.db.SOILS_DATA;
@@ -84,7 +76,6 @@
   private Management man;
   private Component comp;
   private int contour = 0;
-  private double r_factor;
   private double ann_erosion;
 
 
@@ -199,35 +190,6 @@
     return value;
   }
 
-
-  private void getR_factor() throws ParserConfigurationException, SAXException, IOException {
-    boolean r_found = false;
-
-    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-    DocumentBuilder builder = factory.newDocumentBuilder();
-    Document doc = builder.parse(new File(workspace().getDir(), "cli_file0.xml"));
-    NodeList floatNodes = doc.getElementsByTagName("Flt");
-
-    // go through all the flt nodes to find the specific r_factor node
-    for (int i = 0; i < floatNodes.getLength() && !r_found; i++) {
-      Node node = floatNodes.item(i);
-      for (int j = 0; j < node.getChildNodes().getLength(); j++) {
-        Node child = node.getChildNodes().item(j);
-        // pull the r_factor value from the flt node
-        if (r_found && child.getNodeName().equals("Data")) {
-          r_factor = Double.parseDouble(child.getTextContent());
-          break;
-        }
-        if (child.getNodeName().equals("Name")) {
-          if (child.getTextContent().equals("R_FACTOR")) {
-            r_found = true;
-          }
-        }
-      }
-    }
-  }
-
-
   @Override
   protected void doProcess() throws Exception {
     try {

web/WEB-INF/csip-defaults.json

@@ -1,5 +1,5 @@
 { 
-    "csip-r2.version": "$version: 2.11.8.19 default 89 93a48e7e00c0 2022-02-18 od, built at 2022-02-18 14:39 by od$",
+    "csip-r2.version": "$version: 0.0.0 xxxxxxx date, built at 2022-05-10 07:46 by scase$",
     "lmod.db": "jdbc:sqlserver:\/\/129.82.20.242:1433;databaseName=lmod_temp;user=lmod-rw;password=?",
     "sdmONLINE":"true",
     "csip.session.ttl": "PT1M",