/** * You should override this method if you want to add custom * {@link com.owlike.genson.convert.ChainedFactory ChainedFactory} or if you need to chain * them differently. * * @return the converter <u>factory instance that will be used to resolve * <strong>ALL</strong> converters</u>. */ protected Factory<Converter<?>> createConverterFactory() { ChainedFactory chainHead = new CircularClassReferenceConverterFactory(); chainHead.append(new NullConverterFactory(failOnNullPrimitive)); if (useRuntimeTypeForSerialization) chainHead.append(new RuntimeTypeConverter.RuntimeTypeConverterFactory()); chainHead.append(new ClassMetadataConverter.ClassMetadataConverterFactory(classMetadataWithStaticType)); if (customFactoryChain != null) chainHead.append(customFactoryChain); if (withBeanViewConverter) chainHead.append(new BeanViewConverter.BeanViewConverterFactory( getBeanViewDescriptorProvider())); ContextualFactoryDecorator ctxFactoryDecorator = new ContextualFactoryDecorator( new BasicConvertersFactory(getSerializersMap(), getDeserializersMap(), getFactories(), getBeanDescriptorProvider())); chainHead.append(ctxFactoryDecorator); return chainHead; }
/** * You should override this method if you want to add custom * {@link com.owlike.genson.convert.ChainedFactory ChainedFactory} or if you need to chain * them differently. * * @return the converter <u>factory instance that will be used to resolve * <strong>ALL</strong> converters</u>. */ protected Factory<Converter<?>> createConverterFactory() { ChainedFactory chainHead = new CircularClassReferenceConverterFactory(); chainHead.append(new NullConverterFactory(failOnNullPrimitive)); if (useRuntimeTypeForSerialization) chainHead.append(new RuntimeTypeConverter.RuntimeTypeConverterFactory()); chainHead.append(new ClassMetadataConverter.ClassMetadataConverterFactory(classMetadataWithStaticType)); if (customFactoryChain != null) chainHead.append(customFactoryChain); if (withBeanViewConverter) chainHead.append(new BeanViewConverter.BeanViewConverterFactory( getBeanViewDescriptorProvider())); ContextualFactoryDecorator ctxFactoryDecorator = new ContextualFactoryDecorator( new BasicConvertersFactory(getSerializersMap(), getDeserializersMap(), getFactories(), getBeanDescriptorProvider())); chainHead.append(ctxFactoryDecorator); return chainHead; }