opencard.core.service
Class CardServiceRegistry
java.lang.Object
|
+--opencard.core.service.CardServiceRegistry
- public final class CardServiceRegistry
- extends java.lang.Object
The CardServiceRegistry keeps track of CardServiceFactories.
When asked for a certain CardService it searches through its registered
CardServiceFactorys to find one which is able to create this.
NOTE that there exists only one system-wide instance of this class which can be
accessed via CardServiceRegistry.getRegistry ().
- Version:
- $Id: CardServiceRegistry.java,v 1.2 1999/10/22 14:43:28 damke Exp $
- See Also:
CardService,
CardServiceFactory,
CardServiceScheduler,
CardChannel
| Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
add
public void add(CardServiceFactory factory)
- Adds a CardServiceFactory to the registry.
- Parameters:
factory - The CardServiceFactory to add.
getCardServiceClassFor
protected java.lang.Class getCardServiceClassFor(java.lang.Class clazz,
CardID cid,
CardServiceScheduler scheduler)
- Gets a CardService class object for clazz.
- Parameters:
clazz - The class that the requested CardService
should be an instance of.cid - A CardID object representing the smart card
for which the CardService is requested.scheduler - The CardServiceScheduler for the card
to be inspected.- Returns:
- The CardService class object if available; otherwise
null.
getCardServiceFactories
public final java.util.Enumeration getCardServiceFactories()
- Gets all registered card service factories.
A registered factory is one that has been passed to add, but
has not yet been removed using remove.
- Returns:
- an enumeration of the registered card service factories
getCardServiceInstance
protected CardService getCardServiceInstance(java.lang.Class clazz,
CardID cid,
CardServiceScheduler scheduler,
SmartCard card,
boolean block)
throws java.lang.ClassNotFoundException
- Tries to instantiate a CardService that is an instance of clazz
and that works with the smart card represented by cid.
- Parameters:
clazz - The class that the requested CardService should be
an instance of.cid - A CardID object representing the smart card for which
the CardService is requested.scheduler - The controlling CardServiceSchedulercard - The SmarCard object requesting the CardServiceblock - Specifies the waiting behavior of the newly created CardService;
if true it will wait for CardChannel (i.e., block).- Throws:
- java.lang.ClassNotFoundException - Thrown when no fitting CardService could be found.
getRegistry
public static CardServiceRegistry getRegistry()
- Gets a reference to the system-wide CardServiceRegistry object
('Singleton' pattern).
- Returns:
- Reference to the system-wide CardServiceRegistry.
getSmartCard
protected SmartCard getSmartCard(CardTerminalEvent ctEvent,
CardRequest req,
java.lang.Object lockHandle)
throws CardTerminalException
- Gets a SmartCard object based on a received
CardTerminalEvent.
- Parameters:
ctEvent - A CardTerminalEvent event received
from a terminal.req - A CardRequest object describing what
kind of SmartCard is requested.lockHandle - handle obtained by lock owner when locking the
terminal- Returns:
- A SmartCard object or null if not successful.
releaseScheduler
protected void releaseScheduler(CardServiceScheduler scheduler)
- Releases a CardServiceScheduler.
- Parameters:
scheduler - The CardServiceScheduler to release.
remove
public void remove(CardServiceFactory factory)
- Removes the passed CardServiceFactory from the registry.
- Parameters:
factory - The CardServiceFactory to add.
toString
public java.lang.String toString()
- Gets a meaningful String representation of this
CardServiceRegistry.
- Overrides:
- toString in class java.lang.Object
|