NIMSDK-AOS  10.9.90
V2NIMTextTranslateParams.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.v2.message.params;
2 
3 import java.io.Serializable;
4 
5 /**
6  * 文本翻译参数类
7  * <p>
8  * 用于配置文本翻译请求的相关参数
9  * </p>
10  */
11 public class V2NIMTextTranslateParams implements Serializable {
12 
13  /**
14  * 源语言默认值,表示自动识别
15  */
16  public static final String DEFAULT_SOURCE_LANGUAGE = "";
17 
18  /**
19  * 需要翻译的文本信息
20  * <p>
21  * 最大长度 5000 字符,如果内容为 null 或者为 ""(空串),返回参数错误
22  * </p>
23  * <p>
24  * 内部逻辑:客户端不校验文本长度,由服务器控制
25  * </p>
26  */
27  private String text;
28 
29  /**
30  * 输入文本对应的语言
31  * <p>
32  * 如果不传则默认为自动识别,如果明确源语言类型则输入源语言类型标识
33  * </p>
34  * <p>
35  * 支持输入:"auto",表示自动识别
36  * </p>
37  * <p>
38  * 内部逻辑:如果传入为 null 或者空串,则 SDK 内部转换为 "auto" 字符串提交给服务器
39  * </p>
40  */
41  private String sourceLanguage;
42 
43  /**
44  * 文本翻译的目标语言
45  * <p>
46  * 如果内容为 null 或者为 ""(空串),返回参数错误
47  * </p>
48  * <p>
49  * 示例:"en",更多支持的语言代码请参考官方文档中的支持语言列表
50  * </p>
51  */
52  private String targetLanguage;
53 
54  /**
55  * 默认构造函数
56  */
58  this(null, DEFAULT_SOURCE_LANGUAGE, null);
59  }
60 
61  /**
62  * 带参数的构造函数
63  *
64  * @param text 需要翻译的文本信息
65  * @param sourceLanguage 输入文本对应的语言
66  * @param targetLanguage 文本翻译的目标语言
67  */
68  public V2NIMTextTranslateParams(String text, String sourceLanguage, String targetLanguage) {
69  this.text = text;
70  this.sourceLanguage = sourceLanguage;
71  this.targetLanguage = targetLanguage;
72  }
73 
74  /**
75  * 获取需要翻译的文本信息
76  * <p>
77  * 最大长度 5000 字符
78  * </p>
79  *
80  * @return 需要翻译的文本信息
81  */
82  public String getText() {
83  return text;
84  }
85 
86  /**
87  * 设置需要翻译的文本信息
88  * <p>
89  * 最大长度 5000 字符,如果内容为 null 或者为 ""(空串),返回参数错误
90  * </p>
91  * <p>
92  * 注意:客户端不校验文本长度,由服务器控制
93  * </p>
94  *
95  * @param text 需要翻译的文本信息
96  */
97  public void setText(String text) {
98  this.text = text;
99  }
100 
101  /**
102  * 获取输入文本对应的语言
103  * <p>
104  * 如果为空或 null,SDK 内部会转换为 "auto" 提交给服务器
105  * </p>
106  *
107  * @return 输入文本对应的语言标识
108  */
109  public String getSourceLanguage() {
110  return sourceLanguage;
111  }
112 
113  /**
114  * 设置输入文本对应的语言
115  * <p>
116  * 如果不传则默认为自动识别,如果明确源语言类型则输入源语言类型标识
117  * </p>
118  * <p>
119  * 支持输入:"auto",表示自动识别
120  * </p>
121  * <p>
122  * 内部逻辑:如果传入为 null 或者空串,则 SDK 内部转换为 "auto" 字符串提交给服务器
123  * </p>
124  *
125  * @param sourceLanguage 输入文本对应的语言标识
126  */
127  public void setSourceLanguage(String sourceLanguage) {
128  this.sourceLanguage = sourceLanguage;
129  }
130 
131  /**
132  * 获取文本翻译的目标语言
133  *
134  * @return 文本翻译的目标语言标识
135  */
136  public String getTargetLanguage() {
137  return targetLanguage;
138  }
139 
140  /**
141  * 设置文本翻译的目标语言
142  * <p>
143  * 如果内容为 null 或者为 ""(空串),返回参数错误
144  * </p>
145  * <p>
146  * 示例:"en",更多支持的语言代码请参考官方文档中的支持语言列表
147  * </p>
148  *
149  * @param targetLanguage 文本翻译的目标语言标识
150  */
151  public void setTargetLanguage(String targetLanguage) {
152  this.targetLanguage = targetLanguage;
153  }
154 
155  @Override
156  public String toString() {
157  return "V2NIMTextTranslateParams{" +
158  "text='" + text + '\'' +
159  ", sourceLanguage='" + sourceLanguage + '\'' +
160  ", targetLanguage='" + targetLanguage + '\'' +
161  '}';
162  }
163 
164  /**
165  * 参数校验方法
166  * <p>
167  * 校验必填参数是否有效:
168  * <ul>
169  * <li>text:不能为 null 或空串</li>
170  * <li>targetLanguage:不能为 null 或空串</li>
171  * </ul>
172  * </p>
173  *
174  * @return true 表示参数有效,false 表示参数无效
175  */
176  public boolean isValid() {
177  // 校验 text:不能为 null 或空串
178  if (text == null || text.isEmpty()) {
179  return false;
180  }
181  // 校验 targetLanguage:不能为 null 或空串
182  if (targetLanguage == null || targetLanguage.isEmpty()) {
183  return false;
184  }
185  return true;
186  }
187 
188  /**
189  * V2NIMTextTranslateParams 构建器
190  * <p>
191  * 用于通过链式调用构建 V2NIMTextTranslateParams 实例
192  * </p>
193  */
194  public static final class V2NIMTextTranslateParamsBuilder {
195 
196  /**
197  * 需要翻译的文本信息(必填)
198  */
199  private final String text;
200 
201  /**
202  * 输入文本对应的语言
203  */
204  private String sourceLanguage = DEFAULT_SOURCE_LANGUAGE;
205 
206  /**
207  * 文本翻译的目标语言(必填)
208  */
209  private final String targetLanguage;
210 
211  /**
212  * 私有构造函数
213  *
214  * @param text 需要翻译的文本信息(必填)
215  * @param targetLanguage 文本翻译的目标语言(必填)
216  */
217  private V2NIMTextTranslateParamsBuilder(String text, String targetLanguage) {
218  this.text = text;
219  this.targetLanguage = targetLanguage;
220  }
221 
222  /**
223  * 创建 V2NIMTextTranslateParamsBuilder 实例
224  * <p>
225  * 必填参数通过此方法传入
226  * </p>
227  *
228  * @param text 需要翻译的文本信息,最大长度 5000 字符,不能为 null 或空串
229  * @param targetLanguage 文本翻译的目标语言,不能为 null 或空串,示例:"en"
230  * @return V2NIMTextTranslateParamsBuilder 实例
231  */
232  public static V2NIMTextTranslateParamsBuilder builder(String text, String targetLanguage) {
233  return new V2NIMTextTranslateParamsBuilder(text, targetLanguage);
234  }
235 
236  /**
237  * 设置输入文本对应的语言
238  * <p>
239  * 如果不设置则默认为自动识别(SDK 内部转换为 "auto")
240  * </p>
241  * <p>
242  * 支持输入:"auto",表示自动识别
243  * </p>
244  *
245  * @param sourceLanguage 输入文本对应的语言标识
246  * @return V2NIMTextTranslateParamsBuilder 实例
247  */
248  public V2NIMTextTranslateParamsBuilder withSourceLanguage(String sourceLanguage) {
249  this.sourceLanguage = sourceLanguage;
250  return this;
251  }
252 
253  /**
254  * 构建 V2NIMTextTranslateParams 实例
255  *
256  * @return V2NIMTextTranslateParams 实例
257  */
258  public V2NIMTextTranslateParams build() {
259  return new V2NIMTextTranslateParams(text, sourceLanguage, targetLanguage);
260  }
261  }
262 }
void setText(String text)
设置需要翻译的文本信息
V2NIMTextTranslateParams(String text, String sourceLanguage, String targetLanguage)
带参数的构造函数
static final String DEFAULT_SOURCE_LANGUAGE
源语言默认值,表示自动识别
void setTargetLanguage(String targetLanguage)
设置文本翻译的目标语言
void setSourceLanguage(String sourceLanguage)
设置输入文本对应的语言