1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.dynamic.sql.select;
17
18 import java.util.Objects;
19
20 import org.mybatis.dynamic.sql.SortSpecification;
21 import org.mybatis.dynamic.sql.render.RenderingContext;
22 import org.mybatis.dynamic.sql.util.FragmentAndParameters;
23
24
25
26
27
28
29
30 public class SimpleSortSpecification implements SortSpecification {
31
32 private final String name;
33 private final String descendingPhrase;
34
35 private SimpleSortSpecification(String name) {
36 this(name, "");
37 }
38
39 private SimpleSortSpecification(String name, String descendingPhrase) {
40 this.name = Objects.requireNonNull(name);
41 this.descendingPhrase = descendingPhrase;
42 }
43
44 @Override
45 public SortSpecification descending() {
46 return new SimpleSortSpecification(name, " DESC");
47 }
48
49 @Override
50 public FragmentAndParameters renderForOrderBy(RenderingContext renderingContext) {
51 return FragmentAndParameters.fromFragment(name + descendingPhrase);
52 }
53
54 public static SimpleSortSpecification of(String name) {
55 return new SimpleSortSpecification(name);
56 }
57 }