docs: private boolean setCaseChain(int varIndex, int choiceIndex) {
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.entry(this, tc, "setCaseChain", new Object[]{Integer.valueOf(varIndex), Integer.valueOf(choiceIndex)});
  
      if (choiceCache[varIndex] == choiceIndex) {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.exit(this, tc, "setCaseChain", Boolean.FALSE);
        return false;
      }
  
      int prevChoiceIndex = choiceCache[varIndex];
      choiceCache[varIndex] = choiceIndex;
  
      boolean dominated = setDominatingCases(variants[varIndex]);
  
      // We know we've changed a variant case, so we'll normally return 'true'
      // to signal the caller to check their caches. Howver if we set the
      // initial state of a variant that is not dominated by any other
      // variants the change cannot have any effect on anything already
      // cached, so we can return 'false'.
      boolean result = (dominated || (prevChoiceIndex != -1));
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.exit(this, tc, "setCaseChain", Boolean.valueOf(result));
      return result;
    }