Doxygen可以使用graphiz生成类图。
例如:
class A {...};
class B extends A {...};
从这段代码我可以生成一张图片,其中doxygen可以显示一个类是另一个类的父级。
但有没有办法从代码中生成一个图片,并在类之间进行手动引用?
例如,当我描述数据库方案并使用合同类(http://developer.android.com/training/basics/data-storage/databases.html#DefineContract)时,我想像这样执行smth:
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中找不到任何合适的自定义绘图示例或解释。
答案 0 :(得分:2)
我能想到的最接近的事情是定义一个扩展为内联点图的自定义命令,即
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
行。