package com.fasterxml.jackson.databind.deser.impl;

import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.deser.NullValueProvider;
import com.fasterxml.jackson.databind.exc.InvalidNullException;
import com.fasterxml.jackson.databind.util.AccessPattern;

Simple NullValueProvider that will always throw a InvalidNullException when a null is encountered.
/** * Simple {@link NullValueProvider} that will always throw a * {@link InvalidNullException} when a null is encountered. */
public class NullsConstantProvider implements NullValueProvider, java.io.Serializable { private static final long serialVersionUID = 1L; private final static NullsConstantProvider SKIPPER = new NullsConstantProvider(null); private final static NullsConstantProvider NULLER = new NullsConstantProvider(null); protected final Object _nullValue; protected final AccessPattern _access; protected NullsConstantProvider(Object nvl) { _nullValue = nvl; _access = (_nullValue == null) ? AccessPattern.ALWAYS_NULL : AccessPattern.CONSTANT; }
Static accessor for a stateless instance used as marker, to indicate that all input `null` values should be skipped (ignored), so that no corresponding property value is set (with POJOs), and no content values (array/Collection elements, Map entries) are added.
/** * Static accessor for a stateless instance used as marker, to indicate * that all input `null` values should be skipped (ignored), so that * no corresponding property value is set (with POJOs), and no content * values (array/Collection elements, Map entries) are added. */
public static NullsConstantProvider skipper() { return SKIPPER; } public static NullsConstantProvider nuller() { return NULLER; } public static NullsConstantProvider forValue(Object nvl) { if (nvl == null) { return NULLER; } return new NullsConstantProvider(nvl); }
Utility method that can be used to check if given null value provider is "skipper", marker provider that means that all input `null`s should be skipped (ignored), instead of converted
/** * Utility method that can be used to check if given null value provider * is "skipper", marker provider that means that all input `null`s should * be skipped (ignored), instead of converted */
public static boolean isSkipper(NullValueProvider p) { return (p == SKIPPER); }
Utility method that can be used to check if given null value provider is "nuller", no-operation provider that will always simply return Java `null` for any and all input `null`s.
/** * Utility method that can be used to check if given null value provider * is "nuller", no-operation provider that will always simply return * Java `null` for any and all input `null`s. */
public static boolean isNuller(NullValueProvider p) { return (p == NULLER); } @Override public AccessPattern getNullAccessPattern() { return _access; } @Override public Object getNullValue(DeserializationContext ctxt) { return _nullValue; } }