Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.lib / org.gvsig.expressionevaluator.lib.api / src / main / java / org / gvsig / expressionevaluator / spi / formatter / value / BaseFormatter.java @ 44767

History | View | Annotate | Download (1.37 KB)

1
package org.gvsig.expressionevaluator.spi.formatter.value;
2

    
3
import org.gvsig.expressionevaluator.ExpressionBuilder;
4
import org.gvsig.expressionevaluator.ExpressionBuilder.Value;
5
import org.gvsig.expressionevaluator.Formatter;
6

    
7
/**
8
 *
9
 * @author jjdelcerro
10
 */
11
public class BaseFormatter implements Formatter<Value> {
12

    
13
    private final Formatter<ExpressionBuilder.Value>[] formatters;
14

    
15
    public BaseFormatter() {
16
      this(null);
17
    }
18
    
19
    public BaseFormatter(Formatter<Value> formatter) {
20
        if( formatter==null || ExpressionBuilder.EMPTY_FORMATTER==formatter ) {
21
          formatter = this;
22
        }
23
        this.formatters = new Formatter[]{
24
            new Time(formatter),
25
            new Date(formatter),
26
            new Timestamp(formatter),
27
            new Extract(formatter),
28
            new Getattr(formatter),
29
            new Tuple(formatter)
30
        };
31
    }
32

    
33
    @Override
34
    public boolean canApply(Value value) {
35
        for (Formatter<Value> formatter : formatters) {
36
            if (formatter.canApply(value)) {
37
                return true;
38
            }
39
        }
40
        return false;
41
    }
42

    
43
    @Override
44
    public String format(Value value) {
45
        for (Formatter<Value> formatter : formatters) {
46
            if (formatter.canApply(value)) {
47
                return formatter.format(value);
48
            }
49
        }
50
        return value.toString(this);
51
    }
52
    
53
}