File tree Expand file tree Collapse file tree
semanticcpg/src/main/scala/io/shiftleft/semanticcpg/language Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -113,4 +113,11 @@ class NodeSteps[NodeType <: nodes.StoredNode](val traversal: Traversal[NodeType]
113113 taggedNode.tagList.l
114114 }.l
115115
116+ @ Doc (" Tags attached to this node" )
117+ def tag : Traversal [nodes.Tag ] = {
118+ traversal.flatMap { node =>
119+ node.tag
120+ }
121+ }
122+
116123}
Original file line number Diff line number Diff line change 1+ package io .shiftleft .semanticcpg .language .nodemethods
2+
3+ import io .shiftleft .codepropertygraph .generated .nodes
4+ import overflowdb .traversal .Traversal
5+ import scala .jdk .CollectionConverters ._
6+
7+ class StoredNodeMethods (val node : nodes.StoredNode ) extends AnyVal {
8+ def tag : Traversal [nodes.Tag ] = {
9+ node._taggedByOut().asScala.map(_.asInstanceOf [nodes.Tag ]).to(Traversal )
10+ }
11+ }
Original file line number Diff line number Diff line change @@ -41,6 +41,7 @@ package object language extends operatorextension.Implicits {
4141
4242 implicit def cfgNodeToAstNode (node : nodes.CfgNode ): AstNodeMethods = new AstNodeMethods (node)
4343 implicit def toExtendedNode (node : nodes.CpgNode ): NodeMethods = new NodeMethods (node)
44+ implicit def toExtendedStoredNode (node : nodes.StoredNode ): StoredNodeMethods = new StoredNodeMethods (node)
4445 implicit def withMethodMethodsQp (node : nodes.WithinMethod ): WithinMethodMethods = new WithinMethodMethods (node)
4546 implicit def toAstNodeMethods (node : nodes.AstNode ): AstNodeMethods = new AstNodeMethods (node)
4647 implicit def toCfgNodeMethods (node : nodes.CfgNode ): CfgNodeMethods = new CfgNodeMethods (node)
@@ -78,15 +79,6 @@ package object language extends operatorextension.Implicits {
7879 implicit def toMethodRef (trav : Traversal [nodes.MethodRef ]): MethodRef = new MethodRef (trav)
7980 implicit def toBinding (trav : Traversal [nodes.Binding ]): Binding = new Binding (trav)
8081
81- implicit class NodeStepsExt (val traversal : Traversal [_ <: StoredNode ]) extends AnyVal {
82-
83- /**
84- Traverse to tags of nodes in enhanced graph
85- */
86- def tag : Traversal [nodes.Tag ] =
87- traversal.out(EdgeTypes .TAGGED_BY ).cast[nodes.Tag ]
88- }
89-
9082 // Call graph extension
9183 implicit def toMethodForCallGraph (trav : Traversal [nodes.Method ]): Method = new Method (trav)
9284 implicit def toCallForCallGraph (trav : Traversal [nodes.Call ]): Call = new Call (trav)
You can’t perform that action at this time.
0 commit comments