import org.codehaus.jackson.map.ObjectMapper; //导入方法依赖的package包/类

public ResponseGenerator handleTextMessage() throws Exception {

ResponseGenerator responseGenerator = new ResponseGenerator();

String[] rivescriptReply = helper.getRiveScriptBot().answer(request.getUserId(), textMessage);

for(String reply : rivescriptReply) {

if(Utility.isJSONObject(reply) == true) {

ObjectMapper mapper = new ObjectMapper();

JsonNode rootNode = mapper.readTree(reply);

switch (rootNode.get("type").getTextValue()) {

case RiveScriptReplyType.TEMPLATE_SCENARIO:

responseGenerator = new TemplateHandler(request, Utility.split(rootNode.get("name").getTextValue(), Utility.PARAMETER_SEPARATOR), helper)

.handleTemplateMessage();

break;

case RiveScriptReplyType.LANGUAGE_SCENARIO:

responseGenerator = new LanguageHandler(request, rootNode.get("name").getTextValue(), helper)

.handleLanguageAbout();

break;

case RiveScriptReplyType.STATUS_CHECK_SCENARIO:

responseGenerator = new StatusCheckHandler(request, rootNode.get("name").getTextValue(), helper).handleStatusCheck();

break;

case RiveScriptReplyType.LOCATION_SCENARIO:

responseGenerator = new LocationHandler(request, rootNode.get("query").getTextValue(), helper).getLocation();

break;

case RiveScriptReplyType.FALLBACK_SCENARIO:

// Eliza

if(textMessage.endsWith("!") || textMessage.endsWith(".")) {

responseGenerator.addTextResponse(new ResponseData(helper.getEliza().processInput(textMessage)));

}

else {

textMessage = rootNode.get("query").getTextValue(); // Use processed text message

responseGenerator = new NLHandler(request, textMessage, helper).answer();

}

break;

}

}

else {

responseGenerator.addTextResponse(new ResponseData(reply));

}

}

// Fallback when everything else fails Eliza will answer

if(responseGenerator.getResponse().size() == 0) {

responseGenerator.addTextResponse(new ResponseData(helper.getEliza().processInput(textMessage)));

}

return responseGenerator;

}

java mapper.readtree_Java ObjectMapper.readTree方法代码示例相关推荐

  1. cdate在java中_Java Calendar.add方法代码示例

    本文整理汇总了Java中java.util.Calendar.add方法的典型用法代码示例.如果您正苦于以下问题:Java Calendar.add方法的具体用法?Java Calendar.add怎 ...

  2. java hashmap putall_Java ConcurrentHashMap.putAll方法代码示例

    import java.util.concurrent.ConcurrentHashMap; //导入方法依赖的package包/类 /** * 生成更新Sql * @param entity * @ ...

  3. java中setattribute_Java Files.setAttribute方法代码示例

    import java.nio.file.Files; //导入方法依赖的package包/类 @Override public void setFileHiddenAttribute( String ...

  4. java default locale_Java JSON.defaultLocale方法代码示例

    import com.alibaba.fastjson.JSON; //导入方法依赖的package包/类 public void test_time() throws Exception { lon ...

  5. java sql xml_Java ResultSet.getSQLXML方法代码示例

    import java.sql.ResultSet; //导入方法依赖的package包/类 protected Object processColumn(ResultSet rs, int inde ...

  6. java get timestamp_Java Timestamp.getTime方法代码示例

    import java.sql.Timestamp; //导入方法依赖的package包/类 /** * Tests fix for BUG#5874, timezone correction goe ...

  7. java的setvisible_Java Container.setVisible方法代码示例

    import java.awt.Container; //导入方法依赖的package包/类 public static void loadOptions(final String name, fin ...

  8. java byte xml_Java XMLInputSource.setByteStream方法代码示例

    import org.apache.xerces.xni.parser.XMLInputSource; //导入方法依赖的package包/类 /** * Resolves an external p ...

  9. JAVA中rootpanel_Java JPanel.setFocusCycleRoot方法代码示例

    import javax.swing.JPanel; //导入方法依赖的package包/类 @Override public void actionPerformed(ActionEvent e) ...

最新文章

  1. 高效开发 Dubbo?用 Spring Boot 可得劲!
  2. 【分析】在线交易开启跨境电商B2B新纪元
  3. ERP实施过程中的误区 你知道吗?
  4. 使用DPM还原exchange 2013已删除邮箱数据
  5. Linux系统直接升级GLIBC版本
  6. 删除PHP配置文件中的注释行
  7. 遍历聚合对象中的元素——迭代器模式(四)
  8. win10电脑浏览器哪个好_电脑WinXP、Win7和Win10,哪个操作系统最好用?
  9. 借条已经收回,他以没收据为由让我继续还款怎样办?
  10. oracle 故障 linux,從硬盤安裝Oracle Linux 6.3之軟驅故障
  11. 使用Qt开发中国象棋(七):网络对战
  12. 网页设计与制作期末大作业报告——动画家宫崎骏
  13. OFFPIPE 海底管道铺设计算分析软件
  14. Python-爬虫(数据库基本操作,爬取豆瓣电影排行)
  15. 保护眼睛android版本,夜间护眼软件下载-夜间护眼 安卓版v4.9.1-PC6安卓网
  16. JavaScript数组map方法
  17. 洛谷P2689 东南西北
  18. 如何找实习工作?怎么准备?
  19. 数据报表开发技巧:自动为数据报表添加【小计】、【总计】行
  20. Aspose.Words 将Word(DOC / DOCX)转换为HTML教程

热门文章

  1. 进站公交车碾起积水溅上轿车两男子驾车撞伤公交司机
  2. io操作是指什么_各种IO模型,一篇打尽
  3. 阿里云视频云编码优化的思考与发现
  4. Flink SQL 在网易云音乐的产品化实践
  5. 揭秘下一代云数据库引擎MyBasefor PostgreSQL
  6. 为什么 APP 纷纷开发“暗黑模式”?优酷最佳实践总结
  7. 面向云数据库,超低延迟文件系统PolarFS诞生了
  8. 以美术资源生产为例,谈游戏研发中台PM实战
  9. SQL基础【十、Delete】
  10. Shell命令-文件及内容处理之split、paste