[api] Define standard property for handling duplicated keys Signed-off-by: Jorge Bescos Gascon <jorge.bescos.gascon@oracle.com>
diff --git a/api/src/main/java/jakarta/json/JsonConfig.java b/api/src/main/java/jakarta/json/JsonConfig.java new file mode 100644 index 0000000..49c794b --- /dev/null +++ b/api/src/main/java/jakarta/json/JsonConfig.java
@@ -0,0 +1,57 @@ +/* + * Copyright (c) 2021 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 jakarta.json; + +/** + * This class contains the Json properties and values. + * + * @since 2.1 + */ +public final class JsonConfig { + + /** + * Configuration property to define the strategy for handling duplicate keys. + * + * See {@link KeyStrategy} + */ + public static final String KEY_STRATEGY = "jakarta.json.JsonConfig.keyStrategy" ; + + /** + * It avoids new instances of this class. + */ + private JsonConfig() {} + + /** + * Contains the different values allowed for {@link #KEY_STRATEGY}. + * + * See {@link #KEY_STRATEGY} + */ + public static enum KeyStrategy { + /** + * Configuration value that will take the value of the first match. + */ + FIRST, + /** + * Configuration value that will take the value of the last match. + */ + LAST, + /** + * Configuration value that will throw {@link JsonException} when duplicate key is found. + */ + NONE; + } +}