package edu.ualberta.med.biobank.i18n;
public class OgnlL10nedMessage extends AbstractLazyL10nedMessage {
private static final long serialVersionUID = 1L;
private final L10nedMessage delegate;
private final Object root;
public OgnlL10nedMessage(L10nedMessage delegate, Object root) {
this.delegate = delegate;
this.root = root;
}
@Override
protected String loadMessage() {
String message = delegate.getMessage();
String evaluated = OgnlMessageFormatter.format(message, root);
return evaluated;
}
@Override
public int hashCode() {
final int prime = 31;
int i = 1;
i = prime * i + ((delegate == null) ? 0 : delegate.hashCode());
i = prime * i + ((root == null) ? 0 : root.hashCode());
return i;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null) return false;
if (getClass() != obj.getClass()) return false;
OgnlL10nedMessage other = (OgnlL10nedMessage) obj;
if (delegate == null) {
if (other.delegate != null) return false;
} else if (!delegate.equals(other.delegate)) return false;
if (root == null) {
if (other.root != null) return false;
} else if (!root.equals(other.root)) return false;
return true;
}
}