All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.dominokit.jacksonapt.ServerJacksonJsonDeserializerParameters Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2013 Nicolas Morel
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.dominokit.jacksonapt;

import com.fasterxml.jackson.annotation.JsonFormat.Shape;
import org.dominokit.jacksonapt.deser.bean.IdentityDeserializationInfo;
import org.dominokit.jacksonapt.deser.bean.TypeDeserializationInfo;

import java.util.HashSet;
import java.util.Set;

/**
 * This class includes parameters defined through properties annotations like {@link com.fasterxml.jackson.annotation.JsonIgnoreProperties}. They are specific to one
 * {@link org.dominokit.jacksonapt.JsonDeserializer} and that's why they are not contained inside {@link org.dominokit.jacksonapt.JsonDeserializationContext}.
 *
 * @author Nicolas Morel
 * @version $Id: $
 */
@GwtIncompatible
public final class ServerJacksonJsonDeserializerParameters implements JsonDeserializerParameters {

    /**
     * Constant DEFAULT
     */
    public static final JsonDeserializerParameters DEFAULT = new ServerJacksonJsonDeserializerParameters();

    /**
     * Datatype-specific additional piece of configuration that may be used
     * to further refine formatting aspects. This may, for example, determine
     * low-level format String used for {@link java.util.Date} serialization;
     * however, exact use is determined by specific {@link JsonDeserializer}
     */
    private String pattern;

    /**
     * Structure to use for serialization: definition of mapping depends on datatype,
     * but usually has straight-forward counterpart in data format (JSON).
     * Note that commonly only a subset of shapes is available; and if 'invalid' value
     * is chosen, defaults are usually used.
     */
    private Shape shape = Shape.ANY;

    /**
     * Locale to use for deserialization (if needed).
     */
    private String locale;

    /**
     * Names of properties to ignore.
     */
    private Set ignoredProperties;

    /**
     * Property that defines whether it is ok to just ignore any
     * unrecognized properties during deserialization.
     * If true, all properties that are unrecognized -- that is,
     * there are no setters or creators that accept them -- are
     * ignored without warnings (although handlers for unknown
     * properties, if any, will still be called) without
     * exception.
     */
    private boolean ignoreUnknown = false;

    /**
     * Bean identity informations
     */
    private IdentityDeserializationInfo identityInfo;

    /**
     * Bean type informations
     */
    private TypeDeserializationInfo typeInfo;

    public ServerJacksonJsonDeserializerParameters() {
    }

    public ServerJacksonJsonDeserializerParameters(JsonDeserializerParameters jsonDeserializerParameters) {
        this.identityInfo = jsonDeserializerParameters.getIdentityInfo();
        this.ignoredProperties = jsonDeserializerParameters.getIgnoredProperties();
        this.locale = jsonDeserializerParameters.getLocale();
        this.pattern = jsonDeserializerParameters.getPattern();
        this.shape = jsonDeserializerParameters.getShape();
        this.typeInfo = jsonDeserializerParameters.getTypeInfo();
    }


    /**
     * {@inheritDoc}
     *
     * 

Getter for the field pattern.

*/ @Override public String getPattern() { return pattern; } /** * {@inheritDoc} * *

Setter for the field pattern.

*/ @Override public JsonDeserializerParameters setPattern(String pattern) { this.pattern = pattern; return this; } /** * {@inheritDoc} * *

Getter for the field shape.

*/ @Override public Shape getShape() { return shape; } /** * {@inheritDoc} * *

Setter for the field shape.

*/ @Override public JsonDeserializerParameters setShape(Shape shape) { this.shape = shape; return this; } /** * {@inheritDoc} * *

Getter for the field locale.

*/ @Override public String getLocale() { return locale; } /** * {@inheritDoc} * *

Setter for the field locale.

*/ @Override public JsonDeserializerParameters setLocale(String locale) { this.locale = locale; return this; } /** * {@inheritDoc} * *

Getter for the field ignoredProperties.

*/ @Override public Set getIgnoredProperties() { return ignoredProperties; } /** * {@inheritDoc} * *

addIgnoredProperty

*/ @Override public JsonDeserializerParameters addIgnoredProperty(String ignoredProperty) { if (null == ignoredProperties) { ignoredProperties = new HashSet(); } ignoredProperties.add(ignoredProperty); return this; } /** * {@inheritDoc} * *

isIgnoreUnknown

*/ @Override public boolean isIgnoreUnknown() { return ignoreUnknown; } /** * {@inheritDoc} * *

Setter for the field ignoreUnknown.

*/ @Override public JsonDeserializerParameters setIgnoreUnknown(boolean ignoreUnknown) { this.ignoreUnknown = ignoreUnknown; return this; } /** * {@inheritDoc} * *

Getter for the field identityInfo.

*/ @Override public IdentityDeserializationInfo getIdentityInfo() { return identityInfo; } /** * {@inheritDoc} * *

Setter for the field identityInfo.

*/ @Override public JsonDeserializerParameters setIdentityInfo(IdentityDeserializationInfo identityInfo) { this.identityInfo = identityInfo; return this; } /** * {@inheritDoc} * *

Getter for the field typeInfo.

*/ @Override public TypeDeserializationInfo getTypeInfo() { return typeInfo; } /** * {@inheritDoc} * *

Setter for the field typeInfo.

*/ @Override public JsonDeserializerParameters setTypeInfo(TypeDeserializationInfo typeInfo) { this.typeInfo = typeInfo; return this; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy