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 <[email protected]> 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(
