package jetbrains.mps.debugger.java.api.state.watchables;

/*Generated by MPS */

import jetbrains.mps.annotations.GeneratedClass;
import jetbrains.mps.debug.api.programState.WatchablesCategory;

@GeneratedClass(node = "r:6ed9d174-6cbf-4569-b2b8-259c43efcbd9(jetbrains.mps.debugger.java.api.state.watchables)/4352118152439509012", model = "r:6ed9d174-6cbf-4569-b2b8-259c43efcbd9(jetbrains.mps.debugger.java.api.state.watchables)")
public class JavaWatchablesCategory extends WatchablesCategory {
  public static final WatchablesCategory LOCAL_VARIABLE = new JavaWatchablesCategory("local variable", 2);
  public static final WatchablesCategory THIS_OBJECT = new JavaWatchablesCategory("this", 1);
  public static final WatchablesCategory CALCULATED_VALUE = new WatchablesCategory("calculated value");
  public static final WatchablesCategory STATIC_CONTEXT = new JavaWatchablesCategory("static field", 0);
  public static final WatchablesCategory THROWN_EXCEPTION = new JavaWatchablesCategory("exception", 3);
  public static final WatchablesCategory METHOD = new JavaWatchablesCategory("method", 4);
  public static final WatchablesCategory RETURN_VALUE = new JavaWatchablesCategory("return value", 5);
  public static final WatchablesCategory FIELD_WATCHPOINT = new JavaWatchablesCategory("field watchpoint", 6);
  private final int myOrder;
  public JavaWatchablesCategory(String categoryName, int order) {
    super(categoryName);
    myOrder = order;
  }
  @Override
  public int hashCode() {
    return myOrder;
  }
  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    return myOrder == ((JavaWatchablesCategory) o).myOrder;
  }
  @Override
  public int compareTo(WatchablesCategory o) {
    if (!(o instanceof JavaWatchablesCategory)) {
      return 1;
    }
    return myOrder - ((JavaWatchablesCategory) o).myOrder;
  }
}
