io.shiftleft.codepropertygraph.generated.nodes.Member.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of codepropertygraph-domain-classes_3 Show documentation
Show all versions of codepropertygraph-domain-classes_3 Show documentation
codepropertygraph-domain-classes
package io.shiftleft.codepropertygraph.generated.nodes
import io.shiftleft.codepropertygraph.generated.language.*
import scala.collection.immutable.{IndexedSeq, ArraySeq}
import scala.collection.mutable
/** Node base type for compiletime-only checks to improve type safety. EMT stands for: "erased marker trait", i.e. it is
* erased at runtime
*/
trait MemberEMT
extends AnyRef
with AstNodeEMT
with DeclarationEMT
with HasAstParentFullNameEMT
with HasAstParentTypeEMT
with HasDynamicTypeHintFullNameEMT
with HasPossibleTypesEMT
with HasTypeFullNameEMT
trait MemberBase extends AbstractNode with AstNodeBase with DeclarationBase with StaticType[MemberEMT] {
override def propertiesMap: java.util.Map[String, Any] = {
import io.shiftleft.codepropertygraph.generated.accessors.languagebootstrap.*
val res = new java.util.HashMap[String, Any]()
if (("": String) != this.astParentFullName) res.put("AST_PARENT_FULL_NAME", this.astParentFullName)
if (("": String) != this.astParentType) res.put("AST_PARENT_TYPE", this.astParentType)
if (("": String) != this.code) res.put("CODE", this.code)
this.columnNumber.foreach { p => res.put("COLUMN_NUMBER", p) }
val tmpDynamicTypeHintFullName = this.dynamicTypeHintFullName;
if (tmpDynamicTypeHintFullName.nonEmpty) res.put("DYNAMIC_TYPE_HINT_FULL_NAME", tmpDynamicTypeHintFullName)
this.lineNumber.foreach { p => res.put("LINE_NUMBER", p) }
if (("": String) != this.name) res.put("NAME", this.name)
if ((-1: Int) != this.order) res.put("ORDER", this.order)
val tmpPossibleTypes = this.possibleTypes;
if (tmpPossibleTypes.nonEmpty) res.put("POSSIBLE_TYPES", tmpPossibleTypes)
if (("": String) != this.typeFullName) res.put("TYPE_FULL_NAME", this.typeFullName)
res
}
}
object Member {
val Label = "MEMBER"
object PropertyNames {
/** This field holds the FULL_NAME of the AST parent of an entity. */
val AstParentFullName = "AST_PARENT_FULL_NAME"
/** The type of the AST parent. Since this is only used in some parts of the graph, the list does not include all
* possible parents by intention. Possible parents: METHOD, TYPE_DECL, NAMESPACE_BLOCK.
*/
val AstParentType = "AST_PARENT_TYPE"
/** This field holds the code snippet that the node represents. */
val Code = "CODE"
/** This optional fields provides the column number of the program construct represented by the node.
*/
val ColumnNumber = "COLUMN_NUMBER"
/** Type hint for the dynamic type. These are observed to be verifiable at runtime. */
val DynamicTypeHintFullName = "DYNAMIC_TYPE_HINT_FULL_NAME"
/** This optional field provides the line number of the program construct represented by the node.
*/
val LineNumber = "LINE_NUMBER"
/** Name of represented object, e.g., method name (e.g. "run") */
val Name = "NAME"
/** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order
* of 0.
*/
val Order = "ORDER"
/** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are
* correct. This property is used to capture observations between node interactions during a 'may-analysis'.
*/
val PossibleTypes = "POSSIBLE_TYPES"
/** This field contains the fully-qualified static type name of the program construct represented by a node. It is
* the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type
* cannot be determined, this field should be set to the empty string.
*/
val TypeFullName = "TYPE_FULL_NAME"
}
object Properties {
/** This field holds the FULL_NAME of the AST parent of an entity. */
val AstParentFullName =
flatgraph.SinglePropertyKey[String](kind = 3, name = "AST_PARENT_FULL_NAME", default = "")
/** The type of the AST parent. Since this is only used in some parts of the graph, the list does not include all
* possible parents by intention. Possible parents: METHOD, TYPE_DECL, NAMESPACE_BLOCK.
*/
val AstParentType = flatgraph.SinglePropertyKey[String](kind = 4, name = "AST_PARENT_TYPE", default = "")
/** This field holds the code snippet that the node represents. */
val Code = flatgraph.SinglePropertyKey[String](kind = 10, name = "CODE", default = "")
/** This optional fields provides the column number of the program construct represented by the node.
*/
val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 11, name = "COLUMN_NUMBER")
/** Type hint for the dynamic type. These are observed to be verifiable at runtime. */
val DynamicTypeHintFullName = flatgraph.MultiPropertyKey[String](kind = 18, name = "DYNAMIC_TYPE_HINT_FULL_NAME")
/** This optional field provides the line number of the program construct represented by the node.
*/
val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER")
/** Name of represented object, e.g., method name (e.g. "run") */
val Name = flatgraph.SinglePropertyKey[String](kind = 39, name = "NAME", default = "")
/** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order
* of 0.
*/
val Order = flatgraph.SinglePropertyKey[Int](kind = 43, name = "ORDER", default = -1: Int)
/** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are
* correct. This property is used to capture observations between node interactions during a 'may-analysis'.
*/
val PossibleTypes = flatgraph.MultiPropertyKey[String](kind = 47, name = "POSSIBLE_TYPES")
/** This field contains the fully-qualified static type name of the program construct represented by a node. It is
* the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type
* cannot be determined, this field should be set to the empty string.
*/
val TypeFullName = flatgraph.SinglePropertyKey[String](kind = 52, name = "TYPE_FULL_NAME", default = "")
}
object PropertyDefaults {
val AstParentFullName = ""
val AstParentType = ""
val Code = ""
val Name = ""
val Order = -1: Int
val TypeFullName = ""
}
}
class Member(graph_4762: flatgraph.Graph, seq_4762: Int)
extends StoredNode(graph_4762, 24.toShort, seq_4762)
with MemberBase
with AstNode
with Declaration
with StaticType[MemberEMT] {
override def productElementName(n: Int): String =
n match {
case 0 => "astParentFullName"
case 1 => "astParentType"
case 2 => "code"
case 3 => "columnNumber"
case 4 => "dynamicTypeHintFullName"
case 5 => "lineNumber"
case 6 => "name"
case 7 => "order"
case 8 => "possibleTypes"
case 9 => "typeFullName"
case _ => ""
}
override def productElement(n: Int): Any =
n match {
case 0 => this.astParentFullName
case 1 => this.astParentType
case 2 => this.code
case 3 => this.columnNumber
case 4 => this.dynamicTypeHintFullName
case 5 => this.lineNumber
case 6 => this.name
case 7 => this.order
case 8 => this.possibleTypes
case 9 => this.typeFullName
case _ => null
}
override def productPrefix = "Member"
override def productArity = 10
override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Member]
}
object NewMember {
def apply(): NewMember = new NewMember
private val outNeighbors: Map[String, Set[String]] = Map(
"ALIAS_OF" -> Set("TYPE"),
"ARGUMENT" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"AST" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"BINDS" -> Set("BINDING"),
"BINDS_TO" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"CALL" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"CAPTURE" -> Set("CLOSURE_BINDING"),
"CAPTURED_BY" -> Set("CLOSURE_BINDING"),
"CDG" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"CFG" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"CONDITION" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"CONTAINS" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"DOMINATE" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"EVAL_TYPE" -> Set("TYPE"),
"IMPORTS" -> Set("DEPENDENCY"),
"INHERITS_FROM" -> Set("TYPE"),
"IS_CALL_FOR_IMPORT" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"PARAMETER_LINK" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"POST_DOMINATE" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"REACHING_DEF" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"RECEIVER" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"REF" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"SOURCE_FILE" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"TAGGED_BY" -> Set("TAG")
)
private val inNeighbors: Map[String, Set[String]] = Map(
"ARGUMENT" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"AST" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"BINDS_TO" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"CALL" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"CDG" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"CFG" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"CONDITION" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"CONTAINS" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"DOMINATE" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"IS_CALL_FOR_IMPORT" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"PARAMETER_LINK" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"POST_DOMINATE" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"REACHING_DEF" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"RECEIVER" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"REF" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BINDING",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"CLOSURE_BINDING",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
),
"SOURCE_FILE" -> Set(
"ANNOTATION",
"ANNOTATION_LITERAL",
"ANNOTATION_PARAMETER",
"ANNOTATION_PARAMETER_ASSIGN",
"ARRAY_INITIALIZER",
"BLOCK",
"CALL",
"CALL_REPR",
"CFG_NODE",
"COMMENT",
"CONTROL_STRUCTURE",
"EXPRESSION",
"FIELD_IDENTIFIER",
"FILE",
"IDENTIFIER",
"IMPORT",
"JUMP_LABEL",
"JUMP_TARGET",
"LITERAL",
"LOCAL",
"MEMBER",
"METHOD",
"METHOD_PARAMETER_IN",
"METHOD_PARAMETER_OUT",
"METHOD_REF",
"METHOD_RETURN",
"MODIFIER",
"NAMESPACE",
"NAMESPACE_BLOCK",
"RETURN",
"TEMPLATE_DOM",
"TYPE_ARGUMENT",
"TYPE_DECL",
"TYPE_PARAMETER",
"TYPE_REF",
"UNKNOWN"
)
)
object InsertionHelpers {
object NewNodeInserter_Member_astParentFullName extends flatgraph.NewNodePropertyInsertionHelper {
override def insertNewNodeProperties(
newNodes: mutable.ArrayBuffer[flatgraph.DNode],
dst: AnyRef,
offsets: Array[Int]
): Unit = {
if (newNodes.isEmpty) return
val dstCast = dst.asInstanceOf[Array[String]]
val seq = newNodes.head.storedRef.get.seq()
var offset = offsets(seq)
var idx = 0
while (idx < newNodes.length) {
val nn = newNodes(idx)
nn match {
case generated: NewMember =>
dstCast(offset) = generated.astParentFullName
offset += 1
case _ =>
}
assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check")
idx += 1
offsets(idx + seq) = offset
}
}
}
object NewNodeInserter_Member_astParentType extends flatgraph.NewNodePropertyInsertionHelper {
override def insertNewNodeProperties(
newNodes: mutable.ArrayBuffer[flatgraph.DNode],
dst: AnyRef,
offsets: Array[Int]
): Unit = {
if (newNodes.isEmpty) return
val dstCast = dst.asInstanceOf[Array[String]]
val seq = newNodes.head.storedRef.get.seq()
var offset = offsets(seq)
var idx = 0
while (idx < newNodes.length) {
val nn = newNodes(idx)
nn match {
case generated: NewMember =>
dstCast(offset) = generated.astParentType
offset += 1
case _ =>
}
assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check")
idx += 1
offsets(idx + seq) = offset
}
}
}
object NewNodeInserter_Member_code extends flatgraph.NewNodePropertyInsertionHelper {
override def insertNewNodeProperties(
newNodes: mutable.ArrayBuffer[flatgraph.DNode],
dst: AnyRef,
offsets: Array[Int]
): Unit = {
if (newNodes.isEmpty) return
val dstCast = dst.asInstanceOf[Array[String]]
val seq = newNodes.head.storedRef.get.seq()
var offset = offsets(seq)
var idx = 0
while (idx < newNodes.length) {
val nn = newNodes(idx)
nn match {
case generated: NewMember =>
dstCast(offset) = generated.code
offset += 1
case _ =>
}
assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check")
idx += 1
offsets(idx + seq) = offset
}
}
}
object NewNodeInserter_Member_columnNumber extends flatgraph.NewNodePropertyInsertionHelper {
override def insertNewNodeProperties(
newNodes: mutable.ArrayBuffer[flatgraph.DNode],
dst: AnyRef,
offsets: Array[Int]
): Unit = {
if (newNodes.isEmpty) return
val dstCast = dst.asInstanceOf[Array[Int]]
val seq = newNodes.head.storedRef.get.seq()
var offset = offsets(seq)
var idx = 0
while (idx < newNodes.length) {
val nn = newNodes(idx)
nn match {
case generated: NewMember =>
generated.columnNumber match {
case Some(item) =>
dstCast(offset) = item
offset += 1
case _ =>
}
case _ =>
}
assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check")
idx += 1
offsets(idx + seq) = offset
}
}
}
object NewNodeInserter_Member_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper {
override def insertNewNodeProperties(
newNodes: mutable.ArrayBuffer[flatgraph.DNode],
dst: AnyRef,
offsets: Array[Int]
): Unit = {
if (newNodes.isEmpty) return
val dstCast = dst.asInstanceOf[Array[String]]
val seq = newNodes.head.storedRef.get.seq()
var offset = offsets(seq)
var idx = 0
while (idx < newNodes.length) {
val nn = newNodes(idx)
nn match {
case generated: NewMember =>
for (item <- generated.dynamicTypeHintFullName) {
dstCast(offset) = item
offset += 1
}
case _ =>
}
assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check")
idx += 1
offsets(idx + seq) = offset
}
}
}
object NewNodeInserter_Member_lineNumber extends flatgraph.NewNodePropertyInsertionHelper {
override def insertNewNodeProperties(
newNodes: mutable.ArrayBuffer[flatgraph.DNode],
dst: AnyRef,
offsets: Array[Int]
): Unit = {
if (newNodes.isEmpty) return
val dstCast = dst.asInstanceOf[Array[Int]]
val seq = newNodes.head.storedRef.get.seq()
var offset = offsets(seq)
var idx = 0
while (idx < newNodes.length) {
val nn = newNodes(idx)
nn match {
case generated: NewMember =>
generated.lineNumber match {
case Some(item) =>
dstCast(offset) = item
offset += 1
case _ =>
}
case _ =>
}
assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check")
idx += 1
offsets(idx + seq) = offset
}
}
}
object NewNodeInserter_Member_name extends flatgraph.NewNodePropertyInsertionHelper {
override def insertNewNodeProperties(
newNodes: mutable.ArrayBuffer[flatgraph.DNode],
dst: AnyRef,
offsets: Array[Int]
): Unit = {
if (newNodes.isEmpty) return
val dstCast = dst.asInstanceOf[Array[String]]
val seq = newNodes.head.storedRef.get.seq()
var offset = offsets(seq)
var idx = 0
while (idx < newNodes.length) {
val nn = newNodes(idx)
nn match {
case generated: NewMember =>
dstCast(offset) = generated.name
offset += 1
case _ =>
}
assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check")
idx += 1
offsets(idx + seq) = offset
}
}
}
object NewNodeInserter_Member_order extends flatgraph.NewNodePropertyInsertionHelper {
override def insertNewNodeProperties(
newNodes: mutable.ArrayBuffer[flatgraph.DNode],
dst: AnyRef,
offsets: Array[Int]
): Unit = {
if (newNodes.isEmpty) return
val dstCast = dst.asInstanceOf[Array[Int]]
val seq = newNodes.head.storedRef.get.seq()
var offset = offsets(seq)
var idx = 0
while (idx < newNodes.length) {
val nn = newNodes(idx)
nn match {
case generated: NewMember =>
dstCast(offset) = generated.order
offset += 1
case _ =>
}
assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check")
idx += 1
offsets(idx + seq) = offset
}
}
}
object NewNodeInserter_Member_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper {
override def insertNewNodeProperties(
newNodes: mutable.ArrayBuffer[flatgraph.DNode],
dst: AnyRef,
offsets: Array[Int]
): Unit = {
if (newNodes.isEmpty) return
val dstCast = dst.asInstanceOf[Array[String]]
val seq = newNodes.head.storedRef.get.seq()
var offset = offsets(seq)
var idx = 0
while (idx < newNodes.length) {
val nn = newNodes(idx)
nn match {
case generated: NewMember =>
for (item <- generated.possibleTypes) {
dstCast(offset) = item
offset += 1
}
case _ =>
}
assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check")
idx += 1
offsets(idx + seq) = offset
}
}
}
object NewNodeInserter_Member_typeFullName extends flatgraph.NewNodePropertyInsertionHelper {
override def insertNewNodeProperties(
newNodes: mutable.ArrayBuffer[flatgraph.DNode],
dst: AnyRef,
offsets: Array[Int]
): Unit = {
if (newNodes.isEmpty) return
val dstCast = dst.asInstanceOf[Array[String]]
val seq = newNodes.head.storedRef.get.seq()
var offset = offsets(seq)
var idx = 0
while (idx < newNodes.length) {
val nn = newNodes(idx)
nn match {
case generated: NewMember =>
dstCast(offset) = generated.typeFullName
offset += 1
case _ =>
}
assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check")
idx += 1
offsets(idx + seq) = offset
}
}
}
}
}
class NewMember extends NewNode(24.toShort) with MemberBase with AstNodeNew with DeclarationNew {
override type StoredNodeType = Member
override def label: String = "MEMBER"
override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = {
NewMember.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label)
}
override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = {
NewMember.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label)
}
var astParentFullName: String = "": String
var astParentType: String = "": String
var code: String = "": String
var columnNumber: Option[Int] = None
var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty
var lineNumber: Option[Int] = None
var name: String = "": String
var order: Int = -1: Int
var possibleTypes: IndexedSeq[String] = ArraySeq.empty
var typeFullName: String = "": String
def astParentFullName(value: String): this.type = { this.astParentFullName = value; this }
def astParentType(value: String): this.type = { this.astParentType = value; this }
def code(value: String): this.type = { this.code = value; this }
def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this }
def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this }
def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = {
this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this
}
def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this }
def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this }
def name(value: String): this.type = { this.name = value; this }
def order(value: Int): this.type = { this.order = value; this }
def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this }
def typeFullName(value: String): this.type = { this.typeFullName = value; this }
override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = {
interface.countProperty(this, 3, 1)
interface.countProperty(this, 4, 1)
interface.countProperty(this, 10, 1)
interface.countProperty(this, 11, columnNumber.size)
interface.countProperty(this, 18, dynamicTypeHintFullName.size)
interface.countProperty(this, 34, lineNumber.size)
interface.countProperty(this, 39, 1)
interface.countProperty(this, 43, 1)
interface.countProperty(this, 47, possibleTypes.size)
interface.countProperty(this, 52, 1)
}
override def copy: this.type = {
val newInstance = new NewMember
newInstance.astParentFullName = this.astParentFullName
newInstance.astParentType = this.astParentType
newInstance.code = this.code
newInstance.columnNumber = this.columnNumber
newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName
newInstance.lineNumber = this.lineNumber
newInstance.name = this.name
newInstance.order = this.order
newInstance.possibleTypes = this.possibleTypes
newInstance.typeFullName = this.typeFullName
newInstance.asInstanceOf[this.type]
}
override def productElementName(n: Int): String =
n match {
case 0 => "astParentFullName"
case 1 => "astParentType"
case 2 => "code"
case 3 => "columnNumber"
case 4 => "dynamicTypeHintFullName"
case 5 => "lineNumber"
case 6 => "name"
case 7 => "order"
case 8 => "possibleTypes"
case 9 => "typeFullName"
case _ => ""
}
override def productElement(n: Int): Any =
n match {
case 0 => this.astParentFullName
case 1 => this.astParentType
case 2 => this.code
case 3 => this.columnNumber
case 4 => this.dynamicTypeHintFullName
case 5 => this.lineNumber
case 6 => this.name
case 7 => this.order
case 8 => this.possibleTypes
case 9 => this.typeFullName
case _ => null
}
override def productPrefix = "NewMember"
override def productArity = 10
override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMember]
}