@Override public void formatTo(final StringBuilder buffer) { StringBuilders.appendValue(buffer, obj); }
/** * Returns the formatted message. * @return the formatted message. */ @Override public String getFormattedMessage() { final StringBuilder sb = getBuffer(); formatTo(sb); final String result = sb.toString(); StringBuilders.trimToMaxSize(sb, Constants.MAX_REUSABLE_MESSAGE_SIZE); return result; }
/** * Print the thread information. * @param sb The StringBuilder. */ @Override public void printThreadInfo(final StringBuilder sb) { StringBuilders.appendDqValue(sb, name).append(Chars.SPACE); if (isDaemon) { sb.append("daemon "); } sb.append("prio=").append(priority).append(" tid=").append(id).append(' '); if (threadGroupName != null) { StringBuilders.appendKeyDqValue(sb, "group", threadGroupName); } sb.append('\n'); sb.append("\tThread state: ").append(state.name()).append('\n'); }
/** * Appends in the following format: key=double quoted value. * * @param sb a string builder * @param entry a map entry * @return {@code key="value"} */ public static StringBuilder appendKeyDqValue(final StringBuilder sb, final Entry<String, String> entry) { return appendKeyDqValue(sb, entry.getKey(), entry.getValue()); }
protected void asJson(final StringBuilder sb) { sb.append('{'); for (int i = 0; i < data.size(); i++) { if (i > 0) { sb.append(", "); } StringBuilders.appendDqValue(sb, data.getKeyAt(i)).append(':'); StringBuilders.appendDqValue(sb, data.getValueAt(i)); } sb.append('}'); }
protected void asJson(final StringBuilder sb) { sb.append('{'); for (int i = 0; i < data.size(); i++) { if (i > 0) { sb.append(", "); } sb.append(Chars.DQUOTE); int start = sb.length(); sb.append(data.getKeyAt(i)); StringBuilders.escapeJson(sb, start); sb.append(Chars.DQUOTE).append(':').append(Chars.DQUOTE); start = sb.length(); ParameterFormatter.recursiveDeepToString(data.getValueAt(i), sb, null); StringBuilders.escapeJson(sb, start); sb.append(Chars.DQUOTE); } sb.append('}'); }
/** * Formats this message as an XML fragment String into the given builder. * * @param sb format into this builder. */ public void asXml(final StringBuilder sb) { sb.append("<Map>\n"); for (int i = 0; i < data.size(); i++) { sb.append(" <Entry key=\"") .append(data.getKeyAt(i)) .append("\">"); int size = sb.length(); ParameterFormatter.recursiveDeepToString(data.getValueAt(i), sb, null); StringBuilders.escapeXml(sb, size); sb.append("</Entry>\n"); } sb.append("</Map>"); }
/** * Appends a text representation of the specified object to the specified StringBuilder, * if possible without allocating temporary objects. * * @param stringBuilder the StringBuilder to append the value to * @param obj the object whose text representation to append to the StringBuilder */ public static void appendValue(final StringBuilder stringBuilder, final Object obj) { if (!appendSpecificTypes(stringBuilder, obj)) { stringBuilder.append(obj); } }
/** * Appends in the following format: key=double quoted value. * * @param sb a string builder * @param entry a map entry * @return {@code key="value"} */ public static StringBuilder appendKeyDqValue(final StringBuilder sb, final Entry<String, String> entry) { return appendKeyDqValue(sb, entry.getKey(), entry.getValue()); }
@Override public void printThreadInfo(final StringBuilder sb) { StringBuilders.appendDqValue(sb, threadInfo.getThreadName()); sb.append(" Id=").append(threadInfo.getThreadId()).append(' '); formatState(sb, threadInfo); if (threadInfo.isSuspended()) { sb.append(" (suspended)"); } if (threadInfo.isInNative()) { sb.append(" (in native)"); } sb.append('\n'); }
@Test public void escapeJsonCharactersISOControl() { String jsonValueNotEscaped = "{\"field\n1\":\"value" + (char) 0x8F + "_1\"}"; String jsonValueEscaped = "{\\\"field\\n1\\\":\\\"value\\u008F_1\\\"}"; StringBuilder sb = new StringBuilder(); sb.append(jsonValueNotEscaped); assertEquals(jsonValueNotEscaped, sb.toString()); StringBuilders.escapeJson(sb, 0); assertEquals(jsonValueEscaped, sb.toString()); }
@Test public void escapeXMLCharactersCorrectly() { String xmlValueNotEscaped = "<\"Salt&Peppa'\">"; String xmlValueEscaped = "<"Salt&Peppa'">"; StringBuilder sb = new StringBuilder(); sb.append(xmlValueNotEscaped); assertEquals(xmlValueNotEscaped, sb.toString()); StringBuilders.escapeXml(sb, 0); assertEquals(xmlValueEscaped, sb.toString()); } }
private static boolean appendSpecialTypes(final Object o, final StringBuilder str) { return StringBuilders.appendSpecificTypes(str, o) || appendDate(o, str); }
@Override public void formatTo(final StringBuilder buffer) { if (objectString != null) { // buffer.append(objectString); } else { StringBuilders.appendValue(buffer, obj); } }
/** * Returns the formatted message. * @return the formatted message. */ @Override public String getFormattedMessage() { if (formattedMessage == null) { final StringBuilder buffer = getThreadLocalStringBuilder(); formatTo(buffer); formattedMessage = buffer.toString(); StringBuilders.trimToMaxSize(buffer, Constants.MAX_REUSABLE_MESSAGE_SIZE); } return formattedMessage; }
protected void asJava(final StringBuilder sb) { sb.append('{'); for (int i = 0; i < data.size(); i++) { if (i > 0) { sb.append(", "); } StringBuilders.appendKeyDqValue(sb, data.getKeyAt(i), data.getValueAt(i)); } sb.append('}'); }
/** * Print the thread information. * @param sb The StringBuilder. */ @Override public void printThreadInfo(final StringBuilder sb) { StringBuilders.appendDqValue(sb, name).append(Chars.SPACE); if (isDaemon) { sb.append("daemon "); } sb.append("prio=").append(priority).append(" tid=").append(id).append(' '); if (threadGroupName != null) { StringBuilders.appendKeyDqValue(sb, "group", threadGroupName); } sb.append('\n'); sb.append("\tThread state: ").append(state.name()).append('\n'); }
private void checkForRemainingAttributes() { final Map<String, String> attrs = node.getAttributes(); if (!attrs.isEmpty()) { final StringBuilder sb = new StringBuilder(); for (final String key : attrs.keySet()) { if (sb.length() == 0) { sb.append(node.getName()); sb.append(" contains "); if (attrs.size() == 1) { sb.append("an invalid element or attribute "); } else { sb.append("invalid attributes "); } } else { sb.append(", "); } StringBuilders.appendDqValue(sb, key); } LOGGER.error(sb.toString()); } }
@Test public void escapeJsonCharactersCorrectly() { String jsonValueNotEscaped = "{\"field\n1\":\"value_1\"}"; String jsonValueEscaped = "{\\\"field\\n1\\\":\\\"value_1\\\"}"; StringBuilder sb = new StringBuilder(); sb.append(jsonValueNotEscaped); assertEquals(jsonValueNotEscaped, sb.toString()); StringBuilders.escapeJson(sb, 0); assertEquals(jsonValueEscaped, sb.toString()); sb = new StringBuilder(); String jsonValuePartiallyEscaped = "{\"field\n1\":\\\"value_1\\\"}"; sb.append(jsonValueNotEscaped); assertEquals(jsonValueNotEscaped, sb.toString()); StringBuilders.escapeJson(sb, 10); assertEquals(jsonValuePartiallyEscaped, sb.toString()); }
@Override public void formatTo(final StringBuilder buffer) { final MutableThreadContextStack values = STACK.get(); if (values == null) { buffer.append("[]"); } else { StringBuilders.appendValue(buffer, values); } }