本文整理汇总了Java中com.fasterxml.jackson.databind.DeserializationContext.findInjectableValue方法的典型用法代码示例。如果您正苦于以下问题:Java DeserializationContext.findInjectableValue方法的具体用法?Java DeserializationContext.findInjectableValue怎么用?Java DeserializationContext.findInjectableValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.fasterxml.jackson.databind.DeserializationContext
的用法示例。
在下文中一共展示了DeserializationContext.findInjectableValue方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: deserialize
import com.fasterxml.jackson.databind.DeserializationContext; //导入方法依赖的package包/类
@Override
public Join deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
Schema s = (Schema) ctxt.findInjectableValue("schema", null, null);
Datasource ds = (Datasource) ctxt.findInjectableValue("datasource", null, null);
ObjectCodec oc = p.getCodec();
JsonNode node = oc.readTree(p);
check(node,"leftTableName");
final String left = node.get("leftTableName").asText();
String[] l = left.split(".");
Table leftTbl;
if(l.length > 1) {
leftTbl = checkAndGetTable(s, ds, l[l.length-2], l[l.length-1]);
}else {
leftTbl = checkAndGetTable(s, ds, null, left);;
}
check(node,"rightTableName");
final String right = node.get("rightTableName").asText();
String[] r = right.split(".");
Table rightTbl;
if(r.length > 1) {
rightTbl = checkAndGetTable(s, ds, r[r.length-2], r[r.length-1]);
}else {
rightTbl = checkAndGetTable(s, ds, null, right);
}
check(node,"sql");
Join j = new Join(
leftTbl,
rightTbl,
node.get("sql").asText(),
null
);
check(node,"joinType");
JoinType jt = JoinType.valueOf(node.get("joinType").asText("INNER_JOIN"));
check(node,"cardinalityType");
CardinalityType ct = CardinalityType.valueOf(node.get("cardinalityType").asText());
j.setJoinType(jt);
j.setCardinalityType(ct);
int ar = -1;
if(node.get("allowRollDown") != null) {
ar = node.get("allowRollDown").asInt(-1);
}
if(ar == 1) {
j.setAllowRollDown(true);
}else if(ar == 0) {
j.setAllowRollDown(false);
}
return j;
}