You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by st...@apache.org on 2017/03/24 22:56:14 UTC
svn commit: r1788556 -
/geronimo/specs/trunk/geronimo-json_1.1_spec/src/main/java/javax/json/Json.java
Author: struberg
Date: Fri Mar 24 22:56:14 2017
New Revision: 1788556
URL: http://svn.apache.org/viewvc?rev=1788556&view=rev
Log:
GERONIMO-6558 add JsonPointer encode and decode
As requested by us in a spec ticket
Modified:
geronimo/specs/trunk/geronimo-json_1.1_spec/src/main/java/javax/json/Json.java
Modified: geronimo/specs/trunk/geronimo-json_1.1_spec/src/main/java/javax/json/Json.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-json_1.1_spec/src/main/java/javax/json/Json.java?rev=1788556&r1=1788555&r2=1788556&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-json_1.1_spec/src/main/java/javax/json/Json.java (original)
+++ geronimo/specs/trunk/geronimo-json_1.1_spec/src/main/java/javax/json/Json.java Fri Mar 24 22:56:14 2017
@@ -31,88 +31,110 @@ import java.math.BigInteger;
import java.util.Collection;
import java.util.Map;
-public final class Json {
- private Json() {
+public final class Json
+{
+ private Json()
+ {
// no-op
}
- public static JsonParser createParser(Reader reader) {
+ public static JsonParser createParser(Reader reader)
+ {
return JsonProvider.provider().createParser(reader);
}
- public static JsonParser createParser(InputStream in) {
+ public static JsonParser createParser(InputStream in)
+ {
return JsonProvider.provider().createParser(in);
}
- public static JsonGenerator createGenerator(Writer writer) {
+ public static JsonGenerator createGenerator(Writer writer)
+ {
return JsonProvider.provider().createGenerator(writer);
}
- public static JsonGenerator createGenerator(OutputStream out) {
+ public static JsonGenerator createGenerator(OutputStream out)
+ {
return JsonProvider.provider().createGenerator(out);
}
- public static JsonParserFactory createParserFactory(Map<String, ?> config) {
+ public static JsonParserFactory createParserFactory(Map<String, ?> config)
+ {
return JsonProvider.provider().createParserFactory(config);
}
- public static JsonGeneratorFactory createGeneratorFactory(Map<String, ?> config) {
+ public static JsonGeneratorFactory createGeneratorFactory(Map<String, ?> config)
+ {
return JsonProvider.provider().createGeneratorFactory(config);
}
- public static JsonWriter createWriter(Writer writer) {
+ public static JsonWriter createWriter(Writer writer)
+ {
return JsonProvider.provider().createWriter(writer);
}
- public static JsonWriter createWriter(OutputStream out) {
+ public static JsonWriter createWriter(OutputStream out)
+ {
return JsonProvider.provider().createWriter(out);
}
- public static JsonReader createReader(Reader reader) {
+ public static JsonReader createReader(Reader reader)
+ {
return JsonProvider.provider().createReader(reader);
}
- public static JsonReader createReader(InputStream in) {
+ public static JsonReader createReader(InputStream in)
+ {
return JsonProvider.provider().createReader(in);
}
- public static JsonReaderFactory createReaderFactory(Map<String, ?> config) {
+ public static JsonReaderFactory createReaderFactory(Map<String, ?> config)
+ {
return JsonProvider.provider().createReaderFactory(config);
}
- public static JsonWriterFactory createWriterFactory(Map<String, ?> config) {
+ public static JsonWriterFactory createWriterFactory(Map<String, ?> config)
+ {
return JsonProvider.provider().createWriterFactory(config);
}
- public static JsonArrayBuilder createArrayBuilder() {
+ public static JsonArrayBuilder createArrayBuilder()
+ {
return JsonProvider.provider().createArrayBuilder();
}
/**
* Create an empty JsonObjectBuilder
+ *
* @since 1.0
*/
- public static JsonObjectBuilder createObjectBuilder() {
+ public static JsonObjectBuilder createObjectBuilder()
+ {
return JsonProvider.provider().createObjectBuilder();
}
/**
* Creates a JSON object builder, initialized with the specified JsonObject.
+ *
* @since 1.1
*/
- public static JsonObjectBuilder createObjectBuilder(JsonObject object) {
+ public static JsonObjectBuilder createObjectBuilder(JsonObject object)
+ {
return JsonProvider.provider().createObjectBuilder(object);
}
/**
* Creates a JSON object builder, initialized with the specified Map.
+ *
* @since 1.1
*/
- public static JsonObjectBuilder createObjectBuilder(Map<String, Object> map) {
+ public static JsonObjectBuilder createObjectBuilder(Map<String, Object> map)
+ {
return JsonProvider.provider().createObjectBuilder(map);
}
- public static JsonBuilderFactory createBuilderFactory(Map<String, ?> config) {
+ public static JsonBuilderFactory createBuilderFactory(Map<String, ?> config)
+ {
return JsonProvider.provider().createBuilderFactory(config);
}
@@ -122,45 +144,52 @@ public final class Json {
*
* @param initialData the initial array in the builder
* @return a JSON array builder
- *
* @since 1.1
*/
- public static JsonArrayBuilder createArrayBuilder(JsonArray initialData) {
+ public static JsonArrayBuilder createArrayBuilder(JsonArray initialData)
+ {
return JsonProvider.provider().createArrayBuilder(initialData);
}
+
/**
* Creates a JSON array builder, initialized with an initial content
*
* @param initialData the initial array in the builder
* @return a JSON array builder
- *
* @since 1.1
*/
- public static JsonArrayBuilder createArrayBuilder(Collection<?> initialData) {
+ public static JsonArrayBuilder createArrayBuilder(Collection<?> initialData)
+ {
return JsonProvider.provider().createArrayBuilder(initialData);
}
-
- public static JsonString createValue(String value) {
+
+ public static JsonString createValue(String value)
+ {
return JsonProvider.provider().createValue(value);
}
- public static JsonNumber createValue(int value) {
+ public static JsonNumber createValue(int value)
+ {
return JsonProvider.provider().createValue(value);
}
- public static JsonNumber createValue(long value) {
+ public static JsonNumber createValue(long value)
+ {
return JsonProvider.provider().createValue(value);
}
- public static JsonNumber createValue(double value) {
+ public static JsonNumber createValue(double value)
+ {
return JsonProvider.provider().createValue(value);
}
- public static JsonNumber createValue(BigDecimal value) {
+ public static JsonNumber createValue(BigDecimal value)
+ {
return JsonProvider.provider().createValue(value);
}
- public static JsonNumber createValue(BigInteger value) {
+ public static JsonNumber createValue(BigInteger value)
+ {
return JsonProvider.provider().createValue(value);
}
@@ -170,41 +199,45 @@ public final class Json {
*
* @param array with the patch operations
* @return the JsonPatch based on the given operations
- *
* @since 1.1
*/
- public static JsonPatch createPatch(JsonArray array) {
+ public static JsonPatch createPatch(JsonArray array)
+ {
return JsonProvider.provider().createPatch(array);
}
/**
* Create a {@link JsonPatch} by comparing the source to the target as defined in
* <a href="https://tools.ietf.org/html/rfc6902">RFC-6902</a>.
- *
+ * <p>
* Applying this {@link JsonPatch} to the source you will give you the target.
*
* @see #createPatch(JsonArray)
- *
* @since 1.1
*/
- public static JsonPatch createDiff(JsonStructure source, JsonStructure target) {
+ public static JsonPatch createDiff(JsonStructure source, JsonStructure target)
+ {
return JsonProvider.provider().createDiff(source, target);
}
/**
* Create a new JsonPatchBuilder
+ *
* @since 1.1
*/
- public static JsonPatchBuilder createPatchBuilder() {
+ public static JsonPatchBuilder createPatchBuilder()
+ {
return JsonProvider.provider().createPatchBuilder();
}
/**
* Create a new JsonPatchBuilder
+ *
* @param initialData the initial patch operations
* @since 1.1
*/
- public static JsonPatchBuilder createPatchBuilder(JsonArray initialData) {
+ public static JsonPatchBuilder createPatchBuilder(JsonArray initialData)
+ {
return JsonProvider.provider().createPatchBuilder(initialData);
}
@@ -212,9 +245,9 @@ public final class Json {
* Creates JSON Merge Patch (<a href="http://tools.ietf.org/html/rfc7396">RFC 7396</a>)
* from a specified {@link JsonValue}.
* Create a merged patch by comparing the source to the target.
- *
+ * <p>
* Applying this JsonPatch to the source will give you the target.
- *
+ * <p>
* If you have a JSON like
* <pre>
* {
@@ -225,7 +258,7 @@ public final class Json {
* }
* }
* </pre>
- *
+ * <p>
* Then you can change the value of "a" and removing "f" by sending:
* <pre>
* {
@@ -238,10 +271,10 @@ public final class Json {
*
* @param patch the patch
* @return a JSON Merge Patch
- *
* @since 1.1
*/
- public static JsonMergePatch createMergePatch(JsonValue patch) {
+ public static JsonMergePatch createMergePatch(JsonValue patch)
+ {
return JsonProvider.provider().createMergePatch(patch);
}
@@ -249,9 +282,9 @@ public final class Json {
* Create a JSON Merge Patch (<a href="http://tools.ietf.org/html/rfc7396">RFC 7396</a>)
* from the source and target {@link JsonValue JsonValues}.
* Create a merged patch by comparing the source to the target.
- *
+ * <p>
* Applying this JsonPatch to the source will give you the target.
- *
+ * <p>
* If you have a JSON like
* <pre>
* {
@@ -262,7 +295,7 @@ public final class Json {
* }
* }
* </pre>
- *
+ * <p>
* Then you can change the value of "a" and removing "f" by sending:
* <pre>
* {
@@ -276,10 +309,10 @@ public final class Json {
* @param source the source
* @param target the target
* @return a JSON Merge Patch
- *
* @since 1.1
*/
- public static JsonMergePatch createMergeDiff(JsonValue source, JsonValue target) {
+ public static JsonMergePatch createMergeDiff(JsonValue source, JsonValue target)
+ {
return JsonProvider.provider().createMergeDiff(source, target);
}
@@ -288,8 +321,39 @@ public final class Json {
*
* @since 1.1
*/
- public static JsonPointer createPointer(String path) {
+ public static JsonPointer createPointer(String path)
+ {
return JsonProvider.provider().createPointer(path);
}
+ /**
+ * @param pointer to encode
+ * @return the properly encoded JsonPointer string
+ * @since 1.1
+ */
+ public static String encodePointer(String pointer)
+ {
+ if (pointer == null || pointer.length() == 0)
+ {
+ return pointer;
+ }
+
+ return pointer.replace("~", "~0").replace("/", "~1");
+ }
+
+ /**
+ * @param escapedPointer
+ * @return the de-escaped JsonPointer
+ *
+ * @since 1.1
+ */
+ public static String decodePointer(String escapedPointer)
+ {
+ if (escapedPointer == null || escapedPointer.length() == 0)
+ {
+ return escapedPointer;
+ }
+
+ return escapedPointer.replace("~1", "/").replace("~0", "~");
+ }
}