KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jodd > db > orm > sqlgen > DbSqlFind


1 // Copyright (c) 2003-2007, Jodd Team (jodd.sf.net). All Rights Reserved.
2

3 package jodd.db.orm.sqlgen;
4
5 import jodd.db.orm.DbEntityDescriptor;
6
7 import java.util.Map JavaDoc;
8
9 /**
10  * Generates finding queries from provided data entity object.
11  * By default, column aliases are generated if {@link DbSqlTemplate} generates them.
12  * Generated select query contains list of all entity columns.
13  */

14 public class DbSqlFind implements DbSqlGenerator {
15
16     protected DbDynamicSqlTemplate template;
17
18     public DbSqlFind(Object JavaDoc finder) {
19         init(null, finder, null);
20     }
21
22     public DbSqlFind(String JavaDoc prefix, Object JavaDoc finder) {
23         init(prefix, finder, null);
24     }
25
26     public DbSqlFind(Object JavaDoc finder, boolean columnAlias) {
27         init(null, finder, Boolean.valueOf(columnAlias));
28     }
29
30     public DbSqlFind(String JavaDoc prefix, Object JavaDoc finder, boolean columnAlias) {
31         init(prefix, finder, Boolean.valueOf(columnAlias));
32     }
33
34     protected void init(String JavaDoc prefix, Object JavaDoc finder, Boolean JavaDoc columnAlias) {
35         if (prefix == null) {
36             prefix = "select $C{+t.*}";
37         }
38         template = new DbDynamicSqlTemplate(prefix + " from $T{t} $W{where !t}").use("t", finder);
39         if (columnAlias != null) {
40             template.columnAliases(columnAlias.booleanValue());
41         }
42     }
43
44     // ---------------------------------------------------------------- delegate
45

46     /**
47      * @see jodd.db.orm.sqlgen.DbSqlTemplate#columnAliases(boolean)
48      */

49     public DbSqlFind columnAliases(boolean aliases) {
50         template.columnAliases(aliases);
51         return this;
52     }
53
54     public DbSqlFind setColumnAliasesType(DbSqlTemplate.ColumnAliasType aliasesType) {
55         template.setColumnAliasesType(aliasesType);
56         return this;
57     }
58
59     // ---------------------------------------------------------------- interface
60

61     public String JavaDoc generateQuery() {
62         return template.generateQuery();
63     }
64
65     public Map JavaDoc<String JavaDoc, Object JavaDoc> getQueryParameters() {
66         return template.getQueryParameters();
67     }
68
69     public Map JavaDoc<String JavaDoc, String JavaDoc[]> getColumnData() {
70         return template.getColumnData();
71     }
72 }
73
Popular Tags