当前位置: 首页>>代码示例>>Java>>正文


Java DeserializationContext.findInjectableValue方法代码示例

本文整理汇总了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;
}
 
开发者ID:ajoabraham,项目名称:hue,代码行数:58,代码来源:JoinSerDe.java


注:本文中的com.fasterxml.jackson.databind.DeserializationContext.findInjectableValue方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。