com.okta.sdk.models.links.LinksUnionDeserializer.java Source code

Java tutorial

Introduction

Here is the source code for com.okta.sdk.models.links.LinksUnionDeserializer.java

Source

/*!
 * Copyright (c) 2015-2016, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (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 com.okta.sdk.models.links;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;

import java.io.IOException;

public class LinksUnionDeserializer extends StdDeserializer<LinksUnion> {

    public LinksUnionDeserializer() {
        super(LinksUnion.class);
    }

    @Override
    public LinksUnion deserialize(JsonParser parser, DeserializationContext context) throws IOException {
        ObjectMapper mapper = (ObjectMapper) parser.getCodec();
        JsonNode root = mapper.readTree(parser);
        if (root.isArray()) {
            return mapper.convertValue(root, Links.class);
        } else if (root.isObject()) {
            return mapper.convertValue(root, Link.class);
        }
        return null;
    }
}