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.h2 / src / main / java / org / gvsig / fmap / dal / store / h2 / expressionbuilderformatter / H2SpatialFormatter.java @ 44268
History | View | Annotate | Download (1.44 KB)
1 | 44198 | jjdelcerro | package org.gvsig.fmap.dal.store.h2.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.SQLBuilder; |
||
7 | |||
8 | /**
|
||
9 | *
|
||
10 | * @author jjdelcerro
|
||
11 | */
|
||
12 | public class H2SpatialFormatter implements Formatter<Value> { |
||
13 | |||
14 | private final SQLBuilder builder; |
||
15 | private final Formatter<ExpressionBuilder.Value>[] formatters; |
||
16 | |||
17 | public H2SpatialFormatter(SQLBuilder builder) {
|
||
18 | |||
19 | this.builder = builder;
|
||
20 | this.formatters = new Formatter[]{ |
||
21 | new IfNull(this.builder, this), |
||
22 | new IsNotNull(this.builder, this), |
||
23 | new IsNull(this.builder, this), |
||
24 | new ST_AsEWKB(this.builder, this), |
||
25 | new ST_GeomFromEWKB(this.builder, this), |
||
26 | 44268 | omartinez | new ST_Intersects(this.builder, this), |
27 | new ST_ExtentAggregate(this.builder, this) |
||
28 | 44198 | jjdelcerro | }; |
29 | } |
||
30 | |||
31 | @Override
|
||
32 | public boolean canApply(Value value) { |
||
33 | for (Formatter<Value> formatter : formatters) { |
||
34 | if (formatter.canApply(value)) {
|
||
35 | return true; |
||
36 | } |
||
37 | } |
||
38 | return false; |
||
39 | } |
||
40 | |||
41 | @Override
|
||
42 | public String format(Value value) { |
||
43 | for (Formatter<Value> formatter : formatters) { |
||
44 | if (formatter.canApply(value)) {
|
||
45 | return formatter.format(value);
|
||
46 | } |
||
47 | } |
||
48 | return value.toString(this); |
||
49 | } |
||
50 | |||
51 | } |