/** * Method used by module registration functionality, to attach additional * serializer providers into this serializer factory. This is typically * handled by constructing a new instance with additional serializers, * to ensure thread-safe access. */ @Override public SerializerFactory withConfig(SerializerFactoryConfig config) { if (_factoryConfig == config) { return this; } /* 22-Nov-2010, tatu: Handling of subtypes is tricky if we do immutable-with-copy-ctor; * and we pretty much have to here either choose between losing subtype instance * when registering additional serializers, or losing serializers. * Instead, let's actually just throw an error if this method is called when subtype * has not properly overridden this method; this to indicate problem as soon as possible. */ if (getClass() != BeanSerializerFactory.class) { throw new IllegalStateException("Subtype of BeanSerializerFactory ("+getClass().getName() +") has not properly overridden method 'withAdditionalSerializers': can not instantiate subtype with " +"additional serializer definitions"); } return new BeanSerializerFactory(config); }
protected ErrorContractSerializationFactory(SerializerFactoryConfig config, boolean excludeEmptyMetadataFromJson, boolean serializeErrorCodeFieldAsIntegerIfPossible) { super(config); this.excludeEmptyMetadataFromJson = excludeEmptyMetadataFromJson; this.serializeErrorCodeFieldAsIntegerIfPossible = serializeErrorCodeFieldAsIntegerIfPossible; }
public SerializerFactory withConfig(SerializerFactoryConfig paramSerializerFactoryConfig) { if (this._factoryConfig == paramSerializerFactoryConfig) return this; if (getClass() != BeanSerializerFactory.class) throw new IllegalStateException("Subtype of BeanSerializerFactory (" + getClass().getName() + ") has not properly overridden method 'withAdditionalSerializers': can not instantiate subtype with additional serializer definitions"); return new BeanSerializerFactory(paramSerializerFactoryConfig); }
protected DelegatingSerializerFactory(SerializerFactoryConfig config) { super(config); }
private static SerializerFactoryConfig getSerializerFactoryConfig(ObjectMapper objectMapper) { return ((BasicSerializerFactory) objectMapper.getSerializerFactory()).getFactoryConfig(); }
protected HibernateBeanSerializerFactory(SerializerFactoryConfig config) { super(config); }
@Override public SerializerFactory withConfig(SerializerFactoryConfig config) { return new HibernateBeanSerializerFactory(config); }
protected BeanSerializerFactory(SerializerFactoryConfig paramSerializerFactoryConfig) { super(paramSerializerFactoryConfig); }
public SerializerFactoryConfig getFactoryConfig() { return this._factoryConfig; }
@Override public SerializerFactory withConfig(SerializerFactoryConfig config) { return null; }
/** * TODO: Remove use of {@link DirectFieldAccessor} with getters. * See <a href="https://github.com/FasterXML/jackson-databind/issues/65">issue#65</a>. */ private static final SerializerFactoryConfig getSerializerFactoryConfig(ObjectMapper objectMapper) { Object factoryProp = new DirectFieldAccessor(objectMapper).getPropertyValue("_serializerFactory"); return (SerializerFactoryConfig) new DirectFieldAccessor(factoryProp).getPropertyValue("_factoryConfig"); }
protected RmBeanSerializerFactory(SerializerFactoryConfig config) { super(config); }
/** * Constructor for creating instances with specified configuration. */ protected BeanSerializerFactory(SerializerFactoryConfig config) { super(config); }
/** * We will provide default constructor to allow sub-classing, * but make it protected so that no non-singleton instances of * the class will be instantiated. */ protected BasicSerializerFactory(SerializerFactoryConfig config) { _factoryConfig = (config == null) ? new SerializerFactoryConfig() : config; }
/** * Method for getting current {@link SerializerFactoryConfig}. *<p> * Note that since instances are immutable, you can NOT change settings * by accessing an instance and calling methods: this will simply create * new instance of config object. */ public SerializerFactoryConfig getFactoryConfig() { return _factoryConfig; }
/** * Method used for creating a new instance of this factory, but with different * configuration. Reason for specifying factory method (instead of plain constructor) * is to allow proper sub-classing of factories. *<p> * Note that custom sub-classes generally <b>must override</b> implementation * of this method, as it usually requires instantiating a new instance of * factory type. Check out javadocs for * {@link com.fasterxml.jackson.databind.ser.BeanSerializerFactory} for more details. */ public abstract SerializerFactory withConfig(SerializerFactoryConfig config);
public abstract SerializerFactory withConfig(SerializerFactoryConfig paramSerializerFactoryConfig);