Revision 47037 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/featureset/FeatureProviderComparator.java
FeatureProviderComparator.java | ||
---|---|---|
23 | 23 |
*/ |
24 | 24 |
package org.gvsig.fmap.dal.feature.impl.featureset; |
25 | 25 |
|
26 |
import java.util.ArrayList; |
|
26 | 27 |
import java.util.Comparator; |
27 | 28 |
import java.util.Iterator; |
29 |
import java.util.List; |
|
28 | 30 |
|
29 | 31 |
import org.gvsig.compat.CompatLocator; |
30 | 32 |
import org.gvsig.fmap.dal.exception.DataEvaluatorRuntimeException; |
... | ... | |
47 | 49 |
private DefaultFeature f1; |
48 | 50 |
private DefaultFeature f2; |
49 | 51 |
private DefaultFeatureStore store; |
50 |
private OrderElement[] elements = null;
|
|
52 |
private List<OrderElement> elements = null;
|
|
51 | 53 |
|
52 | 54 |
private class OrderElement { |
53 | 55 |
FeatureQueryOrderMember order = null; |
... | ... | |
62 | 64 |
} |
63 | 65 |
|
64 | 66 |
private void initElements(FeatureType type) { |
65 |
elements = new OrderElement[this.order.size()];
|
|
67 |
elements = new ArrayList<>();
|
|
66 | 68 |
OrderElement cur; |
67 | 69 |
Iterator iter = order.iterator(); |
68 |
FeatureQueryOrderMember orderItem; |
|
69 |
int i = 0; |
|
70 | 70 |
while (iter.hasNext()) { |
71 |
|
|
72 |
FeatureQueryOrderMember orderMember = (FeatureQueryOrderMember) iter.next(); |
|
73 |
int index = type.getIndex(orderMember.getAttributeName()); |
|
74 |
if(index >= 0) { |
|
71 | 75 |
cur = new OrderElement(); |
72 |
cur.order = (FeatureQueryOrderMember) iter.next(); |
|
73 |
if (!cur.order.hasEvaluator()) { |
|
74 |
cur.fieldIndex = type.getIndex(cur.order.getAttributeName()); |
|
75 |
} |
|
76 |
elements[i] = cur; |
|
77 |
i++; |
|
76 |
cur.order = orderMember; |
|
77 |
cur.fieldIndex = index; |
|
78 |
elements.add(cur); |
|
79 |
} else if(orderMember.hasEvaluator()){ |
|
80 |
cur = new OrderElement(); |
|
81 |
cur.order = orderMember; |
|
82 |
cur.fieldIndex = index; |
|
83 |
elements.add(cur); |
|
84 |
} |
|
78 | 85 |
} |
79 | 86 |
|
80 | 87 |
} |
... | ... | |
95 | 102 |
initElements(f1.getType()); |
96 | 103 |
} |
97 | 104 |
|
98 |
OrderElement element;
|
|
105 |
for (OrderElement element : elements) {
|
|
99 | 106 |
|
100 |
for (int i = 0; i < elements.length; i++) { |
|
101 |
element = elements[i]; |
|
102 |
|
|
103 | 107 |
if (element.order.hasEvaluator()) { |
104 | 108 |
Evaluator evaluator = element.order.getEvaluator(); |
105 | 109 |
try { |
Also available in: Unified diff