CPD Results
The following document contains the results of PMD's CPD 7.6.0.
Duplications
File |
Line |
org/apache/commons/collections4/list/AbstractLinkedList.java |
615 |
org/apache/commons/collections4/list/AbstractLinkedListJava21.java |
606 |
}
/**
* Inserts a new node into the list.
*
* @param nodeToInsert new node to insert
* @param insertBeforeNode node to insert before
* @throws NullPointerException if either node is null
*/
protected void addNode(final Node<E> nodeToInsert, final Node<E> insertBeforeNode) {
Objects.requireNonNull(nodeToInsert, "nodeToInsert");
Objects.requireNonNull(insertBeforeNode, "insertBeforeNode");
nodeToInsert.next = insertBeforeNode;
nodeToInsert.previous = insertBeforeNode.previous;
insertBeforeNode.previous.next = nodeToInsert;
insertBeforeNode.previous = nodeToInsert;
size++;
modCount++;
}
/**
* Creates a new node with the specified object as its
* {@code value} and inserts it after {@code node}.
* <p>
* This implementation uses {@link #createNode(Object)} and
* {@link #addNode(AbstractLinkedList.Node,AbstractLinkedList.Node)}.
*
* @param node node to insert after
* @param value value of the newly added node
* @throws NullPointerException if {@code node} is null
*/
protected void addNodeAfter(final Node<E> node, final E value) {
final Node<E> newNode = createNode(value);
addNode(newNode, node.next);
}
/**
* Creates a new node with the specified object as its
* {@code value} and inserts it before {@code node}.
* <p>
* This implementation uses {@link #createNode(Object)} and
* {@link #addNode(AbstractLinkedList.Node,AbstractLinkedList.Node)}.
*
* @param node node to insert before
* @param value value of the newly added node
* @throws NullPointerException if {@code node} is null
*/
protected void addNodeBefore(final Node<E> node, final E value) {
final Node<E> newNode = createNode(value);
addNode(newNode, node);
}
@Override
public void clear() {
removeAllNodes();
}
@Override
public boolean contains(final Object value) {
return indexOf(value) != -1;
}
@Override
public boolean containsAll(final Collection<?> coll) {
for (final Object o : coll) {
if (!contains(o)) {
return false;
}
}
return true;
}
/**
* Creates a new node with previous, next and element all set to null.
* This implementation creates a new empty Node.
* Subclasses can override this to create a different class.
*
* @return newly created node
*/
protected Node<E> createHeaderNode() {
return new Node<>();
}
/**
* Creates a new node with the specified properties.
* This implementation creates a new Node with data.
* Subclasses can override this to create a different class.
*
* @param value value of the new node
* @return a new node containing the value
*/
protected Node<E> createNode(final E value) {
return new Node<>(value);
}
/**
* Creates an iterator for the sublist.
*
* @param subList the sublist to get an iterator for
* @return a new iterator on the given sublist
*/
protected Iterator<E> createSubListIterator(final LinkedSubList<E> subList) {
return createSubListListIterator(subList, 0);
}
/**
* Creates a list iterator for the sublist.
*
* @param subList the sublist to get an iterator for
* @param fromIndex the index to start from, relative to the sublist
* @return a new list iterator on the given sublist
*/
protected ListIterator<E> createSubListListIterator(final LinkedSubList<E> subList, final int fromIndex) {
return new LinkedSubListIterator<>(subList, fromIndex);
}
/**
* Deserializes the data held in this object to the stream specified.
* <p>
* The first serializable subclass must call this method from
* {@code readObject}.
*
* @param inputStream the stream to read the object from
* @throws IOException if any error occurs while reading from the stream
* @throws ClassNotFoundException if a class read from the stream cannot be loaded
*/
@SuppressWarnings("unchecked")
protected void doReadObject(final ObjectInputStream inputStream) throws IOException, ClassNotFoundException {
init();
final int size = inputStream.readInt();
for (int i = 0; i < size; i++) {
add((E) inputStream.readObject());
}
}
/**
* Serializes the data held in this object to the stream specified.
* <p>
* The first serializable subclass must call this method from
* {@code writeObject}.
*
* @param outputStream the stream to write the object to
* @throws IOException if anything goes wrong
*/
protected void doWriteObject(final ObjectOutputStream outputStream) throws IOException {
// Write the size so we know how many nodes to read back
outputStream.writeInt(size());
for (final E e : this) {
outputStream.writeObject(e);
}
}
@Override
public boolean equals(final Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof List)) {
return false;
}
final List<?> other = (List<?>) obj;
if (other.size() != size()) {
return false;
}
final ListIterator<?> it1 = listIterator();
final ListIterator<?> it2 = other.listIterator();
while (it1.hasNext() && it2.hasNext()) {
if (!Objects.equals(it1.next(), it2.next())) {
return false;
}
}
return !(it1.hasNext() || it2.hasNext());
}
@Override
public E get(final int index) {
final Node<E> node = getNode(index, false);
return node.getValue();
}
/**
* Gets the first element.
*
* @return the first element.
*/
public E getFirst() {
final Node<E> node = header.next;
if (node == header) {
throw new NoSuchElementException();
}
return node.getValue();
}
/**
* Gets the last element.
*
* @return the last element.
*/
public E getLast() {
final Node<E> node = header.previous;
if (node == header) {
throw new NoSuchElementException();
}
return node.getValue();
}
/**
* Gets the node at a particular index.
*
* @param index the index, starting from 0
* @param endMarkerAllowed whether or not the end marker can be returned if
* startIndex is set to the list's size
* @return the node at the given index
* @throws IndexOutOfBoundsException if the index is less than 0; equal to
* the size of the list and endMakerAllowed is false; or greater than the
* size of the list
*/
protected Node<E> getNode(final int index, final boolean endMarkerAllowed) throws IndexOutOfBoundsException {
// Check the index is within the bounds
if (index < 0) {
throw new IndexOutOfBoundsException("Couldn't get the node: " +
"index (" + index + ") less than zero.");
}
if (!endMarkerAllowed && index == size) {
throw new IndexOutOfBoundsException("Couldn't get the node: " +
"index (" + index + ") is the size of the list.");
}
if (index > size) {
throw new IndexOutOfBoundsException("Couldn't get the node: " +
"index (" + index + ") greater than the size of the " +
"list (" + size + ").");
}
// Search the list and get the node
Node<E> node;
if (index < size / 2) {
// Search forwards
node = header.next;
for (int currentIndex = 0; currentIndex < index; currentIndex++) {
node = node.next;
}
} else {
// Search backwards
node = header;
for (int currentIndex = size; currentIndex > index; currentIndex--) {
node = node.previous;
}
}
return node;
}
@Override
public int hashCode() {
int hashCode = 1;
for (final E e : this) {
hashCode = 31 * hashCode + (e == null ? 0 : e.hashCode());
}
return hashCode;
}
@Override
public int indexOf(final Object value) {
int i = 0;
for (Node<E> node = header.next; node != header; node = node.next) {
if (isEqualValue(node.getValue(), value)) {
return i;
}
i++;
}
return CollectionUtils.INDEX_NOT_FOUND;
}
/**
* The equivalent of a default constructor, broken out so it can be called
* by any constructor and by {@code readObject}.
* Subclasses which override this method should make sure they call super,
* so the list is initialized properly.
*/
protected void init() {
header = createHeaderNode();
}
@Override
public boolean isEmpty() {
return size() == 0;
}
/**
* Compares two values for equals.
* This implementation uses the equals method.
* Subclasses can override this to match differently.
*
* @param value1 the first value to compare, may be null
* @param value2 the second value to compare, may be null
* @return true if equal
*/
protected boolean isEqualValue(final Object value1, final Object value2) {
return Objects.equals(value1, value2);
}
@Override
public Iterator<E> iterator() {
return listIterator();
}
@Override
public int lastIndexOf(final Object value) {
int i = size - 1;
for (Node<E> node = header.previous; node != header; node = node.previous) {
if (isEqualValue(node.getValue(), value)) {
return i;
}
i--;
}
return CollectionUtils.INDEX_NOT_FOUND;
}
@Override
public ListIterator<E> listIterator() {
return new LinkedListIterator<>(this, 0);
}
@Override
public ListIterator<E> listIterator(final int fromIndex) {
return new LinkedListIterator<>(this, fromIndex);
}
@Override
public E remove(final int index) {
final Node<E> node = getNode(index, false);
final E oldValue = node.getValue();
removeNode(node);
return oldValue;
}
@Override
public boolean remove(final Object value) {
for (Node<E> node = header.next; node != header; node = node.next) {
if (isEqualValue(node.getValue(), value)) {
removeNode(node);
return true;
}
}
return false;
}
/**
* {@inheritDoc}
* <p>
* This implementation iterates over the elements of this list, checking each element in
* turn to see if it's contained in {@code coll}. If it's contained, it's removed
* from this list. As a consequence, it is advised to use a collection type for
* {@code coll} that provides a fast (e.g. O(1)) implementation of
* {@link Collection#contains(Object)}.
*/
@Override
public boolean removeAll(final Collection<?> coll) {
boolean modified = false;
final Iterator<E> it = iterator();
while (it.hasNext()) {
if (coll.contains(it.next())) {
it.remove();
modified = true;
}
}
return modified;
}
/**
* Removes all nodes by resetting the circular list marker.
*/
protected void removeAllNodes() {
header.next = header;
header.previous = header;
size = 0;
modCount++;
}
/**
* Removes the first element.
*
* @return The value removed.
*/
public E removeFirst() {
final Node<E> node = header.next;
if (node == header) {
throw new NoSuchElementException();
}
final E oldValue = node.getValue();
removeNode(node);
return oldValue;
}
/**
* Removes the last element.
*
* @return The value removed.
*/
public E removeLast() {
final Node<E> node = header.previous;
if (node == header) {
throw new NoSuchElementException();
}
final E oldValue = node.getValue();
removeNode(node);
return oldValue;
}
/**
* Removes the specified node from the list.
*
* @param node the node to remove
* @throws NullPointerException if {@code node} is null
*/
protected void removeNode(final Node<E> node) {
Objects.requireNonNull(node, "node");
node.previous.next = node.next;
node.next.previous = node.previous;
size--;
modCount++;
}
/**
* {@inheritDoc}
* <p>
* This implementation iterates over the elements of this list, checking each element in
* turn to see if it's contained in {@code coll}. If it's not contained, it's removed
* from this list. As a consequence, it is advised to use a collection type for
* {@code coll} that provides a fast (e.g. O(1)) implementation of
* {@link Collection#contains(Object)}.
*/
@Override
public boolean retainAll(final Collection<?> coll) {
boolean modified = false;
final Iterator<E> it = iterator();
while (it.hasNext()) {
if (!coll.contains(it.next())) {
it.remove();
modified = true;
}
}
return modified;
}
@Override
public E set(final int index, final E value) {
final Node<E> node = getNode(index, false);
final E oldValue = node.getValue();
updateNode(node, value);
return oldValue;
}
@Override
public int size() {
return size;
}
/**
* Gets a sublist of the main list.
*
* @param fromIndexInclusive the index to start from
* @param toIndexExclusive the index to end at
* @return the new sublist
*/
@Override
public List<E> subList(final int fromIndexInclusive, final int toIndexExclusive) {
return new LinkedSubList<>(this, fromIndexInclusive, toIndexExclusive);
}
@Override
public Object[] toArray() {
return toArray(new Object[size]);
}
@Override
@SuppressWarnings("unchecked")
public <T> T[] toArray(T[] array) {
// Extend the array if needed
if (array.length < size) {
final Class<?> componentType = array.getClass().getComponentType();
array = (T[]) Array.newInstance(componentType, size);
}
// Copy the values into the array
int i = 0;
for (Node<E> node = header.next; node != header; node = node.next, i++) {
array[i] = (T) node.getValue();
}
// Set the value after the last value to null
if (array.length > size) {
array[size] = null;
}
return array;
}
@Override
public String toString() {
if (isEmpty()) {
return "[]";
}
final StringBuilder buf = new StringBuilder(16 * size());
buf.append(CollectionUtils.DEFAULT_TOSTRING_PREFIX);
final Iterator<E> it = iterator();
boolean hasNext = it.hasNext();
while (hasNext) {
final Object value = it.next();
buf.append(value == this ? "(this Collection)" : value);
hasNext = it.hasNext();
if (hasNext) {
buf.append(", ");
}
}
buf.append(CollectionUtils.DEFAULT_TOSTRING_SUFFIX);
return buf.toString();
}
/**
* Updates the node with a new value.
* This implementation sets the value on the node.
* Subclasses can override this to record the change.
*
* @param node node to update
* @param value new value of the node
*/
protected void updateNode(final Node<E> node, final E value) {
node.setValue(value);
}
} |
File |
Line |
org/apache/commons/collections4/list/AbstractLinkedList.java |
249 |
org/apache/commons/collections4/list/AbstractLinkedListJava21.java |
248 |
protected LinkedSubList(final AbstractLinkedList<E> parent, final int fromIndex, final int toIndex) {
if (fromIndex < 0) {
throw new IndexOutOfBoundsException("fromIndex = " + fromIndex);
}
if (toIndex > parent.size()) {
throw new IndexOutOfBoundsException("toIndex = " + toIndex);
}
if (fromIndex > toIndex) {
throw new IllegalArgumentException("fromIndex(" + fromIndex + ") > toIndex(" + toIndex + ")");
}
this.parent = parent;
this.offset = fromIndex;
this.size = toIndex - fromIndex;
this.expectedModCount = parent.modCount;
}
@Override
public void add(final int index, final E obj) {
rangeCheck(index, size + 1);
checkModCount();
parent.add(index + offset, obj);
expectedModCount = parent.modCount;
size++;
modCount++;
}
@Override
public boolean addAll(final Collection<? extends E> coll) {
return addAll(size, coll);
}
@Override
public boolean addAll(final int index, final Collection<? extends E> coll) {
rangeCheck(index, size + 1);
final int cSize = coll.size();
if (cSize == 0) {
return false;
}
checkModCount();
parent.addAll(offset + index, coll);
expectedModCount = parent.modCount;
size += cSize;
modCount++;
return true;
}
/**
* Throws a {@link ConcurrentModificationException} if this instance fails its concurrency check.
*/
protected void checkModCount() {
if (parent.modCount != expectedModCount) {
throw new ConcurrentModificationException();
}
}
@Override
public void clear() {
checkModCount();
final Iterator<E> it = iterator();
while (it.hasNext()) {
it.next();
it.remove();
}
}
@Override
public E get(final int index) {
rangeCheck(index, size);
checkModCount();
return parent.get(index + offset);
}
@Override
public Iterator<E> iterator() {
checkModCount();
return parent.createSubListIterator(this);
}
@Override
public ListIterator<E> listIterator(final int index) {
rangeCheck(index, size + 1);
checkModCount();
return parent.createSubListListIterator(this, index);
}
/**
* Throws an {@link IndexOutOfBoundsException} if the given indices are out of bounds.
*
* @param index lower index.
* @param beyond upper index.
*/
protected void rangeCheck(final int index, final int beyond) {
if (index < 0 || index >= beyond) {
throw new IndexOutOfBoundsException("Index '" + index + "' out of bounds for size '" + size + "'");
}
}
@Override
public E remove(final int index) {
rangeCheck(index, size);
checkModCount();
final E result = parent.remove(index + offset);
expectedModCount = parent.modCount;
size--;
modCount++;
return result;
}
@Override
public E set(final int index, final E obj) {
rangeCheck(index, size);
checkModCount();
return parent.set(index + offset, obj);
}
@Override
public int size() {
checkModCount();
return size;
}
@Override
public List<E> subList(final int fromIndexInclusive, final int toIndexExclusive) {
return new LinkedSubList<>(parent, fromIndexInclusive + offset, toIndexExclusive + offset);
}
}
/**
* A list iterator over the linked sub list.
*
* @param <E> the type of elements in this iterator.
*/
protected static class LinkedSubListIterator<E> extends LinkedListIterator<E> {
/** The sub list. */
protected final LinkedSubList<E> sub;
/**
* Constructs a new instance.
*
* @param sub The sub-list.
* @param startIndex The starting index.
*/
protected LinkedSubListIterator(final LinkedSubList<E> sub, final int startIndex) {
super(sub.parent, startIndex + sub.offset);
this.sub = sub;
}
@Override
public void add(final E obj) {
super.add(obj);
sub.expectedModCount = parent.modCount;
sub.size++;
}
@Override
public boolean hasNext() {
return nextIndex() < sub.size;
}
@Override
public boolean hasPrevious() {
return previousIndex() >= 0;
}
@Override
public int nextIndex() {
return super.nextIndex() - sub.offset;
}
@Override
public void remove() {
super.remove();
sub.expectedModCount = parent.modCount;
sub.size--;
}
}
/**
* A node within the linked list.
* <p>
* From Commons Collections 3.1, all access to the {@code value} property
* is via the methods on this class.
* </p>
*
* @param <E> The node value type.
*/
protected static class Node<E> {
/** A pointer to the node before this node */
protected Node<E> previous;
/** A pointer to the node after this node */
protected Node<E> next;
/** The object contained within this node */
protected E value;
/**
* Constructs a new header node.
*/
protected Node() {
previous = this;
next = this;
}
/**
* Constructs a new node.
*
* @param value the value to store
*/
protected Node(final E value) {
this.value = value;
}
/**
* Constructs a new node.
*
* @param previous the previous node in the list
* @param next the next node in the list
* @param value the value to store
*/
protected Node(final Node<E> previous, final Node<E> next, final E value) {
this.previous = previous;
this.next = next;
this.value = value;
}
/**
* Gets the next node.
*
* @return the next node
* @since 3.1
*/
protected Node<E> getNextNode() {
return next;
}
/**
* Gets the previous node.
*
* @return the previous node
* @since 3.1
*/
protected Node<E> getPreviousNode() {
return previous;
}
/**
* Gets the value of the node.
*
* @return the value
* @since 3.1
*/
protected E getValue() {
return value;
}
/**
* Sets the next node.
*
* @param next the next node
* @since 3.1
*/
protected void setNextNode(final Node<E> next) {
this.next = next;
}
/**
* Sets the previous node.
*
* @param previous the previous node
* @since 3.1
*/
protected void setPreviousNode(final Node<E> previous) {
this.previous = previous;
}
/**
* Sets the value of the node.
*
* @param value the value
* @since 3.1
*/
protected void setValue(final E value) {
this.value = value;
}
}
/**
* A {@link Node} which indicates the start and end of the list and does not
* hold a value. The value of {@code next} is the first item in the
* list. The value of {@code previous} is the last item in the list.
*/
transient Node<E> header;
/** The size of the list */
transient int size;
/** Modification count for iterators */
transient int modCount;
/**
* Constructor that does nothing (intended for deserialization).
* <p>
* If this constructor is used by a serializable subclass then the init()
* method must be called.
*/
protected AbstractLinkedList() { |
File |
Line |
org/apache/commons/collections4/bag/CollectionBag.java |
65 |
org/apache/commons/collections4/bag/CollectionSortedBag.java |
56 |
public CollectionBag(final Bag<E> bag) {
super(bag);
}
/**
* <em>(Change)</em> Adds one copy of the specified object to the Bag.
* <p>
* Since this method always increases the size of the bag, it will always return {@code true}.
* </p>
*
* @param object the object to add
* @return {@code true}, always
* @throws ClassCastException if the class of the specified element prevents it from being added to this collection
*/
@Override
public boolean add(final E object) {
return add(object, 1);
}
/**
* <em>(Change)</em>
* Adds {@code count} copies of the specified object to the Bag.
* <p>
* Since this method always increases the size of the bag, it
* will always return {@code true}.
*
* @param object the object to add
* @param count the number of copies to add
* @return {@code true}, always
* @throws ClassCastException if the class of the specified element prevents it from being added to this collection
*/
@Override
public boolean add(final E object, final int count) {
decorated().add(object, count);
return true;
}
@Override
public boolean addAll(final Collection<? extends E> coll) {
boolean changed = false;
for (final E current : coll) {
final boolean added = add(current, 1);
changed = changed || added;
}
return changed;
}
/**
* <em>(Change)</em>
* Returns {@code true} if the bag contains all elements in
* the given collection, <strong>not</strong> respecting cardinality. That is,
* if the given collection {@code coll} contains at least one of
* every object contained in this object.
*
* @param coll the collection to check against
* @return {@code true} if the Bag contains at least one of every object in the collection
*/
@Override
public boolean containsAll(final Collection<?> coll) {
return coll.stream().allMatch(this::contains);
}
/**
* Read the collection in using a custom routine.
*
* @param in the input stream
* @throws IOException if an error occurs while reading from the stream
* @throws ClassNotFoundException if an object read from the stream cannot be loaded
* @throws ClassCastException if deserialized object has wrong type
*/
@SuppressWarnings("unchecked") // will throw CCE, see Javadoc
private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();
setCollection((Collection<E>) in.readObject());
}
/**
* <em>(Change)</em>
* Removes the first occurrence of the given object from the bag.
* <p>
* This will also remove the object from the {@link #uniqueSet()} if the
* bag contains no occurrence anymore of the object after this operation.
* </p>
*
* @param object the object to remove
* @return {@code true} if this call changed the collection
*/
@Override
public boolean remove(final Object object) {
return remove(object, 1);
}
/**
* <em>(Change)</em>
* Remove all elements represented in the given collection,
* <strong>not</strong> respecting cardinality. That is, remove <em>all</em>
* occurrences of every object contained in the given collection.
*
* @param coll the collection to remove
* @return {@code true} if this call changed the collection
*/
@Override
public boolean removeAll(final Collection<?> coll) {
if (coll != null) {
boolean result = false;
for (final Object obj : coll) {
final boolean changed = remove(obj, getCount(obj));
result = result || changed;
}
return result;
}
// let the decorated bag handle the case of null argument
return decorated().removeAll(null);
}
/**
* <em>(Change)</em>
* Remove any members of the bag that are not in the given collection,
* <em>not</em> respecting cardinality. That is, any object in the given
* collection {@code coll} will be retained in the bag with the same
* number of copies prior to this operation. All other objects will be
* completely removed from this bag.
* <p>
* This implementation iterates over the elements of this bag, checking
* each element in turn to see if it's contained in {@code coll}.
* If it's not contained, it's removed from this bag. As a consequence,
* it is advised to use a collection type for {@code coll} that provides
* a fast (e.g. O(1)) implementation of {@link Collection#contains(Object)}.
* </p>
*
* @param coll the collection to retain
* @return {@code true} if this call changed the collection
*/
@Override
public boolean retainAll(final Collection<?> coll) {
if (coll != null) {
boolean modified = false;
final Iterator<E> e = iterator();
while (e.hasNext()) {
if (!coll.contains(e.next())) {
e.remove();
modified = true;
}
}
return modified;
}
// let the decorated bag handle the case of null argument
return decorated().retainAll(null);
}
/**
* Writes the collection out using a custom routine.
*
* @param out the output stream
* @throws IOException if an error occurs while writing to the stream
*/
private void writeObject(final ObjectOutputStream out) throws IOException {
out.defaultWriteObject();
out.writeObject(decorated());
}
} |
File |
Line |
org/apache/commons/collections4/list/AbstractLinkedList.java |
108 |
org/apache/commons/collections4/list/AbstractLinkedListJava21.java |
111 |
protected LinkedListIterator(final AbstractLinkedList<E> parent, final int fromIndex)
throws IndexOutOfBoundsException {
this.parent = parent;
this.expectedModCount = parent.modCount;
this.next = parent.getNode(fromIndex, true);
this.nextIndex = fromIndex;
}
@Override
public void add(final E obj) {
checkModCount();
parent.addNodeBefore(next, obj);
current = null;
nextIndex++;
expectedModCount++;
}
/**
* Checks the modification count of the list is the value that this
* object expects.
*
* @throws ConcurrentModificationException If the list's modification
* count isn't the value that was expected.
*/
protected void checkModCount() {
if (parent.modCount != expectedModCount) {
throw new ConcurrentModificationException();
}
}
/**
* Gets the last node returned.
*
* @return the last node returned
* @throws IllegalStateException If {@link #next()} or {@link #previous()} haven't been called,
* or if the node has been removed with {@link #remove()} or a new node added with {@link #add(Object)}.
*/
protected Node<E> getLastNodeReturned() throws IllegalStateException {
if (current == null) {
throw new IllegalStateException();
}
return current;
}
@Override
public boolean hasNext() {
return next != parent.header;
}
@Override
public boolean hasPrevious() {
return next.previous != parent.header;
}
@Override
public E next() {
checkModCount();
if (!hasNext()) {
throw new NoSuchElementException("No element at index " + nextIndex + ".");
}
final E value = next.getValue();
current = next;
next = next.next;
nextIndex++;
return value;
}
@Override
public int nextIndex() {
return nextIndex;
}
@Override
public E previous() {
checkModCount();
if (!hasPrevious()) {
throw new NoSuchElementException("Already at start of list.");
}
next = next.previous;
final E value = next.getValue();
current = next;
nextIndex--;
return value;
}
@Override
public int previousIndex() {
// not normally overridden, as relative to nextIndex()
return nextIndex() - 1;
}
@Override
public void remove() {
checkModCount();
if (current == next) {
// remove() following previous()
next = next.next;
parent.removeNode(getLastNodeReturned());
} else {
// remove() following next()
parent.removeNode(getLastNodeReturned());
nextIndex--;
}
current = null;
expectedModCount++;
}
@Override
public void set(final E value) { |
File |
Line |
org/apache/commons/collections4/collection/CompositeCollection.java |
446 |
org/apache/commons/collections4/set/CompositeSet.java |
470 |
for (final Collection<E> item : all) {
size += item.size();
}
return size;
}
/**
* Returns an array containing all of the elements in this composite.
*
* @return an object array of all the elements in the collection
*/
@Override
public Object[] toArray() {
final Object[] result = new Object[size()];
int i = 0;
for (final Iterator<E> it = iterator(); it.hasNext(); i++) {
result[i] = it.next();
}
return result;
}
/**
* Returns an object array, populating the supplied array if possible.
* See {@code Collection} interface for full details.
*
* @param <T> the type of the elements in the collection
* @param array the array to use, populating if possible
* @return an array of all the elements in the collection
*/
@Override
@SuppressWarnings("unchecked")
public <T> T[] toArray(final T[] array) {
final int size = size();
Object[] result = null;
if (array.length >= size) {
result = array;
} else {
result = (Object[]) Array.newInstance(array.getClass().getComponentType(), size);
}
int offset = 0;
for (final Collection<E> item : all) {
for (final E e : item) {
result[offset++] = e;
}
}
if (result.length > size) {
result[size] = null;
}
return (T[]) result;
}
/**
* Returns a new collection containing all of the elements
*
* @return A new ArrayList containing all of the elements in this composite.
* The new collection is <em>not</em> backed by this composite.
*/
public Collection<E> toCollection() { |
File |
Line |
org/apache/commons/collections4/bag/AbstractMapBag.java |
65 |
org/apache/commons/collections4/multiset/AbstractMapMultiSet.java |
114 |
BagIterator(final AbstractMapBag<E> parent) {
this.parent = parent;
this.entryIterator = parent.map.entrySet().iterator();
this.current = null;
this.mods = parent.modCount;
this.canRemove = false;
}
/** {@inheritDoc} */
@Override
public boolean hasNext() {
return itemCount > 0 || entryIterator.hasNext();
}
/** {@inheritDoc} */
@Override
public E next() {
if (parent.modCount != mods) {
throw new ConcurrentModificationException();
}
if (itemCount == 0) {
current = entryIterator.next();
itemCount = current.getValue().value;
}
canRemove = true;
itemCount--;
return current.getKey();
}
/** {@inheritDoc} */
@Override
public void remove() {
if (parent.modCount != mods) {
throw new ConcurrentModificationException();
}
if (!canRemove) {
throw new IllegalStateException();
}
final MutableInteger mut = current.getValue();
if (mut.value > 1) {
mut.value--;
} else {
entryIterator.remove();
}
parent.size--;
canRemove = false;
}
}
/**
* Mutable integer class for storing the data.
*/
protected static class MutableInteger { |
File |
Line |
org/apache/commons/collections4/map/AbstractMapDecorator.java |
67 |
org/apache/commons/collections4/splitmap/AbstractIterableGetMapDecorator.java |
53 |
decorated().clear();
}
@Override
public boolean containsKey(final Object key) {
return decorated().containsKey(key);
}
@Override
public boolean containsValue(final Object value) {
return decorated().containsValue(value);
}
/**
* Gets the map being decorated.
*
* @return the decorated map
*/
protected Map<K, V> decorated() {
return map;
}
@Override
public Set<Map.Entry<K, V>> entrySet() {
return decorated().entrySet();
}
@Override
public boolean equals(final Object object) {
if (object == this) {
return true;
}
return decorated().equals(object);
}
@Override
public V get(final Object key) {
return decorated().get(key);
}
@Override
public int hashCode() {
return decorated().hashCode();
}
@Override
public boolean isEmpty() {
return decorated().isEmpty();
}
@Override
public Set<K> keySet() {
return decorated().keySet();
}
@Override
public V put(final K key, final V value) { |
File |
Line |
org/apache/commons/collections4/bag/UnmodifiableBag.java |
103 |
org/apache/commons/collections4/bag/UnmodifiableSortedBag.java |
100 |
return UnmodifiableIterator.<E>unmodifiableIterator(decorated().iterator());
}
/**
* Deserializes the collection in using a custom routine.
*
* @param in the input stream
* @throws IOException if an error occurs while reading from the stream
* @throws ClassNotFoundException if an object read from the stream cannot be loaded
* @throws ClassCastException if deserialized object has wrong type
*/
@SuppressWarnings("unchecked") // will throw CCE, see Javadoc
private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();
setCollection((Collection<E>) in.readObject());
}
@Override
public boolean remove(final Object object) {
throw new UnsupportedOperationException();
}
@Override
public boolean remove(final Object object, final int count) {
throw new UnsupportedOperationException();
}
@Override
public boolean removeAll(final Collection<?> coll) {
throw new UnsupportedOperationException();
}
/**
* @since 4.4
*/
@Override
public boolean removeIf(final Predicate<? super E> filter) {
throw new UnsupportedOperationException();
}
@Override
public boolean retainAll(final Collection<?> coll) {
throw new UnsupportedOperationException();
}
@Override
public Set<E> uniqueSet() {
final Set<E> set = decorated().uniqueSet();
return UnmodifiableSet.<E>unmodifiableSet(set); |
File |
Line |
org/apache/commons/collections4/bidimap/UnmodifiableOrderedBidiMap.java |
101 |
org/apache/commons/collections4/bidimap/UnmodifiableSortedBidiMap.java |
99 |
inverse = new UnmodifiableOrderedBidiMap<>(decorated().inverseBidiMap());
inverse.inverse = this;
}
return inverse;
}
@Override
public Set<K> keySet() {
final Set<K> set = super.keySet();
return UnmodifiableSet.unmodifiableSet(set);
}
@Override
public OrderedMapIterator<K, V> mapIterator() {
final OrderedMapIterator<K, V> it = decorated().mapIterator();
return UnmodifiableOrderedMapIterator.unmodifiableOrderedMapIterator(it);
}
@Override
public V put(final K key, final V value) {
throw new UnsupportedOperationException();
}
@Override
public void putAll(final Map<? extends K, ? extends V> mapToCopy) {
throw new UnsupportedOperationException();
}
@Override
public V remove(final Object key) {
throw new UnsupportedOperationException();
}
@Override
public K removeValue(final Object value) {
throw new UnsupportedOperationException();
}
@Override
public Set<V> values() { |
File |
Line |
org/apache/commons/collections4/map/UnmodifiableMap.java |
109 |
org/apache/commons/collections4/map/UnmodifiableOrderedMap.java |
103 |
return UnmodifiableMapIterator.unmodifiableMapIterator(it);
}
@Override
public V put(final K key, final V value) {
throw new UnsupportedOperationException();
}
@Override
public void putAll(final Map<? extends K, ? extends V> mapToCopy) {
throw new UnsupportedOperationException();
}
/**
* Deserializes the map in using a custom routine.
*
* @param in the input stream
* @throws IOException if an error occurs while reading from the stream
* @throws ClassNotFoundException if an object read from the stream cannot be loaded
* @since 3.1
*/
@SuppressWarnings("unchecked")
private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();
map = (Map<K, V>) in.readObject();
}
@Override
public V remove(final Object key) {
throw new UnsupportedOperationException();
}
@Override
public Collection<V> values() {
final Collection<V> coll = super.values();
return UnmodifiableCollection.unmodifiableCollection(coll);
}
/**
* Serializes this object to an ObjectOutputStream.
*
* @param out the target ObjectOutputStream.
* @throws IOException thrown when an I/O errors occur writing to the target stream.
* @since 3.1
*/
private void writeObject(final ObjectOutputStream out) throws IOException {
out.defaultWriteObject();
out.writeObject(map);
}
} |
File |
Line |
org/apache/commons/collections4/collection/UnmodifiableCollection.java |
73 |
org/apache/commons/collections4/set/UnmodifiableSet.java |
72 |
super((Collection<E>) coll);
}
@Override
public boolean add(final E object) {
throw new UnsupportedOperationException();
}
@Override
public boolean addAll(final Collection<? extends E> coll) {
throw new UnsupportedOperationException();
}
@Override
public void clear() {
throw new UnsupportedOperationException();
}
@Override
public Iterator<E> iterator() {
return UnmodifiableIterator.unmodifiableIterator(decorated().iterator());
}
@Override
public boolean remove(final Object object) {
throw new UnsupportedOperationException();
}
@Override
public boolean removeAll(final Collection<?> coll) {
throw new UnsupportedOperationException();
}
/**
* @since 4.4
*/
@Override
public boolean removeIf(final Predicate<? super E> filter) {
throw new UnsupportedOperationException();
}
@Override
public boolean retainAll(final Collection<?> coll) {
throw new UnsupportedOperationException();
}
} |
File |
Line |
org/apache/commons/collections4/multimap/AbstractMultiValuedMap.java |
786 |
org/apache/commons/collections4/multimap/TransformedMultiValuedMap.java |
138 |
return it.hasNext() && CollectionUtils.addAll(get(key), it);
}
/**
* Copies all of the mappings from the specified map to this map. The effect
* of this call is equivalent to that of calling {@link #put(Object,Object)
* put(k, v)} on this map once for each mapping from key {@code k} to value
* {@code v} in the specified map. The behavior of this operation is
* undefined if the specified map is modified while the operation is in
* progress.
*
* @param map mappings to be stored in this map, may not be null
* @return true if the map changed as a result of this operation
* @throws NullPointerException if map is null
*/
@Override
public boolean putAll(final Map<? extends K, ? extends V> map) {
Objects.requireNonNull(map, "map");
boolean changed = false;
for (final Map.Entry<? extends K, ? extends V> entry : map.entrySet()) {
changed |= put(entry.getKey(), entry.getValue());
}
return changed;
}
/**
* Copies all of the mappings from the specified MultiValuedMap to this map.
* The effect of this call is equivalent to that of calling
* {@link #put(Object,Object) put(k, v)} on this map once for each mapping
* from key {@code k} to value {@code v} in the specified map. The
* behavior of this operation is undefined if the specified map is modified
* while the operation is in progress.
*
* @param map mappings to be stored in this map, may not be null
* @return true if the map changed as a result of this operation
* @throws NullPointerException if map is null
*/
@Override
public boolean putAll(final MultiValuedMap<? extends K, ? extends V> map) {
Objects.requireNonNull(map, "map");
boolean changed = false;
for (final Map.Entry<? extends K, ? extends V> entry : map.entries()) {
changed |= put(entry.getKey(), entry.getValue());
}
return changed;
} |
File |
Line |
org/apache/commons/collections4/list/AbstractListDecorator.java |
63 |
org/apache/commons/collections4/list/PredicatedList.java |
127 |
return decorated().addAll(index, coll);
}
/**
* Gets the list being decorated.
*
* @return the decorated list
*/
@Override
protected List<E> decorated() {
return (List<E>) super.decorated();
}
@Override
public boolean equals(final Object object) {
return object == this || decorated().equals(object);
}
@Override
public E get(final int index) {
return decorated().get(index);
}
@Override
public int hashCode() {
return decorated().hashCode();
}
@Override
public int indexOf(final Object object) {
return decorated().indexOf(object);
}
@Override
public int lastIndexOf(final Object object) {
return decorated().lastIndexOf(object);
}
@Override
public ListIterator<E> listIterator() {
return decorated().listIterator(); |
File |
Line |
org/apache/commons/collections4/list/AbstractLinkedList.java |
564 |
org/apache/commons/collections4/list/AbstractLinkedListJava21.java |
563 |
protected AbstractLinkedList(final Collection<? extends E> coll) {
init();
addAll(coll);
}
@Override
public boolean add(final E value) {
addLast(value);
return true;
}
@Override
public void add(final int index, final E value) {
final Node<E> node = getNode(index, true);
addNodeBefore(node, value);
}
@Override
public boolean addAll(final Collection<? extends E> coll) {
return addAll(size, coll);
}
@Override
public boolean addAll(final int index, final Collection<? extends E> coll) {
final Node<E> node = getNode(index, true);
for (final E e : coll) {
addNodeBefore(node, e);
}
return true;
}
/**
* Adds an element at the beginning.
*
* @param e the element to beginning.
* @return true.
*/
public boolean addFirst(final E e) { |
File |
Line |
org/apache/commons/collections4/bag/AbstractBagDecorator.java |
58 |
org/apache/commons/collections4/bag/PredicatedBag.java |
87 |
return decorated().add(object, count);
}
/**
* Gets the bag being decorated.
*
* @return the decorated bag
*/
@Override
protected Bag<E> decorated() {
return (Bag<E>) super.decorated();
}
@Override
public boolean equals(final Object object) {
return object == this || decorated().equals(object);
}
@Override
public int getCount(final Object object) {
return decorated().getCount(object);
}
@Override
public int hashCode() {
return decorated().hashCode();
}
@Override
public boolean remove(final Object object, final int count) {
return decorated().remove(object, count);
}
@Override
public Set<E> uniqueSet() {
return decorated().uniqueSet();
}
} |
File |
Line |
org/apache/commons/collections4/bidimap/AbstractDualBidiMap.java |
74 |
org/apache/commons/collections4/iterators/EntrySetMapIterator.java |
55 |
this.iterator = parent.normalMap.entrySet().iterator();
}
@Override
public K getKey() {
if (last == null) {
throw new IllegalStateException(
"Iterator getKey() can only be called after next() and before remove()");
}
return last.getKey();
}
@Override
public V getValue() {
if (last == null) {
throw new IllegalStateException(
"Iterator getValue() can only be called after next() and before remove()");
}
return last.getValue();
}
@Override
public boolean hasNext() {
return iterator.hasNext();
}
@Override
public K next() {
last = iterator.next();
canRemove = true;
return last.getKey();
}
@Override
public void remove() {
if (!canRemove) {
throw new IllegalStateException("Iterator remove() can only be called once after next()");
} |
File |
Line |
org/apache/commons/collections4/multiset/AbstractMultiSetDecorator.java |
71 |
org/apache/commons/collections4/multiset/PredicatedMultiSet.java |
102 |
public Set<Entry<E>> entrySet() {
return decorated().entrySet();
}
@Override
public boolean equals(final Object object) {
return object == this || decorated().equals(object);
}
@Override
public int getCount(final Object object) {
return decorated().getCount(object);
}
@Override
public int hashCode() {
return decorated().hashCode();
}
@Override
public int remove(final Object object, final int count) {
return decorated().remove(object, count);
}
@Override
public int setCount(final E object, final int count) { |
File |
Line |
org/apache/commons/collections4/set/UnmodifiableNavigableSet.java |
128 |
org/apache/commons/collections4/set/UnmodifiableSortedSet.java |
98 |
throw new UnsupportedOperationException();
}
/**
* Deserializes the collection in using a custom routine.
*
* @param in the input stream
* @throws IOException if an error occurs while reading from the stream
* @throws ClassNotFoundException if an object read from the stream cannot be loaded
*/
@SuppressWarnings("unchecked") // (1) should only fail if input stream is incorrect
private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();
setCollection((Collection<E>) in.readObject()); // (1)
}
@Override
public boolean remove(final Object object) {
throw new UnsupportedOperationException();
}
@Override
public boolean removeAll(final Collection<?> coll) {
throw new UnsupportedOperationException();
}
/**
* @since 4.4
*/
@Override
public boolean removeIf(final Predicate<? super E> filter) {
throw new UnsupportedOperationException();
}
@Override
public boolean retainAll(final Collection<?> coll) {
throw new UnsupportedOperationException();
}
@Override
public NavigableSet<E> subSet(final E fromElement, final boolean fromInclusive, final E toElement, |
File |
Line |
org/apache/commons/collections4/bag/AbstractMapBag.java |
334 |
org/apache/commons/collections4/multiset/AbstractMapMultiSet.java |
389 |
final Bag<?> other = (Bag<?>) object;
if (other.size() != size()) {
return false;
}
for (final E element : map.keySet()) {
if (other.getCount(element) != getCount(element)) {
return false;
}
}
return true;
}
/**
* Returns the number of occurrence of the given element in this bag by
* looking up its count in the underlying map.
*
* @param object the object to search for
* @return the number of occurrences of the object, zero if not found
*/
@Override
public int getCount(final Object object) {
final MutableInteger count = map.get(object);
if (count != null) {
return count.value;
}
return 0;
}
/**
* Utility method for implementations to access the map that backs this bag.
* Not intended for interactive use outside of subclasses.
*
* @return the map being used by the Bag
*/
protected Map<E, MutableInteger> getMap() {
return map;
}
/**
* Gets a hash code for the Bag compatible with the definition of equals.
* The hash code is defined as the sum total of a hash code for each
* element. The per element hash code is defined as
* {@code (e==null ? 0 : e.hashCode()) ^ noOccurrences)}. This hash code
* is compatible with the Set interface.
*
* @return the hash code of the Bag
*/
@Override
public int hashCode() {
int total = 0;
for (final Entry<E, MutableInteger> entry : map.entrySet()) { |
File |
Line |
org/apache/commons/collections4/bidimap/UnmodifiableBidiMap.java |
106 |
org/apache/commons/collections4/bidimap/UnmodifiableOrderedBidiMap.java |
116 |
return UnmodifiableMapIterator.unmodifiableMapIterator(it);
}
@Override
public V put(final K key, final V value) {
throw new UnsupportedOperationException();
}
@Override
public void putAll(final Map<? extends K, ? extends V> mapToCopy) {
throw new UnsupportedOperationException();
}
@Override
public V remove(final Object key) {
throw new UnsupportedOperationException();
}
@Override
public K removeValue(final Object value) {
throw new UnsupportedOperationException();
}
@Override
public Set<V> values() {
final Set<V> set = super.values();
return UnmodifiableSet.unmodifiableSet(set);
}
} |
File |
Line |
org/apache/commons/collections4/bidimap/UnmodifiableOrderedBidiMap.java |
105 |
org/apache/commons/collections4/map/UnmodifiableOrderedMap.java |
92 |
}
@Override
public Set<K> keySet() {
final Set<K> set = super.keySet();
return UnmodifiableSet.unmodifiableSet(set);
}
@Override
public OrderedMapIterator<K, V> mapIterator() {
final OrderedMapIterator<K, V> it = decorated().mapIterator();
return UnmodifiableOrderedMapIterator.unmodifiableOrderedMapIterator(it);
}
@Override
public V put(final K key, final V value) {
throw new UnsupportedOperationException();
}
@Override
public void putAll(final Map<? extends K, ? extends V> mapToCopy) {
throw new UnsupportedOperationException();
}
@Override |
File |
Line |
org/apache/commons/collections4/bidimap/UnmodifiableSortedBidiMap.java |
103 |
org/apache/commons/collections4/map/UnmodifiableOrderedMap.java |
92 |
}
@Override
public Set<K> keySet() {
final Set<K> set = super.keySet();
return UnmodifiableSet.unmodifiableSet(set);
}
@Override
public OrderedMapIterator<K, V> mapIterator() {
final OrderedMapIterator<K, V> it = decorated().mapIterator();
return UnmodifiableOrderedMapIterator.unmodifiableOrderedMapIterator(it);
}
@Override
public V put(final K key, final V value) {
throw new UnsupportedOperationException();
}
@Override
public void putAll(final Map<? extends K, ? extends V> mapToCopy) {
throw new UnsupportedOperationException();
}
@Override |
File |
Line |
org/apache/commons/collections4/list/AbstractLinkedList.java |
394 |
org/apache/commons/collections4/list/CursorableLinkedList.java |
256 |
super(sub.parent, startIndex + sub.offset);
this.sub = sub;
}
@Override
public void add(final E obj) {
super.add(obj);
sub.expectedModCount = parent.modCount;
sub.size++;
}
@Override
public boolean hasNext() {
return nextIndex() < sub.size;
}
@Override
public boolean hasPrevious() {
return previousIndex() >= 0;
}
@Override
public int nextIndex() {
return super.nextIndex() - sub.offset;
}
@Override
public void remove() {
super.remove();
sub.expectedModCount = parent.modCount;
sub.size--;
}
} |
File |
Line |
org/apache/commons/collections4/list/AbstractLinkedListJava21.java |
393 |
org/apache/commons/collections4/list/CursorableLinkedList.java |
256 |
super(sub.parent, startIndex + sub.offset);
this.sub = sub;
}
@Override
public void add(final E obj) {
super.add(obj);
sub.expectedModCount = parent.modCount;
sub.size++;
}
@Override
public boolean hasNext() {
return nextIndex() < sub.size;
}
@Override
public boolean hasPrevious() {
return previousIndex() >= 0;
}
@Override
public int nextIndex() {
return super.nextIndex() - sub.offset;
}
@Override
public void remove() {
super.remove();
sub.expectedModCount = parent.modCount;
sub.size--;
}
} |
File |
Line |
org/apache/commons/collections4/map/UnmodifiableMap.java |
109 |
org/apache/commons/collections4/map/UnmodifiableSortedMap.java |
115 |
return UnmodifiableMapIterator.unmodifiableMapIterator(it);
}
@Override
public V put(final K key, final V value) {
throw new UnsupportedOperationException();
}
@Override
public void putAll(final Map<? extends K, ? extends V> mapToCopy) {
throw new UnsupportedOperationException();
}
/**
* Deserializes the map in using a custom routine.
*
* @param in the input stream
* @throws IOException if an error occurs while reading from the stream
* @throws ClassNotFoundException if an object read from the stream cannot be loaded
* @since 3.1
*/
@SuppressWarnings("unchecked")
private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();
map = (Map<K, V>) in.readObject();
}
@Override
public V remove(final Object key) {
throw new UnsupportedOperationException();
}
@Override
public Collection<V> values() { |
File |
Line |
org/apache/commons/collections4/map/UnmodifiableOrderedMap.java |
103 |
org/apache/commons/collections4/map/UnmodifiableSortedMap.java |
115 |
return UnmodifiableOrderedMapIterator.unmodifiableOrderedMapIterator(it);
}
@Override
public V put(final K key, final V value) {
throw new UnsupportedOperationException();
}
@Override
public void putAll(final Map<? extends K, ? extends V> mapToCopy) {
throw new UnsupportedOperationException();
}
/**
* Deseializes the map in using a custom routine.
*
* @param in the input stream
* @throws IOException if an error occurs while reading from the stream
* @throws ClassNotFoundException if an object read from the stream cannot be loaded
* @since 3.1
*/
@SuppressWarnings("unchecked") // (1) should only fail if input stream is incorrect
private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();
map = (Map<K, V>) in.readObject(); // (1)
}
@Override
public V remove(final Object key) {
throw new UnsupportedOperationException();
}
@Override
public Collection<V> values() { |
File |
Line |
org/apache/commons/collections4/map/AbstractHashedMap.java |
359 |
org/apache/commons/collections4/map/AbstractReferenceMap.java |
459 |
protected HashMapIterator(final AbstractHashedMap<K, V> parent) {
super(parent);
}
@Override
public K getKey() {
final HashEntry<K, V> current = currentEntry();
if (current == null) {
throw new IllegalStateException(GETKEY_INVALID);
}
return current.getKey();
}
@Override
public V getValue() {
final HashEntry<K, V> current = currentEntry();
if (current == null) {
throw new IllegalStateException(GETVALUE_INVALID);
}
return current.getValue();
}
@Override
public K next() {
return super.nextEntry().getKey(); |
File |
Line |
org/apache/commons/collections4/set/AbstractNavigableSetDecorator.java |
86 |
org/apache/commons/collections4/set/PredicatedNavigableSet.java |
116 |
org/apache/commons/collections4/set/TransformedNavigableSet.java |
136 |
return decorated().headSet(toElement, inclusive);
}
@Override
public E higher(final E e) {
return decorated().higher(e);
}
@Override
public E lower(final E e) {
return decorated().lower(e);
}
@Override
public E pollFirst() {
return decorated().pollFirst();
}
@Override
public E pollLast() {
return decorated().pollLast();
}
@Override
public NavigableSet<E> subSet(final E fromElement, final boolean fromInclusive, final E toElement,
final boolean toInclusive) { |
File |
Line |
org/apache/commons/collections4/map/UnmodifiableMap.java |
82 |
org/apache/commons/collections4/map/UnmodifiableOrderedMap.java |
80 |
super((Map<K, V>) map);
}
@Override
public void clear() {
throw new UnsupportedOperationException();
}
@Override
public Set<Map.Entry<K, V>> entrySet() {
final Set<Map.Entry<K, V>> set = super.entrySet();
return UnmodifiableEntrySet.unmodifiableEntrySet(set);
}
@Override
public Set<K> keySet() {
final Set<K> set = super.keySet();
return UnmodifiableSet.unmodifiableSet(set);
}
@Override
public MapIterator<K, V> mapIterator() { |
|