* As a result of #44665 the collections returned by the deserialization methods on `StreamInput` may be either mutable or immutable now, this PR adds documentation for that fact
This commit is contained in:
parent
8ee4c4d5ba
commit
6ceae5d586
|
@ -530,6 +530,9 @@ public abstract class StreamInput extends InputStream {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If the returned map contains any entries it will be mutable. If it is empty it might be immutable.
|
||||||
|
*/
|
||||||
public <K, V> Map<K, V> readMap(Writeable.Reader<K> keyReader, Writeable.Reader<V> valueReader) throws IOException {
|
public <K, V> Map<K, V> readMap(Writeable.Reader<K> keyReader, Writeable.Reader<V> valueReader) throws IOException {
|
||||||
int size = readArraySize();
|
int size = readArraySize();
|
||||||
if (size == 0) {
|
if (size == 0) {
|
||||||
|
@ -549,6 +552,8 @@ public abstract class StreamInput extends InputStream {
|
||||||
* <pre><code>
|
* <pre><code>
|
||||||
* Map<String, List<String>> map = in.readMapOfLists(StreamInput::readString, StreamInput::readString);
|
* Map<String, List<String>> map = in.readMapOfLists(StreamInput::readString, StreamInput::readString);
|
||||||
* </code></pre>
|
* </code></pre>
|
||||||
|
* If the map or a list in it contains any elements it will be mutable, otherwise either the empty map or empty lists it contains
|
||||||
|
* might be immutable.
|
||||||
*
|
*
|
||||||
* @param keyReader The key reader
|
* @param keyReader The key reader
|
||||||
* @param valueReader The value reader
|
* @param valueReader The value reader
|
||||||
|
@ -567,12 +572,19 @@ public abstract class StreamInput extends InputStream {
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If the returned map contains any entries it will be mutable. If it is empty it might be immutable.
|
||||||
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public Map<String, Object> readMap() throws IOException {
|
public Map<String, Object> readMap() throws IOException {
|
||||||
return (Map<String, Object>) readGenericValue();
|
return (Map<String, Object>) readGenericValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads a value of unspecified type. If a collection is read then the collection will be mutable if it contains any entry but might
|
||||||
|
* be immutable if it is empty.
|
||||||
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public Object readGenericValue() throws IOException {
|
public Object readGenericValue() throws IOException {
|
||||||
byte type = readByte();
|
byte type = readByte();
|
||||||
|
@ -1026,6 +1038,7 @@ public abstract class StreamInput extends InputStream {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads a list of objects. The list is expected to have been written using {@link StreamOutput#writeList(List)}.
|
* Reads a list of objects. The list is expected to have been written using {@link StreamOutput#writeList(List)}.
|
||||||
|
* If the returned list contains any entries it will be mutable. If it is empty it might be immutable.
|
||||||
*
|
*
|
||||||
* @return the list of objects
|
* @return the list of objects
|
||||||
* @throws IOException if an I/O exception occurs reading the list
|
* @throws IOException if an I/O exception occurs reading the list
|
||||||
|
@ -1036,6 +1049,7 @@ public abstract class StreamInput extends InputStream {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads a list of strings. The list is expected to have been written using {@link StreamOutput#writeStringCollection(Collection)}.
|
* Reads a list of strings. The list is expected to have been written using {@link StreamOutput#writeStringCollection(Collection)}.
|
||||||
|
* If the returned list contains any entries it will be mutable. If it is empty it might be immutable.
|
||||||
*
|
*
|
||||||
* @return the list of strings
|
* @return the list of strings
|
||||||
* @throws IOException if an I/O exception occurs reading the list
|
* @throws IOException if an I/O exception occurs reading the list
|
||||||
|
@ -1045,7 +1059,7 @@ public abstract class StreamInput extends InputStream {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads a set of objects
|
* Reads a set of objects. If the returned set contains any entries it will be mutable. If it is empty it might be immutable.
|
||||||
*/
|
*/
|
||||||
public <T> Set<T> readSet(Writeable.Reader<T> reader) throws IOException {
|
public <T> Set<T> readSet(Writeable.Reader<T> reader) throws IOException {
|
||||||
return readCollection(reader, HashSet::new, Collections.emptySet());
|
return readCollection(reader, HashSet::new, Collections.emptySet());
|
||||||
|
@ -1069,7 +1083,8 @@ public abstract class StreamInput extends InputStream {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads a list of {@link NamedWriteable}s.
|
* Reads a list of {@link NamedWriteable}s. If the returned list contains any entries it will be mutable.
|
||||||
|
* If it is empty it might be immutable.
|
||||||
*/
|
*/
|
||||||
public <T extends NamedWriteable> List<T> readNamedWriteableList(Class<T> categoryClass) throws IOException {
|
public <T extends NamedWriteable> List<T> readNamedWriteableList(Class<T> categoryClass) throws IOException {
|
||||||
int count = readArraySize();
|
int count = readArraySize();
|
||||||
|
|
Loading…
Reference in New Issue