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

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


The following commit(s) were added to refs/heads/NLPCRAFT-472 by this push:
     new 9437bd9  CR WIP
9437bd9 is described below

commit 9437bd92a7ba7670dca0d73d27f4ecccfc863802
Author: Aaron Radzinski <[email protected]>
AuthorDate: Thu Jan 13 11:41:25 2022 -0800

    CR WIP
---
 .../{NCResultType.java => NCCuration.java}         | 24 +++++++------
 .../{NCResultType.java => NCGlobals.scala}         | 28 +++++-----------
 .../scala/org/apache/nlpcraft/NCModelClient.java   |  2 +-
 .../scala/org/apache/nlpcraft/NCResultType.java    |  5 ---
 .../nlpcraft/internal/ascii/NCAsciiTable.scala     |  2 +-
 .../{client => impl}/NCModelClientImpl.scala       | 39 ++++++++++------------
 .../internal/{ => impl}/NCPipelineProcessor.scala  |  7 ++--
 .../internal/{ => impl}/NCSentenceHelper.java      |  2 +-
 .../internal/NCPipelineProcessorSpec.scala         |  1 +
 .../internal/NCPipelineValidatorsSpec.scala        |  1 +
 10 files changed, 49 insertions(+), 62 deletions(-)

diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCCuration.java
similarity index 66%
copy from nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
copy to nlpcraft/src/main/scala/org/apache/nlpcraft/NCCuration.java
index 4003441..58e07f2 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCCuration.java
@@ -20,19 +20,23 @@ package org.apache.nlpcraft;
 /**
  *
  */
