public void setColumnNamesPattern(Sheet sheet) { sbColumnNames = new StringBuilder(); for (Column c : sheet.getColumns()) { sbColumnNames.append("P\\{" + c.getName() + "\\}" + "|I\\{" + c.getName() + "\\}" + "|"); } sbColumnNames.delete(sbColumnNames.length() - 1, sbColumnNames.length()); System.out.println(sbColumnNames.toString()); }
@Override public void bracketEvent(String content) { System.out.println(content); Column c = sheet.getColumnByName(content); if (c != null) { c.setIgnore(false); System.out.println("yes"); if (sbColumnNames == null) { setColumnNamesPattern(sheet); } paneSyntax.highlightPattern(sbColumnNames.toString()); table.repaint(); } }
private String createStatements(boolean preview) { boolean insOnly = true; StringBuilder sbTotal = new StringBuilder(); StringBuffer sbStatement = new StringBuffer(); String rawText = new String(paneSyntax.getRawText()); Pattern bracketPattern = Pattern.compile("P\\{.*?\\}|I\\{.*?\\}"); Matcher matcher = bracketPattern.matcher(rawText); while (matcher.find()) { String s = matcher.group(0); if (matcher.group(0).charAt(0) == 'P') { insOnly = false; } s = s.substring(1, s.length() - 1); } int iRows = sheet.getRowCount() - 1; int iCol = sheet.getColCount(); StringBuilder sbStmt = new StringBuilder(); StringBuilder sbWhere = new StringBuilder(); StringBuilder sbSet = new StringBuilder(); List<String> listWheres = new ArrayList<String>(); List<String> listSets = new ArrayList<String>(); Row currRow; if (!insOnly) { for (int i = 0; i < (preview ? 1 : iRows); i++) { matcher.reset(); sbStatement.setLength(0); while (matcher.find()) { String s = matcher.group(0); s = s.substring(2, s.length() - 1); Column c = sheet.getColumnByName(s); if (c != null) { matcher.appendReplacement(sbStatement, ""); sbStatement.append(c.getValueAsString(i)); } } matcher.appendTail(sbStatement); System.out.println(sbStatement.toString()); sbTotal.append(sbStatement.toString() + "\n"); } return sbTotal.toString(); } else { sbTotal.setLength(0); matcher.reset(); sbStatement.setLength(0); while (matcher.find()) { String s = matcher.group(0); matcher.appendReplacement(sbStatement, ""); if (s.charAt(0) == 'I') { s = s.substring(2, s.length() - 1); Column c = sheet.getColumnByName(s); if (c != null) { sbStatement.append("("); for (int i = 0; i < sheet.getRowCount() - 1; i++) { sbStatement.append(c.getValueAsString(i) + ", "); } sbStatement.delete(sbStatement.length() - 2, sbStatement.length()); sbStatement.append(")"); } } } matcher.appendTail(sbStatement); return sbStatement.toString(); } }