下面列出了怎么用com.fasterxml.jackson.databind.deser.ResolvableDeserializer的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void resolve(DeserializationContext ctxt)
throws JsonMappingException
{
if (_delegateDeserializer != null && _delegateDeserializer instanceof ResolvableDeserializer) {
((ResolvableDeserializer) _delegateDeserializer).resolve(ctxt);
}
}
@Override
public HiveProxyingSubScan deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
final JsonNode node = jsonParser.getCodec().readTree(jsonParser);
final String pluginName = node.get("pluginName").asText();
final CatalogService catalogService = (CatalogService) deserializationContext
.findInjectableValue(CatalogService.class.getName(), null, null);
final StoragePluginCreator.PF4JStoragePlugin plugin = catalogService.getSource(pluginName);
final Class<? extends HiveProxiedSubScan> scanClazz = plugin.getSubScanClass();
final JavaType scanType = deserializationContext.getTypeFactory().constructType(scanClazz);
final BasicBeanDescription description = deserializationContext.getConfig().introspect(scanType);
final JsonDeserializer<Object> subScanDeserializer = deserializationContext.getFactory().createBeanDeserializer(
deserializationContext, scanType, description);
if (subScanDeserializer instanceof ResolvableDeserializer) {
((ResolvableDeserializer) subScanDeserializer).resolve(deserializationContext);
}
final JsonParser movedParser = jsonParser.getCodec().treeAsTokens(node.get("wrappedHiveScan"));
deserializationContext.getConfig().initialize(movedParser);
if (movedParser.getCurrentToken() == null) {
movedParser.nextToken();
}
final HiveProxiedSubScan scan = (HiveProxiedSubScan) subScanDeserializer.deserialize(movedParser, deserializationContext);
return new HiveProxyingSubScan(pluginName, scan);
}
@Override
public HiveProxyingOrcScanFilter deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
// TODO: Optimize performance as described in https://dremio.atlassian.net/browse/DX-17732
final JsonNode node = jsonParser.getCodec().readTree(jsonParser);
final String pluginName = node.get(HiveProxyingOrcScanFilter.JSON_PROP_PLUGINNAME).asText();
final CatalogService catalogService = (CatalogService) deserializationContext
.findInjectableValue(CatalogService.class.getName(), null, null);
final StoragePluginCreator.PF4JStoragePlugin plugin = catalogService.getSource(pluginName);
final Class<? extends HiveProxiedOrcScanFilter> scanClazz = plugin.getOrcScanFilterClass();
final JavaType scanType = deserializationContext.getTypeFactory().constructType(scanClazz);
final BasicBeanDescription description = deserializationContext.getConfig().introspect(scanType);
final JsonDeserializer<Object> orcScanFilterDeserializer = deserializationContext.getFactory().createBeanDeserializer(
deserializationContext, scanType, description);
if (orcScanFilterDeserializer instanceof ResolvableDeserializer) {
((ResolvableDeserializer) orcScanFilterDeserializer).resolve(deserializationContext);
}
final JsonParser movedParser = jsonParser.getCodec().treeAsTokens(node.get(HiveProxyingOrcScanFilter.JSON_PROP_WRAPPEDHIVEORCSCANFILTER));
deserializationContext.getConfig().initialize(movedParser);
if (movedParser.getCurrentToken() == null) {
movedParser.nextToken();
}
final HiveProxiedOrcScanFilter orcScanFilter = (HiveProxiedOrcScanFilter) orcScanFilterDeserializer.deserialize(movedParser, deserializationContext);
return new HiveProxyingOrcScanFilter(pluginName, orcScanFilter);
}
@Override
public void resolve(final DeserializationContext ctxt)
throws JsonMappingException {
if (defaultDeserializer instanceof ResolvableDeserializer) {
((ResolvableDeserializer) defaultDeserializer).resolve(ctxt);
}
}
@Override
public void resolve(DeserializationContext ctxt) throws JsonMappingException {
((ResolvableDeserializer) defaultDeserializer).resolve(ctxt);
}
@Override
public void resolve(DeserializationContext ctxt) throws JsonMappingException {
((ResolvableDeserializer) defaultDeserializer).resolve(ctxt);
}
@Override
public void resolve(DeserializationContext cxt) throws JsonMappingException {
((ResolvableDeserializer) this.defaultDeserializer).resolve(cxt);
}
@Override
public void resolve(DeserializationContext ctxt) throws JsonMappingException {
((ResolvableDeserializer) defaultDeserializer).resolve(ctxt);
}
@Override
public void resolve(DeserializationContext ctxt) throws JsonMappingException {
((ResolvableDeserializer) defaultDeserializer).resolve(ctxt);
}
@Override
public void resolve(DeserializationContext ctxt) throws JsonMappingException {
((ResolvableDeserializer) defaultDeserializer).resolve(ctxt);
}
@Override
public void resolve(DeserializationContext cxt) throws JsonMappingException {
((ResolvableDeserializer) this.defaultDeserializer).resolve(cxt);
}
@Override
public void resolve(DeserializationContext ctxt) throws JsonMappingException {
((ResolvableDeserializer) defaultDeserializer).resolve(ctxt);
}
@Override
public void resolve(DeserializationContext ctxt) throws JsonMappingException {
((ResolvableDeserializer) defaultDeserializer).resolve(ctxt);
}
@Override
public void resolve(DeserializationContext deserializationContext) throws JsonMappingException {
((ResolvableDeserializer) defaultDeserializer).resolve(deserializationContext);
}
@Override
public void resolve(DeserializationContext deserializationContext) throws JsonMappingException {
((ResolvableDeserializer) defaultDeserializer).resolve(deserializationContext);
}
@Override
public void resolve(DeserializationContext deserializationContext) throws JsonMappingException {
((ResolvableDeserializer) defaultDeserializer).resolve(deserializationContext);
}
@Override
public void resolve(DeserializationContext deserializationContext) throws JsonMappingException {
((ResolvableDeserializer) defaultDeserializer).resolve(deserializationContext);
}