Класс TerminalFactory
public final class TerminalFactory extends Object
- получить TerminalFactory, вызвав один из статических методов фабрики в этом классе (getDefault() или getInstance()).
- использовать этот объект TerminalFactory для доступа к CardTerminals, вызвав метод terminals().
Каждый TerminalFactory имеет type, указывающий, как он был реализован. Он должен быть указан, когда реализация получается с помощью метода getInstance(), и может быть получен через метод getType().
Определены следующие стандартные имена типов:
-
PC/SC - реализация, которая обращается к стеку PC/SC смарт-карт платформы хоста. Реализации не требуют параметров и принимают "null" в качестве аргумента в вызовах getInstance().
-
None - реализация, которая не предоставляет никаких CardTerminals. На платформах, которые не поддерживают другие реализации, getDefaultType() возвращает
None, а getDefault() возвращает экземплярNoneTerminalFactory. Фабрики этого типа не могут быть получены, вызвавgetInstance()методы.
Примечание: Реализации поставщиков, которые принимают параметры инициализации через getInstance() методы, настоятельно рекомендуются использовать объект Properties в качестве представления для параметров в формате пар имя-значение типа String, когда это возможно. Это позволяет приложениям более легко взаимодействовать с несколькими поставщиками, чем если бы каждый поставщик использовал разные классы поставщика в качестве параметров.
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. Если вызов успешен, тип становится типом по умолчанию, а фабрика становится фабрикой по умолчанию.
Если системная переменная не установлена или вызов getInstance() завершается ошибкой по любой причине, используется тип и фабрика по умолчанию, специфичные для реализации.
- Возвращает:
- тип TerminalFactory по умолчанию
getDefault
public static TerminalFactory getDefault()
Фабрика TerminalFactory по умолчанию всегда доступна. Однако в зависимости от реализации, она может не предоставлять никаких терминалов.
- Возвращает:
- фабрику TerminalFactory по умолчанию
getInstance
public static TerminalFactory getInstance(String type, Object params) throws NoSuchAlgorithmException
Этот метод проходит по списку зарегистрированных поставщиков безопасности, начиная с наиболее предпочтительного. Возвращается новый объект TerminalFactory, encapsulating реализацию 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, encapsulating реализацию 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, encapsulating реализацию 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, encapsulating поддерживаемые этой фабрикой терминалы.
toString
public String toString()
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление этой фабрики TerminalFactory.
© 1993, 2023, 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/21/docs/api/java.smartcardio/javax/smartcardio/TerminalFactory.html