From 7afcf8b704f3c4f95d8cb17361713d62fa4c86c2 Mon Sep 17 00:00:00 2001 From: Michael Pollmeier Date: Wed, 26 Jun 2024 15:50:04 +0200 Subject: [PATCH 1/2] flatgraph migration: promote neighbor accessors (remove `_` prefix) --- .../scala/overflowdb/codegen/CodeGen.scala | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/codegen/src/main/scala/overflowdb/codegen/CodeGen.scala b/codegen/src/main/scala/overflowdb/codegen/CodeGen.scala index 34bd250a..1860c01e 100644 --- a/codegen/src/main/scala/overflowdb/codegen/CodeGen.scala +++ b/codegen/src/main/scala/overflowdb/codegen/CodeGen.scala @@ -539,7 +539,7 @@ class CodeGen(schema: Schema) { val entireNodeHierarchy: Set[AbstractNodeType] = neighbor.subtypes(schema.allNodeTypes.toSet) ++ (neighbor.extendzRecursively :+ neighbor) entireNodeHierarchy.map { neighbor => val accessorName = adjacentNode.customStepName.getOrElse( - s"_${camelCase(neighbor.name)}Via${edge.className.capitalize}${camelCaseCaps(direction.toString)}" + s"${camelCase(neighbor.name)}Via${edge.className.capitalize}${camelCaseCaps(direction.toString)}" ) val accessorImpl0 = s"$edgeAccessorName.collectAll[${neighbor.className}]" val cardinality = adjacentNode.cardinality @@ -558,6 +558,10 @@ class CodeGen(schema: Schema) { | */ ${docAnnotationMaybe(adjacentNode.customStepDoc)} |def $accessorName: ${fullScalaType(neighbor, cardinality)} = | $accessorImpl1 + | + |@deprecated("please use `$accessorName`", "June 2024") + |def _$accessorName = $accessorName + | | """.stripMargin } }.distinct.mkString(lineSeparator) @@ -1013,9 +1017,14 @@ class CodeGen(schema: Schema) { s"""/** ${neighborNodeInfo.customStepDoc.getOrElse("")} | * Traverse to ${neighborNodeInfo.neighborNode.name} via ${neighborNodeInfo.edge.name} $direction edge. | */ ${docAnnotationMaybe(neighborNodeInfo.customStepDoc)} - |def $accessorNameForNode: ${neighborNodeInfo.returnType} = get().$accessorNameForNode""".stripMargin + |def $accessorNameForNode: ${neighborNodeInfo.returnType} = get().$accessorNameForNode + | + |@deprecated("please use `$accessorNameForNode`", "June 2024") + |def _$accessorNameForNode = $accessorNameForNode + |""".stripMargin }.mkString(lineSeparator) + val neighborNodeClass = neighborInfo.deriveNeighborNodeType.getOrElse(schema.anyNode).className s"""def $edgeAccessorName: Iterator[$neighborNodeClass] = get().$edgeAccessorName |override def _$edgeAccessorName = get()._$edgeAccessorName @@ -1090,11 +1099,16 @@ class CodeGen(schema: Schema) { case EdgeType.Cardinality.ZeroOrOne => s"$accessorImpl0.nextOption()" case _ => accessorImpl0 } - s"def ${accessorName(neighborNodeInfo)}: ${neighborNodeInfo.returnType} = $accessorImpl1" + val accessorNameForNode = accessorName(neighborNodeInfo) + s"""@deprecated("please use `$accessorNameForNode`", "June 2024") + |def _$accessorNameForNode = $accessorNameForNode + | + |def $accessorNameForNode: ${neighborNodeInfo.returnType} = $accessorImpl1""".stripMargin }.mkString(lineSeparator) s"""def $edgeAccessorName: Iterator[$neighborType] = createAdjacentNodeScalaIteratorByOffSet[$neighborType]($offsetPosition) |override def _$edgeAccessorName = createAdjacentNodeScalaIteratorByOffSet[StoredNode]($offsetPosition) + | |$nodeAccessors |""".stripMargin }.mkString(lineSeparator) From 049d0b2ec77fbcb712d7157a7f3c1f95364f4bc9 Mon Sep 17 00:00:00 2001 From: Michael Pollmeier Date: Thu, 27 Jun 2024 09:30:22 +0200 Subject: [PATCH 2/2] fixup --- codegen/src/main/scala/overflowdb/codegen/Helpers.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegen/src/main/scala/overflowdb/codegen/Helpers.scala b/codegen/src/main/scala/overflowdb/codegen/Helpers.scala index 2cb4b42d..acb1963d 100644 --- a/codegen/src/main/scala/overflowdb/codegen/Helpers.scala +++ b/codegen/src/main/scala/overflowdb/codegen/Helpers.scala @@ -54,7 +54,7 @@ object Helpers { val neighborNodeName = neighborInfoForNode.neighborNode.name val edgeName = neighborInfoForNode.edge.className val direction = neighborInfoForNode.direction.toString - s"_${camelCase(neighborNodeName)}Via$edgeName${camelCaseCaps(direction)}" + s"${camelCase(neighborNodeName)}Via$edgeName${camelCaseCaps(direction)}" } }