private String getMessage() { if (message == null) { message = createMessage(); } return message; }
@Override public String toString() { return getMessage(); }
private String createMessage() { StringBuilder builder = new StringBuilder(); builder.append(source); builder.append(" "); builder.append(reason); Object[] values = getValues(); if (values.length > 0) { builder.append(" with parameters ("); String sep = ""; for (Object value : values) { builder.append(sep); if (value == null) { builder.append("null"); } else { builder.append(value).append(" (").append(value.getClass().getSimpleName()).append(")"); } sep = ", "; } builder.append(")"); } return builder.toString(); }
public CharSequence subSequence(int start, int end) { return getMessage().subSequence(start, end); }
public int length() { return getMessage().length(); }
public char charAt(int index) { return getMessage().charAt(index); }