Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class CardTerminals extends Object
Этот class является безопасной многопоточностью и может использоваться многократными потоками одновременно. Однако, этот объект отслеживает состояние присутствия карты каждого из его терминалов. Многократные объекты должны использоваться, если независимые звонки waitForChange () требуются.
Приложения могут получить экземпляры этого class, вызывая TerminalFactory.terminals ().
TerminalFactory
, CardTerminal
Модификатор и Тип | Класс и Описание |
---|---|
static class |
CardTerminals. Государство
Перечисление атрибутов 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)
Ожидает вставки карты или удаления в любом из терминалов этого объекта или пока тайм-аут истекает.
|
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, где карта в настоящий момент присутствует или отсутствует, соответственно.
Если состояние State.CARD_INSERTION
или State.CARD_REMOVAL
, это возвращает весь CardTerminals, для которого вставка (или удаление, соответственно) была обнаружена во время последней возможности к waitForChange (). Если waitForChange()
не был вызван на этом объекте, CARD_INSERTION
эквивалентно CARD_PRESENT
и CARD_REMOVAL
эквивалентно CARD_ABSENT
. Для примера использования CARD_INSERTION
, см. waitForChange()
.
state
- государствоNullPointerException
- если attr является нулемCardException
- если работа карты перестала работатьpublic CardTerminal getTerminal(String name)
NullPointerException
- если имя является нулемpublic void waitForChange() throws CardException
Этот вызов эквивалентен вызову waitForChange (0).
IllegalStateException
- если это CardTerminals
объект не содержит терминаловCardException
- если работа карты перестала работать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(); }
timeout
- если положительный, блок для до timeout
миллисекунды; если нуль, блок неопределенно; не должно быть отрицательнымIllegalStateException
- если это CardTerminals
объект не содержит терминаловIllegalArgumentException
- если тайм-аут отрицателенCardException
- если работа карты перестала работать
Авторское право © 2005, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92