
net.turnbig.qb.segment.impl.combined.CombinedSqlSegment Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of query-builder Show documentation
Show all versions of query-builder Show documentation
Criterion for jdbc, but not only Criterion
The newest version!
package net.turnbig.qb.segment.impl.combined;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import net.turnbig.qb.segment.SqlSegment;
/**
* 组合型查询条件
*
* @author wuqb
* @date 2010-9-10
* @version $Revision$
*/
public abstract class CombinedSqlSegment extends SqlSegment {
protected List segments = new ArrayList();
protected boolean pretty = false;
public CombinedSqlSegment() {
}
/**
* @param pretty
*/
public CombinedSqlSegment(boolean pretty) {
this.pretty = pretty;
}
public String join(String prefix, String suffix, String sep) {
StringBuilder builder = new StringBuilder("(");
List list = new ArrayList();
for (SqlSegment segment : segments) {
String asSql = segment.asSql();
list.add(asSql);
}
String join = StringUtils.join(list, (pretty ? " \n" : " ") + sep + " ");
builder.append(join);
return builder.append(")").toString();
}
public void addSegment(SqlSegment segment) {
segments.add(segment);
if (segment.isParamRequired()) {
this.getParams().putAll(segment.getParams());
}
}
public CombinedSqlSegment addSegments(SqlSegment... segments) {
for (SqlSegment segment : segments) {
this.addSegment(segment);
}
return this;
}
public List getSegments() {
return segments;
}
public void setSegments(List segments) {
this.segments = segments;
}
@Override
public boolean isParamRequired() {
for (SqlSegment segment : segments) {
if (segment.isParamRequired()) {
return true;
}
}
return false;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy