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
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