Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.db / org.gvsig.fmap.dal.db.mdb / src / main / java / org / gvsig / fmap / dal / store / mdb / expressionbuilderformatter / MDBFormatter.java @ 44951

History | View | Annotate | Download (1.77 KB)

1
package org.gvsig.fmap.dal.store.mdb.expressionbuilderformatter;
2

    
3
import org.gvsig.expressionevaluator.ExpressionBuilder;
4
import org.gvsig.expressionevaluator.ExpressionBuilder.Value;
5
import org.gvsig.expressionevaluator.Formatter;
6
import org.gvsig.fmap.dal.DALLocator;
7
import org.gvsig.fmap.dal.SQLBuilder;
8

    
9
/**
10
 *
11
 * @author jjdelcerro
12
 */
13
public class MDBFormatter implements Formatter<Value> {
14

    
15
    private final SQLBuilder builder;
16
    private final Formatter<ExpressionBuilder.Value>[] formatters;
17

    
18
    public MDBFormatter(SQLBuilder builder) {
19

    
20
        this.builder = builder;
21
        this.formatters = new Formatter[]{
22
            new IfNull(this.builder, this),
23
            new IsNotNull(this.builder, this),
24
            new IsNull(this.builder, this),
25
            new Decode(this.builder, this),
26
            new ILike(this.builder, this),
27
            new Constant(this.builder, this),
28
            new Exists(this.builder, this),
29
            new Getattr(this.builder, this),
30
            new VariableBaseMDB(this.builder, this),
31
            new DateFunction(this.builder, this),
32
            new TimeFunction(this.builder, this),
33
            new TimestampFunction(this.builder, this),
34
            DALLocator.getDataManager().createDALExpressionBuilder().formatter(this),
35
        };
36
    }
37

    
38
    @Override
39
    public boolean canApply(Value value) {
40
        for (Formatter<Value> formatter : formatters) {
41
            if (formatter.canApply(value)) {
42
                return true;
43
            }
44
        }
45
        return false;
46
    }
47

    
48
    @Override
49
    public String format(Value value) {
50
        for (Formatter<Value> formatter : formatters) {
51
            if (formatter.canApply(value)) {
52
                return formatter.format(value);
53
            }
54
        }
55
        return value.toString(this);
56
    }
57

    
58
}