(node,file,r)
| 651 | |
| 652 | |
| 653 | function analysisMermaid(node,file,r){ |
| 654 | switch(node.type){ |
| 655 | case 'ClassDefine': |
| 656 | if(!r.showMethod)break |
| 657 | if(r.FlowFilter[node.value]===false)break; |
| 658 | r.Flow+=` ${node.value}[${node.value}]\nclick ${node.value} "javascript:void(onFlowClick('${node.value}','${file}'))"\n` |
| 659 | r.FDPNode[node.value]={id:node.value,w:node.value.length*d3config.fontsize/1.6+d3config.fontsize*2,text:`[${node.value}]`} |
| 660 | traverseClass(node,file) |
| 661 | break; |
| 662 | case 'InterfaceDefine': |
| 663 | if(!r.showMethod)break |
| 664 | if(r.FlowFilter[node.value]===false)break; |
| 665 | r.Flow+=` ${node.value}{{${node.value}}}\nclick ${node.value} "javascript:void(onFlowClick('${node.value}','${file}'))"\n` |
| 666 | r.FDPNode[node.value]={id:node.value,w:node.value.length*d3config.fontsize/1.6+d3config.fontsize*2,text:`{${node.value}}`} |
| 667 | traverseClass(node,file) |
| 668 | break; |
| 669 | case 'NamespaceDefine': |
| 670 | if(!r.showMethod)break |
| 671 | if(!r.showNamespace)break; |
| 672 | if(r.namespace){ |
| 673 | r.Flow+=` end\n subgraph ${node.value}.namespace\n` |
| 674 | }else{ |
| 675 | r.Flow+=` subgraph ${node.value}.namespace\n` |
| 676 | r.namespace=node.value; |
| 677 | } |
| 678 | break; |
| 679 | case "FunctionDefine": |
| 680 | if(r.showMethod)break |
| 681 | // console.log('function define',node) |
| 682 | traverseMethod(node,{},file) |
| 683 | break |
| 684 | case "MethodDefine": |
| 685 | if(r.showMethod)break |
| 686 | // console.log("method",node) |
| 687 | traverseMethod(node,{},file) |
| 688 | break |
| 689 | case "Variable": |
| 690 | if(r.showMethod)break |
| 691 | traverseVariable(node,{},file) |
| 692 | break |
| 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":'~', |
nothing calls this directly
no test coverage detected