/**
* Copyright (c) 2004-2011 Wang Jinbao(Julian Wong), http://www.ralasafe.com
* Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
*/
package org.ralasafe.db.sql;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class ExpressionGroup implements Expression {
public static final String AND = "AND";
public static final String OR = "OR";
private String linker = AND;
private Collection expressions = new ArrayList();
public String toSQL() {
Iterator itr = expressions.iterator();
if (!itr.hasNext())
return "";
StringBuffer buf = new StringBuffer();
// first Expression
Expression expression = (Expression) itr.next();
buf.append(" (");
buf.append(expression.toSQL());
while (itr.hasNext()) {
// link other Expressions with linker
expression = (Expression) itr.next();
buf.append(" ").append(linker).append(" ").append(
expression.toSQL());
}
buf.append(") ");
return buf.toString();
}
public Collection getExpressions() {
return expressions;
}
public void setExpressions(Collection expressions) {
this.expressions = expressions;
}
public String getLinker() {
return linker;
}
public void setLinker(String linker) {
this.linker = linker;
}
}