Интерфейс NamingEnumeration<T>

Все суперинтерфейсы:
Enumeration<T>
public interface NamingEnumeration<T>
extends Enumeration<T>

Этот интерфейс предназначен для перечисления списков, возвращаемых методами в пакетах javax.naming и javax.naming.directory. Он расширяет Enumeration, позволяя выбрасывать исключения во время перечисления.

Когда метод, такой как list(), listBindings() или search(), возвращает NamingEnumeration, любые возникшие исключения откладываются до тех пор, пока все результаты не будут возвращены. В конце перечисления исключение выбрасывается (методом hasMore()).

Например, если метод list() возвращает только частичный ответ, соответствующим исключением будет PartialResultException. Метод list() сначала вернёт NamingEnumeration. Когда последний из результатов возвращён методом next() NamingEnumeration, вызов hasMore() приведёт к выбрасыванию исключения PartialResultException.

В другом примере, если метод search() был вызван со специфицированным пределом размера 'n'. Если ответ содержит более чем 'n' результатов, search() сначала вернёт NamingEnumeration. Когда n-ый результат возвращён вызовом next() на NamingEnumeration, исключение SizeLimitExceedException будет выбрашено при вызове hasMore().

Обратите внимание, что если программа использует hasMoreElements() и nextElement() для итерации по NamingEnumeration, так как эти методы не могут выбрасывать исключения, никаких исключений не будет. Вместо этого, в предыдущем примере, после возвращения n-го результата вызовом nextElement(), вызов hasMoreElements() вернёт false.

Также обратите внимание, что NoSuchElementException выбрасывается, если программа вызывает next() или nextElement(), когда элементов в перечислении больше нет. Программа всегда может избежать этого исключения, используя hasMore() и hasMoreElements() для проверки, достигнут ли конец перечисления.

Если во время перечисления выбрасывается исключение, перечисление становится недействительным. Последующий вызов любого метода этого перечисления даст неопределённые результаты.

С:
1.3
См. также:
Context.list(javax.naming.Name), Context.listBindings(javax.naming.Name), DirContext.search(javax.naming.Name, javax.naming.directory.Attributes, java.lang.String[]), Attributes.getAll(), Attributes.getIDs(), Attribute.getAll()

Методы

Модификатор и типМетодОписание
voidclose()

Закрывает это перечисление.

booleanhasMore()

Определяет, есть ли ещё элементы в перечислении.

Tnext()

Возвращает следующий элемент в перечислении.

Методы, объявленные в интерфейсе java.util.Enumeration

asIterator, hasMoreElements, nextElement

Методы

next

T next()
throws NamingException

Возвращает следующий элемент в перечислении. Этот метод позволяет поймать и обработать приложением исключения именования, возникающие при получении следующего элемента.

Обратите внимание, что next() также может выбросить исключение времени выполнения NoSuchElementException, чтобы указать, что вызывающая сторона пытается перечислить за пределами конца перечисления. Это отличается от NamingException, который указывает на проблему при получении следующего элемента, например, из-за ссылки или недоступности сервера и т.д.

Возвращает:
Возможный элемент в перечислении. null допустим только для перечислений, которые могут возвращать null (например, Attribute.getAll() возвращает перечисление значений атрибутов, а значение атрибута может быть null).
Исключения:
NamingException - Если при попытке получения следующего элемента возникает исключение именования. См. NamingException и его подклассы для возможных исключений именования.
NoSuchElementException - Если попытка получить следующий элемент производится, когда элементов больше нет.
См. также:
Enumeration.nextElement()

hasMore

boolean hasMore()
         throws NamingException

Определяет, есть ли ещё элементы в перечислении. Этот метод позволяет поймать и обработать приложением исключения именования, возникающие при определении наличия дополнительных элементов.

Возвращает:
true, если в перечислении есть ещё элементы; иначе false.
Исключения:
NamingException - Если при попытке определить, есть ли ещё элементы в перечислении, возникает исключение именования. См. NamingException и его подклассы для возможных исключений именования.
См. также:
Enumeration.hasMoreElements()

close

void close()
    throws NamingException

Закрывает это перечисление. После вызова этого метода на этом перечислении, перечисление становится недействительным, и последующий вызов любого его метода даст неопределённые результаты. Этот метод предназначен для прерывания перечисления, чтобы освободить ресурсы. Если перечисление доходит до конца (то есть, пока hasMoreElements() или hasMore() возвращают false), ресурсы будут освобождены автоматически, и нет необходимости явно вызывать close().

Этот метод указывает поставщику услуг, что он свободен освободить ресурсы, связанные с перечислением, и может уведомить серверы о прекращении любых открытых запросов. Метод close() является подсказкой для реализаций для управления своими ресурсами. Реализации рекомендуются использовать соответствующие алгоритмы для управления своими ресурсами, когда клиент опускает вызовы close().

Исключения:
NamingException - Если при закрытии перечисления возникает исключение именования.
С:
1.3

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.naming/javax/naming/NamingEnumeration.html

Spec-Zone .ru
спецификации, руководства, описания, API