All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nz.co.gregs.dbvolution.internal.h2.Point2DFunctions Maven / Gradle / Ivy

/*
 * Copyright 2015 gregorygraham.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package nz.co.gregs.dbvolution.internal.h2;

import java.sql.SQLException;
import java.sql.Statement;

/**
 *
 * 

Support DBvolution at * Patreon

* * @author gregorygraham */ public enum Point2DFunctions implements DBVFeature { /** * */ CREATE("DBV_CREATE_POINT2D_FROM_COORDS", "String", "Double x, Double y", "if (x == null || y == null) {\n" + " return null;\n" + " } else {\n" + " return \"POINT (\" + x + \" \" + y + \")\" ;\n" + " }"), /** * */ EQUALS("DBV_POINT2D_EQUALS", "Boolean", "String firstPoint, String secondPoint", " if (firstPoint == null || secondPoint == null) {\n" + " return null;\n" + " } else {\n" + " return firstPoint.equals(secondPoint);\n" + " }"), /** * */ GETX("DBV_POINT2D_GETX", "Double", "String firstPoint", " if (firstPoint == null) {\n" + " return null;\n" + " } else {\n" + " String[] split = firstPoint.split(\"[ ()]+\");\n" + " double x = Double.parseDouble(split[1]);\n" + " return x;\n" + " }"), /** * */ GETY("DBV_POINT2D_GETY", "Double", "String firstPoint", " if (firstPoint == null) {\n" + " return null;\n" + " } else {\n" + " String[] split = firstPoint.split(\"[ ()]+\");\n" + " double y = Double.parseDouble(split[2]);\n" + " return y;\n" + " }"), /** * */ DIMENSION("DBV_POINT2D_GETDIMENSION", "Integer", "String firstPoint", " return 0;"), /** * */ BOUNDINGBOX("DBV_POINT2D_GETBOUNDINGBOX", "String", "String firstPoint", " if (firstPoint == null) {\n" + " return null;\n" + " } else {\n" + " String[] split = firstPoint.split(\"[ ()]+\");\n" + " double x = Double.parseDouble(split[1]);\n" + " double y = Double.parseDouble(split[2]);\n" + " String point = x+\" \"+y;\n" + " String resultString = \"POLYGON ((\"+point+\", \"+point+\", \"+point+\", \"+point+\", \"+point+\"))\";\n" + " return resultString;\n" + " }"), /** * */ ASTEXT("DBV_POINT2D_ASTEXT", "String", "String firstPoint", "return firstPoint;"); private final String functionName; private final String returnType; private final String parameters; private final String code; Point2DFunctions(String functionName, String returnType, String parameters, String code) { this.functionName = functionName; this.returnType = returnType; this.parameters = parameters; this.code = code; } @Override public String toString() { return functionName; } /** * * @param stmt * @throws SQLException */ public void add(Statement stmt) throws SQLException { // try { // stmt.execute("DROP ALIAS " + functionName + ";"); // } catch (SQLException sqlex) { // ; // } stmt.execute("CREATE ALIAS IF NOT EXISTS " + functionName + " DETERMINISTIC AS $$ \n" + "@CODE " + returnType + " " + functionName + "(" + parameters + ") {\n" + code + "} $$;"); } @Override public String alias() { return toString(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy