001package com.aispeech.dui.dds.agent; 002 003 004import android.text.TextUtils; 005 006import org.json.JSONArray; 007import org.json.JSONObject; 008 009import java.util.HashMap; 010import java.util.Map; 011 012public class ContextIntent { 013 014 private String skillId; 015 private String option; 016 private final Map<String, Object> keyValue = new HashMap<>(); 017 018 public ContextIntent() { 019 } 020 021 public ContextIntent(String key, String value) { 022 keyValue.put(key, value); 023 } 024 025 @Deprecated 026 public ContextIntent(String key, int value) { 027 keyValue.put(key, String.valueOf(value)); 028 } 029 030 @Deprecated 031 public ContextIntent(String key, double value) { 032 keyValue.put(key, String.valueOf(value)); 033 } 034 035 @Deprecated 036 public ContextIntent(String key, boolean value) { 037 keyValue.put(key, String.valueOf(value)); 038 } 039 040 @Deprecated 041 public ContextIntent(String key, float value) { 042 keyValue.put(key, String.valueOf(value)); 043 } 044 045 @Deprecated 046 public ContextIntent(String key, long value) { 047 keyValue.put(key, String.valueOf(value)); 048 } 049 050 public ContextIntent(String key, JSONObject value) { 051 keyValue.put(key, value); 052 } 053 054 public ContextIntent(String key, JSONArray value) { 055 keyValue.put(key, value); 056 } 057 058 public void setSkillId(String skillId) { 059 this.skillId = skillId; 060 } 061 062 public String getSkillId() { 063 return skillId; 064 } 065 066 public String getOption() { 067 return option; 068 } 069 070 public void setOption(String option) { 071 this.option = option; 072 } 073 074 /** 075 * 添加 key value 配置,value 的类型要求和构造方法上允许的相同 076 * 077 * @param key key 078 * @param value value 079 */ 080 public void addKeyValue(String key, Object value) { 081 if (key == null || key.length() == 0 || value == null) 082 return; 083 if (value instanceof JSONObject || value instanceof JSONArray || value instanceof String) { 084 this.keyValue.put(key, value); 085 } else { 086 this.keyValue.put(key, String.valueOf(value)); 087 } 088 } 089 090 public Map<String, Object> getKeyValue() { 091 return keyValue; 092 } 093 094 public String toString() { 095 return keyValue2JSONArray().toString(); 096 } 097 098 public JSONArray keyValue2JSONArray() { 099 JSONArray jsonArray = new JSONArray(); 100 try { 101 if (!keyValue.isEmpty()) 102 for (String k : keyValue.keySet()) { 103 JSONObject j = new JSONObject(); 104 j.put("key", k); 105 j.put("value", TextUtils.equals(option, "delete") ? "" : keyValue.get(k)); 106 jsonArray.put(j); 107 } 108 } catch (Exception e) { 109 com.aispeech.dui.manager.AIJavaException.printException(e); 110 } 111 return jsonArray; 112 } 113}