package org.nutz.weixin.bean;
import java.util.Collection;
import java.util.Map;
import org.nutz.lang.Each;
import org.nutz.lang.Lang;
import org.nutz.lang.Strings;
public class WxTemplateData {
public static final String DFT_COLOR = "#173177";
private String value;
private String color = DFT_COLOR;
public WxTemplateData() {}
public WxTemplateData(Object obj) {
// 空
if (null == obj) {
this.set(null, null);
}
// 如果就是 map 则将其转换,假想必须有 value 这个键
if (obj instanceof Map<?, ?>) {
Map<?, ?> map = (Map<?, ?>) obj;
Object value = map.get("value");
Object color = map.get("color");
this.set(value, color);
}
// 数组 [value, color?]
// 集合 [value, color?]
else if (obj.getClass().isArray() || obj instanceof Collection<?>) {
final Object[] vv = new Object[2];
Lang.each(obj, new Each<Object>() {
public void invoke(int index, Object ele, int length) {
if (index >= 2)
Lang.Break();
vv[index] = ele;
}
});
this.set(vv[0], vv[1]);
}
// 其他,转成字符串
else {
this.set(obj, null);
}
}
public WxTemplateData(String value, String color) {
set(value, color);
}
public void set(Object value, Object color) {
this.value = Strings.sBlank(value);
this.color = Strings.sBlank(color);
if (Strings.isBlank(this.value)) {
throw Lang.makeThrow("blank value");
}
if (Strings.isBlank(this.color)) {
this.color = DFT_COLOR;
}
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}