public void print(Printer printer, int indentFlag) throws Exception {
    // print stagename
    if (parser.printSet.contains(this)) {
      printer.println(DagJsonParser.prefixString(indentFlag) + " Please refer to the previous "
          + externalName);
      return;
    }
    parser.printSet.add(this);
    printer.println(DagJsonParser.prefixString(indentFlag) + externalName);
    // print vertexes
    indentFlag++;
    for (Vertex candidate : this.vertices.values()) {
      if (!parser.isInline(candidate) && candidate.children.isEmpty()) {
        candidate.print(printer, indentFlag, null, null);
      }
    }
    if (!attrs.isEmpty()) {
      printer.println(DagJsonParser.prefixString(indentFlag)
          + DagJsonParserUtils.attrsToString(attrs));
    }
    if (op != null) {
      op.print(printer, indentFlag, false);
    }
    indentFlag++;
    // print dependent stages
    for (Stage stage : this.parentStages) {
      stage.print(printer, indentFlag);
    }
  }
@param opName
@param opObj
@return
@throws Exception
          This method address the create table operator, fetch operator,
          etc
common/src/java/org/apache/hadoop/hive/common/jsonexplain/Stage.java