IGISDatabase.java [src/m/utils] Revision: default  Date:
package m.utils;


import java.util.ArrayList;
import org.codehaus.jettison.json.JSONObject;

/*
 * 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.
 */

/**
 *
 * @author ktraff
 */
public interface IGISDatabase extends IDatabase {
    
    public String getDefaultCRS();
    
    public abstract Layer createLayer(String tableName, JSONObject layerJSON) throws csip.api.server.ServiceException;
    
    public abstract Layer copyLayer(Layer lyr, String schemaName, String tableName) throws Exception;
    
    public abstract int deleteLayer(Layer lyr) throws csip.api.server.ServiceException;
    
    public abstract Layer addGeometryColumn(Table tbl, String shapeType) throws Exception;
    
    public abstract Feature uploadFeature(JSONObject featureJSON, Layer layer) throws csip.api.server.ServiceException;
    
    public abstract int findSRID(Layer lyr) throws csip.api.server.ServiceException;

    public abstract Layer intersect(Layer one, Layer two) throws Exception;
    
    public abstract boolean intersects(Layer one, Layer two) throws Exception;
    
    public abstract boolean sameGeometry(Layer one, Layer two) throws Exception;
    
    public boolean coveredBy(Layer one, Layer two) throws Exception;

    public abstract Layer difference(Layer one, Layer two) throws Exception;
    
    public abstract Layer difference(Layer one, Layer two, ArrayList<String> colsExclude) throws Exception;

    public abstract Layer union(Layer one, Layer two) throws csip.api.server.ServiceException;

    public abstract Layer buffer(Layer lyr, int distance) throws csip.api.server.ServiceException;

    public abstract Layer minimumBoundingCircle(Layer lyr, int numSegsPerQtCirc) throws csip.api.server.ServiceException;

    public abstract Layer minimumBoundingRectangle(Layer lyr) throws csip.api.server.ServiceException;

    public abstract Layer extent(Layer lyr) throws csip.api.server.ServiceException;

    public abstract Layer envelope(Layer lyr) throws csip.api.server.ServiceException;

    public abstract Layer area(Layer lyr) throws csip.api.server.ServiceException;
    
    public abstract Layer transform(Layer lyr, int SRID) throws csip.api.server.ServiceException;
    
    public abstract String toWKT(Layer lyr) throws csip.api.server.ServiceException;
    
    public abstract JSONObject toJSON(Layer lyr) throws csip.api.server.ServiceException;

    public abstract JSONObject toJSON(Layer lyr, int outputSRID) throws csip.api.server.ServiceException;
    
}