Класс TerminalFactory
public final class TerminalFactory extends Object
- получить TerminalFactory, вызвав один из статических методов фабрики в этом классе (getDefault() или getInstance()).
- использовать этот объект TerminalFactory для доступа к CardTerminals, вызвав метод terminals().
Каждый TerminalFactory имеет type , указывающий, как он был реализован. Он должен быть указан при получении реализации с помощью метода getInstance() и может быть получен с помощью метода getType().
Определены следующие стандартные имена типов:
-
PC/SC - реализация, которая обращается к стеку PC/SC Smart Card платформы хоста. Реализации не требуют параметров и принимают "null" в качестве аргумента в вызовах getInstance().
-
None - реализация, которая не предоставляет никаких CardTerminals. На платформах, которые не поддерживают другие реализации, getDefaultType() возвращает
Noneи getDefault() возвращает экземплярNoneTerminalFactory. Фабрики этого типа нельзя получить, вызвавgetInstance()методы.
Примечание: Реализации поставщиков, принимающие параметры инициализации через getInstance() методы, настоятельно рекомендуются использовать объект Properties в качестве представления параметров в формате имя-значение в виде строки, когда это возможно. Это позволяет приложениям легче взаимодействовать с несколькими поставщиками, чем если бы каждый поставщик использовал разные специфичные для поставщика классы в качестве параметров.
TerminalFactory использует расширяемую инфраструктуру поставщика служб. Поставщики служб, желающие добавить новую реализацию, должны обратиться к классу TerminalFactorySpi для получения дополнительной информации.
- Since:
- 1.6
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static TerminalFactory |
getDefault() |
Возвращает экземпляр TerminalFactory по умолчанию. |
static String |
getDefaultType() |
Получить тип TerminalFactory по умолчанию. |
static TerminalFactory |
getInstance |
Возвращает TerminalFactory указанного типа, инициализированный указанными параметрами. |
static TerminalFactory |
getInstance |
Возвращает TerminalFactory указанного типа, инициализированный указанными параметрами. |
static TerminalFactory |
getInstance |
Возвращает TerminalFactory указанного типа, инициализированный указанными параметрами. |
Provider |
getProvider() |
Возвращает поставщика данного TerminalFactory. |
String |
getType() |
Возвращает тип данного TerminalFactory. |
CardTerminals |
terminals() |
Возвращает новый объект CardTerminals, содержащий терминалы, поддерживаемые данной фабрикой. |
String |
toString() |
Возвращает строковое представление данного TerminalFactory. |
Подробности методов
getDefaultType
public static String getDefaultType()
Определяется следующим образом: при инициализации этого класса проверяется системная переменная javax.smartcardio.TerminalFactory.DefaultType. Если она установлена, то TerminalFactory этого типа создается путем вызова метода getInstance(String,Object), передав null в качестве значения для params. Если вызов успешен, тип становится типом по умолчанию, а фабрика становится фабрикой по умолчанию default.
Если системная переменная не установлена или вызов getInstance() завершается неудачей по какой-либо причине, система использует тип и TerminalFactory по умолчанию, специфичные для реализации.
- Возвращает:
- тип TerminalFactory по умолчанию
getDefault
public static TerminalFactory getDefault()
Фабрика TerminalFactory по умолчанию всегда доступна. Однако, в зависимости от реализации, она может не предоставлять никаких терминалов.
- Возвращает:
- TerminalFactory по умолчанию
getInstance
public static TerminalFactory getInstance(String type, Object params) throws NoSuchAlgorithmException
Этот метод проходит по списку зарегистрированных поставщиков безопасности, начиная с наиболее предпочтительного. Возвращается новый объект TerminalFactory, содержащий реализацию TerminalFactorySpi из первого поставщика, поддерживающего указанный тип.
Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
TerminalFactory инициализируется заданными параметрами Object. Тип необходимых параметров может различаться в зависимости от разных типов TerminalFactory.
- Примечание реализации:
- Реализация JDK дополнительно использует свойство
jdk.security.provider.preferredSecurity, чтобы определить предпочтительный порядок поставщиков для указанного алгоритма. Это может отличаться от порядка поставщиков, возвращаемого методомSecurity.getProviders(). - Параметры:
-
type- тип запрашиваемого TerminalFactory -
params- параметры, передаваемые реализации TerminalFactorySpi, или null, если параметры не нужны - Возвращает:
- TerminalFactory указанного типа
- Исключение:
-
NullPointerException- если тип равен null -
NoSuchAlgorithmException- если ни один поставщик не поддерживает TerminalFactorySpi указанного типа
getInstance
public static TerminalFactory getInstance(String type, Object params, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Возвращается новый объект TerminalFactory, содержащий реализацию TerminalFactorySpi из указанного поставщика. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности.
Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
TerminalFactory инициализируется заданными параметрами Object. Тип необходимых параметров может различаться в зависимости от разных типов TerminalFactory.
- Параметры:
-
type- тип запрашиваемого TerminalFactory -
params- параметры, передаваемые реализации TerminalFactorySpi, или null, если параметры не нужны -
provider- имя поставщика - Возвращает:
- TerminalFactory указанного типа
- Исключение:
-
NullPointerException- если тип равен null -
IllegalArgumentException- если поставщик равен null или пустой строке -
NoSuchAlgorithmException- если реализация TerminalFactorySpi указанного типа недоступна от указанного поставщика -
NoSuchAlgorithmException- если TerminalFactory указанного типа не найден -
NoSuchProviderException- если указанный поставщик не найден
getInstance
public static TerminalFactory getInstance(String type, Object params, Provider provider) throws NoSuchAlgorithmException
Возвращается новый объект TerminalFactory, содержащий реализацию TerminalFactorySpi из указанного объекта поставщика. Обратите внимание, что указанный объект поставщика не обязательно должен быть зарегистрирован в списке поставщиков.
TerminalFactory инициализируется заданными параметрами Object. Тип необходимых параметров может различаться в зависимости от разных типов TerminalFactory.
- Параметры:
-
type- тип запрашиваемого TerminalFactory -
params- параметры, передаваемые реализации TerminalFactorySpi, или null, если параметры не нужны -
provider- поставщик - Возвращает:
- TerminalFactory указанного типа
- Исключение:
-
NullPointerException- если тип равен null -
IllegalArgumentException- если поставщик равен null -
NoSuchAlgorithmException- если реализация TerminalFactorySpi указанного типа недоступна от указанного поставщика
getProvider
public Provider getProvider()
- Возвращает:
- поставщик данного TerminalFactory.
getType
public String getType()
- Возвращает:
- тип данного TerminalFactory
terminals
public CardTerminals terminals()
- Возвращает:
- новый объект CardTerminals, содержащий терминалы, поддерживаемые этой фабрикой.
toString
public String toString()
- Overrides:
-
toStringв классеObject - Возвращает:
- строковое представление данного TerminalFactory.
© 1993, 2021, 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://docs.oracle.com/en/java/javase/17/docs/api/java.smartcardio/javax/smartcardio/TerminalFactory.html