package oraloganalyzer.model; import java.util.ResourceBundle; import oraloganalyzer.util.Toolbox; public class OraError implements Comparable<OraError> { private static ResourceBundle bundle = ResourceBundle .getBundle("oraloganalyzer/resource/ora9errors"); protected int errNo; protected OraErrorType errType; public static String getMessageForError(OraError error) { String msg = ""; int positiveErrNo = Integer.signum(error.getErrNo()) * error.getErrNo(); String strErrNo = Toolbox.lpad(String.valueOf(positiveErrNo), "0", error.getErrType().getErrNoLength()); try { msg = bundle.getString(error.getErrType().getTypename() + strErrNo); } catch (RuntimeException e) { } return msg; } public OraError(OraErrorType errType, int errNo) { this.errType = errType; this.errNo = errNo; } public int getErrNo() { return this.errNo; } public OraErrorType getErrType() { return this.errType; } public int compareTo(OraError o) { int typeComp = this.errType.getTypename().compareTo( o.errType.getTypename()); if (typeComp == 0) { return Toolbox.compare(this.errNo, o.errNo); } else { return typeComp; } } public String toString() { return this.errType.getTypename() + Toolbox.lpad(String.valueOf(this.errNo), "0", this.errType .getErrNoLength()) + ": " + getMessage(); } public String getMessage() { return getMessageForError(this); } public boolean equals(OraError other) { return this.compareTo(other) == 0; } @Override public int hashCode() { return this.errType.ordinal() * 100000 + this.errNo; } }