protected final JsonDeserializer<Object> _createDeserializer(DeserializationContext paramDeserializationContext, DeserializerFactory paramDeserializerFactory, JavaType paramJavaType) { DeserializationConfig localDeserializationConfig = paramDeserializationContext.getConfig(); if ((paramJavaType.isAbstract()) || (paramJavaType.isMapLikeType()) || (paramJavaType.isCollectionLikeType())) paramJavaType = paramDeserializerFactory.mapAbstractType(localDeserializationConfig, paramJavaType); BeanDescription localBeanDescription = localDeserializationConfig.introspect(paramJavaType); JsonDeserializer localJsonDeserializer = findDeserializerFromAnnotation(paramDeserializationContext, localBeanDescription.getClassInfo()); if (localJsonDeserializer != null) return localJsonDeserializer; JavaType localJavaType1 = modifyTypeByAnnotation(paramDeserializationContext, localBeanDescription.getClassInfo(), paramJavaType); if (localJavaType1 != paramJavaType) { paramJavaType = localJavaType1; localBeanDescription = localDeserializationConfig.introspect(localJavaType1); } Class localClass = localBeanDescription.findPOJOBuilder(); if (localClass != null) return paramDeserializerFactory.createBuilderBasedDeserializer(paramDeserializationContext, paramJavaType, localBeanDescription, localClass); Converter localConverter = localBeanDescription.findDeserializationConverter(); if (localConverter == null) return _createDeserializer2(paramDeserializationContext, paramDeserializerFactory, paramJavaType, localBeanDescription); JavaType localJavaType2 = localConverter.getInputType(paramDeserializationContext.getTypeFactory()); if (!localJavaType2.hasRawClass(paramJavaType.getRawClass())) localBeanDescription = localDeserializationConfig.introspect(localJavaType2); return new StdDelegatingDeserializer(localConverter, localJavaType2, _createDeserializer2(paramDeserializationContext, paramDeserializerFactory, localJavaType2, localBeanDescription)); }
public IiifModule() { super("iiif-module"); // This will set the ResourceSerializer. We can't set it directly, since it needs to be passed // the default serializer. this.setSerializerModifier(new SerializerModifier()); this.setDeserializerModifier(new DeserializerModifier()); // Just use MimeType's getTypeName and String constructor for serializing/deserializing it this.addSerializer(new StdDelegatingSerializer(MimeType.class, toString(MimeType::getTypeName))); this.addDeserializer(MimeType.class, new StdDelegatingDeserializer<>(fromString(MimeType::fromTypename))); }
public PhysicalPlanReader(DrillConfig config, ScanResult scanResult, LogicalPlanPersistence lpPersistance, final DrillbitEndpoint endpoint, final StoragePluginRegistry pluginRegistry) { ObjectMapper lpMapper = lpPersistance.getMapper(); // Endpoint serializer/deserializer. SimpleModule deserModule = new SimpleModule("PhysicalOperatorModule") // .addSerializer(DrillbitEndpoint.class, new DrillbitEndpointSerDe.Se()) // .addDeserializer(DrillbitEndpoint.class, new DrillbitEndpointSerDe.De()) // .addSerializer(MajorType.class, new MajorTypeSerDe.Se()) .addDeserializer(MajorType.class, new MajorTypeSerDe.De()) .addDeserializer(DynamicPojoRecordReader.class, new StdDelegatingDeserializer<>(new DynamicPojoRecordReader.Converter(lpMapper))); lpMapper.registerModule(deserModule); Set<Class<? extends PhysicalOperator>> subTypes = PhysicalOperatorUtil.getSubTypes(scanResult); for (Class<? extends PhysicalOperator> subType : subTypes) { lpMapper.registerSubtypes(subType); } lpMapper.registerSubtypes(DynamicPojoRecordReader.class); InjectableValues injectables = new InjectableValues.Std() // .addValue(StoragePluginRegistry.class, pluginRegistry) // .addValue(DrillbitEndpoint.class, endpoint); // this.mapper = lpMapper; this.physicalPlanReader = mapper.reader(PhysicalPlan.class).with(injectables); this.operatorReader = mapper.reader(PhysicalOperator.class).with(injectables); this.logicalPlanReader = mapper.reader(LogicalPlan.class).with(injectables); }
protected final JsonDeserializer<Object> findConvertingDeserializer(DeserializationContext paramDeserializationContext, Annotated paramAnnotated, JsonDeserializer<Object> paramJsonDeserializer) { Converter localConverter = findConverter(paramDeserializationContext, paramAnnotated); if (localConverter == null) return paramJsonDeserializer; return new StdDelegatingDeserializer(localConverter, localConverter.getInputType(paramDeserializationContext.getTypeFactory()), paramJsonDeserializer); }
protected JsonDeserializer<Object> findConvertingDeserializer(DeserializationContext paramDeserializationContext, SettableBeanProperty paramSettableBeanProperty) { AnnotationIntrospector localAnnotationIntrospector = paramDeserializationContext.getAnnotationIntrospector(); if (localAnnotationIntrospector != null) { Object localObject = localAnnotationIntrospector.findDeserializationConverter(paramSettableBeanProperty.getMember()); if (localObject != null) { Converter localConverter = paramDeserializationContext.converterInstance(paramSettableBeanProperty.getMember(), localObject); JavaType localJavaType = localConverter.getInputType(paramDeserializationContext.getTypeFactory()); return new StdDelegatingDeserializer(localConverter, localJavaType, paramDeserializationContext.findContextualValueDeserializer(localJavaType, paramSettableBeanProperty)); } } return null; }