int type;//type=1 普通節點,可有多個子節點 type = 2 條件節點 只有兩個子節點 type=3 預置節點
String name;//方法中文註釋
String methodName;//方法英文名
String argsType;
String note;//方法註釋
String adptive;
Node parent;
List<Node> child = new ArrayList<>();
複製代碼
0, "根節點", "用做遞歸的跟節點,初始化uml的start和end",
1, "普通節點", "方法和代碼塊中標記的node節點,能夠有多個孩子",
2, "條件節點", "條件代碼,最多有兩個孩子",
3, "預置節點", "佔位節點",
4, "空白節點", "空白節點,用做decison中只表達right的時候佔位使用",
5, "結束節點", "支持節點的結束";
複製代碼
Query<PsiMethod> search = OverridingMethodsSearch.search(psiMethod);
複製代碼
//@node type="decision",name="條件X",note=""
if(true){
//@node type="node",name="G"
}
if(true)//@node type="decision",name="條件X",note=""
{
//@node type="node",name="G"
}
複製代碼
//@node type="decision",name="條件B",note=""
if(true)
{
//@node type="decision",name="條件C",note=""
if(true)
{
//@node type="node",name="G"
return null;
}else if(true) //@node type="decision",name="條件D",note=""
{
//@node type="node",name= H
}else {
//@node type="node",name= I
}
//@node type="node",name= M
}
複製代碼
//@node type="node",name="T1",note=""
public Boolean test1(){
//@node type="node",name="NA",note=""
//@node type="decision",name="DA",note=""
if(true){
//@node type="node",name="NB",note=""
}else if(true)//@node type="decision",name="DB",note=""
{
//@node type="node",name="NC",note=""
return false;
}
//@node type="node",name="ND",note=""
}
```
複製代碼