Revision 46108 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/JDBCHelperBase.java

View differences:

JDBCHelperBase.java
38 38
import org.apache.commons.lang3.ArrayUtils;
39 39
import org.apache.commons.lang3.StringUtils;
40 40
import org.apache.commons.lang3.mutable.MutableBoolean;
41
import org.apache.commons.lang3.tuple.Pair;
41 42
import org.gvsig.expressionevaluator.Code;
42 43
import org.gvsig.expressionevaluator.Expression;
43 44
import org.gvsig.expressionevaluator.ExpressionBuilder;
......
962 963
	
963 964
	public void expandCalculedColumns(JDBCSQLBuilderBase sqlbuilder) {
964 965
		ComputedAttribute computedAttributeFormater = new ComputedAttribute(sqlbuilder, sqlbuilder.formatter());
965
		Map<ExpressionBuilder.Value, ExpressionBuilder.Value> variablesToReplace = new HashMap<>();
966
		List<Pair<ExpressionBuilder.Value, ExpressionBuilder.Value>> variablesToReplace = new ArrayList<>();
966 967
		sqlbuilder.accept(new ExpressionBuilder.Visitor() {
967 968
			@Override
968 969
			public void visit(ExpressionBuilder.Visitable value) {
969 970
				if (computedAttributeFormater.canApply((ExpressionBuilder.Value) value)) {
970 971
					ExpressionBuilder.Variable variable = (ExpressionBuilder.Variable) value;
971 972
					ExpressionBuilder.Value replace = computedAttributeFormater.expandedValue(variable);
972
					variablesToReplace.put(variable, replace);
973
					variablesToReplace.add(Pair.of(variable, replace));
973 974
				}
974 975
			}
975 976
		}, null);
976
		for (Map.Entry<ExpressionBuilder.Value, ExpressionBuilder.Value> entry : variablesToReplace.entrySet()) {
977
		for (Pair<ExpressionBuilder.Value, ExpressionBuilder.Value> entry : variablesToReplace) {
977 978
			ExpressionBuilder.Value variable = entry.getKey();
978 979
			ExpressionBuilder.Value replace = entry.getValue();
979 980
			sqlbuilder.select().replace(variable, replace);

Also available in: Unified diff