Eclipse Remote Application Platform

org.eclipse.rap.json
Class JsonArray

java.lang.Object
  extended by org.eclipse.rap.json.JsonValue
      extended by org.eclipse.rap.json.JsonArray
All Implemented Interfaces:
java.io.Serializable, java.lang.Iterable<JsonValue>

public class JsonArray
extends JsonValue
implements java.lang.Iterable<JsonValue>

/** Represents a JSON array, i.e. an ordered collection of JSON values.

Elements can be added using the add(...) methods which accept instances of JsonValue, strings, primitive numbers, and boolean values. To replace an element of an array, use the set(int, ...) methods.

Elements can be accessed by their index using get(int). This class also supports iterating over the elements in document order using an iterator() or an enhanced for loop:

 for( JsonValue value : jsonArray ) {
   ...
 }
 

An equivalent List can be obtained from the method values().

Note that this class is not thread-safe. If multiple threads access a JsonArray instance concurrently, while at least one of these threads modifies the contents of this array, access to the instance must be synchronized externally. Failure to do so may lead to an inconsistent state.

This class is not supposed to be extended by clients.

Since:
2.1
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.eclipse.rap.json.JsonValue
FALSE, NULL, TRUE
 
Constructor Summary
JsonArray()
          Creates a new empty JsonArray.
JsonArray(JsonArray array)
          Creates a new JsonArray with the contents of the specified JSON array.
 
Method Summary
 JsonArray add(boolean value)
          Adds the JSON representation of the specified boolean value to the array.
 JsonArray add(double value)
          Adds the JSON representation of the specified double value to the array.
 JsonArray add(float value)
          Adds the JSON representation of the specified float value to the array.
 JsonArray add(int value)
          Adds the JSON representation of the specified int value to the array.
 JsonArray add(JsonValue value)
          Adds the specified JSON value to the array.
 JsonArray add(long value)
          Adds the JSON representation of the specified long value to the array.
 JsonArray add(java.lang.String value)
          Adds the JSON representation of the specified string to the array.
 JsonArray asArray()
          Returns this JSON value as JsonArray, assuming that this value represents a JSON array.
 boolean equals(java.lang.Object object)
          Indicates whether some other object is "equal to" this one according to the contract specified in Object.equals(Object).
 JsonValue get(int index)
          Returns the value of the element at the specified position in this array.
 int hashCode()
           
 boolean isArray()
          Detects whether this value represents a JSON array.
 boolean isEmpty()
          Returns true if this array contains no elements.
 java.util.Iterator<JsonValue> iterator()
          Returns an iterator over the values of this array in document order.
static JsonArray readFrom(java.io.Reader reader)
          Reads a JSON array from the given reader.
static JsonArray readFrom(java.lang.String string)
          Reads a JSON array from the given string.
 JsonArray set(int index, boolean value)
          Replaces the element at the specified position in this array with the JSON representation of the specified boolean value.
 JsonArray set(int index, double value)
          Replaces the element at the specified position in this array with the JSON representation of the specified double value.
 JsonArray set(int index, float value)
          Replaces the element at the specified position in this array with the JSON representation of the specified float value.
 JsonArray set(int index, int value)
          Replaces the element at the specified position in this array with the JSON representation of the specified int value.
 JsonArray set(int index, JsonValue value)
          Replaces the element at the specified position in this array with the specified JSON value.
 JsonArray set(int index, long value)
          Replaces the element at the specified position in this array with the JSON representation of the specified long value.
 JsonArray set(int index, java.lang.String value)
          Replaces the element at the specified position in this array with the JSON representation of the specified string.
 int size()
          Returns the number of elements in this array.
static JsonArray unmodifiableArray(JsonArray array)
          Returns an unmodifiable wrapper for the specified JsonArray.
 java.util.List<JsonValue> values()
          Returns a list of the values in this array in document order.
protected  void write(org.eclipse.rap.json.JsonWriter writer)
           
 
Methods inherited from class org.eclipse.rap.json.JsonValue
asBoolean, asDouble, asFloat, asInt, asLong, asObject, asString, isBoolean, isFalse, isNull, isNumber, isObject, isString, isTrue, toString, valueOf, valueOf, valueOf, valueOf, valueOf, valueOf, writeTo
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JsonArray

public JsonArray()
Creates a new empty JsonArray.


JsonArray

public JsonArray(JsonArray array)
Creates a new JsonArray with the contents of the specified JSON array.

Parameters:
array - the JsonArray to get the initial contents from, must not be null
Method Detail

readFrom

public static JsonArray readFrom(java.io.Reader reader)
                          throws java.io.IOException
Reads a JSON array from the given reader.

Characters are read in chunks and buffered internally, therefore wrapping an existing reader in an additional BufferedReader does not improve reading performance.

Parameters:
reader - the reader to read the JSON array from
Returns:
the JSON array that has been read
Throws:
java.io.IOException - if an I/O error occurs in the reader
ParseException - if the input is not valid JSON
java.lang.UnsupportedOperationException - if the input does not contain a JSON array

readFrom

public static JsonArray readFrom(java.lang.String string)
Reads a JSON array from the given string.

Parameters:
string - the string that contains the JSON array
Returns:
the JSON array that has been read
Throws:
ParseException - if the input is not valid JSON
java.lang.UnsupportedOperationException - if the input does not contain a JSON array

unmodifiableArray

public static JsonArray unmodifiableArray(JsonArray array)
Returns an unmodifiable wrapper for the specified JsonArray. This method allows to provide read-only access to a JsonArray.

The returned JsonArray is backed by the given array and reflects subsequent changes. Attempts to modify the returned JsonArray result in an UnsupportedOperationException.

Parameters:
array - the JsonArray for which an unmodifiable JsonArray is to be returned
Returns:
an unmodifiable view of the specified JsonArray

add

public JsonArray add(int value)
Adds the JSON representation of the specified int value to the array.

Parameters:
value - the value to add to the array
Returns:
the array itself, to enable method chaining
Since:
2.2

add

public JsonArray add(long value)
Adds the JSON representation of the specified long value to the array.

Parameters:
value - the value to add to the array
Returns:
the array itself, to enable method chaining

add

public JsonArray add(float value)
Adds the JSON representation of the specified float value to the array.

Parameters:
value - the value to add to the array
Returns:
the array itself, to enable method chaining

add

public JsonArray add(double value)
Adds the JSON representation of the specified double value to the array.

Parameters:
value - the value to add to the array
Returns:
the array itself, to enable method chaining

add

public JsonArray add(boolean value)
Adds the JSON representation of the specified boolean value to the array.

Parameters:
value - the value to add to the array
Returns:
the array itself, to enable method chaining

add

public JsonArray add(java.lang.String value)
Adds the JSON representation of the specified string to the array.

Parameters:
value - the string to add to the array
Returns:
the array itself, to enable method chaining

add

public JsonArray add(JsonValue value)
Adds the specified JSON value to the array.

Parameters:
value - the JsonValue to add to the array, must not be null
Returns:
the array itself, to enable method chaining

set

public JsonArray set(int index,
                     int value)
Replaces the element at the specified position in this array with the JSON representation of the specified int value.

Parameters:
index - the index of the array element to replace
value - the value to be stored at the specified array position
Returns:
the array itself, to enable method chaining
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range, i.e. index < 0 or index >= size
Since:
2.2

set

public JsonArray set(int index,
                     long value)
Replaces the element at the specified position in this array with the JSON representation of the specified long value.

Parameters:
index - the index of the array element to replace
value - the value to be stored at the specified array position
Returns:
the array itself, to enable method chaining
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range, i.e. index < 0 or index >= size
Since:
2.2

set

public JsonArray set(int index,
                     float value)
Replaces the element at the specified position in this array with the JSON representation of the specified float value.

Parameters:
index - the index of the array element to replace
value - the value to be stored at the specified array position
Returns:
the array itself, to enable method chaining
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range, i.e. index < 0 or index >= size
Since:
2.2

set

public JsonArray set(int index,
                     double value)
Replaces the element at the specified position in this array with the JSON representation of the specified double value.

Parameters:
index - the index of the array element to replace
value - the value to be stored at the specified array position
Returns:
the array itself, to enable method chaining
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range, i.e. index < 0 or index >= size
Since:
2.2

set

public JsonArray set(int index,
                     boolean value)
Replaces the element at the specified position in this array with the JSON representation of the specified boolean value.

Parameters:
index - the index of the array element to replace
value - the value to be stored at the specified array position
Returns:
the array itself, to enable method chaining
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range, i.e. index < 0 or index >= size
Since:
2.2

set

public JsonArray set(int index,
                     java.lang.String value)
Replaces the element at the specified position in this array with the JSON representation of the specified string.

Parameters:
index - the index of the array element to replace
value - the string to be stored at the specified array position
Returns:
the array itself, to enable method chaining
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range, i.e. index < 0 or index >= size
Since:
2.2

set

public JsonArray set(int index,
                     JsonValue value)
Replaces the element at the specified position in this array with the specified JSON value.

Parameters:
index - the index of the array element to replace
value - the value to be stored at the specified array position, must not be null
Returns:
the array itself, to enable method chaining
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range, i.e. index < 0 or index >= size
Since:
2.2

size

public int size()
Returns the number of elements in this array.

Returns:
the number of elements in this array

isEmpty

public boolean isEmpty()
Returns true if this array contains no elements.

Returns:
true if this array contains no elements

get

public JsonValue get(int index)
Returns the value of the element at the specified position in this array.

Parameters:
index - the index of the array element to return
Returns:
the value of the element at the specified position
Throws:
java.lang.IndexOutOfBoundsException - if the index is out of range (index < 0 || index >= size()).

values

public java.util.List<JsonValue> values()
Returns a list of the values in this array in document order. The returned list is backed by this array and will reflect subsequent changes. It cannot be used to modify this array. Attempts to modify the returned list will result in an exception.

Returns:
a list of the values in this array

iterator

public java.util.Iterator<JsonValue> iterator()
Returns an iterator over the values of this array in document order. The returned iterator cannot be used to modify this array.

Specified by:
iterator in interface java.lang.Iterable<JsonValue>
Returns:
an iterator over the values of this array

write

protected void write(org.eclipse.rap.json.JsonWriter writer)
              throws java.io.IOException
Specified by:
write in class JsonValue
Throws:
java.io.IOException

isArray

public boolean isArray()
Description copied from class: JsonValue
Detects whether this value represents a JSON array. If this is the case, this value is an instance of JsonArray.

Overrides:
isArray in class JsonValue
Returns:
true if this value is an instance of JsonArray

asArray

public JsonArray asArray()
Description copied from class: JsonValue
Returns this JSON value as JsonArray, assuming that this value represents a JSON array. If this is not the case, an exception is thrown.

Overrides:
asArray in class JsonValue
Returns:
a JSONArray for this value

hashCode

public int hashCode()
Overrides:
hashCode in class JsonValue

equals

public boolean equals(java.lang.Object object)
Description copied from class: JsonValue
Indicates whether some other object is "equal to" this one according to the contract specified in Object.equals(Object).

Two JsonValues are considered equal if and only if they represent the same JSON text. As a consequence, two given JsonObjects may be different even though they contain the same set of names with the same values, but in a different order.

Overrides:
equals in class JsonValue
Parameters:
object - the reference object with which to compare
Returns:
true if this object is the same as the object argument; false otherwise

Eclipse Remote Application Platform

Copyright (c) EclipseSource and others 2002, 2013. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0