View Javadoc
1   package com.foxinmy.weixin4j.model.paging;
2   
3   import java.io.Serializable;
4   import java.util.ArrayList;
5   import java.util.Arrays;
6   import java.util.LinkedHashMap;
7   import java.util.List;
8   import java.util.Map;
9   
10  public class Sort implements Serializable {
11  
12  	private static final long serialVersionUID = -4298853295391613880L;
13  
14  	public static final Direction DEFAULT_DIRECTION = Direction.ASC;
15  	private Map<Direction, List<String>> orders;
16  
17  	public Sort() {
18  	}
19  
20  	public Sort(String... properties) {
21  		this(DEFAULT_DIRECTION, properties);
22  	}
23  
24  	public Sort(Direction direction, String... properties) {
25  		this(direction, properties == null ? new ArrayList<String>() : Arrays
26  				.asList(properties));
27  	}
28  
29  	public Sort(Direction direction, List<String> properties) {
30  		if (properties == null || properties.isEmpty()) {
31  			throw new IllegalArgumentException(
32  					"You have to provide at least one property to sort by!");
33  		}
34  		this.orders = new LinkedHashMap<Direction, List<String>>(
35  				properties.size());
36  		this.orders.put(direction, properties);
37  	}
38  
39  	public Map<Direction, List<String>> getOrders() {
40  		return orders;
41  	}
42  
43  	public boolean hasSort() {
44  		return orders != null && !orders.isEmpty();
45  	}
46  
47  	public static enum Direction {
48  		ASC, DESC;
49  	}
50  
51  	@Override
52  	public String toString() {
53  		return "Sort [" + orders + "]";
54  	}
55  }