atg.b2bcommerce.payment.invoicerequest.processor
Class ProcCreateInvoiceRequestInfo
java.lang.Object
atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
atg.nucleus.GenericService
atg.b2bcommerce.payment.invoicerequest.processor.ProcCreateInvoiceRequestInfo
- All Implemented Interfaces:
- NameContextBindingListener, NameContextElement, NameResolver, AdminableService, ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, VariableArgumentApplicationLogging, ComponentNameResolver, Service, ServiceListener, PipelineProcessor, java.util.EventListener
public class ProcCreateInvoiceRequestInfo
- extends GenericService
- implements PipelineProcessor
This pipeline processor element is called to create generic
InvoiceRequestInfo objects from instances of the InvoiceRequest payment
group. It places them into the pipeline argument dictionary so that
downstream pipeline processors can retrieve them by calling
PaymentManagerPipelineArgs.getPaymentInfo().
This processor is designed so that the InvoiceRequestInfo class can
easily be extended. See
"setInvoiceRequestInfoClass
"
and
"#addDataToInvoiceRequestInfo "addDataToInvoiceRequestInfo
for more information.
- See Also:
InvoiceRequestInfo
,
GenericInvoiceRequestInfo
Field Summary |
static java.lang.String |
CLASS_VERSION
|
static int |
SUCCESS
Return values for this processor. |
Fields inherited from interface atg.nucleus.logging.TraceApplicationLogging |
DEFAULT_LOG_TRACE_STATUS |
Method Summary |
protected void |
addDataToInvoiceRequestInfo(Order pOrder,
InvoiceRequest pPaymentGroup,
double pAmount,
PaymentManagerPipelineArgs pParams,
GenericInvoiceRequestInfo pInvoiceRequestInfo)
This method populates the InvoiceRequestInfo object with
data. |
protected java.lang.Double |
computeBalanceDue(double pAmount,
PaymentGroup pPmt)
Compute the balance due on the invoice by looking at the payment group
original amount, subtracting anything that's already been debited, and
adding back in any credits applied to the payment group. |
protected GenericInvoiceRequestInfo |
getInvoiceRequestInfo()
Factory method to create a new InvoiceRequestInfo object. |
java.lang.String |
getInvoiceRequestInfoClass()
Return the class to instantiate when creating a new InvoiceRequestInfo
object. |
int[] |
getRetCodes()
Return the possible return values for this processor. |
int |
runProcess(java.lang.Object pParam,
PipelineResult pResult)
Generate an InvoiceRequestInfo object of the class specified by
invoiceRequestInfoClass , populate it with data from an
InvoiceRequest payment group by calling
addDataToInvoiceRequestInfo , and add it to the pipeline
argument dictionary so that downstream pipeline processors can access
it. |
void |
setInvoiceRequestInfoClass(java.lang.String pInvoiceRequestInfoClass)
Specify the class to instantiate when creating a new InvoiceRequestInfo
object. |
Methods inherited from class atg.nucleus.GenericService |
addLogListener, createAdminServlet, doStartService, doStopService, getAbsoluteName, getAdminServlet, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService |
Methods inherited from class atg.nucleus.logging.VariableArgumentApplicationLoggingImpl |
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CLASS_VERSION
public static java.lang.String CLASS_VERSION
SUCCESS
public static final int SUCCESS
- Return values for this processor.
- See Also:
- Constant Field Values
ProcCreateInvoiceRequestInfo
public ProcCreateInvoiceRequestInfo()
setInvoiceRequestInfoClass
public void setInvoiceRequestInfoClass(java.lang.String pInvoiceRequestInfoClass)
- Specify the class to instantiate when creating a new InvoiceRequestInfo
object. If the
GenericInvoiceRequestInfo
class is extended to
include more information, this property can be changed to reflect the
new class.
getInvoiceRequestInfoClass
public java.lang.String getInvoiceRequestInfoClass()
- Return the class to instantiate when creating a new InvoiceRequestInfo
object.
addDataToInvoiceRequestInfo
protected void addDataToInvoiceRequestInfo(Order pOrder,
InvoiceRequest pPaymentGroup,
double pAmount,
PaymentManagerPipelineArgs pParams,
GenericInvoiceRequestInfo pInvoiceRequestInfo)
- This method populates the
InvoiceRequestInfo
object with
data. If the additional data is required, a subclass of
GenericInvoiceRequestInfo
can be created with additional
properties, the invoiceRequestInfoClass
property can be
changed to specify the new class, and this method can be overridden to
add data for the new properties (or another pipeline processor could be
added after this processor to populate the additional properties).
- Parameters:
pOrder
- The order being paid for.pPaymentGroup
- The payment group being processed.pAmount
- The amount being authorized, debited, or creditedpParams
- The parameter dictionary passed to this pipeline processorpInvoiceRequestInfo
- An object that holds information understood by the invoice
request payment processor.
computeBalanceDue
protected java.lang.Double computeBalanceDue(double pAmount,
PaymentGroup pPmt)
- Compute the balance due on the invoice by looking at the payment group
original amount, subtracting anything that's already been debited, and
adding back in any credits applied to the payment group.
The assumption here is that credits don't reduce the total amount
billed to the payment group, they only affect the outstanding balance.
If one wants to reduce the total amount billed, one would presumably
change the amount field in the payment group. If this assumption is
incorrect and a different balance due behavior is desired, applications
can subclass this class and replace the computeBalanceDue method to
return a different value.
- Parameters:
pAmount
- The amount value passed by the payment manager as the amount to
authorize, debit, or credit. This value is not used by the default
implementation of computeBalanceDue but is included in the method
signature in case subclassed versions of the method require it.pPmt
- The payment group for which an InvoiceRequestInfo object is
being created.
- Returns:
- The amount to list as "balance due" in the invoice request info.
getInvoiceRequestInfo
protected GenericInvoiceRequestInfo getInvoiceRequestInfo()
throws java.lang.Exception
- Factory method to create a new InvoiceRequestInfo object. The class
that is created is that specified by the
invoiceRequestInfoClass
property, and must be a subclass
of atg.payment.invoice.GenericInvoiceRequestInfo
.
- Returns:
- An object of the class specified by
invoiceRequestInfoClass
- Throws:
java.lang.Exception
- if any instantiation error occurs when creating the info object
runProcess
public int runProcess(java.lang.Object pParam,
PipelineResult pResult)
throws java.lang.Exception
- Generate an InvoiceRequestInfo object of the class specified by
invoiceRequestInfoClass
, populate it with data from an
InvoiceRequest
payment group by calling
addDataToInvoiceRequestInfo
, and add it to the pipeline
argument dictionary so that downstream pipeline processors can access
it.
- Specified by:
runProcess
in interface PipelineProcessor
- Parameters:
pParam
- Parameter dictionary of type PaymentManagerPipelineArgs.pResult
- Pipeline result object, not used by this method.
- Returns:
- An integer value used to determine which pipeline processor is called next.
- Throws:
java.lang.Exception
- If any error occurs creating or populating the invoice request info object.
getRetCodes
public int[] getRetCodes()
- Return the possible return values for this processor. This processor
always returns a success code.
- Specified by:
getRetCodes
in interface PipelineProcessor
- Returns:
- an array of all the return codes that could be returned by this PipelineProcessor.