Skip to content

Commit dae4872

Browse files
authored
codegen: add some type aliases so that the domain-specific code can avoid referencing the overflow namespace (#275)
* codegen: add some type aliases so that the domain-specific code can avoid referencing the `overflow` namespace equivalent of joernio/flatgraph#217 * DiffGraphBuilder doesn't need a type alias for odb already defined as subclass * adapt tests
1 parent 0b2fa88 commit dae4872

File tree

16 files changed

+49
-3
lines changed

16 files changed

+49
-3
lines changed

codegen/src/main/scala/overflowdb/codegen/CodeGen.scala

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1259,6 +1259,28 @@ class CodeGen(schema: Schema) {
12591259
val srcFile = nodeType.className + ".scala"
12601260
results.append(baseDir.createChild(srcFile).write(src))
12611261
}
1262+
1263+
1264+
val packageObject = {
1265+
val lastSeparatorIdx = basePackage.lastIndexOf('.')
1266+
val packageParent = basePackage.take(lastSeparatorIdx)
1267+
val packageSimpleName = basePackage.drop(lastSeparatorIdx + 1)
1268+
1269+
s"""package $packageParent
1270+
|
1271+
|package object $packageSimpleName {
1272+
| // some type aliases so that the domain-specific code can avoid referencing the `overflowdb` namespace
1273+
|
1274+
| object help {
1275+
| type Doc = _root_.overflowdb.traversal.help.Doc
1276+
| type Traversal = _root_.overflowdb.traversal.help.Traversal
1277+
| type TraversalSource = _root_.overflowdb.traversal.help.TraversalSource
1278+
| }
1279+
|}
1280+
|""".stripMargin
1281+
}
1282+
results.append(baseDir.createChild("package.scala").write(packageObject))
1283+
12621284
results.toSeq
12631285
}
12641286

integration-tests/schemas/build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ generateDomainClasses := Def.taskDyn {
1919
}
2020
} else {
2121
Def.task {
22-
val invoked = (Compile/runMain).toTask(s" CodegenForAllSchemas").value
22+
val invoked = (Compile/runMain).toTask(s" overflowdb.integrationtests.CodegenForAllSchemas").value
2323
lastSchemaMd5(currentSchemaMd5)
2424
FileUtils.listFilesRecursively(outputRoot)
2525
}

integration-tests/schemas/src/main/scala/CodegenForAllSchemas.scala renamed to integration-tests/schemas/src/main/scala/overflowdb/integrationtests/CodegenForAllSchemas.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
package overflowdb.integrationtests
2+
13
import overflowdb.codegen.CodeGen
24

35
import java.io.File

integration-tests/schemas/src/main/scala/TestSchema.scala renamed to integration-tests/schemas/src/main/scala/overflowdb/integrationtests/TestSchema.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
package overflowdb.integrationtests
2+
13
import overflowdb.schema.SchemaBuilder
24

35
trait TestSchema {

integration-tests/schemas/src/main/scala/TestSchema01.scala renamed to integration-tests/schemas/src/main/scala/overflowdb/integrationtests/TestSchema01.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
package overflowdb.integrationtests
2+
13
import overflowdb.schema.Property.ValueType
24
import overflowdb.schema._
35

integration-tests/schemas/src/main/scala/TestSchema02.scala renamed to integration-tests/schemas/src/main/scala/overflowdb/integrationtests/TestSchema02.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
package overflowdb.integrationtests
2+
13
import overflowdb.schema.Property.ValueType
24
import overflowdb.schema._
35

integration-tests/schemas/src/main/scala/TestSchema03.scala renamed to integration-tests/schemas/src/main/scala/overflowdb/integrationtests/TestSchema03.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
package overflowdb.integrationtests
2+
13
/** complex scenario with multiple layers of base nodes
24
* similar to what we use in docker-ext schema extension
35
*/

integration-tests/schemas/src/main/scala/TestSchema04.scala renamed to integration-tests/schemas/src/main/scala/overflowdb/integrationtests/TestSchema04.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
package overflowdb.integrationtests
2+
13
import overflowdb.schema.Property._
24

35
/** For testing default values on properties with Cardinality.One: we have type-dependent defaults,

integration-tests/schemas/src/main/scala/TestSchema05.scala renamed to integration-tests/schemas/src/main/scala/overflowdb/integrationtests/TestSchema05.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
package overflowdb.integrationtests
2+
13
import overflowdb.schema.Property._
24

35
/** testing all property types with Cardinality.ZeroOrOne */

integration-tests/schemas/src/main/scala/TestSchema06.scala renamed to integration-tests/schemas/src/main/scala/overflowdb/integrationtests/TestSchema06.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
package overflowdb.integrationtests
2+
13
import overflowdb.schema.Property.ValueType
24
import overflowdb.schema._
35

0 commit comments

Comments
 (0)