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 VariantNames; private String value; private boolean empty; static { VariantNames = new HashSet(); 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 getVariantNames() { return VariantNames; } @Override public String toString() { return getValue(); } }