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

ee.jakarta.tck.jsonp.api.common.MergeRFCObject Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2020, 2022 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0, which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception, which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 */

package ee.jakarta.tck.jsonp.api.common;

import jakarta.json.Json;
import jakarta.json.JsonArray;
import jakarta.json.JsonObject;
import jakarta.json.JsonValue;

/*
 * $Id$
 */
/**
 * {@see RFC 7396}: JavaScript
 * Object Notation (JSON) Merge Patch compatibility sample object.
* Object structure is defined in * {@see RFC 7396: 3. * Example}. */ public class MergeRFCObject { // Following values define JSON object keys from RFC 7396: 3. Example /** RFC 7396 sample JSON object key for {@code /title}. */ public static final String KEY_TITLE = "title"; /** RFC 7396 sample JSON object key for {@code /author/givenName}. */ public static final String KEY_GIVEN_NAME = "givenName"; /** RFC 7396 sample JSON object key for {@code /author/familyName}. */ public static final String KEY_FAMILY_NAME = "familyName"; /** RFC 7396 sample JSON object key for {@code /author}. */ public static final String KEY_AUTHOR = "author"; /** RFC 7396 sample JSON object key for {@code /tags}. */ public static final String KEY_TAGS = "tags"; /** RFC 7396 sample JSON object key for {@code /content}. */ public static final String KEY_CONTENT = "content"; /** RFC 7396 sample JSON object key for {@code /phoneNumber}. */ public static final String KEY_PHONE_NUMBER = "phoneNumber"; // Following values define JSON object source values from RFC 7396: 3. Example /** RFC 7396 sample JSON object source value for {@code /title}. */ public static final String VAL_SRC_TITLE = "Goodbye!"; /** RFC 7396 sample JSON object source value for {@code /author/givenName}. */ public static final String VAL_SRC_GIVEN_NAME = "John"; /** * RFC 7396 sample JSON object source value for {@code /author/familyName}. */ public static final String VAL_SRC_FAMILY_NAME = "Doe"; /** RFC 7396 sample JSON object source value for {@code /author}. */ public static final JsonObject VAL_SRC_AUTHOR = SimpleValues .createSimpleObject(new String[] { KEY_GIVEN_NAME, KEY_FAMILY_NAME }, new Object[] { VAL_SRC_GIVEN_NAME, VAL_SRC_FAMILY_NAME }); /** RFC 7396 sample JSON object source value for {@code /tags/0}. */ public static final String VAL_SRC_TAGS_0 = "example"; /** RFC 7396 sample JSON object source value for {@code /tags/1}. */ public static final String VAL_SRC_TAGS_1 = "sample"; /** RFC 7396 sample JSON object source value for {@code /tags}. */ public static final JsonArray VAL_SRC_TAGS = SimpleValues .createStringArray(new String[] { VAL_SRC_TAGS_0, VAL_SRC_TAGS_1 }); /** RFC 7396 sample JSON object source value for {@code /content}. */ public static final String VAL_SRC_CONTENT = "This will be unchanged"; // Following values define JSON object target values from RFC 7396: 3. Example /** RFC 7396 sample JSON object target value for {@code /title}. */ public static final String VAL_TRG_TITLE = "Hello!"; /** RFC 7396 sample JSON object target value for {@code /author}. */ public static final JsonObject VAL_TRG_AUTHOR = SimpleValues .createSimpleObject(new String[] { KEY_GIVEN_NAME }, new Object[] { VAL_SRC_GIVEN_NAME }); /** RFC 7396 sample JSON object target value for {@code /phoneNumber}. */ public static final String VAL_TRG_PHONE_NUMBER = "+01-123-456-7890"; /** RFC 7396 sample JSON object target value for {@code /tags/0}. */ public static final String VAL_TRG_TAGS_0 = "example"; /** RFC 7396 sample JSON object target value for {@code /tags}. */ public static final JsonArray VAL_TRG_TAGS = SimpleValues .createStringArray(new String[] { VAL_TRG_TAGS_0 }); // Following values define JSON object patch values from RFC 7396: 3. Example /** RFC 7396 sample JSON object patch value for {@code /author/familyName}. */ public static final JsonValue VAL_PATCH_FAMILY_NAME = JsonValue.NULL; /** RFC 7396 sample JSON object patch value for {@code /author}. */ public static final JsonObject VAL_PATCH_AUTHOR = SimpleValues .createSimpleObject(new String[] { KEY_FAMILY_NAME }, new Object[] { VAL_PATCH_FAMILY_NAME }); /** * Create {@see RFC * 7396 example} source JSON object. * * @return Source object from example. */ public static JsonObject createRFCSourceObject() { return Json.createObjectBuilder().add(KEY_TITLE, VAL_SRC_TITLE) .add(KEY_AUTHOR, VAL_SRC_AUTHOR).add(KEY_TAGS, VAL_SRC_TAGS) .add(KEY_CONTENT, VAL_SRC_CONTENT).build(); } /** * Create {@see RFC * 7396 example} target JSON object. * * @return Target object from example. */ public static JsonObject createRFCTargetObject() { return Json.createObjectBuilder().add(KEY_TITLE, VAL_TRG_TITLE) .add(KEY_AUTHOR, VAL_TRG_AUTHOR).add(KEY_TAGS, VAL_TRG_TAGS) .add(KEY_CONTENT, VAL_SRC_CONTENT) .add(KEY_PHONE_NUMBER, VAL_TRG_PHONE_NUMBER).build(); } /** * Create {@see RFC * 7396 example} patch JSON object. * * @return Patch object from example. */ public static JsonObject createRFCPatchObject() { return Json.createObjectBuilder().add(KEY_TITLE, VAL_TRG_TITLE) .add(KEY_PHONE_NUMBER, VAL_TRG_PHONE_NUMBER) .add(KEY_AUTHOR, VAL_PATCH_AUTHOR).add(KEY_TAGS, VAL_TRG_TAGS).build(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy