package weiboclient4j.model;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.node.ArrayNode;
import org.codehaus.jackson.type.TypeReference;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* @author Hover Ruan
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public class Tag {
public static final TypeReference<List<Tag>> TYPE_TAG_LIST = new TypeReference<List<Tag>>() {
};
private long id;
private String tag;
private int count;
private int weight;
public Tag() {
}
public Tag(long id, String tag) {
this.id = id;
this.tag = tag;
}
public static List<Tag> parseTags(JsonNode json) {
assert json != null;
assert json.isArray();
List<Tag> tags = new ArrayList<Tag>();
for (JsonNode tagNode : (ArrayNode) json) {
tags.add(parseTag(tagNode));
}
return tags;
}
public static Tag parseTag(JsonNode tagNode) {
Tag tag = new Tag();
Iterator<String> fieldNames = tagNode.getFieldNames();
while (fieldNames.hasNext()) {
String fieldName = fieldNames.next();
JsonNode fieldValue = tagNode.get(fieldName);
if ("weight".equals(fieldName)) {
tag.setWeight(fieldValue.asInt());
} else {
tag.setId(Long.parseLong(fieldName));
tag.setTag(fieldValue.asText());
}
}
return tag;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getValue() {
return tag;
}
public String getTag() {
return tag;
}
public void setTag(String tag) {
this.tag = tag;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
}