Statistics
| Revision:

root / trunk / libraries / libDataSource / src / org / gvsig / data / vectorial / DefaultFeatureType.java @ 19399

History | View | Annotate | Download (2.66 KB)

1
package org.gvsig.data.vectorial;
2

    
3
import java.text.DateFormat;
4
import java.util.ArrayList;
5
import java.util.Iterator;
6
import java.util.List;
7

    
8
import org.cresques.cts.IProjection;
9

    
10
public class DefaultFeatureType extends ArrayList implements IFeatureType{
11
        protected List featureRules=new ArrayList();//<IFeatureRule>
12
        private String geometryColumn;
13
        private List allSRS;
14
        private IProjection defaultSRS;
15
        private int[] geometryTypes;
16
        private DateFormat dateFormat=DateFormat.getDateInstance();
17

    
18
        public void addRule(IFeatureRule rule) {
19
                featureRules.add(rule);
20
        }
21

    
22
        public void clearRules() {
23
                featureRules.clear();
24
        }
25

    
26

    
27
        public void validateFeatureEnd(IFeature feature, IFeatureStore featureStore) {
28
                Iterator rulesIterator=featureRules.iterator();
29
                IFeatureRule rule;
30
                while(rulesIterator.hasNext()){
31
                        rule = (IFeatureRule)rulesIterator.next();
32
                        if (rule.checkAtEnd()){
33
                                rule.validate(feature,featureStore);
34
                        }
35
                }
36
        }
37

    
38
        public void validateFeatureModifiction(IFeature feature, IFeatureStore featureStore) {
39
                Iterator rulesIterator=featureRules.iterator();
40
                IFeatureRule rule;
41
                while(rulesIterator.hasNext()){
42
                        rule = (IFeatureRule)rulesIterator.next();
43
                        if (rule.checkAtModification()){
44
                                rule.validate(feature,featureStore);
45
                        }
46
                }
47
        }
48

    
49
        public void validateFeature(IFeature feature, IFeatureStore featureStore) {
50
                Iterator rulesIterator=featureRules.iterator();
51
                IFeatureRule rule;
52
                while(rulesIterator.hasNext()){
53
                        rule = (IFeatureRule)rulesIterator.next();
54
                        rule.validate(feature,featureStore);
55
                }
56
        }
57

    
58
        public void setDefaultGeometry(String name) {
59
                this.geometryColumn=name;
60

    
61
        }
62

    
63
        public String getDefaultGeometry() {
64
                return geometryColumn;
65
        }
66

    
67
        public IFeature create(IFeatureStore store) {
68
                return store.createFeature(this);
69
        }
70

    
71
        public List getAllSRS() {
72
                return allSRS;
73
        }
74

    
75
        public IProjection getDefaultSRS() {
76
                return defaultSRS;
77
        }
78

    
79
        public int[] getGeometryTypes() {
80
                return geometryTypes;
81
        }
82

    
83
        public IFeatureType cloneFeatureType(){
84
                IFeatureType type=new DefaultFeatureType();
85
                type.addAll(this);
86
                type.setDefaultGeometry(this.getDefaultGeometry());
87
                type.setAllSRS(this.getAllSRS());
88
                type.setDefaultSRS(this.getDefaultSRS());
89
                return type;
90
        }
91

    
92
        public void setAllSRS(List allSRS) {
93
                this.allSRS = allSRS;
94
        }
95

    
96
        public void setDefaultSRS(IProjection defaultSRS) {
97
                this.defaultSRS = defaultSRS;
98
        }
99

    
100
        public DateFormat getDateFormat() {
101
                return dateFormat;
102
        }
103

    
104
        public void setDateFormat(DateFormat dateFormat) {
105
                this.dateFormat=dateFormat;
106
        }
107

    
108
        public void setGeometryTypes(int[] geometryTypes) {
109
                this.geometryTypes=geometryTypes;
110
        }
111
}