package foundation.data.object;
|
|
import foundation.dao.Filter;
|
import foundation.data.entity.Entity;
|
import foundation.data.meta.field.FieldsRuntime;
|
import foundation.server.config.DBaseType;
|
import foundation.translator.ITranslator;
|
import foundation.util.Util;
|
|
|
public class DefaultFilter {
|
|
private String fieldName;
|
private String fieldValue;
|
private String filterValue;
|
private boolean empty;
|
|
|
public DefaultFilter() {
|
|
}
|
|
public void load(Entity entity) {
|
fieldName = entity.getString("filter_field");
|
fieldValue = entity.getString("filter_value");
|
|
empty = Util.isEmpty(fieldName) || Util.isEmpty(fieldValue);
|
}
|
|
public void init(DataObject dataObject) throws Exception {
|
if (empty) {
|
return;
|
}
|
|
FieldsRuntime fields = dataObject.getTableFieldMetas();
|
ITranslator translator = fields.getValueTranslator(fieldName);
|
|
if (translator == null) {
|
return;
|
}
|
|
DBaseType type = dataObject.getDbaseType();
|
|
Filter filter = new Filter();
|
Object value = translator.toSqlString(type, fieldValue);
|
filter.add(fieldName, value);
|
|
filterValue = filter.toString();
|
}
|
|
public String getFieldName() {
|
return fieldName;
|
}
|
|
public Object getFieldValue() {
|
return fieldValue;
|
}
|
|
public String getValue(DataObject dataObject) throws Exception {
|
if (filterValue == null) {
|
init(dataObject);
|
}
|
|
return filterValue;
|
}
|
|
public boolean isEmpty() {
|
return empty;
|
}
|
|
}
|