You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nlpcraft.apache.org by se...@apache.org on 2021/08/05 09:21:07 UTC

[incubator-nlpcraft] branch NLPCRAFT-366 created (now 8cd0087)

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

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


      at 8cd0087  REST data serialization fixes.

This branch includes the following new commits:

     new 8cd0087  REST data serialization fixes.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[incubator-nlpcraft] 01/01: REST data serialization fixes.

Posted by se...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 8cd00870fca78f25f770d58f2f8fa2bb1d7223f4
Author: Sergey Kamov <sk...@gmail.com>
AuthorDate: Thu Aug 5 12:21:01 2021 +0300

    REST data serialization fixes.
---
 .../nlpcraft/probe/mgrs/cmd/NCCommandManager.scala | 71 ++++++++++++++--------
 1 file changed, 45 insertions(+), 26 deletions(-)

diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/cmd/NCCommandManager.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/cmd/NCCommandManager.scala
index 7acc39f..d1dc0cb 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/cmd/NCCommandManager.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/cmd/NCCommandManager.scala
@@ -246,33 +246,52 @@ object NCCommandManager extends NCService {
                                         override def getParsers: JList[NCCustomParser] = null
 
                                         // Converted.
-                                        override def getElements: util.Set[NCElement] = mdl.getElements.asScala.map(e =>
-                                            new NCElement {
-                                                // As is.
-                                                override def getId: String = e.getId
-                                                override def getGroups: JList[String] = e.getGroups
-                                                override def getMetadata: util.Map[String, AnyRef] = e.getMetadata
-                                                override def getDescription: String = e.getDescription
-                                                override def getParentId: String = e.getParentId
-                                                override def getSynonyms: JList[String] = e.getSynonyms
-                                                override def isPermutateSynonyms: Optional[lang.Boolean] = e.isPermutateSynonyms
-                                                override def isSparse: Optional[lang.Boolean] = e.isSparse
-
-                                                // Cleared.
-                                                override def getValueLoader: Optional[NCValueLoader] = null
-
-                                                // Converted.
-                                                override def getValues: JList[NCValue] =
-                                                    if (e.getValues != null) {
-                                                        e.getValues.asScala.map(v => new NCValue {
-                                                            override def getName: String = v.getName
-                                                            override def getSynonyms: JList[String] = v.getSynonyms
-                                                        }).asJava
-                                                    }
-                                                    else
-                                                        null
+                                        override def getElements: util.Set[NCElement] = mdl.getElements.asScala.map(e => {
+                                            // Jackson can serialize `is` getters but only for boolean return types
+                                            // (even with Jdk8Module)
+                                            // Below `is` getters data provided as `get` getters data.
+                                            abstract class NCElementExt extends NCElement {
+                                                def getPermutateSynonyms: lang.Boolean
+                                                def getSparse: lang.Boolean
                                             }
-                                        ).asJava
+
+                                            val eExt: NCElement =
+                                                new NCElementExt {
+                                                    // As is.
+                                                    override def getId: String = e.getId
+                                                    override def getGroups: JList[String] = e.getGroups
+                                                    override def getMetadata: util.Map[String, AnyRef] = e.getMetadata
+                                                    override def getDescription: String = e.getDescription
+                                                    override def getParentId: String = e.getParentId
+                                                    override def getSynonyms: JList[String] = e.getSynonyms
+
+                                                    // Hides.
+                                                    override def isPermutateSynonyms: Optional[lang.Boolean] = null
+                                                    override def isSparse: Optional[lang.Boolean] = null
+
+                                                    // Wraps.
+                                                    override def getPermutateSynonyms: lang.Boolean =
+                                                        e.isPermutateSynonyms.orElse(null)
+                                                    override def getSparse: lang.Boolean = e.isSparse.orElse(null)
+
+                                                    // Cleared.
+                                                    override def getValueLoader: Optional[NCValueLoader] = null
+
+                                                    // Converted.
+                                                    override def getValues: JList[NCValue] =
+                                                        if (e.getValues != null) {
+                                                            e.getValues.asScala.map(v => new NCValue {
+                                                                override def getName: String = v.getName
+
+                                                                override def getSynonyms: JList[String] = v.getSynonyms
+                                                            }).asJava
+                                                        }
+                                                        else
+                                                            null
+                                                }
+
+                                            eExt
+                                        }).asJava
                                     }
 
                                 NCProbeMessage(