Класс CardTerminals
public abstract class CardTerminals extends Object
Этот класс безопасен для многопоточного использования и может одновременно использоваться несколькими потоками. Однако этот объект отслеживает состояние присутствия карты в каждом из своих терминалов. Если требуются независимые вызовы waitForChange(), следует использовать несколько объектов.
Приложения могут получить экземпляры этого класса, вызвав TerminalFactory.terminals().
- Начиная с версии:
- 1.6
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static enum |
CardTerminals.State |
Перечисление атрибутов CardTerminal. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт новый объект CardTerminals. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
CardTerminal |
getTerminal |
Возвращает терминал с указанным именем или null, если такого терминала нет. |
List |
list() |
Возвращает неизменяемый список всех доступных терминалов. |
abstract List |
list |
Возвращает неизменяемый список всех терминалов, соответствующих указанному состоянию. |
void |
waitForChange() |
Ожидает вставки или извлечения карты в любом из терминалов этого объекта. |
abstract boolean |
waitForChange |
Ожидает вставки или извлечения карты в любом из терминалов этого объекта либо истечения времени ожидания. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарел, подлежит удалению: этот элемент API может быть удалён в будущей версии. Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Переводит текущий поток в режим ожидания до его пробуждения, обычно посредством вызова notify или interrupt. |
final void |
wait |
Переводит текущий поток в режим ожидания до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного времени. |
final void |
wait |
Переводит текущий поток в режим ожидания до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного времени. |
Подробное описание конструкторов
CardTerminals
protected CardTerminals()
Этот конструктор вызывается только подклассами. Для получения объекта CardTerminals приложению следует вызвать TerminalFactory.terminals().
Подробное описание методов
list
public List<CardTerminal> list() throws CardException
- Возвращает:
- неизменяемый список всех доступных терминалов.
- Выбрасывает:
-
CardException— если операция с картой завершилась ошибкой
list
public abstract List<CardTerminal> list(CardTerminals.State state) throws CardException
Если state — это State.ALL, данный метод возвращает все CardTerminals, инкапсулированные этим объектом. Если state — это State.CARD_PRESENT или State.CARD_ABSENT, он возвращает все CardTerminals, в которых карта присутствует или отсутствует в данный момент соответственно.
Если state — это State.CARD_INSERTION или State.CARD_REMOVAL, он возвращает все CardTerminals, в которых с момента последнего вызова waitForChange() было обнаружено соответственно появление или извлечение карты. Если для этого объекта не вызывался waitForChange(), CARD_INSERTION эквивалентно CARD_PRESENT, а CARD_REMOVAL эквивалентно CARD_ABSENT. Пример использования CARD_INSERTION см. в описании waitForChange().
- Параметры:
-
state— состояние - Возвращает:
- неизменяемый список всех терминалов, соответствующих указанному состоянию.
- Выбрасывает:
-
NullPointerException— если state равно null -
CardException— если операция с картой завершилась ошибкой
getTerminal
public CardTerminal getTerminal(String name)
- Параметры:
-
name— имя терминала - Возвращает:
- терминал с указанным именем или null, если такого терминала нет.
- Выбрасывает:
-
NullPointerException— если name равно null
waitForChange
public void waitForChange() throws CardException
Этот вызов эквивалентен вызову waitForChange(0).
- Выбрасывает:
-
IllegalStateException— если этот объектCardTerminalsне содержит терминалов -
CardException— если операция с картой завершилась ошибкой
waitForChange
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миллисекунд; если равно нулю, блокирует выполнение без ограничения времени; не должно быть отрицательным - Возвращает:
- false, если метод вернулся из-за истечения времени ожидания; в противном случае — true.
- Выбрасывает:
-
IllegalStateException— если этот объектCardTerminalsне содержит терминалов -
IllegalArgumentException— если timeout отрицателен -
CardException— если операция с картой завершилась ошибкой
© 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.