Package org.apache.tapestry5.json
Class JSONArray
- java.lang.Object
-
- org.apache.tapestry5.json.JSONCollection
-
- org.apache.tapestry5.json.JSONArray
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Iterable<java.lang.Object>,java.util.Collection<java.lang.Object>
public final class JSONArray extends JSONCollection implements java.util.Collection<java.lang.Object>
A dense indexed sequence of values. Values may be any mix ofJSONObjects, otherJSONArrays, Strings, Booleans, Integers, Longs, Doubles,nullorJSONObject.NULL. Values may not beNaNs,infinities, or of any type not listed here.JSONArrayhas the same type coercion behavior and optional/mandatory accessors asJSONObject. See that class' documentation for details. Warning: this class represents null in two incompatible ways: the standard Javanullreference, and the sentinel valueJSONObject.NULL. In particular,getfails if the requested index holds the null reference, but succeeds if it holdsJSONObject.NULL. Instances of this class are not thread safe.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description JSONArray()Creates aJSONArraywith no values.JSONArray(java.lang.Object... values)Creates a newJSONArraywith values from the given primitive array.JSONArray(java.lang.String json)Creates a newJSONArraywith values from the JSON string.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description booleanadd(java.lang.Object value)Appendsvalueto the end of this array.booleanaddAll(java.util.Collection<? extends java.lang.Object> collection)Adds all objects from the collection into this JSONArray, usingadd(Object).voidclear()Removes all of the values from this JSONArray.booleancontains(java.lang.Object value)Returnstrueif this JSONArray contains the specified value.booleancontainsAll(java.util.Collection<?> c)Returnstrueif this JSONArray contains all of the values in the specified collection.booleanequals(java.lang.Object o)static JSONArrayfrom(java.lang.Iterable<?> iterable)Create a new array, and adds all values from the iterable to the array (usingputAll(Iterable).java.lang.Objectget(int index)Returns the value atindex.booleangetBoolean(int index)Returns the value atindexif it exists and is a boolean or can be coerced to a boolean.doublegetDouble(int index)Returns the value atindexif it exists and is a double or can be coerced to a double.intgetInt(int index)Returns the value atindexif it exists and is an int or can be coerced to an int.JSONArraygetJSONArray(int index)Returns the value atindexif it exists and is aJSONArray.JSONObjectgetJSONObject(int index)Returns the value atindexif it exists and is aJSONObject.longgetLong(int index)Returns the value atindexif it exists and is a long or can be coerced to a long.java.lang.StringgetString(int index)Returns the value atindexif it exists, coercing it if necessary.inthashCode()booleanisEmpty()Returnstrueif this array contains no values.booleanisNull(int index)Returns true if this array has no value atindex, or if its value is thenullreference orJSONObject.NULL.java.util.Iterator<java.lang.Object>iterator()Returns an iterator over the values in this array in proper sequence.intlength()Deprecated.Usesize()instead.JSONArrayput(int index, java.lang.Object value)Sets the value atindextovalue, null padding this array to the required length if necessary.JSONArrayput(java.lang.Object value)Deprecated.The use ofadd(Object)is encouraged.JSONArrayputAll(java.lang.Iterable<?> collection)Puts all objects from the collection into this JSONArray, usingput(Object).java.lang.Objectremove(int index)Removes and returns the value atindex, or null if the array has no value atindex.booleanremove(java.lang.Object value)Removes the first occurrence of the specified value from this JSONArray, if it is present.booleanremoveAll(java.util.Collection<?> collection)Removes from this JSONArray all of its values that are contained in the specified collection.booleanretainAll(java.util.Collection<?> collection)Retains only the values in this JSONArray that are contained in the specified collection.intsize()Returns the number of values in this array.java.lang.Object[]toArray()Returns an array containing all of the values in this JSONArray in proper sequence.<T> T[]toArray(T[] array)Returns an array containing all of the values in this JSONArray in proper sequence; the runtime type of the returned array is that of the specified array.java.util.List<java.lang.Object>toList()Returns an unmodifiable list of the contents of the array.-
Methods inherited from class org.apache.tapestry5.json.JSONCollection
prettyPrint, print, print, toCompactString, toString, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
-
-
-
Constructor Detail
-
JSONArray
public JSONArray()
Creates aJSONArraywith no values.
-
JSONArray
public JSONArray(java.lang.String json)
Creates a newJSONArraywith values from the JSON string.- Parameters:
json- a JSON-encoded string containing an array.- Throws:
JSONSyntaxException- if the parse failsJSONTypeMismatchException- if it doesn't yield aJSONArray.
-
JSONArray
public JSONArray(java.lang.Object... values)
Creates a newJSONArraywith values from the given primitive array.- Parameters:
values- The values to use.- Throws:
java.lang.IllegalArgumentException- if any of the values are non-finite double values (i.e. NaN or infinite)
-
-
Method Detail
-
from
public static JSONArray from(java.lang.Iterable<?> iterable)
Create a new array, and adds all values from the iterable to the array (usingputAll(Iterable). This is implemented as a static method so as not to break the semantics of the existingJSONArray(Object...)constructor. Adding a constructor of type Iterable would change the meaning ofnew JSONArray(new JSONArray()).- Parameters:
iterable- collection ot value to include, or null- Since:
- 5.4
-
length
public int length()
Deprecated.Usesize()instead.- Returns:
- Returns the number of values in this array.
-
size
public int size()
Returns the number of values in this array. If this list contains more thanInteger.MAX_VALUEelements, returnsInteger.MAX_VALUE.- Specified by:
sizein interfacejava.util.Collection<java.lang.Object>- Returns:
- the number of values in this array
- Since:
- 5.7
-
isEmpty
public boolean isEmpty()
Returnstrueif this array contains no values.- Specified by:
isEmptyin interfacejava.util.Collection<java.lang.Object>- Returns:
trueif this array contains no values- Since:
- 5.7
-
put
public JSONArray put(java.lang.Object value)
Deprecated.The use ofadd(Object)is encouraged.Appendsvalueto the end of this array.- Parameters:
value- aJSONObject,JSONArray, String, Boolean, Integer, Long, Double, orJSONObject.NULL}. May not beNaNsorinfinities. Unsupported values are not permitted and will cause the array to be in an inconsistent state.- Returns:
- this array.
-
add
public boolean add(java.lang.Object value)
Appendsvalueto the end of this array.- Specified by:
addin interfacejava.util.Collection<java.lang.Object>- Parameters:
value- aJSONObject,JSONArray, String, Boolean, Integer, Long, Double, orJSONObject.NULL}. May not beNaNsorinfinities. Unsupported values are not permitted and will cause the array to be in an inconsistent state.- Returns:
true(as specified byCollection.add(E))- Since:
- 5.7
-
put
public JSONArray put(int index, java.lang.Object value)
Sets the value atindextovalue, null padding this array to the required length if necessary. If a value already exists atindex, it will be replaced.- Parameters:
index- Where to put the value.value- aJSONObject,JSONArray, String, Boolean, Integer, Long, Double,JSONObject.NULL, ornull. May not beNaNsorinfinities.- Returns:
- this array.
- Throws:
java.lang.IllegalArgumentException- If the value cannot be represented as a finite double value.java.lang.ArrayIndexOutOfBoundsException- if the index is lower than 0
-
isNull
public boolean isNull(int index)
Returns true if this array has no value atindex, or if its value is thenullreference orJSONObject.NULL.- Parameters:
index- Which value to check.- Returns:
- true if the value is null.
-
get
public java.lang.Object get(int index)
Returns the value atindex.- Parameters:
index- Which value to get.- Returns:
- the value at the specified location.
- Throws:
JSONArrayIndexOutOfBoundsException- if the given index is out of bounds.JSONValueNotFoundException- if this array has no value atindex, or if that value is thenullreference. This method returns normally if the value isJSONObject#NULL.
-
remove
public java.lang.Object remove(int index)
Removes and returns the value atindex, or null if the array has no value atindex.- Parameters:
index- Which value to remove.- Returns:
- The value previously at the specified location.
-
remove
public boolean remove(java.lang.Object value)
Removes the first occurrence of the specified value from this JSONArray, if it is present.- Specified by:
removein interfacejava.util.Collection<java.lang.Object>- Parameters:
value- value to be removed from this JSONArray, if present- Returns:
trueif the element was removed- Since:
- 5.7
-
removeAll
public boolean removeAll(java.util.Collection<?> collection)
Removes from this JSONArray all of its values that are contained in the specified collection.- Specified by:
removeAllin interfacejava.util.Collection<java.lang.Object>- Parameters:
collection- collection containing value to be removed from this JSONArray- Returns:
trueif this JSONArray changed as a result of the call- Throws:
java.lang.NullPointerException- if the specified collection is null.- Since:
- 5.7
- See Also:
Collection.contains(Object)
-
clear
public void clear()
Removes all of the values from this JSONArray.- Specified by:
clearin interfacejava.util.Collection<java.lang.Object>- Since:
- 5.7
-
retainAll
public boolean retainAll(java.util.Collection<?> collection)
Retains only the values in this JSONArray that are contained in the specified collection.- Specified by:
retainAllin interfacejava.util.Collection<java.lang.Object>- Parameters:
collection- collection containing elements to be retained in this list- Returns:
trueif this list changed as a result of the call- Since:
- 5.7
-
getBoolean
public boolean getBoolean(int index)
Returns the value atindexif it exists and is a boolean or can be coerced to a boolean.- Parameters:
index- Which value to get.- Returns:
- the value at the specified location.
- Throws:
JSONTypeMismatchException- if the value atindexdoesn't exist or cannot be coerced to a boolean.
-
getDouble
public double getDouble(int index)
Returns the value atindexif it exists and is a double or can be coerced to a double.- Parameters:
index- Which value to get.- Returns:
- the value at the specified location.
- Throws:
JSONTypeMismatchException- if the value atindexdoesn't exist or cannot be coerced to a double.
-
getInt
public int getInt(int index)
Returns the value atindexif it exists and is an int or can be coerced to an int.- Parameters:
index- Which value to get.- Returns:
- the value at the specified location.
- Throws:
JSONTypeMismatchException- if the value atindexdoesn't exist or cannot be coerced to a int.
-
getLong
public long getLong(int index)
Returns the value atindexif it exists and is a long or can be coerced to a long.- Parameters:
index- Which value to get.- Returns:
- the value at the specified location.
- Throws:
JSONTypeMismatchException- if the value atindexdoesn't exist or cannot be coerced to a long.
-
getString
public java.lang.String getString(int index)
Returns the value atindexif it exists, coercing it if necessary.- Parameters:
index- Which value to get.- Returns:
- the value at the specified location.
- Throws:
JSONTypeMismatchException- if no such value exists.
-
getJSONArray
public JSONArray getJSONArray(int index)
Returns the value atindexif it exists and is aJSONArray.- Parameters:
index- Which value to get.- Returns:
- the value at the specified location.
- Throws:
JSONTypeMismatchException- if the value doesn't exist or is not aJSONArray.
-
getJSONObject
public JSONObject getJSONObject(int index)
Returns the value atindexif it exists and is aJSONObject.- Parameters:
index- Which value to get.- Returns:
- the value at the specified location.
- Throws:
JSONTypeMismatchException- if the value doesn't exist or is not aJSONObject.
-
equals
public boolean equals(java.lang.Object o)
- Specified by:
equalsin interfacejava.util.Collection<java.lang.Object>- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfacejava.util.Collection<java.lang.Object>- Overrides:
hashCodein classjava.lang.Object
-
putAll
public JSONArray putAll(java.lang.Iterable<?> collection)
Puts all objects from the collection into this JSONArray, usingput(Object).- Parameters:
collection- List, array, JSONArray, or other iterable object, or null- Returns:
- this JSONArray
- Since:
- 5.4
-
addAll
public boolean addAll(java.util.Collection<? extends java.lang.Object> collection)
Adds all objects from the collection into this JSONArray, usingadd(Object).- Specified by:
addAllin interfacejava.util.Collection<java.lang.Object>- Parameters:
collection- Any collection, or null- Returns:
- boolean true, if JSONArray was changed.
- Since:
- 5.7
-
toList
public java.util.List<java.lang.Object> toList()
Returns an unmodifiable list of the contents of the array. This is a wrapper around the list's internal storage and is live (changes to the JSONArray affect the returned List).- Returns:
- unmodifiable list of array contents
- Since:
- 5.4
-
toArray
public java.lang.Object[] toArray()
Returns an array containing all of the values in this JSONArray in proper sequence.- Specified by:
toArrayin interfacejava.util.Collection<java.lang.Object>- Returns:
- an array containing all of the values in this JSONArray in proper sequence
- Since:
- 5.7
-
toArray
public <T> T[] toArray(T[] array)
Returns an array containing all of the values in this JSONArray in proper sequence; the runtime type of the returned array is that of the specified array.- Specified by:
toArrayin interfacejava.util.Collection<java.lang.Object>- Parameters:
array- the array into which the values of this JSONArray are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.- Returns:
- an array containing the values of this JSONArray
- Throws:
java.lang.ArrayStoreException- if the runtime type of the specified array is not a supertype of the runtime type of every element in this listjava.lang.NullPointerException- if the specified array is null- Since:
- 5.7
-
iterator
public java.util.Iterator<java.lang.Object> iterator()
Returns an iterator over the values in this array in proper sequence.- Specified by:
iteratorin interfacejava.util.Collection<java.lang.Object>- Specified by:
iteratorin interfacejava.lang.Iterable<java.lang.Object>- Returns:
- an iterator over the values in this array in proper sequence
-
contains
public boolean contains(java.lang.Object value)
Returnstrueif this JSONArray contains the specified value.- Specified by:
containsin interfacejava.util.Collection<java.lang.Object>- Parameters:
value- value whose presence in this JSONArray is to be tested- Returns:
trueif this JSONArray contains the specified value- Since:
- 5.7
-
containsAll
public boolean containsAll(java.util.Collection<?> c)
Returnstrueif this JSONArray contains all of the values in the specified collection.- Specified by:
containsAllin interfacejava.util.Collection<java.lang.Object>- Parameters:
c- collection to be checked for containment in this collection- Returns:
trueif this collection contains all of the elements in the specified collection- Throws:
java.lang.NullPointerException- if the specified collection is null.- Since:
- 5.7
- See Also:
contains(Object)
-
-