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 @ 44198
History | View | Annotate | Download (1.39 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 | new ST_Intersects(this.builder, this) |
||
27 | }; |
||
28 | } |
||
29 | |||
30 | @Override
|
||
31 | public boolean canApply(Value value) { |
||
32 | for (Formatter<Value> formatter : formatters) { |
||
33 | if (formatter.canApply(value)) {
|
||
34 | return true; |
||
35 | } |
||
36 | } |
||
37 | return false; |
||
38 | } |
||
39 | |||
40 | @Override
|
||
41 | public String format(Value value) { |
||
42 | for (Formatter<Value> formatter : formatters) { |
||
43 | if (formatter.canApply(value)) {
|
||
44 | return formatter.format(value);
|
||
45 | } |
||
46 | } |
||
47 | return value.toString(this); |
||
48 | } |
||
49 | |||
50 | } |