- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList<Object>
-
- java.lang.invoke.ConstantGroup.AbstractImpl
-
- All Implemented Interfaces:
-
ConstantGroup
,Iterable<Object>
,Collection<Object>
,List<Object>
- Enclosing interface:
- ConstantGroup
public abstract static class ConstantGroup.AbstractImpl extends AbstractList<Object> implements ConstantGroup
Utility class for implementing ConstantGroup.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface java.lang.invoke.ConstantGroup
ConstantGroup.AbstractImpl
-
-
Field Summary
Fields Modifier and Type Field Description protected int
size
The size of this constant group, set permanently by the constructor.-
Fields inherited from class java.util.AbstractList
modCount
-
Fields inherited from interface java.lang.invoke.ConstantGroup
NOT_PRESENT
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractImpl(int size)
The constructor requires the size of the constant group being represented.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Object
resolve(int index)
Returns the selected constant, resolving it if necessary.int
size()
Returns the number of elements in this collection.ConstantGroup
subList(int start, int end)
Returns a view of the portion of this list between the specifiedfromIndex
, inclusive, andtoIndex
, exclusive.-
Methods inherited from class java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString
-
Methods inherited from class java.util.AbstractList
add, add, addAll, clear, equals, get, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, remove, removeRange, set
-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream
-
Methods inherited from interface java.lang.invoke.ConstantGroup
copyOutArguments, get, get, resolving
-
Methods inherited from interface java.util.List
add, add, addAll, addAll, clear, contains, containsAll, equals, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, of, of, of, of, of, of, of, of, of, of, of, of, remove, remove, removeAll, replaceAll, retainAll, set, sort, spliterator, toArray, toArray
-
-
-
-
Method Detail
-
size
public int size()
Description copied from interface:Collection
Returns the number of elements in this collection. If this collection contains more thanInteger.MAX_VALUE
elements, returnsInteger.MAX_VALUE
.- Specified by:
-
size
in interfaceCollection<Object>
- Specified by:
-
size
in interfaceList<Object>
- Specified by:
-
size
in classAbstractCollection<Object>
- Returns:
- the number of elements in this collection
-
resolve
public abstract Object resolve(int index) throws LinkageError
Description copied from interface:ConstantGroup
Returns the selected constant, resolving it if necessary.- Specified by:
-
resolve
in interfaceConstantGroup
- Parameters:
-
index
- which constant to select - Returns:
- the selected constant
- Throws:
-
LinkageError
- if the static argument needs resolution and cannot be resolved
-
subList
public ConstantGroup subList(int start, int end)
Description copied from class:AbstractList
Returns a view of the portion of this list between the specifiedfromIndex
, inclusive, andtoIndex
, exclusive. (IffromIndex
andtoIndex
are equal, the returned list is empty.) The returned list is backed by this list, so non-structural changes in the returned list are reflected in this list, and vice-versa. The returned list supports all of the optional list operations supported by this list.This method eliminates the need for explicit range operations (of the sort that commonly exist for arrays). Any operation that expects a list can be used as a range operation by passing a subList view instead of a whole list. For example, the following idiom removes a range of elements from a list:
list.subList(from, to).clear();
indexOf
andlastIndexOf
, and all of the algorithms in theCollections
class can be applied to a subList.The semantics of the list returned by this method become undefined if the backing list (i.e., this list) is structurally modified in any way other than via the returned list. (Structural modifications are those that change the size of this list, or otherwise perturb it in such a fashion that iterations in progress may yield incorrect results.)
- Specified by:
-
subList
in interfaceConstantGroup
- Specified by:
-
subList
in interfaceList<Object>
- Overrides:
-
subList
in classAbstractList<Object>
- Parameters:
-
start
- low endpoint (inclusive) of the subList -
end
- high endpoint (exclusive) of the subList - Returns:
- a view of the specified range within this list
-
-