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

org.tinygroup.tinysqldsl.expression.relational.InExpression Maven / Gradle / Ivy

The newest version!
/**
 * Copyright (c) 1997-2013, www.tinygroup.org ([email protected]).
 * 

* Licensed under the GPL, Version 3.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.gnu.org/licenses/gpl.html *

* 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 org.tinygroup.tinysqldsl.expression.relational; import org.tinygroup.tinysqldsl.base.StatementSqlBuilder; import org.tinygroup.tinysqldsl.expression.Expression; public class InExpression implements Expression, SupportsOldOracleJoinSyntax { private Expression leftExpression; private ItemsList leftItemsList; private ItemsList rightItemsList; private boolean not = false; private int oldOracleJoinSyntax = NO_ORACLE_JOIN; public InExpression(Expression leftExpression, ItemsList rightItemsList) { this(leftExpression, rightItemsList, false); } public InExpression(Expression leftExpression, ItemsList rightItemsList, boolean not) { super(); this.leftExpression = leftExpression; this.rightItemsList = rightItemsList; this.not = not; } public InExpression(ItemsList leftItemsList, ItemsList rightItemsList) { this(leftItemsList, rightItemsList, false); } public InExpression(ItemsList leftItemsList, ItemsList rightItemsList, boolean not) { super(); this.leftItemsList = leftItemsList; this.rightItemsList = rightItemsList; this.not = not; } public int getOldOracleJoinSyntax() { return oldOracleJoinSyntax; } public void setOldOracleJoinSyntax(int oldOracleJoinSyntax) { this.oldOracleJoinSyntax = oldOracleJoinSyntax; if (oldOracleJoinSyntax < 0 || oldOracleJoinSyntax > 1) { throw new IllegalArgumentException( "unexpected join type for oracle found with IN (type=" + oldOracleJoinSyntax + ")"); } } public ItemsList getRightItemsList() { return rightItemsList; } public void setRightItemsList(ItemsList rightItemsList) { this.rightItemsList = rightItemsList; } public Expression getLeftExpression() { return leftExpression; } public void setLeftExpression(Expression leftExpression) { this.leftExpression = leftExpression; } public boolean isNot() { return not; } public void setNot(boolean not) { this.not = not; } public ItemsList getLeftItemsList() { return leftItemsList; } public void setLeftItemsList(ItemsList leftItemsList) { this.leftItemsList = leftItemsList; } private String getLeftExpressionString() { return leftExpression + (oldOracleJoinSyntax == ORACLE_JOIN_RIGHT ? "(+)" : ""); } public String toString() { return (leftExpression == null ? leftItemsList : getLeftExpressionString()) + " " + ((not) ? "NOT " : "") + "IN " + rightItemsList + ""; } public int getOraclePriorPosition() { return SupportsOldOracleJoinSyntax.NO_ORACLE_PRIOR; } public void setOraclePriorPosition(int priorPosition) { if (priorPosition != SupportsOldOracleJoinSyntax.NO_ORACLE_PRIOR) { throw new IllegalArgumentException( "unexpected prior for oracle found"); } } public void builderExpression(StatementSqlBuilder builder) { StringBuilder buffer = builder.getStringBuilder(); if (getLeftExpression() == null) { getLeftItemsList().builderItemList(builder); } else { getLeftExpression().builderExpression(builder); if (getOldOracleJoinSyntax() == SupportsOldOracleJoinSyntax.ORACLE_JOIN_RIGHT) { buffer.append("(+)"); } } if (isNot()) { buffer.append(" NOT"); } buffer.append(" IN "); getRightItemsList().builderItemList(builder); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy