From 4eef925c36402626ee5b347e3f75b7938ad9b93d Mon Sep 17 00:00:00 2001 From: David Denton Date: Mon, 11 Sep 2017 09:25:41 +0100 Subject: [PATCH] started introducing lenses --- src/test/scala/lens/Lenses.scala | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/test/scala/lens/Lenses.scala b/src/test/scala/lens/Lenses.scala index d39e9eb8..c58eed60 100644 --- a/src/test/scala/lens/Lenses.scala +++ b/src/test/scala/lens/Lenses.scala @@ -11,15 +11,16 @@ trait MultiLensSpec[IN, OUT] { def required(name: String, description: String = null): Lens[IN, List[OUT]] } +/** + * Represents a bi-directional extraction of a list of entities from a target, or an insertion into a target. + */ +trait BiDiMultiLensSpec[IN, OUT] extends MultiLensSpec[IN, OUT] { + override def defaulted(name: String, default: List[OUT], description: String): BiDiLens[IN, List[OUT]] -///** -// * Represents a bi-directional extraction of a list of entities from a target, or an insertion into a target. -// */ -//trait BiDiMultiLensSpec[IN, OUT] extends MultiLensSpec[IN, OUT] { -//override def defaulted(name: String, default: List[OUT], description: String): BiDiLens[IN, List[OUT]] -//override def optional(name: String, description: String): BiDiLens> -//} + override def optional(name: String, description: String): BiDiLens[IN, Option[List[OUT]]] + + override def required(name: String, description: String): BiDiLens[IN, List[OUT]] +} class LensGet[IN, MID, OUT] private(private val rootFn: (String, IN) => List[MID], private val fn: (MID) => OUT) {