Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support for adding parent to member node #1736

Merged
merged 1 commit into from
Oct 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ object Member {
val Label = "MEMBER"

object PropertyNames {
val AstParentFullName = "AST_PARENT_FULL_NAME"
val AstParentType = "AST_PARENT_TYPE"
val Code = "CODE"
val ColumnNumber = "COLUMN_NUMBER"
val DynamicTypeHintFullName = "DYNAMIC_TYPE_HINT_FULL_NAME"
Expand All @@ -17,12 +19,24 @@ object Member {
val Order = "ORDER"
val PossibleTypes = "POSSIBLE_TYPES"
val TypeFullName = "TYPE_FULL_NAME"
val all: Set[String] =
Set(Code, ColumnNumber, DynamicTypeHintFullName, LineNumber, Name, Order, PossibleTypes, TypeFullName)
val all: Set[String] = Set(
AstParentFullName,
AstParentType,
Code,
ColumnNumber,
DynamicTypeHintFullName,
LineNumber,
Name,
Order,
PossibleTypes,
TypeFullName
)
val allAsJava: java.util.Set[String] = all.asJava
}

object Properties {
val AstParentFullName = new overflowdb.PropertyKey[String]("AST_PARENT_FULL_NAME")
val AstParentType = new overflowdb.PropertyKey[String]("AST_PARENT_TYPE")
val Code = new overflowdb.PropertyKey[String]("CODE")
val ColumnNumber = new overflowdb.PropertyKey[Integer]("COLUMN_NUMBER")
val DynamicTypeHintFullName = new overflowdb.PropertyKey[IndexedSeq[String]]("DYNAMIC_TYPE_HINT_FULL_NAME")
Expand All @@ -35,10 +49,12 @@ object Member {
}

object PropertyDefaults {
val Code = "<empty>"
val Name = "<empty>"
val Order = -1: Int
val TypeFullName = "<empty>"
val AstParentFullName = "<empty>"
val AstParentType = "<empty>"
val Code = "<empty>"
val Name = "<empty>"
val Order = -1: Int
val TypeFullName = "<empty>"
}

val layoutInformation = new NodeLayoutInformation(
Expand Down Expand Up @@ -73,6 +89,8 @@ object Member {
trait MemberBase extends AbstractNode with AstNodeBase with DeclarationBase {
def asStored: StoredNode = this.asInstanceOf[StoredNode]

def astParentFullName: String
def astParentType: String
def code: String
def columnNumber: Option[Integer]
def dynamicTypeHintFullName: IndexedSeq[String]
Expand All @@ -90,6 +108,8 @@ class Member(graph_4762: Graph, id_4762: Long /*cf https://github.com/scala/bug/
with StoredNode
with AstNode
with Declaration {
override def astParentFullName: String = get().astParentFullName
override def astParentType: String = get().astParentType
override def code: String = get().code
override def columnNumber: Option[Integer] = get().columnNumber
override def dynamicTypeHintFullName: IndexedSeq[String] = get().dynamicTypeHintFullName
Expand All @@ -100,11 +120,13 @@ class Member(graph_4762: Graph, id_4762: Long /*cf https://github.com/scala/bug/
override def typeFullName: String = get().typeFullName
override def propertyDefaultValue(propertyKey: String) =
propertyKey match {
case "CODE" => Member.PropertyDefaults.Code
case "NAME" => Member.PropertyDefaults.Name
case "ORDER" => Member.PropertyDefaults.Order
case "TYPE_FULL_NAME" => Member.PropertyDefaults.TypeFullName
case _ => super.propertyDefaultValue(propertyKey)
case "AST_PARENT_FULL_NAME" => Member.PropertyDefaults.AstParentFullName
case "AST_PARENT_TYPE" => Member.PropertyDefaults.AstParentType
case "CODE" => Member.PropertyDefaults.Code
case "NAME" => Member.PropertyDefaults.Name
case "ORDER" => Member.PropertyDefaults.Order
case "TYPE_FULL_NAME" => Member.PropertyDefaults.TypeFullName
case _ => super.propertyDefaultValue(propertyKey)
}

def astOut: Iterator[AstNode] = get().astOut
Expand Down Expand Up @@ -172,38 +194,46 @@ class Member(graph_4762: Graph, id_4762: Long /*cf https://github.com/scala/bug/

override def productElementName(n: Int): String =
n match {
case 0 => "id"
case 1 => "code"
case 2 => "columnNumber"
case 3 => "dynamicTypeHintFullName"
case 4 => "lineNumber"
case 5 => "name"
case 6 => "order"
case 7 => "possibleTypes"
case 8 => "typeFullName"
case 0 => "id"
case 1 => "astParentFullName"
case 2 => "astParentType"
case 3 => "code"
case 4 => "columnNumber"
case 5 => "dynamicTypeHintFullName"
case 6 => "lineNumber"
case 7 => "name"
case 8 => "order"
case 9 => "possibleTypes"
case 10 => "typeFullName"
}

override def productElement(n: Int): Any =
n match {
case 0 => id
case 1 => code
case 2 => columnNumber
case 3 => dynamicTypeHintFullName
case 4 => lineNumber
case 5 => name
case 6 => order
case 7 => possibleTypes
case 8 => typeFullName
case 0 => id
case 1 => astParentFullName
case 2 => astParentType
case 3 => code
case 4 => columnNumber
case 5 => dynamicTypeHintFullName
case 6 => lineNumber
case 7 => name
case 8 => order
case 9 => possibleTypes
case 10 => typeFullName
}

override def productPrefix = "Member"
override def productArity = 9
override def productArity = 11
}

class MemberDb(ref: NodeRef[NodeDb]) extends NodeDb(ref) with StoredNode with AstNode with Declaration with MemberBase {

override def layoutInformation: NodeLayoutInformation = Member.layoutInformation

private var _astParentFullName: String = Member.PropertyDefaults.AstParentFullName
def astParentFullName: String = _astParentFullName
private var _astParentType: String = Member.PropertyDefaults.AstParentType
def astParentType: String = _astParentType
private var _code: String = Member.PropertyDefaults.Code
def code: String = _code
private var _columnNumber: Integer = null
Expand All @@ -224,6 +254,8 @@ class MemberDb(ref: NodeRef[NodeDb]) extends NodeDb(ref) with StoredNode with As
/** faster than the default implementation */
override def propertiesMap: java.util.Map[String, Any] = {
val properties = new java.util.HashMap[String, Any]
properties.put("AST_PARENT_FULL_NAME", astParentFullName)
properties.put("AST_PARENT_TYPE", astParentType)
properties.put("CODE", code)
columnNumber.map { value => properties.put("COLUMN_NUMBER", value) }
if (this._dynamicTypeHintFullName != null && this._dynamicTypeHintFullName.nonEmpty) {
Expand All @@ -241,6 +273,8 @@ class MemberDb(ref: NodeRef[NodeDb]) extends NodeDb(ref) with StoredNode with As
/** faster than the default implementation */
override def propertiesMapForStorage: java.util.Map[String, Any] = {
val properties = new java.util.HashMap[String, Any]
if (!(("<empty>") == astParentFullName)) { properties.put("AST_PARENT_FULL_NAME", astParentFullName) }
if (!(("<empty>") == astParentType)) { properties.put("AST_PARENT_TYPE", astParentType) }
if (!(("<empty>") == code)) { properties.put("CODE", code) }
columnNumber.map { value => properties.put("COLUMN_NUMBER", value) }
if (this._dynamicTypeHintFullName != null && this._dynamicTypeHintFullName.nonEmpty) {
Expand Down Expand Up @@ -291,37 +325,43 @@ class MemberDb(ref: NodeRef[NodeDb]) extends NodeDb(ref) with StoredNode with As

override def productElementName(n: Int): String =
n match {
case 0 => "id"
case 1 => "code"
case 2 => "columnNumber"
case 3 => "dynamicTypeHintFullName"
case 4 => "lineNumber"
case 5 => "name"
case 6 => "order"
case 7 => "possibleTypes"
case 8 => "typeFullName"
case 0 => "id"
case 1 => "astParentFullName"
case 2 => "astParentType"
case 3 => "code"
case 4 => "columnNumber"
case 5 => "dynamicTypeHintFullName"
case 6 => "lineNumber"
case 7 => "name"
case 8 => "order"
case 9 => "possibleTypes"
case 10 => "typeFullName"
}

override def productElement(n: Int): Any =
n match {
case 0 => id
case 1 => code
case 2 => columnNumber
case 3 => dynamicTypeHintFullName
case 4 => lineNumber
case 5 => name
case 6 => order
case 7 => possibleTypes
case 8 => typeFullName
case 0 => id
case 1 => astParentFullName
case 2 => astParentType
case 3 => code
case 4 => columnNumber
case 5 => dynamicTypeHintFullName
case 6 => lineNumber
case 7 => name
case 8 => order
case 9 => possibleTypes
case 10 => typeFullName
}

override def productPrefix = "Member"
override def productArity = 9
override def productArity = 11

override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[MemberDb]

override def property(key: String): Any = {
key match {
case "AST_PARENT_FULL_NAME" => this._astParentFullName
case "AST_PARENT_TYPE" => this._astParentType
case "CODE" => this._code
case "COLUMN_NUMBER" => this._columnNumber
case "DYNAMIC_TYPE_HINT_FULL_NAME" => this._dynamicTypeHintFullName
Expand All @@ -337,8 +377,10 @@ class MemberDb(ref: NodeRef[NodeDb]) extends NodeDb(ref) with StoredNode with As

override protected def updateSpecificProperty(key: String, value: Object): Unit = {
key match {
case "CODE" => this._code = value.asInstanceOf[String]
case "COLUMN_NUMBER" => this._columnNumber = value.asInstanceOf[Integer]
case "AST_PARENT_FULL_NAME" => this._astParentFullName = value.asInstanceOf[String]
case "AST_PARENT_TYPE" => this._astParentType = value.asInstanceOf[String]
case "CODE" => this._code = value.asInstanceOf[String]
case "COLUMN_NUMBER" => this._columnNumber = value.asInstanceOf[Integer]
case "DYNAMIC_TYPE_HINT_FULL_NAME" =>
this._dynamicTypeHintFullName = value match {
case null => collection.immutable.ArraySeq.empty
Expand Down Expand Up @@ -394,6 +436,8 @@ class MemberDb(ref: NodeRef[NodeDb]) extends NodeDb(ref) with StoredNode with As
fromNewNode(data.asInstanceOf[NewNode], nn => mapper.apply(nn).asInstanceOf[StoredNode])

override def fromNewNode(newNode: NewNode, mapping: NewNode => StoredNode): Unit = {
this._astParentFullName = newNode.asInstanceOf[NewMember].astParentFullName
this._astParentType = newNode.asInstanceOf[NewMember].astParentType
this._code = newNode.asInstanceOf[NewMember].code
this._columnNumber = newNode.asInstanceOf[NewMember].columnNumber.orNull
this._dynamicTypeHintFullName =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24984,11 +24984,15 @@ class NewMember extends NewNode with MemberBase with AstNodeNew with Declaration
var dynamicTypeHintFullName: IndexedSeq[String] = collection.immutable.ArraySeq.empty
var columnNumber: Option[Integer] = None
var code: String = "<empty>"
var astParentType: String = "<empty>"
var astParentFullName: String = "<empty>"

override def label: String = "MEMBER"

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
Expand All @@ -25000,6 +25004,16 @@ class NewMember extends NewNode with MemberBase with AstNodeNew with Declaration
newInstance.asInstanceOf[this.type]
}

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
Expand Down Expand Up @@ -25046,6 +25060,8 @@ class NewMember extends NewNode with MemberBase with AstNodeNew with Declaration

override def properties: Map[String, Any] = {
var res = Map[String, Any]()
if (!(("<empty>") == astParentFullName)) { res += "AST_PARENT_FULL_NAME" -> astParentFullName }
if (!(("<empty>") == astParentType)) { res += "AST_PARENT_TYPE" -> astParentType }
if (!(("<empty>") == code)) { res += "CODE" -> code }
columnNumber.map { value => res += "COLUMN_NUMBER" -> value }
if (dynamicTypeHintFullName != null && dynamicTypeHintFullName.nonEmpty) {
Expand Down Expand Up @@ -25077,6 +25093,8 @@ class NewMember extends NewNode with MemberBase with AstNodeNew with Declaration
case 5 => this.dynamicTypeHintFullName
case 6 => this.columnNumber
case 7 => this.code
case 8 => this.astParentType
case 9 => this.astParentFullName
case _ => null
}

Expand All @@ -25090,11 +25108,13 @@ class NewMember extends NewNode with MemberBase with AstNodeNew with Declaration
case 5 => "dynamicTypeHintFullName"
case 6 => "columnNumber"
case 7 => "code"
case 8 => "astParentType"
case 9 => "astParentFullName"
case _ => ""
}

override def productPrefix = "NewMember"
override def productArity = 8
override def productArity = 10

override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMember]
}
Expand Down
Loading
Loading