Statistics
| Revision:

root / org.gvsig.geotools.proj / trunk / org.gvsig.geotools.proj / org.gvsig.geotools.proj.catalog.impl / src / main / java / org / gvsig / geotools / proj / catalog / datum / DefaultDatum.java @ 824

History | View | Annotate | Download (2.04 KB)

1
package org.gvsig.geotools.proj.catalog.datum;
2

    
3
import java.util.Date;
4
import org.opengis.referencing.datum.GeodeticDatum;
5
import org.opengis.referencing.datum.VerticalDatum;
6
import org.gvsig.proj.catalog.datum.Datum;
7
import org.gvsig.proj.catalog.datum.Ellipsoid;
8
import org.gvsig.proj.catalog.datum.PrimeMeridian;
9
import org.gvsig.proj.catalog.datum.VerticalDatumType;
10

    
11
public class DefaultDatum implements Datum {
12
        private org.opengis.referencing.datum.Datum datum;
13
        private PrimeMeridian primeMeridian = null;
14
        private Ellipsoid ellipsoid = null;
15

    
16
        public DefaultDatum(org.opengis.referencing.datum.Datum datum) {
17
                this.datum = datum;
18
        }
19

    
20
        @Override
21
        public String getName() {
22
                return datum.getName().toString();
23
        }
24

    
25
        @Override
26
        public String getIdentifier() {
27
                // TODO Auto-generated method stub
28
                return datum.getName().toString();
29
        }
30

    
31
        @Override
32
        public String getAnchorPoint() {
33
                return datum.getAnchorPoint().toString();
34
        }
35

    
36
        @Override
37
        public Date getRealizationEpoch() {
38
                return datum.getRealizationEpoch();
39
        }
40

    
41
        @Override
42
        public Ellipsoid getEllipsoid() {
43
                if (ellipsoid==null && datum instanceof GeodeticDatum) {
44
                        ellipsoid = new DefaultEllipsoid(((GeodeticDatum)datum).getEllipsoid());
45
                }
46
                return ellipsoid;
47
        }
48

    
49
        @Override
50
        public PrimeMeridian getPrimeMeridian() {
51
                if (primeMeridian==null && datum instanceof GeodeticDatum) {
52
                        primeMeridian = new DefaultPrimeMeridian(((GeodeticDatum)datum).getPrimeMeridian());
53
                }
54
                return primeMeridian;
55
        }
56

    
57
        @Override
58
        public boolean isGeodetic() {
59
                return (datum instanceof GeodeticDatum);
60
        }
61

    
62
        @Override
63
        public boolean isVertical() {
64
                return (datum instanceof VerticalDatum);
65
        }
66

    
67
        @Override
68
        public VerticalDatumType getVerticalDatumType() {
69
                if (datum instanceof VerticalDatum) {
70
                        org.opengis.referencing.datum.VerticalDatumType geoapiVerticalType = ((VerticalDatum)datum).getVerticalDatumType();
71
                        VerticalDatumType verticalType = VerticalDatumType.valueOf(geoapiVerticalType.name());
72
                        if (verticalType != null) {
73
                                return verticalType;
74
                        }
75
                        return VerticalDatumType.OTHER_SURFACE;
76
                }
77
                return null;
78
        }
79

    
80
}