@Override
  public @NonNls String toString() {
    StringBuilder stringBuilder = new StringBuilder();
    Field[] fields = this.getClass().getDeclaredFields();

    stringBuilder.append(getClass().getName());
    stringBuilder.append(": {");

    for (Field field : fields) {
      stringBuilder.append(field.getName());
      stringBuilder.append("=");
      try {
        stringBuilder.append(field.get(this));
      }
      catch (IllegalAccessException e) {
        stringBuilder.append("<Illegal access>"); //NON-NLS
      }
      stringBuilder.append(", ");
    }

    stringBuilder.append("}");

    return stringBuilder.toString();
  }
@Override
  public @NonNls String toString()