[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;
+ }
+}