package com.fasterxml.jackson.databind.cfg;

import java.util.*;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonSetter;
import com.fasterxml.jackson.databind.introspect.VisibilityChecker;

Container for individual ConfigOverride values.
Since:2.8
/** * Container for individual {@link ConfigOverride} values. * * @since 2.8 */
public class ConfigOverrides implements java.io.Serializable { private static final long serialVersionUID = 1L;
Per-type override definitions
/** * Per-type override definitions */
protected Map<Class<?>, MutableConfigOverride> _overrides; // // // Global defaulting
Since:2.9
/** * @since 2.9 */
protected JsonInclude.Value _defaultInclusion;
Since:2.9
/** * @since 2.9 */
protected JsonSetter.Value _defaultSetterInfo;
Since:2.9
/** * @since 2.9 */
protected VisibilityChecker<?> _visibilityChecker;
Since:2.9
/** * @since 2.9 */
protected Boolean _defaultMergeable; /* /********************************************************** /* Life cycle /********************************************************** */ public ConfigOverrides() { this(null, // !!! TODO: change to (ALWAYS, ALWAYS)? JsonInclude.Value.empty(), JsonSetter.Value.empty(), VisibilityChecker.Std.defaultInstance(), null ); } protected ConfigOverrides(Map<Class<?>, MutableConfigOverride> overrides, JsonInclude.Value defIncl, JsonSetter.Value defSetter, VisibilityChecker<?> defVisibility, Boolean defMergeable) { _overrides = overrides; _defaultInclusion = defIncl; _defaultSetterInfo = defSetter; _visibilityChecker = defVisibility; _defaultMergeable = defMergeable; } public ConfigOverrides copy() { Map<Class<?>, MutableConfigOverride> newOverrides; if (_overrides == null) { newOverrides = null; } else { newOverrides = _newMap(); for (Map.Entry<Class<?>, MutableConfigOverride> entry : _overrides.entrySet()) { newOverrides.put(entry.getKey(), entry.getValue().copy()); } } return new ConfigOverrides(newOverrides, _defaultInclusion, _defaultSetterInfo, _visibilityChecker, _defaultMergeable); } /* /********************************************************** /* Per-type override access /********************************************************** */ public ConfigOverride findOverride(Class<?> type) { if (_overrides == null) { return null; } return _overrides.get(type); } public MutableConfigOverride findOrCreateOverride(Class<?> type) { if (_overrides == null) { _overrides = _newMap(); } MutableConfigOverride override = _overrides.get(type); if (override == null) { override = new MutableConfigOverride(); _overrides.put(type, override); } return override; } /* /********************************************************** /* Global defaults access /********************************************************** */ public JsonInclude.Value getDefaultInclusion() { return _defaultInclusion; } public JsonSetter.Value getDefaultSetterInfo() { return _defaultSetterInfo; } public Boolean getDefaultMergeable() { return _defaultMergeable; }
Since:2.9
/** * @since 2.9 */
public VisibilityChecker<?> getDefaultVisibility() { return _visibilityChecker; }
Since:2.9
/** * @since 2.9 */
public void setDefaultInclusion(JsonInclude.Value v) { _defaultInclusion = v; }
Since:2.9
/** * @since 2.9 */
public void setDefaultSetterInfo(JsonSetter.Value v) { _defaultSetterInfo = v; }
Since:2.9
/** * @since 2.9 */
public void setDefaultMergeable(Boolean v) { _defaultMergeable = v; }
Since:2.9
/** * @since 2.9 */
public void setDefaultVisibility(VisibilityChecker<?> v) { _visibilityChecker = v; } /* /********************************************************** /* Helper methods /********************************************************** */ protected Map<Class<?>, MutableConfigOverride> _newMap() { return new HashMap<Class<?>, MutableConfigOverride>(); } }