From 49e575f0fe4770c61d13347122e0c889b62f2613 Mon Sep 17 00:00:00 2001 From: Louis van der Walt Date: Mon, 25 May 2026 08:35:26 +0200 Subject: [PATCH] Add Domain Classes for tests --- .../traversals/TraversalCallreprBase.scala | 5 +++++ .../traversals/TraversalPropertyOrder.scala | 5 +++++ .../generic/traversals/TraversalNodeaBase.scala | 16 ++++++++++++++++ .../TraversalPropertyIntMandatory.scala | 5 +++++ .../TraversalPropertyIntOptional.scala | 11 +++++++++++ .../TraversalPropertyPerformances.scala | 11 +++++++++++ .../traversals/TraversalSongBase.scala | 11 +++++++++++ 7 files changed, 64 insertions(+) diff --git a/test-schemas-domain-classes/src/main/scala/testdomains/codepropertygraphminified/traversals/TraversalCallreprBase.scala b/test-schemas-domain-classes/src/main/scala/testdomains/codepropertygraphminified/traversals/TraversalCallreprBase.scala index 91943f21..ea5bc5ed 100644 --- a/test-schemas-domain-classes/src/main/scala/testdomains/codepropertygraphminified/traversals/TraversalCallreprBase.scala +++ b/test-schemas-domain-classes/src/main/scala/testdomains/codepropertygraphminified/traversals/TraversalCallreprBase.scala @@ -78,6 +78,11 @@ final class TraversalCallreprBase[NodeType <: nodes.CallReprBase](val traversal: def order(value: Int): Iterator[NodeType] = traversal.filter { _.order == value } + /** Traverse to nodes where the order equals the given `value`, or no results if `value` is None + */ + def order(value: Option[Int]): Iterator[NodeType] = + value match { case Some(_val) => order(_val); case None => Iterator.empty } + /** Traverse to nodes where the order equals at least one of the given `values` */ def order(values: Int*): Iterator[NodeType] = { diff --git a/test-schemas-domain-classes/src/main/scala/testdomains/codepropertygraphminified/traversals/TraversalPropertyOrder.scala b/test-schemas-domain-classes/src/main/scala/testdomains/codepropertygraphminified/traversals/TraversalPropertyOrder.scala index d4071725..429d6090 100644 --- a/test-schemas-domain-classes/src/main/scala/testdomains/codepropertygraphminified/traversals/TraversalPropertyOrder.scala +++ b/test-schemas-domain-classes/src/main/scala/testdomains/codepropertygraphminified/traversals/TraversalPropertyOrder.scala @@ -15,6 +15,11 @@ final class TraversalPropertyOrder[NodeType <: nodes.StoredNode & nodes.StaticTy def order(value: Int): Iterator[NodeType] = traversal.filter { _.order == value } + /** Traverse to nodes where the order equals the given `value`, or no results if `value` is None + */ + def order(value: Option[Int]): Iterator[NodeType] = + value match { case Some(_val) => order(_val); case None => Iterator.empty } + /** Traverse to nodes where the order equals at least one of the given `values` */ def order(values: Int*): Iterator[NodeType] = { diff --git a/test-schemas-domain-classes/src/main/scala/testdomains/generic/traversals/TraversalNodeaBase.scala b/test-schemas-domain-classes/src/main/scala/testdomains/generic/traversals/TraversalNodeaBase.scala index 090e0b51..4b52595e 100644 --- a/test-schemas-domain-classes/src/main/scala/testdomains/generic/traversals/TraversalNodeaBase.scala +++ b/test-schemas-domain-classes/src/main/scala/testdomains/generic/traversals/TraversalNodeaBase.scala @@ -18,6 +18,11 @@ final class TraversalNodeaBase[NodeType <: nodes.NodeABase](val traversal: Itera def intMandatory(value: Int): Iterator[NodeType] = traversal.filter { _.intMandatory == value } + /** Traverse to nodes where the intMandatory equals the given `value`, or no results if `value` is None + */ + def intMandatory(value: Option[Int]): Iterator[NodeType] = + value match { case Some(_val) => intMandatory(_val); case None => Iterator.empty } + /** Traverse to nodes where the intMandatory equals at least one of the given `values` */ def intMandatory(values: Int*): Iterator[NodeType] = { @@ -68,6 +73,17 @@ final class TraversalNodeaBase[NodeType <: nodes.NodeABase](val traversal: Itera val tmp = node.intOptional; tmp.isDefined && tmp.get == value } + /** Traverse to nodes where the intOptional equals the given `value`. If `value` is None, only nodes where intOptional is not set are + * included. + */ + def intOptional(value: Option[Int]): Iterator[NodeType] = + value match { case Some(_val) => intOptional(_val); case None => traversal.filter { node => node.intOptional.isEmpty } } + + /** Traverse to nodes where the intOptional equals the given `value`, or no results if `value` is None. + */ + def intOptionalIfPresent(value: Option[Int]): Iterator[NodeType] = + value match { case Some(_val) => intOptional(_val); case None => Iterator.empty } + /** Traverse to nodes where the intOptional equals at least one of the given `values` */ def intOptional(values: Int*): Iterator[NodeType] = { diff --git a/test-schemas-domain-classes/src/main/scala/testdomains/generic/traversals/TraversalPropertyIntMandatory.scala b/test-schemas-domain-classes/src/main/scala/testdomains/generic/traversals/TraversalPropertyIntMandatory.scala index 3ae0ed18..1ce53aac 100644 --- a/test-schemas-domain-classes/src/main/scala/testdomains/generic/traversals/TraversalPropertyIntMandatory.scala +++ b/test-schemas-domain-classes/src/main/scala/testdomains/generic/traversals/TraversalPropertyIntMandatory.scala @@ -16,6 +16,11 @@ final class TraversalPropertyIntMandatory[NodeType <: nodes.StoredNode & nodes.S def intMandatory(value: Int): Iterator[NodeType] = traversal.filter { _.intMandatory == value } + /** Traverse to nodes where the intMandatory equals the given `value`, or no results if `value` is None + */ + def intMandatory(value: Option[Int]): Iterator[NodeType] = + value match { case Some(_val) => intMandatory(_val); case None => Iterator.empty } + /** Traverse to nodes where the intMandatory equals at least one of the given `values` */ def intMandatory(values: Int*): Iterator[NodeType] = { diff --git a/test-schemas-domain-classes/src/main/scala/testdomains/generic/traversals/TraversalPropertyIntOptional.scala b/test-schemas-domain-classes/src/main/scala/testdomains/generic/traversals/TraversalPropertyIntOptional.scala index 2db1600e..d23dac11 100644 --- a/test-schemas-domain-classes/src/main/scala/testdomains/generic/traversals/TraversalPropertyIntOptional.scala +++ b/test-schemas-domain-classes/src/main/scala/testdomains/generic/traversals/TraversalPropertyIntOptional.scala @@ -18,6 +18,17 @@ final class TraversalPropertyIntOptional[NodeType <: nodes.StoredNode & nodes.St val tmp = node.intOptional; tmp.isDefined && tmp.get == value } + /** Traverse to nodes where the intOptional equals the given `value`. If `value` is None, only nodes where intOptional is not set are + * included. + */ + def intOptional(value: Option[Int]): Iterator[NodeType] = + value match { case Some(_val) => intOptional(_val); case None => traversal.filter { node => node.intOptional.isEmpty } } + + /** Traverse to nodes where the intOptional equals the given `value`, or no results if `value` is None. + */ + def intOptionalIfPresent(value: Option[Int]): Iterator[NodeType] = + value match { case Some(_val) => intOptional(_val); case None => Iterator.empty } + /** Traverse to nodes where the intOptional equals at least one of the given `values` */ def intOptional(values: Int*): Iterator[NodeType] = { diff --git a/test-schemas-domain-classes/src/main/scala/testdomains/gratefuldead/traversals/TraversalPropertyPerformances.scala b/test-schemas-domain-classes/src/main/scala/testdomains/gratefuldead/traversals/TraversalPropertyPerformances.scala index aac0c5a4..2cd6611f 100644 --- a/test-schemas-domain-classes/src/main/scala/testdomains/gratefuldead/traversals/TraversalPropertyPerformances.scala +++ b/test-schemas-domain-classes/src/main/scala/testdomains/gratefuldead/traversals/TraversalPropertyPerformances.scala @@ -18,6 +18,17 @@ final class TraversalPropertyPerformances[NodeType <: nodes.StoredNode & nodes.S val tmp = node.performances; tmp.isDefined && tmp.get == value } + /** Traverse to nodes where the performances equals the given `value`. If `value` is None, only nodes where performances is not set are + * included. + */ + def performances(value: Option[Int]): Iterator[NodeType] = + value match { case Some(_val) => performances(_val); case None => traversal.filter { node => node.performances.isEmpty } } + + /** Traverse to nodes where the performances equals the given `value`, or no results if `value` is None. + */ + def performancesIfPresent(value: Option[Int]): Iterator[NodeType] = + value match { case Some(_val) => performances(_val); case None => Iterator.empty } + /** Traverse to nodes where the performances equals at least one of the given `values` */ def performances(values: Int*): Iterator[NodeType] = { diff --git a/test-schemas-domain-classes/src/main/scala/testdomains/gratefuldead/traversals/TraversalSongBase.scala b/test-schemas-domain-classes/src/main/scala/testdomains/gratefuldead/traversals/TraversalSongBase.scala index cee7c297..44cf8dd6 100644 --- a/test-schemas-domain-classes/src/main/scala/testdomains/gratefuldead/traversals/TraversalSongBase.scala +++ b/test-schemas-domain-classes/src/main/scala/testdomains/gratefuldead/traversals/TraversalSongBase.scala @@ -80,6 +80,17 @@ final class TraversalSongBase[NodeType <: nodes.SongBase](val traversal: Iterato val tmp = node.performances; tmp.isDefined && tmp.get == value } + /** Traverse to nodes where the performances equals the given `value`. If `value` is None, only nodes where performances is not set are + * included. + */ + def performances(value: Option[Int]): Iterator[NodeType] = + value match { case Some(_val) => performances(_val); case None => traversal.filter { node => node.performances.isEmpty } } + + /** Traverse to nodes where the performances equals the given `value`, or no results if `value` is None. + */ + def performancesIfPresent(value: Option[Int]): Iterator[NodeType] = + value match { case Some(_val) => performances(_val); case None => Iterator.empty } + /** Traverse to nodes where the performances equals at least one of the given `values` */ def performances(values: Int*): Iterator[NodeType] = {