Statistics
| Revision:

root / branches / v2_0_0_prep / libraries / libFMap_dal / src / org / gvsig / fmap / dal / feature / FeatureQueryOrder.java @ 24496

History | View | Annotate | Download (1.75 KB)

1
package org.gvsig.fmap.dal.feature;
2

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

    
8
import org.gvsig.fmap.dal.feature.impl.DefaultFeatureComparator;
9
import org.gvsig.tools.evaluator.Evaluator;
10

    
11
public class FeatureQueryOrder {
12

    
13
        private List members = new ArrayList();
14

    
15
        public class FeatureQueryOrderMember {
16
                String attributeName = null;
17
                Evaluator evaluator = null;
18
                boolean ascending;
19

    
20
                FeatureQueryOrderMember(String attributeName, boolean ascending) {
21
                        this.attributeName = attributeName;
22
                        this.ascending = ascending;
23
                }
24
                FeatureQueryOrderMember(Evaluator evaluator, boolean ascending) {
25
                        this.evaluator = evaluator;
26
            this.ascending = ascending;
27
                }
28
                public boolean hasEvaluator() {
29
                        return this.evaluator != null;
30
                }
31
                public Evaluator getEvaluator() {
32
                        return this.evaluator;
33
                }
34
                public boolean getAscending() {
35
                        return this.ascending;
36
                }
37
                public String getAttributeName() {
38
                        return this.attributeName;
39
                }
40
        }
41

    
42
        public Object add(String attributeName, boolean ascending) {
43
        FeatureQueryOrderMember member = new FeatureQueryOrderMember(
44
                attributeName, ascending);
45
                if( members.add(member) ) {
46
                        return member;
47
                }
48
                return null;
49
        }
50

    
51
        public Object add(Evaluator evaluator, boolean ascending) {
52
                FeatureQueryOrderMember member = new FeatureQueryOrderMember(
53
                                evaluator,
54
                                ascending);
55
                if (members.add(member)) {
56
                        return member;
57
                }
58
                return null;
59
        }
60

    
61
        public Iterator iterator() {
62
                return members.iterator();
63
        }
64

    
65
        public boolean remove(FeatureQueryOrderMember member) {
66
                return members.remove(member);
67
        }
68

    
69
        public int size() {
70
                return this.members.size();
71
        }
72

    
73
        public Comparator getFeatureComparator() {
74
                return new DefaultFeatureComparator(this);
75
        }
76
}