use of com.virjar.sipsoup.model.SIPNode in project vscrawler by virjar.
the class Converters method registerString.
private static void registerString() {
register(StringNode.class, StringNode.class, new NodeConvert<StringNode, StringNode>() {
@Override
public StringNode convert(StringNode from) {
return from;
}
});
register(JsonNode.class, StringNode.class, new NodeConvert<JsonNode, StringNode>() {
private List<String> genDefault(List<JSON> fromModel) {
return Lists.transform(fromModel, new Function<JSON, String>() {
@Override
public String apply(JSON input) {
return input.toJSONString();
}
});
}
@Override
public StringNode convert(JsonNode from) {
StringNode ret = new StringNode(from.getBaseUrl(), null);
List<String> tempRet = Lists.newLinkedList();
List<JSON> fromModel = from.createOrGetModel();
for (JSON json : fromModel) {
if (json instanceof JSONArray) {
JSONArray jsonArray = (JSONArray) json;
for (Object o : jsonArray) {
if (o instanceof CharSequence) {
tempRet.add(o.toString());
} else {
ret.setModel(genDefault(fromModel));
return ret;
}
}
} else {
ret.setModel(genDefault(fromModel));
return ret;
}
}
ret.setModel(tempRet);
return ret;
}
});
register(RawNode.class, StringNode.class, new NodeConvert<RawNode, StringNode>() {
@Override
public StringNode convert(RawNode from) {
return new StringNode(from.getBaseUrl(), from.createOrGetModel());
}
});
register(XpathNode.class, StringNode.class, new NodeConvert<XpathNode, StringNode>() {
@Override
public StringNode convert(XpathNode from) {
StringNode ret = new StringNode(from.getBaseUrl(), null);
ret.setModel(Lists.transform(from.createOrGetModel(), new Function<SIPNode, String>() {
@Override
public String apply(SIPNode input) {
return input.isText() ? input.getTextVal() : input.getElement().html();
}
}));
return ret;
}
});
}
Aggregations