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

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

commit 87968014d6dbfc340fc9927fae73d44ff2d51984
Author: Sergey Kamov <[email protected]>
AuthorDate: Mon Nov 14 13:12:09 2022 +0400

    Intent trait API.
---
 nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntent2.scala         | 5 ++---
 .../src/test/scala/org/apache/nlpcraft/nlp/test/TimeTestModel.scala | 6 ++----
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntent2.scala 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntent2.scala
index 8f8aff91..76fc9084 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntent2.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntent2.scala
@@ -19,11 +19,10 @@ package org.apache.nlpcraft
 
 import org.apache.nlpcraft.*
 
-trait NCIntent2[T] {
+trait NCIntent2[T](id: String):
     // Gets callback argument if matched.
     def tryMatch(mi: NCMatchInput): Option[T]
 
     def mkResult(mi: NCMatchInput, arg: T): NCResult
 
-    def getId: String
-}
+    def getId: String = id
diff --git 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/test/TimeTestModel.scala 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/test/TimeTestModel.scala
index 19ad93a6..dee4385e 100644
--- a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/test/TimeTestModel.scala
+++ b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/test/TimeTestModel.scala
@@ -17,16 +17,14 @@ class TimeTestModel extends NCModel(
 
     // Add this method to API.
     override def getIntents: List[NCIntent2[_]] = List(
-        new NCIntent2[TimeData] :
-            override def getId: String = "id1"
+        new NCIntent2[TimeData]("id1") :
             override def tryMatch(mi: NCMatchInput): Option[TimeData] =
                 val varEnts = mi.getVariant4Match.getEntities
 
                 Option.when(varEnts.length == 1 && varEnts.count(_.getId == 
"x:time") == 1)(TimeData())
             override def mkResult(mi: NCMatchInput, data: TimeData): NCResult 
= NCResult("Asked for local") // TBI.
         ,
-        new NCIntent2[CityTimeData] :
-            override def getId: String = "id2"
+        new NCIntent2[CityTimeData]("id2") :
             override def tryMatch(mi: NCMatchInput): Option[CityTimeData] =
                 val varEnts = mi.getVariant4Match.getEntities
                 val allEnts = mi.getAllEntities

Reply via email to