MCPcopy Create free account
hub / github.com/davidkingzyb/SCAST / traverseClass

Function traverseClass

js/SCAST.js:695–747  ·  view source on GitHub ↗
(node,file)

Source from the content-addressed store, hash-verified

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

Callers 1

analysisMermaidFunction · 0.70

Calls 2

traversePropertyFunction · 0.70
traverseMethodFunction · 0.70

Tested by

no test coverage detected