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

View differences:

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