JavaTM Platform
Standard Ed. 6

javax.naming
インタフェース 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 を返します。その結果の最後が NamingEnumeration の next() で返されたときに、hasMore() を呼び出すと PartialResultException がスローされます。

別の例として、search() メソッドが、サイズを 'n' に制限指定して呼び出されたとします。回答が 'n' より多くなった場合、search() は最初に NamingEnumeration を返します。n 番目の結果が NamingEnumeration で next() を呼び出して返されたときは、hasMore() を呼び出すと SizeLimitExceedException がスローされます。

プログラムで NamingEnumeration を繰り返さずに、hasMoreElements() および nextElement() を使用すると、これらのメソッドは例外をスローできないため、例外はスローされません。代わりに、前の例で、n 番目の結果が nextElement() によって返されたあとに hasMoreElements() を呼び出すと false が返されます。

また、列挙内に要素が残っていない場合は、プログラムで next() または nextElement() を呼び出すと NoSuchElementException がスローされます。プログラムでは、列挙の終わりに到達したかどうかを確認する 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()

メソッドの概要
 void close()
          この列挙を閉じます。
 boolean hasMore()
          列挙内にほかの要素があるかどうかを判定します。
 T next()
          列挙内の次の要素を検索します。
 
インタフェース java.util.Enumeration から継承されたメソッド
hasMoreElements, nextElement
 

メソッドの詳細

next

T next()
       throws NamingException
列挙内の次の要素を検索します。このメソッドでは、アプリケーションによって次に取得および処理される要素を検索するときに、ネーミング例外を検出できます。  

また、next() は、実行時例外 NoSuchElementException をスローして、呼び出し側が列挙の最大値を超えて列挙しようとしていることを表示できます。これは、参照やサーバーの使用不可などのために、次の要素の取得時に問題が発生したことを表示する 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 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。