private String alignINClause(String in) { String paramIn = in; final int indexLowerIn = paramIn.indexOf(IN_LOWER); final int indexLowerInWithParentheses = paramIn.indexOf(IN_LOWER_P); final int indexUpperIn = paramIn.indexOf(IN_UPPER); final int indexUpperInWithParentheses = paramIn.indexOf(IN_UPPER_P); // find first occurrence of in clause. final int indexIn = findMinIfNot(indexUpperInWithParentheses, findMinIfNot(indexUpperIn, findMinIfNot(indexLowerIn, indexLowerInWithParentheses, NO_INDEX), NO_INDEX), NO_INDEX ); if (indexIn > NO_INDEX && (indexIn == indexLowerInWithParentheses || indexIn == indexUpperInWithParentheses)) { // 3 is the size of param in ending with a parentheses. // add SPLIT_EXPRESSION paramIn = paramIn.substring(0, indexIn + 3) + SPLIT_EXPRESSION + paramIn.substring(indexIn + 3); } String sql = paramIn; if (indexIn != NO_INDEX) { final int indexOpen = paramIn.indexOf('(', indexIn); final int indexClose = paramIn.indexOf(')', indexOpen); String sub = paramIn.substring(indexOpen, indexClose + 1); sub = sub.replaceAll(" ", ""); sql = paramIn.substring(0, indexOpen) + sub + alignINClause(paramIn.substring(indexClose + 1)); } return sql; }
private String alignINClause(String in) { String paramIn = in; final int indexLowerIn = paramIn.indexOf(IN_LOWER); final int indexLowerInWithParentheses = paramIn.indexOf(IN_LOWER_P); final int indexUpperIn = paramIn.indexOf(IN_UPPER); final int indexUpperInWithParentheses = paramIn.indexOf(IN_UPPER_P); // find first occurrence of in clause. final int indexIn = findMinIfNot(indexUpperInWithParentheses, findMinIfNot(indexUpperIn, findMinIfNot(indexLowerIn, indexLowerInWithParentheses, NO_INDEX), NO_INDEX), NO_INDEX ); if (indexIn > NO_INDEX && (indexIn == indexLowerInWithParentheses || indexIn == indexUpperInWithParentheses)) { // 3 is the size of param in ending with a parentheses. // add SPLIT_EXPRESSION paramIn = paramIn.substring(0, indexIn + 3) + SPLIT_EXPRESSION + paramIn.substring(indexIn + 3); } String sql = paramIn; if (indexIn != NO_INDEX) { final int indexOpen = paramIn.indexOf('(', indexIn); final int indexClose = paramIn.indexOf(')', indexOpen); String sub = paramIn.substring(indexOpen, indexClose + 1); sub = sub.replaceAll(" ", ""); sql = paramIn.substring(0, indexOpen) + sub + alignINClause(paramIn.substring(indexClose + 1)); } return sql; }