/* * Copyright (c) 2013-2015 Josef Hardi <josef.hardi@gmail.com> * * 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 com.obidea.semantika.mapping.base.sql; import java.net.URI; import java.sql.Date; import java.sql.Time; import java.sql.Timestamp; import java.util.List; import com.obidea.semantika.database.sql.base.ISqlExpression; import com.obidea.semantika.datatype.DataType; public class SqlMappingFactory { private static SqlMappingFactory sInstance; public static SqlMappingFactory getInstance() { if (sInstance == null) { sInstance = new SqlMappingFactory(); } return sInstance; } public SqlValue createValueExpression(String value, String datatype) { return new SqlValue(value, datatype); } public SqlValue createStringValueExpression(String value) { return new SqlValue(value, DataType.STRING); } public SqlValue createNumericValueExpression(double value) { return new SqlValue(String.valueOf(value), DataType.DOUBLE); } public SqlValue createNumericValueExpression(long value) { return new SqlValue(String.valueOf(value), DataType.LONG); } public SqlValue createDateTimeValueExpression(Date value) { return new SqlValue(String.valueOf(value), DataType.DATE); } public SqlValue createDateTimeValueExpression(Time value) { return new SqlValue(String.valueOf(value), DataType.TIME); } public SqlValue createDateTimeValueExpression(Timestamp value) { return new SqlValue(String.valueOf(value), DataType.DATE_TIME); } public SqlValue createBooleanValueExpression(boolean value) { return new SqlValue(String.valueOf(value), DataType.BOOLEAN); } public SqlUriValue createUriValueExpression(URI value) { return new SqlUriValue(String.valueOf(value)); } public SqlAddition createAdditionExpression(ISqlExpression leftParameter, ISqlExpression rightParameter) { return new SqlAddition(leftParameter, rightParameter); } public SqlSubtract createSubstractExpression(ISqlExpression leftParameter, ISqlExpression rightParameter) { return new SqlSubtract(leftParameter, rightParameter); } public SqlMultiply createMultiplyExpression(ISqlExpression leftParameter, ISqlExpression rightParameter) { return new SqlMultiply(leftParameter, rightParameter); } public SqlDivide createDivideExpression(ISqlExpression leftParameter, ISqlExpression rightParameter) { return new SqlDivide(leftParameter, rightParameter); } public SqlEqualsTo createEqualsToExpression(ISqlExpression leftParameter, ISqlExpression rightParameter) { return new SqlEqualsTo(leftParameter, rightParameter); } public SqlNotEqualsTo createNotEqualsToExpression(ISqlExpression leftParameter, ISqlExpression rightParameter) { return new SqlNotEqualsTo(leftParameter, rightParameter); } public SqlGreaterThan createGreaterThanExpression(ISqlExpression leftParameter, ISqlExpression rightParameter) { return new SqlGreaterThan(leftParameter, rightParameter); } public SqlGreaterThanEquals createGreaterThanEqualsExpression(ISqlExpression leftParameter, ISqlExpression rightParameter) { return new SqlGreaterThanEquals(leftParameter, rightParameter); } public SqlLessThan createLessThanExpression(ISqlExpression leftParameter, ISqlExpression rightParameter) { return new SqlLessThan(leftParameter, rightParameter); } public SqlLessThanEquals createLessThanEqualsExpression(ISqlExpression leftParameter, ISqlExpression rightParameter) { return new SqlLessThanEquals(leftParameter, rightParameter); } public SqlOr createOrExpression(ISqlExpression leftExpression, ISqlExpression rightExpression) { return new SqlOr(leftExpression, rightExpression); } public SqlAnd createAndExpression(ISqlExpression leftExpression, ISqlExpression rightExpression) { return new SqlAnd(leftExpression, rightExpression); } public SqlIsNull createIsNullExpression(ISqlExpression parameter) { return new SqlIsNull(parameter); } public SqlIsNotNull createIsNotNullExpression(ISqlExpression parameter) { return new SqlIsNotNull(parameter); } public SqlConcat createConcatExpression(ISqlExpression... parameters) { return new SqlConcat(parameters); } public SqlConcat createConcatExpression(List<ISqlExpression> parameters) { return new SqlConcat(parameters); } public SqlUriConcat createUriConcatExpression(ISqlExpression... parameters) { return new SqlUriConcat(parameters); } public SqlUriConcat createUriConcatExpression(List<ISqlExpression> parameters) { return new SqlUriConcat(parameters); } public SqlRegex createRegexExpression(ISqlExpression text, ISqlExpression pattern, ISqlExpression flag) { return new SqlRegex(text, pattern, flag); } public SqlLang createLangExpression(ISqlExpression text) { return new SqlLang(text); } public SqlStr createStrExpression(ISqlExpression parameter) { return new SqlStr(parameter); } }