Methods Summary |
---|
public org.hibernate.sql.InFragment | addValue(java.lang.Object value)
values.add(value);
return this;
|
public org.hibernate.sql.InFragment | setColumn(java.lang.String columnName)
this.columnName = columnName;
return this;
|
public org.hibernate.sql.InFragment | setColumn(java.lang.String alias, java.lang.String columnName)
this.columnName = StringHelper.qualify(alias, columnName);
return setColumn(this.columnName);
|
public org.hibernate.sql.InFragment | setFormula(java.lang.String alias, java.lang.String formulaTemplate)
this.columnName = StringHelper.replace(formulaTemplate, Template.TEMPLATE, alias);
return setColumn(this.columnName);
|
public java.lang.String | toFragmentString()
if ( values.size()==0 ) return "1=2";
StringBuffer buf = new StringBuffer( values.size() * 5 );
buf.append(columnName);
//following doesn't handle (null, not null) but unnecessary
//since this would mean all rows
if ( values.size()>1 ) {
boolean allowNull = false;
buf.append(" in (");
Iterator iter = values.iterator();
while ( iter.hasNext() ) {
Object value = iter.next();
if ( NULL.equals(value) ) {
allowNull = true;
}
else if ( NOT_NULL.equals(value) ) {
throw new IllegalArgumentException("not null makes no sense for in expression");
}
else {
buf.append(value);
buf.append(", ");
}
}
buf.setLength( buf.length()-2 );
buf.append(')");
if (allowNull) {
buf.insert(0, " is null or ")
.insert(0, columnName)
.insert(0, '(")
.append(')");
}
}
else {
Object value = values.iterator().next();
if ( NULL.equals(value) ) {
buf.append(" is null");
}
else if ( NOT_NULL.equals(value) ) {
buf.append(" is not null");
}
else {
buf.append("=").append(value);
}
}
return buf.toString();
|