📄 order.java
字号:
package org.opencustomer.framework.db.util.engine;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.log4j.Logger;
public final class Order {
private final static Logger log = Logger.getLogger(Order.class);
private ArrayList<OrderColumn> orderColumns = new ArrayList<OrderColumn>();
public Order() {
}
public Order(int column, boolean ascending) {
add(column, ascending);
}
public void clear() {
orderColumns.clear();
}
public void add(int column, boolean ascending) {
Iterator<OrderColumn> it = orderColumns.iterator();
while(it.hasNext()) {
OrderColumn oc = it.next();
if(oc.getColumn() == column) {
it.remove();
}
}
orderColumns.add(0, new OrderColumn(column, ascending));
}
List<OrderColumn> getOrderColumns() {
return orderColumns;
}
/**
* Adds a order parameter with the structure {order}_{column}.
* @param orderParam the unparsed parameter.
*/
public void add(String orderParam){
if(orderParam != null) {
String[] parts = orderParam.split("_", 2);
if(parts.length == 2) {
boolean ascending = true;
if(parts[0].equals("asc")) {
ascending = true;
} else if(parts[0].equals("desc")) {
ascending = false;
} else {
throw new IllegalArgumentException("found invalid order (position 1): "+parts[0]);
}
try {
this.add(Integer.parseInt(parts[1]), ascending);
} catch(NumberFormatException e) {
throw new IllegalArgumentException("found invalid column (position 2): "+parts[1]);
}
} else {
throw new IllegalArgumentException("invalid number of paramaeter parts found: "+parts.length+" (expected: 2)");
}
}
}
static class OrderColumn {
private int column;
private boolean ascending;
public OrderColumn() {
}
public OrderColumn(int column, boolean ascending) {
this.column = column;
this.ascending = ascending;
}
public int getColumn() {
return column;
}
public void setColumn(int column) {
this.column = column;
}
public boolean isAscending() {
return ascending;
}
public void setAscending(boolean ascending) {
this.ascending = ascending;
}
@Override
public String toString() {
return column+"-"+ascending;
}
}
@Override
public String toString() {
ToStringBuilder builder = new ToStringBuilder(this);
builder.append("orderColumns", orderColumns);
return builder.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -