public CommonException(LocalizableMessage userFriendlyMessage) { super(userFriendlyMessage.getFallbackMessage()); this.userFriendlyMessage = userFriendlyMessage; }
static boolean isEmpty(LocalizableMessage msg) { return msg == null || msg.isEmpty(); } }
@Override public void shortDump(StringBuilder sb) { boolean first = true; for (LocalizableMessage message : messages) { if (first) { first = false; } else { sb.append("; "); } message.shortDump(sb); } }
public CommonException(LocalizableMessage userFriendlyMessage, Throwable cause) { super(userFriendlyMessage.getFallbackMessage(), cause); this.userFriendlyMessage = userFriendlyMessage; }
@Override public void shortDump(StringBuilder sb) { if (key != null) { sb.append(key); if (args != null) { sb.append(": "); sb.append(Arrays.toString(args)); } if (fallbackMessage != null) { sb.append(" ("); sb.append(fallbackMessage); sb.append(")"); } if (fallbackLocalizableMessage != null) { sb.append(" ("); sb.append(fallbackLocalizableMessage.shortDump()); sb.append(")"); } } else { sb.append(fallbackLocalizableMessage != null ? fallbackLocalizableMessage.shortDump() : fallbackMessage); } }
@Override public boolean isEmpty() { return key == null && LocalizableMessage.isEmpty(fallbackLocalizableMessage) && fallbackMessage == null; } }
private void writeMessage(Writer writer, LocalizableMessage message) throws IOException { if (message == null) { return; } // TODO: localization? writer.append(message.getFallbackMessage()); }
@Override public String toString() { if (userFriendlyMessage == null) { return super.toString(); } else { String technicalMessage = getMessage(); String localizedUserFriendlyMessage = getLocalizedMessage(); // this one is used by super.toString String technicalMessagePart; if (technicalMessage != null && !Objects.equals(technicalMessage, localizedUserFriendlyMessage)) { technicalMessagePart = " [" + technicalMessage + "]"; } else { technicalMessagePart = ""; } // TODO consider if we really want to display short dump of userFriendlyMessage even if localized and/or english message is present return super.toString() + technicalMessagePart + " [" + userFriendlyMessage.shortDump() + "]"; } } }
@Override public String getFallbackMessage() { String msg = messages.stream() .filter(m -> m.getFallbackMessage() != null) .map(m -> m.getFallbackMessage()) .collect(Collectors.joining("; ")); if (!msg.isEmpty()) { return msg; } else { return messages.size() + " message(s)"; } }
DebugUtil.indentDebugDump(sb, indent + 2); sb.append("userFriendlyMessage="); userFriendlyMessage.shortDump(sb);
protected boolean useDefaultProcessName(LocalizableMessage processName) { return LocalizableMessage.isEmpty(processName) || processName instanceof SingleLocalizableMessage && USE_DEFAULT_NAME_MARKER.equals(((SingleLocalizableMessage) processName).getKey()); } //endregion
@Override public void shortDump(StringBuilder sb) { if (status != null) { sb.append(status); sb.append(" "); } if (itemPath != null) { sb.append(itemPath); sb.append(" "); } if (message != null) { sb.append(message.getFallbackMessage()); } }
protected void assertExceptionUserFriendly(CommonException e, String expectedMessage) { LocalizableMessage userFriendlyMessage = e.getUserFriendlyMessage(); assertNotNull("No user friendly exception message", userFriendlyMessage); assertEquals("Unexpected user friendly exception fallback message", expectedMessage, userFriendlyMessage.getFallbackMessage()); }
protected void assertExceptionUserFriendly(CommonException e, String expectedMessage) { LocalizableMessage userFriendlyMessage = e.getUserFriendlyMessage(); assertNotNull("No user friendly exception message", userFriendlyMessage); assertEquals("Unexpected user friendly exception fallback message", expectedMessage, userFriendlyMessage.getFallbackMessage()); }