java - 氧点。通过注解绘制类之间的链接

标签 java javadoc doxygen graphviz dot

Doxygen 可以用 graphiz 生成类图。

例如:

class A {...};
class B extends A {...};

根据这段代码,我可以生成一张图片,其中 doxygen 可以显示一个类是另一个类的父类。

但是有没有一种方法可以通过类之间手动引用的代码生成图片?

例如,当我描述数据库方案并使用契约类(http://developer.android.com/training/basics/data-storage/databases.html#DefineContract)时,我想像这样执行:

class MainClass {
    class A {
        String COLUMN_ID = "id_a";
    }

    /**
     * {@dotlinkto MainClass.A}
    **/
    @OrAnotationToDrawLink(A.class)
    class B {
        String COLUMN_ID = "id_b";
        String COLUMN_FOREIGN_KEY_TO_A = "id_a_key";
    }
}

并生成 2 个类 A 和 B 的图片,并在它们之间进行引用。

我尝试搜索文档,但找不到任何关于在 javadoc+doxygen+graphviz 中自定义绘图的合适示例或解释。

最佳答案

我能想到的最接近的事情是定义一个扩展为内联点图的自定义命令,即

class MainClass {
  public class A {
    String COLUMN_ID = "id_a";
  }

  /**
   * @dotlinkbetween{A,B}
   * @cond
   **/
   @OrAnotationToDrawLink(A.class)
  /** @endcond */
   public class B {
      String COLUMN_ID = "id_b";
      String COLUMN_FOREIGN_KEY_TO_A = "id_a_key";
    }
}

在 doxygen 的配置文件中使用以下 ALIAS 定义:

ALIASES = dotlinkbetween{2}="@dot digraph { node [shape=record ]; \1 [ URL=\"\ref \1\" ]; \2 [ URL=\"\ref \2\" ]; \2 -> \1; } @enddot"

请注意,我必须使用 @cond ... @endcond 让 doxygen 跳过 @OrAnotationToDrawLink 行。

关于java - 氧点。通过注解绘制类之间的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25610378/

相关文章:

java - 为此使用的最佳结构/模式?

java - 将多个模块的 Javadoc 合并到一个集合中

Javadoc 链接到外部 javadoc

git - 用于自动化文件版本信息的 Doxygen 和 git

Java8 java.time : how to change the day of the week and the start time of the day?

java - 无法使用 Gradle 和 Android Studio 运行 Robolectric 测试 - 找不到 StyleData

java - 如何在 eclipse : without maven? 的 checkStyle 中使用自定义检查

intellij-idea - 创建 javadoc 注释的 IntelliJ 快捷键是什么?

documentation - 我应该如何记录继承的成员?

svn - 在 SVN 存储库中包含 doxygen 文档