Spec-Zone.ru › OpenJDK 24

Класс CardTerminals

java.lang.Object
javax.smartcardio.CardTerminals
public abstract class CardTerminals extends Object
Набор поддерживаемых терминалов TerminalFactory. Этот класс позволяет приложениям перечислять доступные CardTerminals, получить определенный CardTerminal или ожидать вставки или удаления карт.

Этот класс безопасен для многопоточности и может использоваться несколькими потоками одновременно. Однако этот объект отслеживает состояние наличия карты для каждого из своих терминалов. Для независимых вызовов waitForChange() необходимо использовать несколько объектов.

Приложения могут получить экземпляры этого класса, вызвав TerminalFactory.terminals().

Since:
1.6
See Also:
  • TerminalFactory
  • CardTerminal

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static enum  CardTerminals.State
Перечисление атрибутов CardTerminal.

Краткое описание конструкторов

CardTerminals()
Модификатор Конструктор Описание
protected
Создает новый объект CardTerminals.

Краткое описание методов

Модификатор и тип Метод Описание
CardTerminal getTerminal(String name)
Возвращает терминал с указанным именем или null, если такого терминала нет.
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

Подробное описание конструкторов

CardTerminals

protected CardTerminals()
Создает новый объект CardTerminals.

Этот конструктор вызывается только подклассами. Приложение должно вызвать TerminalFactory.terminals() для получения объекта CardTerminals.

Подробное описание методов

list

public List<CardTerminal> list() throws CardException
Возвращает неизменяемый список всех доступных терминалов.
Returns:
неизменяемый список всех доступных терминалов.
Throws:
CardException - если операция с картой завершилась неудачно

list

public abstract List<CardTerminal> list(CardTerminals.State state) throws CardException
Возвращает неизменяемый список всех терминалов, соответствующих указанному состоянию.

Если состояние равно State.ALL, этот метод возвращает все CardTerminals, инкапсулированные этим объектом. Если состояние равно State.CARD_PRESENT или State.CARD_ABSENT, он возвращает все CardTerminals, где карта присутствует или отсутствует соответственно.

Если состояние равно State.CARD_INSERTION или State.CARD_REMOVAL, он возвращает все CardTerminals, для которых была обнаружена вставка (или удаление соответственно) во время последнего вызова waitForChange(). Если waitForChange() не был вызван для этого объекта, CARD_INSERTION эквивалентен CARD_PRESENT, а CARD_REMOVAL эквивалентен CARD_ABSENT. Пример использования CARD_INSERTION см. в waitForChange().

Parameters:
state - состояние
Returns:
неизменяемый список всех терминалов, соответствующих указанному состоянию.
Throws:
NullPointerException - если состояние равно null
CardException - если операция с картой завершилась неудачно

getTerminal

public CardTerminal getTerminal(String name)
Возвращает терминал с указанным именем или null, если такого терминала нет.
Parameters:
name - имя терминала
Returns:
терминал с указанным именем или null, если такого терминала нет.
Throws:
NullPointerException - если имя равно null

waitForChange

public void waitForChange() throws CardException
Ожидает вставки или удаления карты в любом из терминалов этого объекта.

Этот вызов эквивалентен вызову waitForChange(0).

Throws:
IllegalStateException - если в этом CardTerminals объекте нет терминалов
CardException - если операция с картой завершилась неудачно

waitForChange

public abstract boolean waitForChange(long timeout) throws CardException
Ожидает вставки или удаления карты в любом из терминалов этого объекта или до истечения срока ожидания.

Этот метод проверяет каждый CardTerminal этого объекта. Если карта была вставлена в или удалена из CardTerminal со времени предыдущего вызова waitForChange(), он возвращается немедленно. В противном случае или если это первый вызов 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();
  }
Parameters:
timeout - если положительно, блокирует до timeout миллисекунд; если ноль, блокирует неопределенно; не должно быть отрицательным
Returns:
false, если метод возвращается из-за истечения срока ожидания, true в противном случае.
Throws:
IllegalStateException - если в этом CardTerminals объекте нет терминалов
IllegalArgumentException - если срок ожидания отрицательный
CardException - если операция с картой завершилась неудачно

Отправить отчет об ошибке или предложить улучшение
Для получения дополнительной информации о справке API и документации для разработчиков см. Документацию Java SE, которая содержит более подробные описания, ориентированные на разработчиков, с концептуальными обзорами, определениями терминов, обходными путями и примерами работоспособного кода. Другие версии.
Java — товарный знак или зарегистрированный товарный знак Oracle и/или ее дочерних компаний в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 США.
Все права защищены. Использование подчинено условиям лицензии и политике перераспределения документации.
DRAFT 24-ea+36-Debian-1

© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.smartcardio/javax/smartcardio/CardTerminals.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API