This is an automated email from the ASF dual-hosted git repository.

sergeykamov pushed a commit to branch NLPCRAFT-491
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git


The following commit(s) were added to refs/heads/NLPCRAFT-491 by this push:
     new d95a2d1e WIP.
d95a2d1e is described below

commit d95a2d1e6f3265b0eaffaeaeb0f618a336d16414
Author: Sergey Kamov <[email protected]>
AuthorDate: Mon Apr 4 21:52:49 2022 +0300

    WIP.
---
 .../nlpcraft/examples/order/components/SimpleCombiner.scala       | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git 
a/nlpcraft-examples/order/src/main/java/org/apache/nlpcraft/examples/order/components/SimpleCombiner.scala
 
b/nlpcraft-examples/order/src/main/java/org/apache/nlpcraft/examples/order/components/SimpleCombiner.scala
index 025da0c1..28f49626 100644
--- 
a/nlpcraft-examples/order/src/main/java/org/apache/nlpcraft/examples/order/components/SimpleCombiner.scala
+++ 
b/nlpcraft-examples/order/src/main/java/org/apache/nlpcraft/examples/order/components/SimpleCombiner.scala
@@ -21,6 +21,7 @@ import org.apache.nlpcraft.*
 
 import java.util
 import java.util.List as JList
+import scala.collection.mutable
 import scala.jdk.CollectionConverters.*
 
 /**
@@ -30,6 +31,7 @@ import scala.jdk.CollectionConverters.*
   * @param newId
   */
 case class SimpleCombiner(id1: String, id2: String, newId: String) extends 
NCEntityMapper:
+    private def extract(e: NCEntity): mutable.Seq[NCToken] = 
e.getTokens.asScala
     override def map(req: NCRequest, cfg: NCModelConfig, entities: 
util.List[NCEntity]): util.List[NCEntity] =
         var es = entities.asScala
         val es1 = es.filter(_.getId == id1)
@@ -38,21 +40,21 @@ case class SimpleCombiner(id1: String, id2: String, newId: 
String) extends NCEnt
         if es1.nonEmpty && es2.size == es1.size then
             var ok = true
 
-            val newEs =
+            val mapped =
                 for ((e1, e2) <- es1.zip(es2) if ok) yield
                     if e1.getId == e2.getId then
                         ok = false
                         null
                     else
                         new NCPropertyMapAdapter with NCEntity:
-                            override val getTokens: JList[NCToken] = 
(e1.getTokens.asScala ++ e2.getTokens.asScala).sortBy(_.getIndex).asJava
+                            override val getTokens: JList[NCToken] = 
(extract(e1) ++ extract(e2)).sortBy(_.getIndex).asJava
                             override val getRequestId: String = 
req.getRequestId
                             override val getId: String = newId
 
             if ok then
                 es = es --= es1
                 es = es --= es2
-                (es ++ newEs).sortBy(_.getTokens.asScala.head.getIndex).asJava
+                (es ++ mapped).sortBy(extract(_).head.getIndex).asJava
             else
                 entities
         else

Reply via email to