Class CardObjectFactory
- java.lang.Object
-
- com.sun.javacard.javax.smartcard.rmiclient.CardObjectFactory
-
- Direct Known Subclasses:
JCCardObjectFactory
,JCCardProxyFactory
public abstract class CardObjectFactory extends java.lang.Object
ThisCardObjectFactory
abstract class represents the base class for Java Card RMI version 2.2.1 stub generation implementations. An instance of this class is associated with one Java Card applet selection session.
-
-
Field Summary
Fields Modifier and Type Field Description static byte
REF_FORMAT_CLASS
This value (=1) is used to signify that the CardObjectFactory implementation suppports the Java Card RMI remote reference format using the name of the card implementation remote class.static byte
REF_FORMAT_INTERFACES
This value (=2) is used to signify that the CardObjectFactory implementation suppports the Java Card RMI remote reference format using the names of the remote interfaces implemented by the card implementation remote class.static byte
REF_FORMAT_NONE
This value (=0) is used to signify that the CardObjectFactory implementation does not suppport any Java Card RMI remote reference descriptor formats.
-
Constructor Summary
Constructors Constructor Description CardObjectFactory()
Creates a new CardObjectFactory for this RMI session
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description byte
getINSByte()
returns the configured ISO 7816-4 command INS byte to be used in the Java Card platform remote method invocation commandjava.lang.Object
getObject(byte[] buffer, int tagOffset, java.lang.Class type, CardAccessor cardAccessor)
This abstract method returns the instance of the card object corresponding to the value returned from the card.protected abstract java.rmi.Remote
getRemoteObject(byte[] buffer, int tagOffset, CardAccessor cardAccessor)
This abstract method instantiates a stub or proxy object corresponding to the remote reference returned from the cardabstract byte
getRemoteRefFormat()
returns the format of Java Card RMI remote object reference descriptor supported.void
setINSByte(byte ins)
Sets the ISO 7816-4 header INS byte to use for Java Card RMI method invocation commands.
-
-
-
Field Detail
-
REF_FORMAT_NONE
public static final byte REF_FORMAT_NONE
This value (=0) is used to signify that the CardObjectFactory implementation does not suppport any Java Card RMI remote reference descriptor formats.- See Also:
- Constant Field Values
-
REF_FORMAT_CLASS
public static final byte REF_FORMAT_CLASS
This value (=1) is used to signify that the CardObjectFactory implementation suppports the Java Card RMI remote reference format using the name of the card implementation remote class.- See Also:
- Constant Field Values
-
REF_FORMAT_INTERFACES
public static final byte REF_FORMAT_INTERFACES
This value (=2) is used to signify that the CardObjectFactory implementation suppports the Java Card RMI remote reference format using the names of the remote interfaces implemented by the card implementation remote class.- See Also:
- Constant Field Values
-
-
Method Detail
-
getObject
public java.lang.Object getObject(byte[] buffer, int tagOffset, java.lang.Class type, CardAccessor cardAccessor) throws java.rmi.RemoteException, java.rmi.StubNotFoundException, java.lang.Exception
This abstract method returns the instance of the card object corresponding to the value returned from the card. The value returned by the card may be any of the valid return types in Java Card RMI version 2.2 protocol format. In particular the return type may be a primitive, an array type or a remote reference descriptor or null. The method delegates processing to getRemoteObject(...) when the response tag is normal and expected type is a remote reference.- Parameters:
cardAccessor
- used to instantiate stubs or proxies of remote objectsbuffer
- the byte array containing the Java Card RMI version 2.2 response datatagOffset
- the offset within the array where the response tag is locatedtype
- the expected return type in the response data- Returns:
- the object associated with the response data. Primitive return value is encapsulated in a wrapper object.
- Throws:
java.rmi.StubNotFoundException
- if an appropriate object could not be instantiatedjava.rmi.RemoteException
- for any RMI-specific exceptionsjava.lang.Exception
- for exceptions thrown on the card
-
getRemoteObject
protected abstract java.rmi.Remote getRemoteObject(byte[] buffer, int tagOffset, CardAccessor cardAccessor) throws java.lang.Exception
This abstract method instantiates a stub or proxy object corresponding to the remote reference returned from the card- Parameters:
buffer
- the byte array containing the JC 2.2 RMI response datatagOffset
- the offset within the array where the response tag is located- Returns:
- Stub or proxy
- Throws:
java.lang.Exception
- In case of error during processing
-
setINSByte
public void setINSByte(byte ins)
Sets the ISO 7816-4 header INS byte to use for Java Card RMI method invocation commands.- Parameters:
ins
- the ISO 7816-4 INS command header byte to use for Java Card RMI invocation commands
-
getINSByte
public byte getINSByte()
returns the configured ISO 7816-4 command INS byte to be used in the Java Card platform remote method invocation command- Returns:
- the ISO-7816-4 INS byte
- Since:
- Java Card 2.2
-
getRemoteRefFormat
public abstract byte getRemoteRefFormat()
returns the format of Java Card RMI remote object reference descriptor supported. It returns one of : REF_FORMAT_NONE, REF_FORMAT_CLASS, REF_FORMAT_INTERFACES- Returns:
- one of the REF_FORMAT.. values defined above
-
-