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