package jscl; import jscl.text.msg.JsclMessage; import org.solovyev.common.msg.Message; import org.solovyev.common.msg.MessageLevel; import org.solovyev.common.msg.MessageType; import javax.annotation.Nonnull; import java.util.List; import java.util.Locale; public abstract class JsclArithmeticException extends ArithmeticException implements Message { @Nonnull private Message message; public JsclArithmeticException(@Nonnull String messageCode, Object... parameters) { this.message = new JsclMessage(messageCode, MessageType.error, parameters); } @Nonnull public String getMessageCode() { return this.message.getMessageCode(); } @Nonnull public List<Object> getParameters() { return this.message.getParameters(); } @Nonnull public MessageLevel getMessageLevel() { return this.message.getMessageLevel(); } @Nonnull public String getLocalizedMessage(@Nonnull Locale locale) { return this.message.getLocalizedMessage(locale); } @Nonnull @Override public String getLocalizedMessage() { return this.getLocalizedMessage(Locale.getDefault()); } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; JsclArithmeticException that = (JsclArithmeticException) o; return message.equals(that.message); } @Override public int hashCode() { return message.hashCode(); } public void setMessage(@Nonnull Message message) { this.message = message; } }