1 ${database.allClassCopyright}package ${glPackageBaseCommonSqlClause};
\r
3 #set ($myClassName = "${glOrderByClauseName}")
\r
4 import java.util.Map;
\r
5 import java.util.List;
\r
6 import java.util.ArrayList;
\r
7 import java.util.Iterator;
\r
8 import java.util.StringTokenizer;
\r
11 * @author ${database.ClassAuthor}
\r
13 public class ${myClassName} implements java.io.Serializable {
\r
15 /** Serial version UID. (Default) */
\r
16 private static final long serialVersionUID = 1L;
\r
18 // =====================================================================================
\r
21 protected List<${glOrderByElementName}> _orderByList = new ArrayList${database.filterGenericsString(${glOrderByElementName})}();
\r
23 // =====================================================================================
\r
29 public ${myClassName}() {
\r
32 // =====================================================================================
\r
36 * Add order-by element.
\r
37 * @param orderByElement Order-by element. (NotNull)
\r
39 public void addOrderByElement(${glOrderByElementName} orderByElement) {
\r
40 _orderByList.add(orderByElement);
\r
44 * Insert first order-by element .
\r
45 * @param orderByElement Order-by element. (NotNull)
\r
47 public void insertFirstOrderByElement(${glOrderByElementName} orderByElement) {
\r
48 _orderByList.add(0, orderByElement);
\r
51 public void reverseAll() {
\r
52 for (Iterator<${glOrderByElementName}> ite = _orderByList.iterator(); ite.hasNext(); ) {
\r
53 ite.next().reverse();
\r
57 public void exchangeFirstOrderByElementForLastOne() {
\r
58 if (_orderByList.size() > 1) {
\r
59 final ${glOrderByElementName} first = _orderByList.get(0);
\r
60 final ${glOrderByElementName} last = _orderByList.get(_orderByList.size() - 1);
\r
61 _orderByList.set(0, last);
\r
62 _orderByList.set(_orderByList.size() - 1, first);
\r
66 public void addNullsFirstToPreviousOrderByElement(OrderByNullsSetupper filter) {
\r
67 if (_orderByList.isEmpty()) {
\r
70 final ${glOrderByElementName} last = _orderByList.get(_orderByList.size() - 1);
\r
71 last.setOrderByNullsSetupper(filter, true);
\r
74 public void addNullsLastToPreviousOrderByElement(OrderByNullsSetupper filter) {
\r
75 if (_orderByList.isEmpty()) {
\r
78 final ${glOrderByElementName} last = _orderByList.get(_orderByList.size() - 1);
\r
79 last.setOrderByNullsSetupper(filter, false);
\r
82 public static interface OrderByNullsSetupper {
\r
83 public String setup(String columnName, String orderByElementClause, boolean nullsFirst);
\r
86 public List<${glOrderByElementName}> getOrderByList() {
\r
87 return _orderByList;
\r
90 public String getOrderByClause() {
\r
91 return getOrderByClause(null);
\r
94 public String getOrderByClause(Map<String, String> selectClauseRealColumnAliasMap) {
\r
95 if (_orderByList.isEmpty()) {
\r
98 final StringBuffer sb = new StringBuffer();
\r
99 final String delimiter = ", ";
\r
100 for (final Iterator<${glOrderByElementName}> ite = _orderByList.iterator(); ite.hasNext(); ) {
\r
101 final ${glOrderByElementName} element = ite.next();
\r
102 sb.append(delimiter);
\r
103 if (selectClauseRealColumnAliasMap != null) {
\r
104 sb.append(element.getElementClause(selectClauseRealColumnAliasMap));
\r
106 sb.append(element.getElementClause());
\r
109 sb.delete(0, delimiter.length()).insert(0, "order by ");
\r
110 return sb.toString();
\r
113 public boolean isSameOrderByColumn(String orderByProperty) {
\r
114 final List<String> orderByList = new ArrayList<String>();
\r
116 final StringTokenizer st = new StringTokenizer(orderByProperty, "/");
\r
117 while (st.hasMoreElements()) {
\r
118 orderByList.add(st.nextToken());
\r
121 if (_orderByList.size() != orderByList.size()) {
\r
125 for (final Iterator<String> ite = orderByList.iterator(); ite.hasNext(); ) {
\r
126 final String columnFullName = ite.next();
\r
127 final ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(count);
\r
128 if (!element.getColumnFullName().equals(columnFullName)) {
\r
136 // =====================================================================================
\r
139 public boolean isFirstElementAsc() {
\r
141 String msg = "This order-by clause is empty: " + toString();
\r
142 throw new IllegalStateException(msg);
\r
144 final ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);
\r
145 return element.isAsc();
\r
148 public boolean isFirstElementDesc() {
\r
149 return !isFirstElementAsc();
\r
152 public boolean isSameAsFirstElementAliasName(String expectedAliasName) {
\r
154 String msg = "This order-by clause is empty: " + toString();
\r
155 throw new RuntimeException(msg);
\r
157 ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);
\r
158 String actualAliasName = element.getAliasName();
\r
159 if (actualAliasName != null && expectedAliasName != null) {
\r
160 return actualAliasName.equalsIgnoreCase(expectedAliasName);
\r
167 * @param expectedColumnName Expected column-name. (Nullable)
\r
168 * @return Determination.
\r
170 public boolean isSameAsFirstElementColumnName(String expectedColumnName) {
\r
172 String msg = "This order-by clause is empty: " + toString();
\r
173 throw new RuntimeException(msg);
\r
175 ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);
\r
176 String actualColumnName = element.getColumnName();
\r
177 if (actualColumnName != null && expectedColumnName != null) {
\r
178 return actualColumnName.equalsIgnoreCase(expectedColumnName);
\r
185 * @param expectedAliasName Expected alias-name. (Nullable)
\r
186 * @return Determination.
\r
188 public boolean isSameAsFirstElementRegisteredAliasName(String expectedAliasName) {
\r
190 String msg = "This order-by clause is empty: " + toString();
\r
191 throw new RuntimeException(msg);
\r
193 ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);
\r
194 String actualAliasName = element.getRegisteredAliasName();
\r
195 if (actualAliasName != null && expectedAliasName != null) {
\r
196 return actualAliasName.equalsIgnoreCase(expectedAliasName);
\r
203 * @param expectedColumnName Expected column-name. (Nullable)
\r
204 * @return Determination.
\r
206 public boolean isSameAsFirstElementRegisteredColumnName(String expectedColumnName) {
\r
208 String msg = "This order-by clause is empty: " + toString();
\r
209 throw new RuntimeException(msg);
\r
211 ${glOrderByElementName} element = (${glOrderByElementName})_orderByList.get(0);
\r
212 String actualColumnName = element.getRegisteredColumnName();
\r
213 if (actualColumnName != null && expectedColumnName != null) {
\r
214 return actualColumnName.equalsIgnoreCase(expectedColumnName);
\r
220 // =====================================================================================
\r
221 // Delegate of List
\r
222 // ================
\r
225 * @return Determination.
\r
227 public boolean isEmpty() {
\r
228 return _orderByList.isEmpty();
\r
232 * Get iterator of order-by list.
\r
233 * @return Determination.
\r
235 public java.util.Iterator<${glOrderByElementName}> iterator() {
\r
236 return _orderByList.iterator();
\r
240 * Clear order-by list.
\r
242 public void clear() {
\r
243 _orderByList.clear();
\r
246 // =====================================================================================
\r
247 // Basic-Override Method
\r
248 // =====================
\r
250 * This method overrides the method that is declared at super.
\r
251 * @return View-string of all-columns value.
\r
253 public String toString() {
\r
254 return _orderByList.toString();
\r