@Override void toSQL(StringBuilder buf, SqlFragments fragments, SqlParams params, int[] loopIndex) { String var = applyLoopIndex(_valueVariable, loopIndex); Object value = params.get(var); if (value != null) { buf.append(value); if (_followWithSpace) { buf.append(' '); } } }
private int extractSize(SqlParams params) { if (_sizeVariable.startsWith(":")) { String var = extractVariableName(_sizeVariable); Object sizeObj = params.get(var); if (sizeObj instanceof Number) { return ((Number) sizeObj).intValue(); } else if (sizeObj instanceof String) { return Integer.parseInt((String) sizeObj); } else if (sizeObj == null) { throw new IllegalArgumentException("Loop size variable not found: " + var); } else { throw new IllegalArgumentException("Loop size variable must be Number or String: " + var); } } else { return Integer.parseInt(_sizeVariable); } }
@Override void toSQL(StringBuilder buf, SqlFragments fragments, SqlParams params, int[] loopIndex) { String var = applyLoopIndex(_variable, loopIndex); Object val = params.get(var); if (val == null) { buf.append("IS NULL "); } else { buf.append("= "); super.toSQL(buf, fragments, params, loopIndex); } }
/** * Given a variable or literal string, extract the value. * * @param params the SQL parameters * @param str the value to parse * @return the integer value */ static int extractVariableOrLiteral(SqlParams params, String str) { if (str != null) { if (str.startsWith(":") && str.length() > 1) { String fetchVariableName = extractVariableName(str); if (params.contains(fetchVariableName)) { return ((Number) params.get(fetchVariableName)).intValue(); } } else if (str.matches("[0-9]+")) { return Integer.parseInt(str); } } return 0; }
boolean isMatch(SqlParams params, int[] loopIndex) { String var = applyLoopIndex(_variable, loopIndex); if (params.contains(var) == false) { return false; } Object value = params.get(var); if (value == null) { return false; } if (_matchValue != null) { return _matchValue.equalsIgnoreCase(value.toString()); } if (value instanceof Boolean) { return ((Boolean) value).booleanValue(); } return true; }
@Override void toSQL(StringBuilder buf, SqlFragments fragments, SqlParams params, int[] loopIndex) { String key = _includeKey; if (key.startsWith(":")) { String var = extractVariableName(key); if (params.contains(var)) { key = params.get(var).toString(); } } NameSqlFragment unit = fragments.getFragment(key); unit.toSQL(buf, fragments, params, loopIndex); }
@Override void toSQL(StringBuilder buf, SqlFragments fragments, SqlParams params, int[] loopIndex) { String var = applyLoopIndex(_variable, loopIndex); Object val = params.get(var); if (val == null) { buf.append("IS NULL "); } else { if (fragments.getConfig().isLikeWildcard(val.toString())) { buf.append("LIKE "); super.toSQL(buf, fragments, params, loopIndex); buf.append(fragments.getConfig().getLikeSuffix()); } else { buf.append("= "); super.toSQL(buf, fragments, params, loopIndex); } } }