@Override
    public boolean equals(final Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;

      final SeverityBasedTextAttributes that = (SeverityBasedTextAttributes) o;

      if (!myAttributes.equals(that.myAttributes)) return false;
      if (!myType.equals(that.myType)) return false;

      return true;
    }
 @Override
 public int hashCode() {
   int result = myAttributes.hashCode();
   result = 31 * result + myType.hashCode();
   return result;
 }
 @NotNull
 public HighlightSeverity getSeverity() {
   return myType.getSeverity(null);
 }
 private void writeExternal(@NotNull Element element) throws WriteExternalException {
   myAttributes.writeExternal(element);
   myType.writeExternal(element);
 }