Revision 46517 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultDALExpressionBuilder.java
DefaultDALExpressionBuilder.java | ||
---|---|---|
15 | 15 |
import static org.gvsig.fmap.dal.DataManager.FUNCTION_ISSELECTED_CURRENT_ROW; |
16 | 16 |
import static org.gvsig.fmap.dal.DataManager.FUNCTION_SELECT; |
17 | 17 |
import static org.gvsig.fmap.dal.DataManager.FUNCTION_SELECT_COUNT; |
18 |
import org.gvsig.fmap.dal.SQLBuilder.SelectBuilder; |
|
18 | 19 |
import org.gvsig.fmap.dal.expressionevaluator.DALExpressionBuilder; |
20 |
import org.gvsig.fmap.dal.feature.spi.SQLBuilderBase; |
|
19 | 21 |
|
20 | 22 |
/** |
21 | 23 |
* |
... | ... | |
23 | 25 |
*/ |
24 | 26 |
public class DefaultDALExpressionBuilder implements DALExpressionBuilder { |
25 | 27 |
|
26 |
private class DefaultSelectBuilder implements SelectBuilder { |
|
27 |
|
|
28 |
private Value columns; |
|
29 |
private String tableName; |
|
30 |
private Value where; |
|
31 |
private Long limit; |
|
32 |
private final ExpressionBuilder.Function order; |
|
33 |
private final ExpressionBuilder.Function order_mode; |
|
34 |
|
|
35 |
public DefaultSelectBuilder() { |
|
36 |
this.columns = expression().tuple(); // ALL === empty tuple |
|
37 |
this.where = null; |
|
38 |
this.order = expression().tuple(); |
|
39 |
this.order_mode = expression().tuple(); |
|
40 |
this.limit = null; |
|
41 |
} |
|
28 |
private final SQLBuilderBase sqlbuilder; |
|
42 | 29 |
|
43 |
@Override |
|
44 |
public SelectBuilder column(String name) { |
|
45 |
((ExpressionBuilder.Function)columns).parameter(expression().column(name)); |
|
46 |
return this; |
|
30 |
public DefaultDALExpressionBuilder() { |
|
31 |
this.sqlbuilder = new SQLBuilderBase(); |
|
47 | 32 |
} |
48 |
|
|
49 |
@Override |
|
50 |
public SelectBuilder column_all() { |
|
51 |
this.columns = expression().tuple(); // ALL === empty tuple |
|
52 |
return this; |
|
53 |
} |
|
54 |
|
|
55 |
@Override |
|
56 |
public SelectBuilder from(String tableName) { |
|
57 |
this.tableName = tableName; |
|
58 |
return this; |
|
59 |
} |
|
60 |
|
|
61 |
@Override |
|
62 |
public SelectBuilder where(ExpressionBuilder.Value where) { |
|
63 |
this.where = where; |
|
64 |
return this; |
|
65 |
} |
|
66 |
|
|
67 |
@Override |
|
68 |
public SelectBuilder order(String columnName, boolean asc) { |
|
69 |
this.order.parameter(expression().variable(columnName)); |
|
70 |
this.order_mode.parameter(expression().constant(asc)); |
|
71 |
return this; |
|
72 |
} |
|
73 |
|
|
74 |
@Override |
|
75 |
public SelectBuilder limit(long limit) { |
|
76 |
this.limit = limit; |
|
77 |
return this; |
|
78 |
} |
|
79 |
|
|
80 |
@Override |
|
81 |
public ExpressionBuilder.Value toValue() { |
|
82 |
ExpressionBuilder.Function select = expression().function(FUNCTION_SELECT); |
|
83 |
|
|
84 |
select.parameter(columns); |
|
85 |
select.parameter(expression().variable(tableName)); |
|
86 |
select.parameter(where); |
|
87 |
select.parameter(order); |
|
88 |
select.parameter(order_mode); |
|
89 |
select.parameter(expression().constant(limit)); |
|
90 |
|
|
91 |
return select; |
|
92 |
} |
|
93 |
|
|
94 |
@Override |
|
95 |
public String toString() { |
|
96 |
return this.toString(formatter()); |
|
97 |
} |
|
98 | 33 |
|
99 |
@Override |
|
100 |
public String toString(Formatter<Value> formatter) { |
|
101 |
return this.toValue().toString(formatter); |
|
102 |
} |
|
103 | 34 |
|
104 |
} |
|
35 |
|
|
36 |
// private class DefaultSelectBuilder implements SelectBuilder { |
|
37 |
// |
|
38 |
// private Value columns; |
|
39 |
// private String tableName; |
|
40 |
// private Value where; |
|
41 |
// private Long limit; |
|
42 |
// private final ExpressionBuilder.Function order; |
|
43 |
// private final ExpressionBuilder.Function order_mode; |
|
44 |
// |
|
45 |
// public DefaultSelectBuilder() { |
|
46 |
// this.columns = expression().tuple(); // ALL === empty tuple |
|
47 |
// this.where = null; |
|
48 |
// this.order = expression().tuple(); |
|
49 |
// this.order_mode = expression().tuple(); |
|
50 |
// this.limit = null; |
|
51 |
// } |
|
52 |
// |
|
53 |
// @Override |
|
54 |
// public SelectBuilder column(String name) { |
|
55 |
// ((ExpressionBuilder.Function)columns).parameter(expression().column(name)); |
|
56 |
// return this; |
|
57 |
// } |
|
58 |
// |
|
59 |
// @Override |
|
60 |
// public SelectBuilder column_all() { |
|
61 |
// this.columns = expression().tuple(); // ALL === empty tuple |
|
62 |
// return this; |
|
63 |
// } |
|
64 |
// |
|
65 |
// @Override |
|
66 |
// public SelectBuilder from(String tableName) { |
|
67 |
// this.tableName = tableName; |
|
68 |
// return this; |
|
69 |
// } |
|
70 |
// |
|
71 |
// @Override |
|
72 |
// public SelectBuilder where(ExpressionBuilder.Value where) { |
|
73 |
// this.where = where; |
|
74 |
// return this; |
|
75 |
// } |
|
76 |
// |
|
77 |
// @Override |
|
78 |
// public SelectBuilder order(String columnName, boolean asc) { |
|
79 |
// this.order.parameter(expression().variable(columnName)); |
|
80 |
// this.order_mode.parameter(expression().constant(asc)); |
|
81 |
// return this; |
|
82 |
// } |
|
83 |
// |
|
84 |
// @Override |
|
85 |
// public SelectBuilder limit(long limit) { |
|
86 |
// this.limit = limit; |
|
87 |
// return this; |
|
88 |
// } |
|
89 |
// |
|
90 |
// @Override |
|
91 |
// public ExpressionBuilder.Value toValue() { |
|
92 |
// ExpressionBuilder.Function select = expression().function(FUNCTION_SELECT); |
|
93 |
// |
|
94 |
// select.parameter(columns); |
|
95 |
// select.parameter(expression().variable(tableName)); |
|
96 |
// select.parameter(where); |
|
97 |
// select.parameter(order); |
|
98 |
// select.parameter(order_mode); |
|
99 |
// select.parameter(expression().constant(limit)); |
|
100 |
// |
|
101 |
// return select; |
|
102 |
// } |
|
103 |
// |
|
104 |
// @Override |
|
105 |
// public String toString() { |
|
106 |
// return this.toString(formatter()); |
|
107 |
// } |
|
108 |
// |
|
109 |
// @Override |
|
110 |
// public String toString(Formatter<Value> formatter) { |
|
111 |
// return this.toValue().toString(formatter); |
|
112 |
// } |
|
113 |
// |
|
114 |
// } |
|
105 | 115 |
|
106 | 116 |
|
107 | 117 |
private class DefaultSelectCountBuilder implements SelectCountBuilder { |
... | ... | |
164 | 174 |
|
165 | 175 |
@Override |
166 | 176 |
public SelectBuilder select() { |
167 |
return new DefaultSelectBuilder();
|
|
177 |
return this.sqlbuilder.select();
|
|
168 | 178 |
} |
169 | 179 |
|
170 | 180 |
@Override |
Also available in: Unified diff