-public enum NCResultType {
+public class NCCuration extends NCRejection {
     /**
-     * Final result is ready.
+     * Creates new curation exception with given message.
+     *
+     * @param msg Curation message.
      */
-    ASK_RESULT,
+    public NCCuration(String msg) {
+        super(msg);
+    }
 
     /**
-     * Curation is required.
+     * Creates new curation exception with given message and cause.
+     *
+     * @param msg Curation message.
+     * @param cause Cause of this exception.
      */
-    ASK_CURATE,
-
-    /**
-     * Ask user back engaging in dialog.
-     */
-    ASK_DIALOG
+    public NCCuration(String msg, Throwable cause) {
+        super(msg, cause);
+    }
 }
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCGlobals.scala
similarity index 74%
copy from nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
copy to nlpcraft/src/main/scala/org/apache/nlpcraft/NCGlobals.scala
index 4003441..8e29546 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCGlobals.scala
@@ -15,24 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft;
+package org.apache.nlpcraft
 
-/**
- *
- */
-public enum NCResultType {
-    /**
-     * Final result is ready.
-     */
-    ASK_RESULT,
+import org.apache.nlpcraft.NCException
 
-    /**
-     * Curation is required.
-     */
-    ASK_CURATE,
-
-    /**
-     * Ask user back engaging in dialog.
-     */
-    ASK_DIALOG
-}
+/**
+  * Global syntax sugar for throwing [[NCException]].
+  *
+  * @param msg Exception message.
+  * @param cause Optional cause.
+  */
+def E[T](msg: String, cause: Throwable = null): T = throw new NCException(msg, 
cause)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelClient.java 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelClient.java
index 1d5dbf3..fee87cf 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelClient.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelClient.java
@@ -17,7 +17,7 @@
 
 package org.apache.nlpcraft;
 
-import org.apache.nlpcraft.internal.client.NCModelClientImpl;
+import org.apache.nlpcraft.internal.impl.NCModelClientImpl;
 
 import java.util.Map;
 import java.util.concurrent.*;
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
index 4003441..400d406 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResultType.java
@@ -27,11 +27,6 @@ public enum NCResultType {
     ASK_RESULT,
 
     /**
-     * Curation is required.
-     */
-    ASK_CURATE,
-
-    /**
      * Ask user back engaging in dialog.
      */
     ASK_DIALOG
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala
index 9a1d961..cc43ff9 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala
@@ -592,7 +592,7 @@ class NCAsciiTable:
 
     private def renderPrintStream(f: => PrintStream, file: String): Unit =
         try Using.resource(f)(_.print(mkString()))
-        catch case e: IOException => throw new NCException(s"Error outputting 
table into file: $file", e)
+        catch case e: IOException => E(s"Error outputting table into file: 
$file", e)
 
 /**
   * Static context.
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/client/NCModelClientImpl.scala
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCModelClientImpl.scala
similarity index 72%
rename from 
nlpcraft/src/main/scala/org/apache/nlpcraft/internal/client/NCModelClientImpl.scala
rename to 
nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCModelClientImpl.scala
index 800ed8d..f49917f 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/client/NCModelClientImpl.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCModelClientImpl.scala
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.client
+package org.apache.nlpcraft.internal.impl
 
 import com.typesafe.scalalogging.LazyLogging
-import org.apache.nlpcraft.internal.NCPipelineProcessor
-import org.apache.nlpcraft.internal.util.NCUtils
 import org.apache.nlpcraft.*
+import org.apache.nlpcraft.internal.*
+import org.apache.nlpcraft.internal.util.*
 
-import java.util.{List as JList, Map as JMap}
 import java.util.concurrent.*
 import java.util.concurrent.atomic.AtomicReference
+import java.util.{Objects, List as JList, Map as JMap}
 import scala.collection.mutable
 import scala.concurrent.ExecutionContext
 import scala.jdk.CollectionConverters.*
@@ -35,7 +35,6 @@ import scala.jdk.CollectionConverters.*
   */
 class NCModelClientImpl(mdl: NCModel) extends LazyLogging:
     private val plProc = NCPipelineProcessor(mdl)
-
     private var plSrvs: Seq[NCLifecycle] = _
 
     init(mdl.getConfig, mdl.getPipeline)
@@ -46,18 +45,12 @@ class NCModelClientImpl(mdl: NCModel) extends LazyLogging:
       * @param pipeline
       */
     private def init(cfg: NCModelConfig, pipeline: NCModelPipeline): Unit =
-        // TODO: error texts.
-        def check(obj: AnyRef, name: String): Unit =
-            if obj == null then throw new NCException(s"Element cannot be 
null: '$name'")
-        def checkList(list: JList[_], name: String): Unit =
-            if list == null then throw new NCException(s"List cannot be null: 
'$name'")
-            else if list.isEmpty then throw new NCException(s"List cannot be 
empty: '$name'")
-
-        check(cfg.getId, "Id")
-        check(cfg.getName, "Name")
-        check(cfg.getVersion, "Version")
-        check(pipeline.getTokenParser, "Token parser")
-        checkList(pipeline.getEntityParsers, "Entity parsers")
+        Objects.requireNonNull(cfg.getId, "Model ID cannot be null.")
+        Objects.requireNonNull(cfg.getName, "Model name cannot be null.")
+        Objects.requireNonNull(cfg.getVersion, "Model version cannot be null.")
+        Objects.requireNonNull(pipeline.getTokenParser, "Token parser cannot 
be null.")
+        Objects.requireNonNull(pipeline.getEntityParsers, "List of entity 
parsers in the pipeline cannot be null.")
+        if pipeline.getEntityParsers.isEmpty then E(s"At least one entity 
parser must be specified in the pipeline.")
 
         val buf = mutable.ArrayBuffer.empty[NCLifecycle] ++ 
pipeline.getEntityParsers.asScala
 
@@ -82,7 +75,7 @@ class NCModelClientImpl(mdl: NCModel) extends LazyLogging:
         NCUtils.execPar(plSrvs.map(p =>
             () => {
                 action(p)
-                logger.info(s"Service $actionVerb: '${p.getClass.getName}'") 
// TODO:  text.
+                logger.info(s"Service $actionVerb: '${p.getClass.getName}'")
             }
         )*)(ExecutionContext.Implicits.global)
 
@@ -93,7 +86,8 @@ class NCModelClientImpl(mdl: NCModel) extends LazyLogging:
       * @param usrId
       * @return
       */
-    def ask(txt: String, data: JMap[String, AnyRef], usrId: String): 
CompletableFuture[NCResult] = plProc.ask(txt, data, usrId)
+    def ask(txt: String, data: JMap[String, AnyRef], usrId: String): 
CompletableFuture[NCResult] =
+        plProc.ask(txt, data, usrId)
 
     /**
       *
@@ -102,19 +96,20 @@ class NCModelClientImpl(mdl: NCModel) extends LazyLogging:
       * @param usrId
       * @return
       */
-    def askSync(txt: String, data: JMap[String, AnyRef], usrId: String): 
NCResult = plProc.askSync(txt, data, usrId)
+    def askSync(txt: String, data: JMap[String, AnyRef], usrId: String): 
NCResult =
+        plProc.askSync(txt, data, usrId)
 
     /**
       *
       * @param usrId
       */
-    def clearConversation(usrId: String): Unit = () // TODO: implement
+    def clearConversation(usrId: String): Unit = ???
 
     /**
       *
       * @param usrId
       */
-    def clearDialog(usrId: String): Unit = () // TODO: implement
+    def clearDialog(usrId: String): Unit = ???
 
     /**
       *
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/NCPipelineProcessor.scala
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCPipelineProcessor.scala
similarity index 97%
rename from 
nlpcraft/src/main/scala/org/apache/nlpcraft/internal/NCPipelineProcessor.scala
rename to 
nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCPipelineProcessor.scala
index b34a401..ff78b7b 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/NCPipelineProcessor.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCPipelineProcessor.scala
@@ -15,11 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal
+package org.apache.nlpcraft.internal.impl
 
 import com.typesafe.scalalogging.LazyLogging
-import org.apache.nlpcraft.internal.util.NCUtils
 import org.apache.nlpcraft.*
+import org.apache.nlpcraft.internal.impl.NCSentenceHelper
+import org.apache.nlpcraft.internal.util.NCUtils
 
 import java.util
 import java.util.concurrent.*
@@ -38,7 +39,7 @@ object NCPipelineProcessor {
     case class VariantsHolder(request: NCRequest, variants: Seq[NCVariant], 
checkCancel: Option[() => Unit])
 }
 
-import org.apache.nlpcraft.internal.NCPipelineProcessor.*
+import org.apache.nlpcraft.internal.impl.NCPipelineProcessor.*
 
 /**
   *
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/NCSentenceHelper.java 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCSentenceHelper.java
similarity index 99%
rename from 
nlpcraft/src/main/scala/org/apache/nlpcraft/internal/NCSentenceHelper.java
rename to 
nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCSentenceHelper.java
index eb7c09c..9ae59c4 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/NCSentenceHelper.java
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/impl/NCSentenceHelper.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal;
+package org.apache.nlpcraft.internal.impl;
 
 import java.util.ArrayList;
 import java.util.Collection;
diff --git 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineProcessorSpec.scala
 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineProcessorSpec.scala
index fa1f1c5..736da78 100644
--- 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineProcessorSpec.scala
+++ 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineProcessorSpec.scala
@@ -18,6 +18,7 @@
 package org.apache.nlpcraft.internal
 
 import org.apache.nlpcraft.*
+import org.apache.nlpcraft.internal.impl.NCPipelineProcessor
 import org.apache.nlpcraft.nlp.entity.parser.nlp.impl.NCNlpEntityParserImpl
 import org.apache.nlpcraft.nlp.entity.parser.semantic.*
 import org.apache.nlpcraft.nlp.entity.parser.semantic.impl.en.NCEnPorterStemmer
diff --git 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineValidatorsSpec.scala
 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineValidatorsSpec.scala
index 279d9b6..2790368 100644
--- 
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineValidatorsSpec.scala
+++ 
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/NCPipelineValidatorsSpec.scala
@@ -18,6 +18,7 @@
 package org.apache.nlpcraft.internal
 
 import org.apache.nlpcraft.*
+import org.apache.nlpcraft.internal.impl.NCPipelineProcessor
 import org.apache.nlpcraft.nlp.entity.parser.nlp.NCNlpEntityParser
 import org.apache.nlpcraft.nlp.util.*
 import org.apache.nlpcraft.nlp.util.opennlp.*

Reply via email to