1 ${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};
\r
3 #set ($myClassName = "${glOrderByClauseName}")
\r
4 import java.io.Serializable;
\r
5 import java.util.Map;
\r
6 import java.util.List;
\r
7 import java.util.ArrayList;
\r
8 import java.util.Iterator;
\r
9 import java.util.StringTokenizer;
\r
12 * @author ${database.ClassAuthor}
\r
14 public class ${myClassName} implements Serializable {
\r
16 /** Serial version UID. (Default) */
\r
17 private static final long serialVersionUID = 1L;
\r
19 // =====================================================================================
\r
22 protected List<${glOrderByElementName}> _orderByList = new ArrayList<${glOrderByElementName}>();
\r
24 // =====================================================================================
\r
30 public ${myClassName}() {
\r
33 // =====================================================================================
\r
37 * Add order-by element.
\r
38 * @param orderByElement Order-by element. (NotNull)
\r
40 public void addOrderByElement(${glOrderByElementName} orderByElement) {
\r
41 _orderByList.add(orderByElement);
\r
45 * Insert first order-by element .
\r
46 * @param orderByElement Order-by element. (NotNull)
\r
48 public void insertFirstOrderByElement(${glOrderByElementName} orderByElement) {
\r
49 _orderByList.add(0, orderByElement);
\r
52 public void reverseAll() {
\r
53 for (Iterator<${glOrderByElementName}> ite = _orderByList.iterator(); ite.hasNext(); ) {
\r
54 ite.next().reverse();
\r
58 public void exchangeFirstOrderByElementForLastOne() {
\r
59 if (_orderByList.size() > 1) {
\r
60 final ${glOrderByElementName} first = _orderByList.get(0);
\r
61 final ${glOrderByElementName} last = _orderByList.get(_orderByList.size() - 1);
\r
62 _orderByList.set(0, last);
\r
63 _orderByList.set(_orderByList.size() - 1, first);
\r
67 public void addNullsFirstToPreviousOrderByElement(OrderByNullsSetupper filter) {
\r
68 if (_orderByList.isEmpty()) {
\r
71 final ${glOrderByElementName} last = _orderByList.get(_orderByList.size() - 1);
\r
72 last.setOrderByNullsSetupper(filter, true);
\r
75 public void addNullsLastToPreviousOrderByElement(OrderByNullsSetupper filter) {
\r
76 if (_orderByList.isEmpty()) {
\r
79 final ${glOrderByElementName} last = _orderByList.get(_orderByList.size() - 1);
\r
80 last.setOrderByNullsSetupper(filter, false);
\r
83 public static interface OrderByNullsSetupper {
\r
84 public String setup(String columnName, String orderByElementClause, boolean nullsFirst);
\r
87 // =====================================================================================
\r
88 // Order-By Expression
\r
89 // ===================
\r
90 public List<${glOrderByElementName}> getOrderByList() {
\r
91 return _orderByList;
\r
94 public String getOrderByClause() {
\r
95 return getOrderByClause(null);
\r
98 public String getOrderByClause(Map<String, String> selectClauseRealColumnAliasMap) {
\r
99 if (_orderByList.isEmpty()) {
\r
102 final StringBuffer sb = new StringBuffer();
\r
103 final String delimiter = ", ";
\r
104 for (final Iterator<${glOrderByElementName}> ite = _orderByList.iterator(); ite.hasNext(); ) {
\r
105 final ${glOrderByElementName} element = ite.next();
\r
106 sb.append(delimiter);
\r
107 if (selectClauseRealColumnAliasMap != null) {
\r
108 sb.append(element.getElementClause(selectClauseRealColumnAliasMap));
\r
110 sb.append(element.getElementClause());
\r
113 sb.delete(0, delimiter.length()).insert(0, "order by ");
\r
114 return sb.toString();
\r
117 public boolean isSameOrderByColumn(String orderByProperty) {
\r
118 final List<String> orderByList = new ArrayList<String>();
\r
120 final StringTokenizer st = new StringTokenizer(orderByProperty, "/");
\r
121 while (st.hasMoreElements()) {
\r
122 orderByList.add(st.nextToken());
\r
125 if (_orderByList.size() != orderByList.size()) {
\r
129 for (final Iterator<String> ite = orderByList.iterator(); ite.hasNext(); ) {
\r
130 final String columnFullName = ite.next();
\r
131 final ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(count);
\r
132 if (!element.getColumnFullName().equals(columnFullName)) {
\r
140 // =====================================================================================
\r
143 public boolean isFirstElementAsc() {
\r
145 String msg = "This order-by clause is empty: " + toString();
\r
146 throw new IllegalStateException(msg);
\r
148 final ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);
\r
149 return element.isAsc();
\r
152 public boolean isFirstElementDesc() {
\r
153 return !isFirstElementAsc();
\r
156 public boolean isSameAsFirstElementAliasName(String expectedAliasName) {
\r
158 String msg = "This order-by clause is empty: " + toString();
\r
159 throw new RuntimeException(msg);
\r
161 ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);
\r
162 String actualAliasName = element.getAliasName();
\r
163 if (actualAliasName != null && expectedAliasName != null) {
\r
164 return actualAliasName.equalsIgnoreCase(expectedAliasName);
\r
171 * @param expectedColumnName Expected column-name. (Nullable)
\r
172 * @return Determination.
\r
174 public boolean isSameAsFirstElementColumnName(String expectedColumnName) {
\r
176 String msg = "This order-by clause is empty: " + toString();
\r
177 throw new RuntimeException(msg);
\r
179 ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);
\r
180 String actualColumnName = element.getColumnName();
\r
181 if (actualColumnName != null && expectedColumnName != null) {
\r
182 return actualColumnName.equalsIgnoreCase(expectedColumnName);
\r
189 * @param expectedAliasName Expected alias-name. (Nullable)
\r
190 * @return Determination.
\r
192 public boolean isSameAsFirstElementRegisteredAliasName(String expectedAliasName) {
\r
194 String msg = "This order-by clause is empty: " + toString();
\r
195 throw new RuntimeException(msg);
\r
197 ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);
\r
198 String actualAliasName = element.getRegisteredAliasName();
\r
199 if (actualAliasName != null && expectedAliasName != null) {
\r
200 return actualAliasName.equalsIgnoreCase(expectedAliasName);
\r
207 * @param expectedColumnName Expected column-name. (Nullable)
\r
208 * @return Determination.
\r
210 public boolean isSameAsFirstElementRegisteredColumnName(String expectedColumnName) {
\r
212 String msg = "This order-by clause is empty: " + toString();
\r
213 throw new RuntimeException(msg);
\r
215 ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);
\r
216 String actualColumnName = element.getRegisteredColumnName();
\r
217 if (actualColumnName != null && expectedColumnName != null) {
\r
218 return actualColumnName.equalsIgnoreCase(expectedColumnName);
\r
224 // =====================================================================================
\r
225 // Delegate of List
\r
226 // ================
\r
229 * @return Determination.
\r
231 public boolean isEmpty() {
\r
232 return _orderByList.isEmpty();
\r
236 * Get iterator of order-by list.
\r
237 * @return Determination.
\r
239 public Iterator<${glOrderByElementName}> iterator() {
\r
240 return _orderByList.iterator();
\r
244 * Clear order-by list.
\r
246 public void clear() {
\r
247 _orderByList.clear();
\r
250 // =====================================================================================
\r
254 * This method overrides the method that is declared at super.
\r
255 * @return The view string of all-columns value. (NotNUll)
\r
257 public String toString() {
\r
258 return _orderByList.toString();
\r