package foundation.dao;
|
|
import java.util.HashSet;
|
import java.util.Set;
|
|
import foundation.util.Util;
|
import foundation.variant.provider.DataEvent;
|
import foundation.variant.provider.IVariantsProvider;
|
import foundation.variant.provider.VariantProviderType;
|
|
public class OrderBy implements IVariantsProvider {
|
|
public static final String PageOrderByField = "idx";
|
public static String ProviderName = "orderBy";
|
public static Set<String> VariantNames;
|
private String value;
|
private boolean empty;
|
|
static {
|
VariantNames = new HashSet<String>();
|
VariantNames.add(ProviderName);
|
VariantNames.add(ProviderName.toLowerCase());
|
}
|
|
public OrderBy() {
|
empty = true;
|
}
|
|
public OrderBy(String value) {
|
this.value = value;
|
empty = Util.isEmpty(value);
|
}
|
|
public OrderBy(String value, String asc) {
|
if (asc != null) {
|
value = value + asc;
|
}
|
|
this.value = value;
|
empty = Util.isEmpty(value);
|
}
|
|
public void add(String value) {
|
if (Util.isEmpty(this.value)) {
|
this.value = value;
|
empty = Util.isEmpty(this.value);
|
return;
|
}
|
|
if (this.value.contains(value)) {
|
return;
|
}
|
|
this.value = this.value + ", " + value;
|
empty = Util.isEmpty(this.value);
|
}
|
|
public void addAll(OrderBy another) {
|
if (another == null) {
|
return;
|
}
|
|
String orderByDefault = another.getDefaultValue();
|
|
if (Util.isEmpty(orderByDefault)) {
|
return;
|
}
|
|
String[] values = orderByDefault.split(",");
|
|
for (String value: values) {
|
add(value.replace(" ", ""));
|
}
|
}
|
|
//@he
|
public String getDefaultValue() {
|
if (empty) {
|
return "";
|
}
|
|
return value;
|
}
|
|
public String getValue() {
|
if (empty) {
|
return "";
|
}
|
|
return " order by " + value + " ";
|
}
|
|
public boolean isEmpty() {
|
return empty;
|
}
|
|
@Override
|
public boolean containsVariant(String name) {
|
return "orderby".equalsIgnoreCase(name);
|
}
|
|
@Override
|
public Object getVariantValue(DataEvent dataEvent, String name) {
|
return getValue();
|
}
|
|
@Override
|
public String getProviderName() {
|
return ProviderName;
|
}
|
|
@Override
|
public VariantProviderType getProviderType() {
|
return VariantProviderType.Transiant;
|
}
|
|
public Set<String> getVariantNames() {
|
return VariantNames;
|
}
|
|
@Override
|
public String toString() {
|
return getValue();
|
}
|
|
}
|