@@ -8,6 +8,10 @@ import com.legacycode.eureka.dex.Child
88import com.legacycode.eureka.dex.Node
99
1010class D3GraphBuilder : AdjacencyList .GraphBuilder <String > {
11+ companion object {
12+ private const val DEFAULT_PACKAGE_NAME = " "
13+ }
14+
1115 private val objectMapper = ObjectMapper ()
1216 private val rootNode = objectMapper.createObjectNode()
1317 private val linksArray = objectMapper.createArrayNode()
@@ -37,15 +41,25 @@ class D3GraphBuilder : AdjacencyList.GraphBuilder<String> {
3741
3842 override fun afterTraversal () {
3943 val nodesArray = objectMapper.createArrayNode()
40- allNodes.onEach {
41- val node = objectMapper.createObjectNode().apply {
42- put(" id" , it )
43- put(" group" , it.substring( 0 , it.lastIndexOf( ' . ' ) ))
44+ allNodes.onEach { fqn ->
45+ val objectNode = objectMapper.createObjectNode().apply {
46+ put(" id" , fqn )
47+ put(" group" , getPackageName(fqn ))
4448 }
45- nodesArray.add(node )
49+ nodesArray.add(objectNode )
4650 }
4751
4852 rootNode.set<ArrayNode >(" nodes" , nodesArray)
4953 rootNode.set<ArrayNode >(" links" , linksArray)
5054 }
55+
56+ private fun getPackageName (fqn : String ): String {
57+ val isInDefaultPackage = ! fqn.contains(" ." )
58+ val packageName = if (isInDefaultPackage) {
59+ DEFAULT_PACKAGE_NAME
60+ } else {
61+ fqn.substring(0 , fqn.lastIndexOf(' .' ))
62+ }
63+ return packageName
64+ }
5165}
0 commit comments