mirror of
https://github.com/ethauvin/JSON-java.git
synced 2025-06-17 07:50:52 -07:00
added javadoc & null check in Builder#append(String)
This commit is contained in:
parent
d833c2d8de
commit
5ae6a66e38
1 changed files with 47 additions and 6 deletions
|
@ -44,16 +44,42 @@ public class JSONPointer {
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
|
|
||||||
private final List<String> refTokens = new ArrayList<String>();
|
private final List<String> refTokens = new ArrayList<String>();
|
||||||
|
|
||||||
public Builder append(String token) {
|
/**
|
||||||
refTokens.add(token);
|
* Creates a {@code JSONPointer} instance using the tokens previously set using the
|
||||||
return this;
|
* {@link #append(String)} method calls.
|
||||||
}
|
*/
|
||||||
|
|
||||||
public JSONPointer build() {
|
public JSONPointer build() {
|
||||||
return new JSONPointer(refTokens);
|
return new JSONPointer(refTokens);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds an arbitary token to the list of reference tokens. It can be any non-null value.
|
||||||
|
*
|
||||||
|
* Unlike in the case of JSON string or URI fragment representation of JSON pointers, the
|
||||||
|
* argument of this method MUST NOT be escaped. If you want to query the property called
|
||||||
|
* {@code "a~b"} then you should simply pass the {@code "a~b"} string as-is, there is no
|
||||||
|
* need to escape it as {@code "a~0b"}.
|
||||||
|
*
|
||||||
|
* @param token the new token to be appended to the list
|
||||||
|
* @return {@code this}
|
||||||
|
* @throws NullPointerException if {@code token} is null
|
||||||
|
*/
|
||||||
|
public Builder append(String token) {
|
||||||
|
if (token == null) {
|
||||||
|
throw new NullPointerException("token cannot be null");
|
||||||
|
}
|
||||||
|
refTokens.add(token);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds an integer to the reference token list. Although not necessarily, mostly this token will
|
||||||
|
* denote an array index.
|
||||||
|
*
|
||||||
|
* @param arrayIndex the array index to be added to the token list
|
||||||
|
* @return {@code this}
|
||||||
|
*/
|
||||||
public Builder append(int arrayIndex) {
|
public Builder append(int arrayIndex) {
|
||||||
refTokens.add(String.valueOf(arrayIndex));
|
refTokens.add(String.valueOf(arrayIndex));
|
||||||
return this;
|
return this;
|
||||||
|
@ -61,6 +87,21 @@ public class JSONPointer {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Static factory method for {@link Builder}. Example usage:
|
||||||
|
*
|
||||||
|
* <pre><code>
|
||||||
|
* JSONPointer pointer = JSONPointer.builder()
|
||||||
|
* .append("obj")
|
||||||
|
* .append("other~key").append("another/key")
|
||||||
|
* .append("\"")
|
||||||
|
* .append(0)
|
||||||
|
* .build();
|
||||||
|
* </code></pre>
|
||||||
|
*
|
||||||
|
* @return a builder instance which can be used to construct a {@code JSONPointer} instance by chained
|
||||||
|
* {@link Builder#append(String)} calls.
|
||||||
|
*/
|
||||||
public static Builder builder() {
|
public static Builder builder() {
|
||||||
return new Builder();
|
return new Builder();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue