net.sf.jsqlparser.statement.select.Join Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jsqlparser Show documentation
Show all versions of jsqlparser Show documentation
JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes.
The generated hierarchy can be navigated using the Visitor Pattern.
/*
* #%L
* JSQLParser library
* %%
* Copyright (C) 2004 - 2013 JSQLParser
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 2.1 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Lesser Public License for more details.
*
* You should have received a copy of the GNU General Lesser Public
* License along with this program. If not, see
* .
* #L%
*/
package net.sf.jsqlparser.statement.select;
import java.util.List;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.schema.Column;
/**
* A join clause
*/
public class Join {
private boolean outer = false;
private boolean right = false;
private boolean left = false;
private boolean natural = false;
private boolean full = false;
private boolean inner = false;
private boolean simple = false;
private boolean cross = false;
private boolean semi = false;
private FromItem rightItem;
private Expression onExpression;
private List usingColumns;
/**
* Whether is a tab1,tab2 join
*
* @return true if is a "tab1,tab2" join
*/
public boolean isSimple() {
return simple;
}
public void setSimple(boolean b) {
simple = b;
}
/**
* Whether is a "INNER" join
*
* @return true if is a "INNER" join
*/
public boolean isInner() {
return inner;
}
public void setInner(boolean b) {
inner = b;
}
/**
* Whether is a "OUTER" join
*
* @return true if is a "OUTER" join
*/
public boolean isOuter() {
return outer;
}
public void setOuter(boolean b) {
outer = b;
}
/**
* Whether is a "SEMI" join
*
* @return true if is a "SEMI" join
*/
public boolean isSemi() { return semi; }
public void setSemi(boolean b) { semi = b; }
/**
* Whether is a "LEFT" join
*
* @return true if is a "LEFT" join
*/
public boolean isLeft() {
return left;
}
public void setLeft(boolean b) {
left = b;
}
/**
* Whether is a "RIGHT" join
*
* @return true if is a "RIGHT" join
*/
public boolean isRight() {
return right;
}
public void setRight(boolean b) {
right = b;
}
/**
* Whether is a "NATURAL" join
*
* @return true if is a "NATURAL" join
*/
public boolean isNatural() {
return natural;
}
public void setNatural(boolean b) {
natural = b;
}
/**
* Whether is a "FULL" join
*
* @return true if is a "FULL" join
*/
public boolean isFull() {
return full;
}
public void setFull(boolean b) {
full = b;
}
public boolean isCross() {
return cross;
}
public void setCross(boolean cross) {
this.cross = cross;
}
/**
* Returns the right item of the join
*/
public FromItem getRightItem() {
return rightItem;
}
public void setRightItem(FromItem item) {
rightItem = item;
}
/**
* Returns the "ON" expression (if any)
*/
public Expression getOnExpression() {
return onExpression;
}
public void setOnExpression(Expression expression) {
onExpression = expression;
}
/**
* Returns the "USING" list of {@link net.sf.jsqlparser.schema.Column}s (if
* any)
*/
public List getUsingColumns() {
return usingColumns;
}
public void setUsingColumns(List list) {
usingColumns = list;
}
@Override
public String toString() {
if (isSimple()) {
return "" + rightItem;
} else {
String type = "";
if (isRight()) {
type += "RIGHT ";
} else if (isNatural()) {
type += "NATURAL ";
} else if (isFull()) {
type += "FULL ";
} else if (isLeft()) {
type += "LEFT ";
} else if (isCross()) {
type += "CROSS ";
}
if (isOuter()) {
type += "OUTER ";
} else if (isInner()) {
type += "INNER ";
} else if (isSemi()) {
type += "SEMI ";
}
return type + "JOIN " + rightItem + ((onExpression != null) ? " ON " + onExpression + "" : "")
+ PlainSelect.getFormatedList(usingColumns, "USING", true, true);
}
}
}