(node,file)
| 693 | } |
| 694 | |
| 695 | function traverseClass(node,file){ |
| 696 | node._file=file |
| 697 | r.FlowNode[node.value]=node; |
| 698 | if(r.FlowOne[node.value]){ |
| 699 | if(r.FlowOne[node.value].indexOf(node.value)<0){ |
| 700 | r.FlowOne[node.value].unshift(node.value) |
| 701 | } |
| 702 | }else{ |
| 703 | r.FlowOne[node.value]=[node.value] |
| 704 | } |
| 705 | r.UMLClass[node.value]={} |
| 706 | var level_symbol={ |
| 707 | 'public':'+', |
| 708 | "private":'-', |
| 709 | "protected":'#', |
| 710 | "internal":'~', |
| 711 | "static":'$', |
| 712 | } |
| 713 | r.UML+=` class ${node.value}{\n`; |
| 714 | // if(node.type=="InterfaceDefine"){ |
| 715 | // r.UML+=` <<interface>> ${node.value}\n`;//mermaid bug |
| 716 | // } |
| 717 | for(let member of node.body){ |
| 718 | let symbol=member.level&&level_symbol[member.level]?level_symbol[member.level]:' '; |
| 719 | switch(member.type){ |
| 720 | case "PropertyDefine": |
| 721 | traverseProperty(member,node,file,symbol) |
| 722 | break; |
| 723 | case "MethodDefine": |
| 724 | traverseMethod(member,node,file,symbol) |
| 725 | break; |
| 726 | case "FunctionDefine": |
| 727 | traverseMethod(member,node,file,symbol) |
| 728 | break; |
| 729 | } |
| 730 | } |
| 731 | r.UML+=' }\n' |
| 732 | if(node.extends){ |
| 733 | for(let f of node.extends){ |
| 734 | if(r.FlowNode[f]&&r.FlowNode[f].type=="InterfaceDefine"){ |
| 735 | r.FDPNode[f]={id:f,w:f.length*d3config.fontsize/1.6+d3config.fontsize*2,text:`{${f}}`} |
| 736 | r.UML+=` ${f} <|.. ${node.value}\n` |
| 737 | r.FlowLink+=`${f} ==> ${node.value}\n` |
| 738 | r.FDPLinks.push({source:node.value,target:f,value:6,dist:200,dash:'2,2'}) |
| 739 | }else{ |
| 740 | if(r.FDPNode[f]===undefined)r.FDPNode[f]={id:f,w:f.length*d3config.fontsize/1.6+d3config.fontsize*2,text:`[${f}]`} |
| 741 | r.UML+=` ${f} <|-- ${node.value}\n` |
| 742 | r.FlowLink+=`${f} ==o ${node.value}\n` |
| 743 | r.FDPLinks.push({source:f,target:node.value,value:6,dist:200,dash:"2,2"}) |
| 744 | } |
| 745 | } |
| 746 | } |
| 747 | } |
| 748 | |
| 749 | function traverseProperty(member,cls,file,symbol){ |
| 750 | member._flow_id=member.value+'_'+cls.value |
no test coverage detected