package edu.ualberta.med.biobank.common.i18n; import java.io.IOException; import java.io.ObjectInputStream; import java.io.Serializable; public class LocalizedMessage implements Serializable { private static final long serialVersionUID = 1L; private final IFormattable formattable; private final Object[] objects; private transient String toString; // reformatted per environment public LocalizedMessage(IFormattable formattable, Object... objects) { this.formattable = formattable; this.objects = objects; format(); } @Override public String toString() { return toString; } private void readObject(ObjectInputStream inputStream) throws IOException, ClassNotFoundException { inputStream.defaultReadObject(); format(); } private void format() { toString = formattable.format(objects); } }