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

View differences:

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