List of usage examples for org.hibernate.engine.jdbc.internal Formatter format
public String format(String source);
From source file:org.juke.stringutils.handlers.SrtingUtils.java
License:Open Source License
/*************************************************************************** * Performs actions on selected strings variable. * /*from w ww .j a v a 2 s .c o m*/ * @param doc * Text Editor document * @param selection * {@link TextSelection} in current document * @param action * The action that will be performed on selected string. * @throws BadLocationException */ public void proceedSelectedString(IDocument doc, TextSelection selection, int action) throws BadLocationException { int lineNum = selection.getStartLine(); int lineStart = findStartlineNum(doc, lineNum); int lineEnd = findEndlineNum(doc, lineNum); if (lineStart == INVALID_LINE_NUM || lineEnd == INVALID_LINE_NUM || lineStart > lineEnd) { return; } int startLineOffset = doc.getLineOffset(lineStart); int endLineOffset = doc.getLineOffset(lineEnd); String lineString = doc.get(startLineOffset, endLineOffset - startLineOffset); int startOfStringOffset = startLineOffset + lineString.indexOf(QUOTE); int endOfStringLength = lineString.lastIndexOf(QUOTE) + 1 - lineString.indexOf(QUOTE); Map<String, String> variableMap = new HashMap<String, String>(); lineString = lineString.replaceAll(LINE_REGEXP, EMPTY_STRING); Matcher matcher = Pattern.compile(WHITESPACE_REGEXP).matcher(lineString); while (matcher.find()) { String variableKey = getVariableKey(variableMap.size(), matcher.group()); variableMap.put(variableKey, matcher.group()); lineString = lineString.replace(matcher.group(), variableKey); } Matcher stringMatcher = PATTERN.matcher(lineString); if (stringMatcher.find()) { Formatter sqlFormater = new BasicFormatterImpl( getPreferenceStore().getBoolean(StringUtilsPreferencePage.CLAUSE_TO_UPPERCASE)); String formatedString = sqlFormater.format(stringMatcher.group()); if (action == FORMATE_SQL_STRING_ACTION) { fornatSqkString(lineString, startOfStringOffset, endOfStringLength, variableMap, formatedString); } else if (action == SHOW_STRING_CONTETNT_ACTION) { showStringContent(variableMap, stringMatcher, formatedString); } } }
From source file:org.unitime.timetable.action.HibernateQueryTestAction.java
License:Open Source License
/** * Method execute//w w w . j av a 2s.c om * @param mapping * @param form * @param request * @param response * @return ActionForward */ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { sessionContext.checkPermission(Right.TestHQL); String op = request.getParameter("op"); if (op == null || !op.equals("Submit")) { if ("Clear Cache".equals(op)) HibernateUtil.clearCache(); return mapping.findForward("displayQueryForm"); } HibernateQueryTestForm frm = (HibernateQueryTestForm) form; ActionMessages errors = frm.validate(mapping, request); Logger sqlLog = Logger.getLogger("org.hibernate.SQL"); if (iOriginalLevel == null) iOriginalLevel = sqlLog.getLevel(); sqlLog.setLevel(Level.DEBUG); ByteArrayOutputStream out = new ByteArrayOutputStream(); Appender myAppender = new WriterAppender(new PatternLayout("%m%n"), out); sqlLog.addAppender(myAppender); if (errors.size() == 0) { try { int limit = ApplicationProperty.TestHQLMaxLines.intValue(); String query = frm.getQuery(); _RootDAO rdao = new _RootDAO(); Session hibSession = rdao.getSession(); Query q = hibSession.createQuery(query); try { List l = q.list(); StringBuffer s = new StringBuffer(); int line = 0; for (Iterator i = l.iterator(); i.hasNext(); line++) { if (limit > 0 && line >= limit) { s.append("<tr><td>...</td></tr>"); break; } Object o = i.next(); if (s.length() == 0) printHeader(s, o); printLine(s, o, (SessionImplementor) hibSession); } if (s.length() > 0) { printFooter(s); request.setAttribute("result", s.toString()); } frm.setListSize(String.valueOf(l.size())); } catch (QueryExecutionRequestException e) { Transaction tx = null; try { tx = hibSession.beginTransaction(); int i = q.executeUpdate(); request.setAttribute("result", i + " lines updated."); frm.setListSize(String.valueOf(i)); tx.commit(); } catch (Exception ex) { if (tx != null && tx.isActive()) tx.rollback(); throw ex; } hibSession.flush(); HibernateUtil.clearCache(); } } catch (Exception e) { errors.add("query", new ActionMessage("errors.generic", e.getMessage())); Debug.error(e); } } sqlLog.removeAppender(myAppender); sqlLog.setLevel(iOriginalLevel == null ? Level.INFO : iOriginalLevel); out.flush(); out.close(); String sql = ""; for (StringTokenizer stk = new StringTokenizer(new String(out.toByteArray()), "\n"); stk.hasMoreTokens();) { String line = (String) stk.nextToken(); String comment = null; if (line.indexOf("/*") >= 0 && line.indexOf("/*") < line.indexOf("*/")) { comment = line.substring(line.indexOf("/*") + 2, line.indexOf("*/")); line = line.substring(0, line.indexOf("/*")) + line.substring(line.indexOf("*/") + 2); } if (sql.length() > 0) sql += "<br><br>"; if (comment != null) sql += "<font color='gray'>-- " + comment + "</font>"; Formatter f = new BasicFormatterImpl(); sql += f.format(line).replaceAll("\n", "<br>").replaceAll(" ", " "); } if (sql.length() > 0) request.setAttribute("sql", sql); saveErrors(request, errors); return mapping.findForward("displayQueryForm"); }