package pl.net.bluesoft.util.criteria;
import java.util.Set;
import static pl.net.bluesoft.util.criteria.lang.Formats.join;
public class InCriterion extends PropertyBasedCriterion {
protected Object[] values;
public InCriterion(String propertyName, Set values) {
super(propertyName);
this.values = values.toArray();
}
public InCriterion(String propertyName, Object... values) {
super(propertyName);
this.values = values;
}
@Override
public String toSql(QueryMetadata metadata) {
if (values.length > 0) {
for (int i = 0; i < values.length; ++i) {
values[i] = metadata.formatValue(values[i]);
}
return join(" ", metadata.getColumnName(propertyName), OP_IN, "(", join(", ", values), ")");
}
return "";
}
}