public static void helpPrintDecisionTree(DecisionTree tree, int level, PrintableStringWriter stream) {
    if (tree.feature == null) {
      if (tree.truthValue) {
        stream.println("True");
      }
      else {
        stream.println("False");
      }
      return;
    }
    stream.println();
    { int i = Stella.NULL_INTEGER;
      int iter000 = 1;
      int upperBound000 = level;
      boolean unboundedP000 = upperBound000 == Stella.NULL_INTEGER;

      for (;unboundedP000 ||
                (iter000 <= upperBound000); iter000 = iter000 + 1) {
        i = iter000;
        i = i;
        stream.print("|   ");
      }
    }
    stream.print(tree.proposition + " = 1: ");
    DecisionTree.helpPrintDecisionTree(tree.trueBranch, level + 1, stream);
    { int i = Stella.NULL_INTEGER;
      int iter001 = 1;
      int upperBound001 = level;
      boolean unboundedP001 = upperBound001 == Stella.NULL_INTEGER;

      for (;unboundedP001 ||
                (iter001 <= upperBound001); iter001 = iter001 + 1) {
        i = iter001;
        i = i;
        stream.print("|   ");
      }
    }
    stream.print(tree.proposition + " = 0: ");
    DecisionTree.helpPrintDecisionTree(tree.falseBranch, level + 1, stream);
  }