/** Provides the toString() implementation. */ String describeImpl(Session session) throws Exception { StringBuffer sb; sb = new StringBuffer(); int blanks = 0; switch (type) { case StatementTypes.SELECT_CURSOR: { sb.append(queryExpression.describe(session, 0)); appendParms(sb).append('\n'); appendSubqueries(session, sb, 2); return sb.toString(); } case StatementTypes.INSERT: { if (queryExpression == null) { sb.append("INSERT VALUES"); sb.append('[').append('\n'); appendMultiColumns(sb, insertColumnMap).append('\n'); appendTable(sb).append('\n'); appendParms(sb).append('\n'); appendSubqueries(session, sb, 2).append(']'); return sb.toString(); } else { sb.append("INSERT SELECT"); sb.append('[').append('\n'); appendColumns(sb, insertColumnMap).append('\n'); appendTable(sb).append('\n'); sb.append(queryExpression.describe(session, blanks)).append('\n'); appendParms(sb).append('\n'); appendSubqueries(session, sb, 2).append(']'); return sb.toString(); } } case StatementTypes.UPDATE_WHERE: { sb.append("UPDATE"); sb.append('[').append('\n'); appendColumns(sb, updateColumnMap).append('\n'); appendTable(sb).append('\n'); appendCondition(session, sb); for (int i = 0; i < targetRangeVariables.length; i++) { sb.append(targetRangeVariables[i].describe(session, blanks)).append('\n'); } appendParms(sb).append('\n'); appendSubqueries(session, sb, 2).append(']'); return sb.toString(); } case StatementTypes.DELETE_WHERE: { sb.append("DELETE"); sb.append('[').append('\n'); appendTable(sb).append('\n'); appendCondition(session, sb); for (int i = 0; i < targetRangeVariables.length; i++) { sb.append(targetRangeVariables[i].describe(session, blanks)).append('\n'); } appendParms(sb).append('\n'); appendSubqueries(session, sb, 2).append(']'); return sb.toString(); } case StatementTypes.CALL: { sb.append("CALL"); sb.append('[').append(']'); return sb.toString(); } case StatementTypes.MERGE: { sb.append("MERGE"); sb.append('[').append('\n'); appendMultiColumns(sb, insertColumnMap).append('\n'); appendColumns(sb, updateColumnMap).append('\n'); appendTable(sb).append('\n'); appendCondition(session, sb); for (int i = 0; i < targetRangeVariables.length; i++) { sb.append(targetRangeVariables[i].describe(session, blanks)).append('\n'); } appendParms(sb).append('\n'); appendSubqueries(session, sb, 2).append(']'); return sb.toString(); } default: { return "UNKNOWN"; } } }