class RefIntPair {

  private final EquivalentValue _ref;
  private final int _val;

  // constructor is not public so that people go throught the ref pair constants factory on the analysis
  RefIntPair(EquivalentValue r, int v, BranchedRefVarsAnalysis brva) {
    this._ref = r;
    this._val = v;
  }

  public EquivalentValue ref() {
    return this._ref;
  }

  public int val() {
    return this._val;
  }

  @Override
  public String toString() {<FILL_FUNCTION_BODY>}
}

    String prefix = "(" + _ref + ", ";
    switch (_val) {
      case BranchedRefVarsAnalysis.kNull:
        return prefix + "null)";
      case BranchedRefVarsAnalysis.kNonNull:
        return prefix + "non-null)";
      case BranchedRefVarsAnalysis.kTop:
        return prefix + "top)";
      case BranchedRefVarsAnalysis.kBottom:
        return prefix + "bottom)";
      default:
        return prefix + _val + ")";
    }
  
<no_super_class>