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

org.jsonschema2pojo.rules.MediaRule Maven / Gradle / Ivy

/**
 * Copyright © 2010-2020 Nokia
 *
 * 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.jsonschema2pojo.rules;

import org.jsonschema2pojo.Schema;

import com.fasterxml.jackson.databind.JsonNode;
import com.sun.codemodel.JType;

/**
 * 

* Applies the "media" hyper schema rule. *

* * @see * Section 4.3 media, JSON Hyper-Schema: Hypertext definitions for JSON Schema * * @author Christian Trimble * @since 0.4.2 */ public class MediaRule implements Rule { private static final String BINARY_ENCODING = "binaryEncoding"; /** *

* Constructs a new media rule. *

* * @since 0.4.2 */ protected MediaRule() { } /** *

* Applies this schema rule. *

* * @param nodeName * the name of the property. * @param mediaNode * the media node * @param parent * the parent node * @param baseType * the type with the media node. This must be java.lang.String. * @param schema * the schema containing the property. * @return byte[] when a binary encoding is specified, baseType otherwise. * @since 0.4.2 */ @Override public JType apply(String nodeName, JsonNode mediaNode, JsonNode parent, JType baseType, Schema schema) { if (!mediaNode.has(BINARY_ENCODING)) { return baseType; } return baseType.owner().ref(byte[].class); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy