@@ -132,33 +132,44 @@ class Famix2Famix extends WorkflowComponentWithConfig {
132132 val class = createClass(node)
133133 if (parent. hasLabel(packageLabel)) {
134134 val parentNamespace = namespaces. get(parent. id)
135- println(" parentID: " + parent. id)
136- println(" namespace: " + parentNamespace)
137- println(" nodeID: " + node. id)
138- println(" Elementliste: " + (classes. size + namespaces. size))
139- println(" FAMIXElemente: " + famixDocument. elements. size)
140135 var ref = famixFactory. createIntegerReference
141136 ref. ref = parentNamespace
142137 class. container = ref
143138 classes. put(node. id, class)
144139 famixDocument. elements + = class
145140 }
146141 if (parent. hasLabel(classLabel)) {
147- classes. put(node. id, class)
148142 val parentClass = classes. get(parent. id)
149143 var ref = famixFactory. createIntegerReference
150144 ref. ref = parentClass
151145 class. container = ref
152- println(" parentID: " + parent. id)
153- println(" parentClass: " + parentClass)
154- println(" nodeID: " + node. id)
155- println(" Elementliste: " + (classes. size + namespaces. size))
156- println(" FAMIXElemente: " + famixDocument. elements. size)
157146 famixDocument. elements + = class
147+ classes. put(node. id, class)
158148 }
159149 }
160150 case " Method" : {
161- // do method stuff
151+ val method = createMethod(node)
152+ val parentClass = classes. get(parent. id)
153+ var ref = famixFactory. createIntegerReference
154+ ref. ref = parentClass
155+ method. parentType = ref
156+ val fileAnchor = famixFactory. createFAMIXFileAnchor
157+ if (node. hasProperty(" firstLineNumber" )) {
158+ val firstLineNumber = node. getProperty(" firstLineNumber" ) as Long
159+ fileAnchor. startline = firstLineNumber. intValue
160+ }
161+ if (node. hasProperty(" lastLineNumber" )) {
162+ val lastLineNumber = node. getProperty(" lastLineNumber" ) as Long
163+ fileAnchor. endline = lastLineNumber. intValue
164+ }
165+ fileAnchor. filename = parent. getProperty(" sourceFileName" ) as String
166+ var anchorRef = famixFactory. createIntegerReference
167+ anchorRef. ref = method
168+ var methodRef = famixFactory. createIntegerReference
169+ methodRef. ref = fileAnchor
170+ fileAnchor. element = methodRef
171+ method. sourceAnchor = anchorRef
172+ famixDocument. elements + = method
162173 }
163174 }
164175 ]
@@ -170,8 +181,6 @@ class Famix2Famix extends WorkflowComponentWithConfig {
170181 } finally {
171182 tx. close
172183 }
173- println(" Elementliste: " + (classes. size + namespaces. size))
174- println(" FAMIXElemente: " + famixDocument. elements. size)
175184 ctx. set(" famix" , famixRoot)
176185 val resource = new ResourceImpl ()
177186 resource. contents + = famixRoot
@@ -670,35 +679,53 @@ class Famix2Famix extends WorkflowComponentWithConfig {
670679
671680 def createNamespace (Node node ) {
672681 val namespace = famixFactory. createFAMIXNamespace
673- val name = node. getProperty(" name" ) as String
674- val fqn = node. getProperty(" fqn" ) as String
675682 val id = node. getId. toString
676- namespace. value = name
677- namespace. fqn = fqn
678683 namespace. name = id
679684 namespace. id = id
680- print( " ID von " + namespace. value + " : " )
681- println( namespace. id)
685+ namespace. value = node . getProperty( " name " ) as String
686+ namespace. fqn = node . getProperty( " fqn " ) as String
682687 return namespace
683688 }
684689
685690 def createClass (Node node ) {
686691 val class = famixFactory. createFAMIXClass
687- if (node. hasProperty(" name" )) {
688- val value = node. getProperty(" name" ) as String
689- class. value = value
690- }
691- if (node. hasProperty(" fqn" )) {
692- val fqn = node. getProperty(" fqn" ) as String
693- class. fqn = fqn
694- }
695-
696- if (node. hasProperty(" md5" )) {
697- val id = node. getProperty(" md5" ) as String
698- class. id = id
699- }
700- val name = node. getId. toString
701- class. name = name
702- return class
692+ class. name = node. getId. toString
693+ if (node. hasProperty(" name" )) {
694+ class. value = node. getProperty(" name" ) as String
695+ }
696+ if (node. hasProperty(" fqn" )) {
697+ class. fqn = node. getProperty(" fqn" ) as String
698+ }
699+ if (node. hasProperty(" md5" )) {
700+ class. id = node. getProperty(" md5" ) as String
701+ }
702+ val anchorRef = famixFactory. createIntegerReference
703+ val classRef = famixFactory. createIntegerReference
704+ val fileAnchor = famixFactory. createFAMIXFileAnchor
705+ fileAnchor. filename = node. getProperty(" sourceFileName" ) as String
706+ anchorRef. ref = class
707+ classRef. ref = fileAnchor
708+ class. type = anchorRef
709+ fileAnchor. element = classRef
710+ return class
711+ }
712+
713+ def createMethod (Node node ) {
714+ val method = famixFactory. createFAMIXMethod
715+ method. name = node. getId. toString
716+ if (node. hasProperty(" name" )) {
717+ method. value = node. getProperty(" name" ) as String
718+ }
719+ if (node. hasProperty(" cyclomaticComplexity" )) {
720+ val cyclomaticComplexity = node. getProperty(" cyclomaticComplexity" ) as Long
721+ method. cyclomaticComplexity = cyclomaticComplexity. intValue
722+ }
723+
724+ if (node. hasProperty(" effectiveLineCount" )) {
725+ val numberOfStatements = node. getProperty(" effectiveLineCount" ) as Long
726+ method. numberOfStatements = numberOfStatements. intValue
727+ }
728+ method. signature = node. getProperty(" signature" ) as String
729+ return method
703730 }
704731}
0 commit comments