JavaTM Platform
Standard Ed. 6

javax.naming
인터페이스 NamingEnumeration<T>

모든 슈퍼 인터페이스:
Enumeration <T>


public interface NamingEnumeration<T>
extends Enumeration <T>

이 인터페이스는, javax.naming 및 javax.naming.directory 패키지내의 메소드에 의해 반환된 리스트를 열거하기 위해서 사용됩니다. 이 인터페이스를 사용하면(자), 열거중에 Enumeration 가 예외로서 throw 됩니다.

list(), listBindings(), search()등의 메소드가 NamingEnumeration 를 돌려주면(자), 발생한 어느 예외도 모든 결과가 돌려주어질 때까지 보관 유지됩니다. 열거의 마지막에, 예외가 (hasMore()에 의해) throw 됩니다.

예를 들어, list()가 부분적인 회답만을 돌려주고 있는 경우는, 거기에 대응하는 예외는 PartialResultException 가 됩니다. list()는 최초로 NamingEnumeration 를 돌려줍니다. 그 결과의 최후가 NamingEnumeration 의 next()로 돌려주어졌을 때에, hasMore()를 호출하면(자) PartialResultException 가 throw 됩니다.

다른 예로서 search() 메소드가, 사이즈를 'n'에 제한 지정해 불려 갔다고 합니다. 회답이 'n'보다 많아졌을 경우, search()는 최초로 NamingEnumeration 를 돌려줍니다. n 번째의 결과가 NamingEnumeration 로 next()를 호출해 돌려주어졌을 때는, hasMore()를 호출하면(자) SizeLimitExceedException 가 throw 됩니다.

프로그램으로 NamingEnumeration 를 반복하지 않고 , hasMoreElements() 및 nextElement()를 사용하면(자), 이러한 메소드는 예외를 throw 할 수 없기 때문에, 예외는 throw 되지 않습니다. 대신에, 전의 예로, n 번째의 결과가 nextElement()에 의해 반환된 뒤에 hasMoreElements()를 호출하면(자) false 가 돌려주어집니다.

또, 열거내에 요소가 남지 않은 경우는, 프로그램으로 next() 또는 nextElement()를 호출하면(자) NoSuchElementException 가 throw 됩니다. 프로그램에서는, 열거의 끝나에 도달했는지의 여부를 확인하는 hasMore() 및 hasMoreElements()를 사용해 이 예외를 항상 회피할 수 있습니다.

열거중에 예외가 throw 되면(자), 열거는 무효가 됩니다. 열거상에서 어느 메소드를 다음에 호출해도, 결과는 보증되지 않습니다.

도입된 버젼:
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()

메소드의 개요
 void close ()
          이 열거를 닫습니다.
 boolean hasMore ()
          열거내에 다른 요소가 있을지 어떨지를 판정합니다.
 T next ()
          열거내의 다음의 요소를 검색합니다.
 
인터페이스 java.util. Enumeration 로부터 상속된 메소드
hasMoreElements , nextElement
 

메소드의 상세

next

T  next()
       throws NamingException 
열거내의 다음의 요소를 검색합니다. 이 메소드에서는, 어플리케이션에 의해 다음에 취득 및 처리되는 요소를 검색할 경우에, 네이밍 예외를 검출할 수 있습니다.

또,next() 는, 실행시 예외 NoSuchElementException 를 throw 해, 호출측이 열거의 최대치를 넘어 열거하려고 하고 있는 것을 표시할 수 있습니다. 이것은, 참조나 서버의 사용 불가등을 (위해)때문에에, 다음의 요소의 취득시에 문제가 발생한 것을 표시하는 NamingException 와는 다릅니다.

반환값:
열거내의 요소 (null 의 경우도 있다). 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

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.