V1_0.java [src/java/m/example/gis_objects] Revision: ddbe9454665107e4aeccb8b001af5ad651fa8371 Date: Mon Apr 11 15:41:56 MDT 2016
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package m.example.gis_objects;
import GISObjects.GISObject;
import csip.ModelDataService;
import csip.ServiceException;
import csip.annotations.Resource;
import static csip.annotations.ResourceType.JDBC;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ws.rs.Path;
import oms3.annotations.Description;
import oms3.annotations.Name;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
/**
* Basic usage of the GIS-Objects.
*
* @author Shaun Case
*/
@Name("GIS_Objects")
@Description("An example of how to ")
@Path("m/gis_objects/1.0")
@Resource(type = JDBC, file = "${mssql.db}", id = "mssql", env = {
"removeAbandoned=false", "defaultReadOnly=true", "defaultAutoCommit=false",
"jdbcInterceptors=org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;"
+ "org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer;"
+ "org.apache.tomcat.jdbc.pool.interceptor.ResetAbandonedTimer"
})
public class V1_0 extends ModelDataService {
JSONObject aoa_geometry;
double finalArea;
@Override
protected void preProcess() throws csip.ServiceException {
Map<String, JSONObject> inputParams = getParamMap();
if (inputParams.containsKey("aoa_geometry")) {
aoa_geometry = inputParams.get("aoa_geometry");
} else {
throw new csip.ServiceException("Missing input parameter 'aoa_geometry'.");
}
}
@Override
protected void doProcess() throws ServiceException {
GISObject inputGIS;
try (Connection connection = getResourceJDBC("mssql");) {
GISObjects.GISObjectFactory.setGISObjectFactory(new GISObjects.MSSQL_GISObjectConsumer(connection));
inputGIS = GISObjects.GISObjectFactory.createGISObject(aoa_geometry);
finalArea = inputGIS.areaInAcres();
} catch (SQLException | JSONException | IOException ex) {
LOG.log(Level.SEVERE, null, ex);
throw new csip.ServiceException("Cannot process request: ", ex);
}
}
@Override
protected void postProcess() throws csip.ServiceException{
putResult("area", finalArea,"Area of the aoa_geometry specified", "Acres" );
}
}