[223776] Added getAllParameterMarkerVariables method to StatementHelper class in o.e.d.modelbase.sql.query plugin and modified substituteParameters method in ParameterMarkers class in the views.execute package of o.e.d.sqltools.sqlbuilder plugin to reset parameter marker vars.
diff --git a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/StatementHelper.java b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/StatementHelper.java
index 2966bda..c3b05f0 100644
--- a/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/StatementHelper.java
+++ b/plugins/org.eclipse.datatools.modelbase.sql.query/src/org/eclipse/datatools/modelbase/sql/query/helper/StatementHelper.java
@@ -921,11 +921,41 @@
*/
private static Set getAllDirectReferences(EObject eObject) {
return getDirectReferences(eObject, null);
- }/**
- * Returns all <code>ValueExpressionVariables</code> contained in the
- * given <code>QueryStatement</code>.
+ }
+
+ /**
+ * Gets all the parameter marker-type ("?") variables in the given query
+ * statement.
*
- * @param queryStmt
+ * @param queryStmt
+ * @return
+ */
+ public static List getAllParameterMarkersInQueryStatement(QueryStatement queryStmt) {
+ // [bug 223776]
+ List paramMarkerList = new ArrayList();
+
+ Class typeFilter = ValueExpressionVariable.class;
+ Set varSet = getReferencesRecursively(queryStmt, typeFilter);
+
+ Iterator varSetIter = varSet.iterator();
+ while (varSetIter.hasNext()) {
+ ValueExpressionVariable var = (ValueExpressionVariable) varSetIter.next();
+ String varName = var.getName();
+ if (varName == null) {
+ paramMarkerList.add(var);
+ }
+ }
+
+ return paramMarkerList;
+ }
+
+ /**
+ * Returns all <code>ValueExpressionVariables</code> contained in the
+ * given <code>QueryStatement</code>. All parameter marker-type ("?")
+ * variables will be modified to have names VAR0n where n is a sequence
+ * number.
+ *
+ * @param queryStmt the statement from which variables are wanted
* @return List of the {@link ValueExpressionVariable}
*/
public static List getAllVariablesInQueryStatement(QueryStatement queryStmt) {