MentaBean

Rev

Rev 204 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 204 Rev 205
Line 27... Line 27...
27
 *
27
 *
28
 * @author margel
28
 * @author margel
29
 * @author erico
29
 * @author erico
30
 *
30
 *
31
 */
31
 */
-
 
32
@SuppressWarnings({"rawtypes", "unchecked"})
32
public class QueryBuilder {
33
public class QueryBuilder {
33
34
34
        private static final String REGEX = "(AND|OR|\\([\\s]*?\\)|WHERE|HAVING)[\\s]*?$";
35
        private static final String REGEX = "(AND|OR|\\([\\s]*?\\)|WHERE|HAVING)[\\s]*?$";
-
 
36
        private static final String NO_CLAUSE_REGEX = ".*(WHERE|HAVING)[\\s]*?$";
35
        private StringBuilder sb = new StringBuilder();
37
        private StringBuilder sb = new StringBuilder();
36
        private final AnsiSQLBeanSession session;
38
        private final AnsiSQLBeanSession session;
37
        private List<Object> paramValues = new ArrayList<Object>();
39
        private List<Object> paramValues = new ArrayList<Object>();
38
        private List<Alias<?>> selectAliases;
40
        private List<Alias<?>> selectAliases;
39
        private List<Alias<?>> createdAliases = new ArrayList<Alias<?>>();
41
        private List<Alias<?>> createdAliases = new ArrayList<Alias<?>>();
Line 184... Line 186...
184
               
186
               
185
        }
187
        }
186
       
188
       
187
        private void addAnd() {
189
        private void addAnd() {
188
                if (clauseIf) {
190
                if (clauseIf) {
-
 
191
                        if (sb.toString().matches(NO_CLAUSE_REGEX)) {
-
 
192
                                return;
-
 
193
                        }
189
                        applyRegex();
194
                        applyRegex();
190
                        sb.append(" AND ");
195
                        sb.append(" AND ");
191
                }
196
                }
192
        }
197
        }
193
       
198
       
194
        private void addOr() {
199
        private void addOr() {
195
                if (clauseIf) {
200
                if (clauseIf) {
-
 
201
                        if (sb.toString().matches(NO_CLAUSE_REGEX)) {
-
 
202
                                return;
-
 
203
                        }
196
                        applyRegex();
204
                        applyRegex();
197
                        sb.append(" OR ");
205
                        sb.append(" OR ");
198
                }
206
                }
199
        }
207
        }
200
       
208
       
Line 1612... Line 1620...
1612
1620
1613
                                SQLUtils.close(ppst);
1621
                                SQLUtils.close(ppst);
1614
                        }
1622
                        }
1615
                }
1623
                }
1616
               
1624
               
1617
                @SuppressWarnings("unchecked")
-
 
1618
                public <T> T getValueFromResultSet(ResultSet rs, String name) throws SQLException {
1625
                public <T> T getValueFromResultSet(ResultSet rs, String name) throws SQLException {
1619
                       
1626
                       
1620
                        Sentence s = sentences.get(name);
1627
                        Sentence s = sentences.get(name);
1621
                       
1628
                       
1622
                        if (s == null)
1629
                        if (s == null)