1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | /* * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package Torello.Java.ReadOnly; import Torello.Java.Additional.RemoveUnsupportedIterator; import java.util.Collection; /** * Immutable variant of Java Collections Framework interface * <CODE>java.util.SequencedCollection<E></CODE>. * * <EMBED CLASS='external-html' DATA-JDK=ReadOnlySequencedCollection DATA-FILE-ID=INTERFACES> * * @param <E> the type of elements in this collection */ @Torello.JavaDoc.JDHeaderBackgroundImg(EmbedTagFileID="JDHBI_INTERFACE") public interface ReadOnlySequencedCollection<E> extends ReadOnlyCollection<E> { // ******************************************************************************************** // ******************************************************************************************** // Original JDK Interface Methods // ******************************************************************************************** // ******************************************************************************************** /** * Returns a reverse-ordered <a href="Collection.html#view">view</a> of this collection. The * encounter order of elements in the returned view is the inverse of the encounter order of * elements in this collection. The reverse ordering affects all order-sensitive operations, * including those on the view collections of the returned view. * * @return a reverse-ordered view of this collection */ ReadOnlySequencedCollection<E> reversed(); /** * Gets the first element of this collection. * * @implSpec * The implementation in this interface obtains an iterator of this collection, and then it * obtains an element by calling the iterator's {@code next} method. Any * {@code NoSuchElementException} thrown is propagated. Otherwise, it returns the element. * * @return the retrieved element * @throws NoSuchElementException if this collection is empty */ default E getFirst() { return this.iterator().next(); } /** * Gets the last element of this collection. * * @implSpec * The implementation in this interface obtains an iterator of the reversed view of this * collection, and then it obtains an element by calling the iterator's {@code next} method. * Any {@code NoSuchElementException} thrown is propagated. Otherwise, it returns the element. * * @return the retrieved element * @throws NoSuchElementException if this collection is empty */ default E getLast() { return this.reversed().iterator().next(); } } |