private void generateDiagram(String name, RankDir rankDir, Class... classes) throws IOException {
    model = new CodeModel(name);
    model.addClasses(classes);
    addStereoType(Ganglia_metadata_msg.class, Stereotypes.UNION);
    addStereoType(Ganglia_msg_formats.class, Stereotypes.ENUM);
    addStereoType(Ganglia_value_msg.class, Stereotypes.UNION);
    addStereoType(Ganglia_value_types.class, Stereotypes.ENUM);
    model.addFieldRelations();

    ClassDiagram d = new ClassDiagram(model.getName(), model);
    d.getSettings()
        .enableDrawingAttributes()
        .enableDrawingAttributeTypes()
        .disableDrawingOperations();

    d.addAllModelClasses();
    //        d.addClass(CodeModel.class).getSettings()
    //                .enableDrawingAttributes()
    //                .enableDrawingAttributeTypes();
    // .enableDrawingOperations();
    DiGraph diGraph = d.createGraph();
    // diGraph.getAttributeList().setOrientation(Orientation.LANDSCAPE);
    diGraph.getAttributeList().setRankDir(rankDir);
    assertCreated(diGraph.makeImageFile(outputDir, "png", true));
    // assertCreated(d.createGraph().makeImageFile(outputDir, "pdf", true));
    File epsFile = diGraph.makeImageFile(outputDir, "eps", true);
    assertCreated(epsFile);
    assertTrue(epsFile.renameTo(FileTestUtil.changeExtension(epsFile, "ps")));
  }