TerminalFactorySpi
TerminalFactorySpi (터미널 팩토리 SPI)
터미널 팩토리의 서비스 제공자 인터페이스(SPI)를 정의하는 클래스입니다.
본문
애플리케이션은 이 클래스에 직접 접근하지 않고 TerminalFactory를 사용합니다. 새 구현을 작성하려는 서비스 제공자는 Object를 매개변수로 받는 생성자를 가진 TerminalFactorySpi의 구체적인 하위 클래스를 정의하고, 그 클래스를 Provider에 등록해야 해요. 엔진 타입은 TerminalFactory입니다.
서비스 제공자는 추상 클래스인 CardTerminals, CardTerminal, Card, CardChannel의 하위 클래스도 구현해야 합니다.
예를 들어 MyProvider.java는 다음과 같이 작성합니다.
package com.somedomain.card;
import java.security.Provider;
public class MyProvider extends Provider {
public MyProvider() {
super("MyProvider", 1.0d, "Smart Card Example");
put("TerminalFactory.MyType", "com.somedomain.card.MySpi");
}
}
그리고 MySpi.java는 다음과 같습니다.
package com.somedomain.card;
import javax.smartcardio.*;
public class MySpi extends TerminalFactoySpi {
public MySpi(Object parameter) {
// initialize as appropriate
}
protected CardTerminals engineTerminals() {
// add implementation code here
}
}
protected TerminalFactorySpi()
protected abstract CardTerminals engineTerminals()
engineTerminals()는 이 SPI가 제공하는 CardTerminals를 반환하는 추상 메서드입니다.