All Packages Class Hierarchy This Package Previous Next Index
Class semper.commerce.Transaction
java.lang.Object
|
+----semper.commerce.Transaction
- public abstract class Transaction
- extends Object
- implements Serializable, Transferable, Containable
This class encapsulates the common features of all commerce transactions.
This class cannot be instantiated directly. Instead, a number of
subclasses have been defined for each type of commerce transaction
supported by SEMPER.
The commerce layers considers a transaction to consist of a number of
predefined attributes defined by the transaction type and some free
format text generated by the business application describing the
transaction. The business application may add additional attributes to
a transaction by subclassing, but these attributes will not be considered
by the commerce layer. It is the fixed attributes and the text that
define the transaction and will be signed etc.
Note that when a transaction object is retrieved from a deal the returned
object is only a "snapshot" of the real object. The returned object will not
automatically be updated to reflect any changes in the transaction object such
as a reference to a new transaction referencing this object. To get an
updated transaction object a new snapshot must be retrieved from the deal.
Implementation note A number of the methods defined
by this class restricts access by requiring a suitable access control
capability to be presented. The functionality for verifying the access
control capability is not yet implemented and a null
access
control handle can be specified.
- Version:
- $Id: Transaction.java,v 1.21 1998/10/02 12:20:03 semper Exp $
- Author:
- Rolf Michelsen, Stig Mj�lsnes
- See Also:
- GenericTransaction, PaymentTransaction, StatementTransaction, ExchangeTransaction
-
REQUEST_ABORTED
- Status code for a transaction that has been aborted.
-
REQUEST_INDICATION
- Status code for a transaction indication.
-
REQUEST_NOT
- Status code for a transaction that has not yet been requested.
-
REQUEST_OK
- Status code for a transaction that has successfully been requested.
-
REQUEST_PENDING
- Status code for a transaction that has been requested but the request
has not yet succeeded.
-
equals(Object)
- Compares two transaction objects for equality.
-
getDescription()
- Returns the transaction description.
-
getDescriptionHTML()
- Returns a HTML description of the transaction.
-
getID()
- Returns the transaction identifier.
-
getQualityHTML(boolean)
- Returns a textual description of the service quality settings for the transaction.
-
getQualityText(boolean)
- Returns a textual description of the service quality settings in effect for the
transaction.
-
getReferenced()
- Returns the transaction referenced by this transaction.
-
getReferencing()
- Returns an array of all transactions referencing this transaction.
-
getRequestDate()
- Returns the date and time associated with the transaction.
-
getSignature()
- Returns the non-repudiation information for the transaction.
-
getTransferTransaction()
- Returns a TX transfer object suitable for transfering the commerce transaction
object.
-
isNonRepudiable()
- Returns a value indicating whether non repudiation is available for this
transaction.
-
makeDescription()
- Generates the transaction description.
-
registerContainer(Container)
- Invoked by the TX layer container containing this object to pass a reference
to the container object.
-
request(AccessControlHandle)
- Requests a transaction.
-
requestAbort()
- Tries to abort a requested transaction.
-
requestStatus()
- Returns information about the status of the transaction request.
-
toString()
- Returns a string representation of the object.
-
validate()
- Verifies the validity of the transaction.
REQUEST_NOT
public static final int REQUEST_NOT
- Status code for a transaction that has not yet been requested. This
status code may be returned by the method
requestStatus
.
REQUEST_OK
public static final int REQUEST_OK
- Status code for a transaction that has successfully been requested. This
status code may be returned by the method
requestStatus
.
REQUEST_ABORTED
public static final int REQUEST_ABORTED
- Status code for a transaction that has been aborted. This status code
may be returned by the method
requestStatus
.
REQUEST_PENDING
public static final int REQUEST_PENDING
- Status code for a transaction that has been requested but the request
has not yet succeeded. This status code may be returned by the method
requestStatus
.
REQUEST_INDICATION
public static final int REQUEST_INDICATION
- Status code for a transaction indication. This status code may be returned
by the method
requestStatus
.
getID
public final TransactionID getID()
- Returns the transaction identifier. The transaction identifier is unique
for a transaction entry in a deal. The same transaction identifier
identifies the corresponding transaction in the peer deal.
- Returns:
- The transaction identifier.
getDescription
public final synchronized Description getDescription()
- Returns the transaction description. The transaction description is
generated by the business application based on the transaction
attributes and the context in which the transaction is done. The
description is not generated until the transaction is requested.
null
will be returned if the description has not yet been
requested.
Note that this method does not return a full formatted
description of the transaction but only the semantical description provided
by the transaction type. For a full transaction description see
getDescriptionHTML
.
- Returns:
- The transaction description.
- See Also:
- getDescriptionHTML
getReferenced
public final synchronized Transaction getReferenced() throws TransactionException
- Returns the transaction referenced by this transaction.
null
is returned for a top level transaction.
- Returns:
- The transaction referenced by this transaction.
- Throws: TransactionException
- Thrown if an error occurs while handling a transaction object.
This method will throw this exception if an error occurs while
attempting to retrieve a transaction object from persistent
storage in the archive.
getReferencing
public final synchronized Transaction[] getReferencing() throws TransactionException
- Returns an array of all transactions referencing this transaction.
null
is returned if no transaction refers to this
transaction.
- Returns:
- All transaction entries referencing this transaction.
- Throws: TransactionException
- Thrown if an error occurs while handling a transaction object.
This method will throw this exception if an error occurs while
attempting to retrieve a transaction object from persistent
storage in the archive.
getRequestDate
public final synchronized Date getRequestDate()
- Returns the date and time associated with the transaction. The date
corresponds to the time when the transaction was requested.
null
will be returned for transaction objects that have not
been requested yet.
- Returns:
- The date and time of the transaction.
makeDescription
public abstract Description makeDescription()
- Generates the transaction description. This method will be invoked by
the commerce layer when the transaction description is needed. A
business application must provide an implementation of this method by
subclassing
Transaction
. Default implementations exist
for the base transaction types.
- Returns:
- A description of the transaction.
request
public abstract void request(AccessControlHandle ach) throws AssociationException, TransactionException
- Requests a transaction. This transaction request will result
in a corresponding transaction indication to the peer. This
is an unconfirmed service, and successful invocation of this
method does not confirm that the transaction is successfull or even
that it has taken place. Use the method
requestStatus
to
inquire about the status of a transaction.
This method may validate the transaction according to validation
procedures defined by the transaction types. The user may also be asked to
authorise the transaction. This authorisation can be bypassed by giving
the proper access control capabilities as an argument to this method.
- Parameters:
- ach - Access control handle to capabilities for bypassing user
authorisation of transaction.
- Throws: AssociationException
- Thrown if something wrong with the assication prevents the
transaction request.
- Throws: TransactionException
- Thrown if an error occurs while handling the transaction object.
- See Also:
- requestStatus, requestAbort
requestStatus
public final synchronized int requestStatus()
- Returns information about the status of the transaction request. The
return value will indicate whether the transaction request has completed
or not. The value
REQUEST_INDICATION
will be returned for
transaction indications.
- Returns:
- A status code indicating the status of the transaction request.
Status codes are defined as symbolic constants by this class.
- See Also:
- request, requestAbort
requestAbort
public synchronized boolean requestAbort()
- Tries to abort a requested transaction. This method can only be invoked
for a transaction that has already been requested. It will never succeed
for a completed transaction, and it is not even guaranteed to succeed
for a transaction that is still in progress.
- Returns:
-
true
is returned if the transaction was successfully
aborted.
- See Also:
- request, requestStatus
validate
public boolean validate()
- Verifies the validity of the transaction. This method returns a boolean value
indicating whether the transaction is valid according to any validation rules
defined by the transaction type. This method will typically be overridden by
subclasses. The default implementation always returns
true
.
Note that this method does not request user authorisation for the transaction.
- Returns:
-
true
if the transaction is valid.
registerContainer
public final boolean registerContainer(Container container)
- Invoked by the TX layer container containing this object to pass a reference
to the container object. This method is defined by the Containable interface.
We don't need this reference as we will never talk to the container so this
method does nothing.
- Parameters:
- container - The container object containing this transaction object.
- Returns:
- Always returns
true
indicating success.
- See Also:
- Containable
getTransferTransaction
public final TransferTransaction getTransferTransaction()
- Returns a TX transfer object suitable for transfering the commerce transaction
object. This method is defined by the Transferable interface.
- Returns:
- A TX transfer object suitable for transfering this object.
- See Also:
- Transferable
isNonRepudiable
public final boolean isNonRepudiable()
- Returns a value indicating whether non repudiation is available for this
transaction. For a requested transaction the value will be true if a receipt
has been received. For an indicated transaction the value will be true if
the transaction itself was signed by the requester.
- Returns:
-
true
if a non repudiation token is available for this
transaction.
getSignature
public final TransactionNRData getSignature()
- Returns the non-repudiation information for the transaction. For a requested
transaction the receipt will be returned. For an indicated transaction the
requester's signature will be returned.
null
is returned if the
transaction does not offer non-repudiation.
getDescriptionHTML
public final synchronized String getDescriptionHTML()
- Returns a HTML description of the transaction. The encoding uses HTML 1.0.
The formatting is based on the description in Activity Paper 242ST011.
This method returns
null
if the transaction has not yet been
requested.
This method is declared final to prevent an untrusted subclass to override it.
- Returns:
- A HTML description of the transaction.
toString
public String toString()
- Returns a string representation of the object. This string representation
consists of the text string "Transaction" and the string representation of
the transaction identifier.
- Returns:
- A string representation of the object.
- Overrides:
- toString in class Object
equals
public final boolean equals(Object trans)
- Compares two transaction objects for equality. This test just compares the
transaction type and transaction identifiers.
- Parameters:
- trans - Transaction to compare with.
- Returns:
-
true
if the transactions are equal, false
otherwise.
- Overrides:
- equals in class Object
getQualityHTML
public final String getQualityHTML(boolean shortFmt)
- Returns a textual description of the service quality settings for the transaction.
HTML 1.0 is used for the formatting of the description, and it can be
embedded in other HTML documents.
- Parameters:
- shortFmt - If set, a short description will be returned.
- Returns:
- A textual description of the transaction quality settings.
- See Also:
- getQualityHTML
getQualityText
public final String getQualityText(boolean shortFmt)
- Returns a textual description of the service quality settings in effect for the
transaction. Plain text is used for the formatting of the description.
- Parameters:
- shortFmt - If set, a short description will be returned.
- Returns:
- A textual description of the transaction quality settings.
- See Also:
- getQualityText
All Packages Class Hierarchy This Package Previous Next Index