|
Java Smart Card I/O | |||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.smartcardio.CardTerminals
public abstract class CardTerminals
TerminalFactory によってサポートされる端末のセットです。このクラスにより、アプリケーションでは、使用可能な CardTerminal の列挙、特定の CardTerminal の取得、またはカードの挿入または取り出しの待機を行うことができます。
このクラスは、マルチスレッドに対して安全であり、複数のスレッドで並行して使用できます。ただし、このオブジェクトは、この端末のそれぞれのカードの有無の状態を追跡します。waitForChange() の独立した呼び出しが必要な場合は、複数のオブジェクトを使用します。
アプリケーションでは、TerminalFactory.terminals() を呼び出すことで、このクラスのインスタンスを取得できます。
TerminalFactory
,
CardTerminal
入れ子のクラスの概要 | |
---|---|
static class |
CardTerminals.State
CardTerminal の属性の列挙です。 |
コンストラクタの概要 | |
---|---|
protected |
CardTerminals()
新しい CardTerminals オブジェクトを構築します。 |
メソッドの概要 | |
---|---|
CardTerminal |
getTerminal(String name)
指定された名前を持つ端末を返します。 |
List<CardTerminal> |
list()
使用可能なすべての端末の変更不可能なリストを返します。 |
abstract List<CardTerminal> |
list(CardTerminals.State state)
指定された状態と一致するすべての端末の変更不可能なリストを返します。 |
void |
waitForChange()
このオブジェクトの端末のいずれかで、カードの挿入または取り出しを待機します。 |
abstract boolean |
waitForChange(long timeout)
このオブジェクトの端末のいずれかでカードの挿入または取り出し、あるいはタイムアウトの期限切れが発生するのを待機します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
protected CardTerminals()
このコンストラクタはサブクラスのみから呼び出されます。アプリケーションでは、TerminalFactory.terminals() を呼び出して CardTerminals オブジェクトを取得します。
メソッドの詳細 |
---|
public List<CardTerminal> list() throws CardException
CardException
- カード操作が失敗した場合public abstract List<CardTerminal> list(CardTerminals.State state) throws CardException
状態が State.ALL
の場合、このメソッドは、このオブジェクトでカプセル化されたすべての CardTerminals を返します。状態が State.CARD_PRESENT
または State.CARD_ABSENT
の場合は、それぞれ現在カードが存在するすべての CardTerminals、または現在カードが存在しないすべての CardTerminals を返します。
状態が State.CARD_INSERTION
または State.CARD_REMOVAL
の場合は、それぞれ挿入または取り出しが waitForChange() の最後の呼び出し中に検出されたすべての CardTerminals を返します。このオブジェクトで waitForChange()
が呼び出されていなかった場合、CARD_INSERTION
は CARD_PRESENT
と同じで、CARD_REMOVAL
は CARD_ABSENT
と同じです。CARD_INSERTION
の使用例については、waitForChange()
を参照してください。
state
- 状態
NullPointerException
- state が null である場合
CardException
- カード操作が失敗した場合public CardTerminal getTerminal(String name)
NullPointerException
- 名前が null の場合public void waitForChange() throws CardException
この呼び出しは waitForChange(0) の呼び出しと同じです。
IllegalStateException
- この CardTerminals
オブジェクトに端末が含まれない場合
CardException
- カード操作が失敗した場合public abstract boolean waitForChange(long timeout) throws CardException
このメソッドは、このオブジェクトの各 CardTerminal を調べます。waitForChange()
の前回の呼び出し以降に CardTerminal でカードの挿入または取り出しが行われた場合、このメソッドはすぐに復帰します。そうでない場合、またはこれがこのオブジェクトでの最初の waitForChange()
の呼び出しである場合は、CardTerminal でカードの挿入または取り出しが行われるまでブロックします。
timeout
が 0 より大きい場合は、状態に変化がなくても、このメソッドは timeout
ミリ秒後に復帰します。その場合、このメソッドは false
を返します。そうでない場合、true
を返します。
このメソッドは、list(State.CARD_INSERTION)
と組み合わせてループ内でよく使用されます。次に例を示します。
TerminalFactory factory = ...; CardTerminals terminals = factory.terminals(); while (true) { for (CardTerminal terminal : terminals.list(CARD_INSERTION)) { // examine Card in terminal, return if it matches } terminals.waitForChange(); }
timeout
- 正の場合は、最大 timeout
ミリ秒間ブロックする。ゼロの場合は、無期限にブロックする。負にすることはできない
IllegalStateException
- この CardTerminals
オブジェクトに端末が含まれない場合
IllegalArgumentException
- timeout が負の値の場合
CardException
- カード操作が失敗した場合
|
Java Smart Card I/O | |||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |