package org.glassfish.jersey.jackson.internal.jackson.jaxrs.cfg;

import com.fasterxml.jackson.databind.cfg.ConfigFeature;

Enumeration that defines simple on/off features that can be used on all Jackson JAX-RS providers, regardless of underlying data format.
/** * Enumeration that defines simple on/off features that can be * used on all Jackson JAX-RS providers, regardless of * underlying data format. */
public enum JaxRSFeature implements ConfigFeature { /* /********************************************************** /* Input handling /********************************************************** */
Feature related to Issue #49: whether empty input is considered legal or not. If set to true, empty content is allowed and will be read as Java 'null': if false, an IOException will be thrown.

NOTE: in case of JAX-RS 2.0, specific exception will be javax.ws.rs.core.NoContentException; but this is not defined in JAX-RS 1.x.

/** * Feature related to * <a href="https://github.com/FasterXML/jackson-jaxrs-providers/issues/49">Issue #49</a>: * whether empty input is considered legal or not. * If set to true, empty content is allowed and will be read as Java 'null': if false, * an {@link java.io.IOException} will be thrown. *<p> * NOTE: in case of JAX-RS 2.0, specific exception will be <code>javax.ws.rs.core.NoContentException</code>; * but this is not defined in JAX-RS 1.x. */
ALLOW_EMPTY_INPUT(true), /* /********************************************************** /* HTTP headers /********************************************************** */
Feature that can be enabled to make provider automatically add "nosniff" (see this entry for details

Feature is disabled by default.

/** * Feature that can be enabled to make provider automatically * add "nosniff" (see * <a href="http://security.stackexchange.com/questions/20413/how-can-i-prevent-reflected-xss-in-my-json-web-services">this entry</a> * for details *<p> * Feature is disabled by default. */
ADD_NO_SNIFF_HEADER(false), /* /********************************************************** /* Caching, related /********************************************************** */
Feature that may be enabled to force dynamic lookup of ObjectMapper via JAX-RS Provider interface, regardless of whether MapperConfigurator has explicitly configured mapper or not; if disabled, static configuration will take precedence. Note that if this feature is enabled, it typically makes sense to also disable CACHE_ENDPOINT_READERS and CACHE_ENDPOINT_WRITERS since caching would prevent lookups.

Feature is disabled by default.

Since:2.8
/** * Feature that may be enabled to force dynamic lookup of <code>ObjectMapper</code> * via JAX-RS Provider interface, regardless of whether <code>MapperConfigurator<code> * has explicitly configured mapper or not; if disabled, static configuration will * take precedence. * Note that if this feature is enabled, it typically makes sense to also disable * {@link JaxRSFeature#CACHE_ENDPOINT_READERS} and {@link JaxRSFeature#CACHE_ENDPOINT_WRITERS} * since caching would prevent lookups. *<p> * Feature is disabled by default. * * @since 2.8 */
DYNAMIC_OBJECT_MAPPER_LOOKUP(false),
[jaxrs-providers#86]: Feature that determines whether provider will cache endpoint definitions for reading or not (including caching of actual ObjectReader to use). Feature may be disabled if reconfiguration or alternate isntance of ObjectMapper is needed.

Note that disabling of the feature may add significant amount of overhead for processing.

Feature is enabled by default.

Since:2.8
/** * [jaxrs-providers#86]: Feature that determines whether provider will cache endpoint * definitions for reading or not (including caching of actual <code>ObjectReader</code> to use). * Feature may be disabled if reconfiguration or alternate isntance of <code>ObjectMapper</code> is needed. *<p> * Note that disabling of the feature may add significant amount of overhead for processing. *<p> * Feature is enabled by default. * * @since 2.8 */
CACHE_ENDPOINT_READERS(true),
[jaxrs-providers#86]: Feature that determines whether provider will cache endpoint definitions for writing or not (including caching of actual ObjectWriter to use). Feature may be disabled if reconfiguration or alternate isntance of ObjectMapper is needed.

Note that disabling of the feature may add significant amount of overhead for processing.

Feature is enabled by default.

Since:2.8
/** * [jaxrs-providers#86]: Feature that determines whether provider will cache endpoint * definitions for writing or not (including caching of actual <code>ObjectWriter</code> to use). * Feature may be disabled if reconfiguration or alternate isntance of <code>ObjectMapper</code> is needed. *<p> * Note that disabling of the feature may add significant amount of overhead for processing. *<p> * Feature is enabled by default. * * @since 2.8 */
CACHE_ENDPOINT_WRITERS(true), /* /********************************************************** /* Other /********************************************************** */ ; private final boolean _defaultState; private JaxRSFeature(boolean defaultState) { _defaultState = defaultState; } public static int collectDefaults() { int flags = 0; for (JaxRSFeature f : values()) { if (f.enabledByDefault()) { flags |= f.getMask(); } } return flags; } @Override public boolean enabledByDefault() { return _defaultState; } @Override public int getMask() { return (1 << ordinal()); } @Override public boolean enabledIn(int flags) { return (flags & getMask()) != 0; } }