© 2005 BEA Systems, Inc.

com.bea.commerce.ebusiness.discount.association
Interface DiscountAssociationMgr

All Superinterfaces:
EJBObject, Remote

public interface DiscountAssociationMgr
extends EJBObject

This interface defines the public interface of the DiscountAssociationMgr service. This service is responsible for associating Customers, using thier CustomerPK, with discounts. Once the association has been made the number of times the customer has used the discount is tracked. The user can only use the discount up to the number of time specified in the discount's allowedUses field. There is a minor difference in the way user's become associated with discounts depending on whether the discount is global or not. For non-global discounts the user must be associated with the discount, prior to attempting to use it, using either of this class's add methods. The discount can then be used, which from the point of view of this service means calling this class's updateUses method. This method is called by the pricing service. In the case of global discounts, which by definition are available to all customers the pricing serivce simply calls updateUsesGlobal. This method call will create the association, setting the use count to 1, if one does not already exist or attempt to the use count if the association already exists. In either case if a call to updateUses or updateUsesGlobal would cause the association's use count to exceed the discount's allowed uses limit those methods will throw a UseCountLimitException and not update the association's use count.


Method Summary
 void add(CustomerPk user, QualificationDiscountId discountId, String description)
          Creates an association between the Customer specified by the user parameter and the discount specified by the discountId parameter.
 void add(CustomerPk user, String applicationName, String discountName, String description)
          Creates an association between the Customer specified by the user parameter and the discount specified by the setName and discountName parameters.
 int archive()
          Not currently implemented, throws UnsupportedOperationException if called
 DeleteResults delete(QualificationDiscountId discountId)
          Delete the associations for the given discount ID.
 DeleteResults delete(String applicationName, String discountName)
          Delete the associations for the given discount described by set name and discount name
 int prune()
          Not currently implemented, throws UnsupportedOperationException if called
 int prune(QualificationDiscountId discountId)
          Not currently implemented, throws UnsupportedOperationException if called
 Set queryGlobal(CustomerPk user, Set idSet)
          Gets all of the user's discount associations where the discount in the association is global
 Set queryUser(CustomerPk user, Set idSet)
          Gets all of the user's discount associations where the discount in the association is non-global
 void updateUses(CustomerPk user, Set discountIds)
          Updates the use count for each of the associations for this user whose discount id is in the Set specified by discountIds.
 void updateUsesGlobal(CustomerPk user, Set discountIds)
          Updates the use count for each of the associations for this user whose discount id is in the Set specified by discountIds.
 
Methods inherited from interface javax.ejb.EJBObject
getEJBHome, getHandle, getPrimaryKey, isIdentical, remove
 

Method Detail

add

public void add(CustomerPk user,
                QualificationDiscountId discountId,
                String description)
         throws RemoteException,
                DiscountNotFoundException,
                InvalidAssociationException,
                AssociationCreationException
Creates an association between the Customer specified by the user parameter and the discount specified by the discountId parameter. An optional description may also be supplied that should indicate how or why the association was created. Only non-global discounts can be associated with a user through this method call. Any attempt to specify a global discount will result in an InvalidAssociationException being thrown.

Parameters:
user - the CustomerPk of the customer being associated with the discount specified by discountId
discountId - the QualificationDiscountId of the discount being associated with the customer specified by user
description - a String describing how or why the association is being created
Throws:
AssociationCreationException - if the association could not be created due to a system level failure
InvalidAssociationException - if the discount specified is global
DiscountNotFoundException - if the specified discount cannot be found.
RemoteException - on a communication error or other system level failure

add

public void add(CustomerPk user,
                String applicationName,
                String discountName,
                String description)
         throws RemoteException,
                DiscountNotFoundException,
                InvalidAssociationException,
                AssociationCreationException
Creates an association between the Customer specified by the user parameter and the discount specified by the setName and discountName parameters. An optional description may also be supplied that should indicate how or why the association was created. Only non-global discounts can be associated with a user through this method call. Any attempt to specify a global discount will result in an InvalidAssociationException being thrown.

Parameters:
user - the CustomerPk of the customer being associated with the discount specified by setName and discountName
applicationName - the current J2EE application name
discountName - the discount name of the discount being associated with the customer specified by user
description - a String describing how or why the association is being created
Throws:
AssociationCreationException - if the association coul not be created due to a system level failure
InvalidAssociationException - if the discount specified is global
DiscountNotFoundException - if the specified discount cannot be found.
RemoteException - on a communication error or other system level failure

archive

public int archive()
            throws RemoteException
Not currently implemented, throws UnsupportedOperationException if called

Throws:
UnsupportedOperationException - always
RemoteException - on a communication error or other system level failure

delete

public DeleteResults delete(QualificationDiscountId discountId)
                     throws RemoteException,
                            AssociationDeleteException
Delete the associations for the given discount ID.

Parameters:
discountId - the discount id for which the associations should be deleted
Returns:
a DeleteResults object that describes the associations deleted and those failed to be deleted.
Throws:
AssociationDeleteException - if any failures were encountered during the delete operation. See the DeleteResults object in the exception for specifics.
RemoteException
See Also:
DeleteResults

delete

public DeleteResults delete(String applicationName,
                            String discountName)
                     throws RemoteException,
                            AssociationDeleteException
Delete the associations for the given discount described by set name and discount name

Parameters:
applicationName - the current J2EE application name
discountName - the name of the discount.
Returns:
a DeleteResults object that describes the associations deleted and those failed to be deleted.
Throws:
AssociationDeleteException - if any failures were encountered during the delete operation. See the DeleteResults object in the exception for specifics.
RemoteException
See Also:
DeleteResults

prune

public int prune()
          throws RemoteException
Not currently implemented, throws UnsupportedOperationException if called

Throws:
UnsupportedOperationException - always
RemoteException - on a communication error or other system level failure

prune

public int prune(QualificationDiscountId discountId)
          throws RemoteException
Not currently implemented, throws UnsupportedOperationException if called

Throws:
UnsupportedOperationException - always
RemoteException - on a communication error or other system level failure

queryGlobal

public Set queryGlobal(CustomerPk user,
                       Set idSet)
                throws RemoteException
Gets all of the user's discount associations where the discount in the association is global

Parameters:
user - the CustomerPk of the customer whose discount associations are being fetched
idSet - an empty Set into which the results of this method call are placed. Anything previously in the set is deleted.
Returns:
a Set, the one passed in the idSet paramter, of DiscountAssociation objects that have the specified user as an element. The set will be empty if there are no discount associations for the user
Throws:
RemoteException - on a communication error or other system level failure

queryUser

public Set queryUser(CustomerPk user,
                     Set idSet)
              throws RemoteException
Gets all of the user's discount associations where the discount in the association is non-global

Parameters:
user - the CustomerPk of the customer whose discount associations are being fetched
idSet - an empty Set into which the results of this method call are placed. Anything previously in the set is deleted.
Returns:
a Set, the one passed in the idSet paramter, of DiscountAssociation objects that have the specified user as an element. The set will be empty if there are no discount associations for the user
Throws:
RemoteException - on a communication error or other system level failure

updateUses

public void updateUses(CustomerPk user,
                       Set discountIds)
                throws RemoteException,
                       DiscountNotFoundException,
                       InvalidAssociationException,
                       UseCountLimitException,
                       AssociationNotFoundException
Updates the use count for each of the associations for this user whose discount id is in the Set specified by discountIds. If any of the association updates results in the association's use count exceeding the discount's allowed uses a UseCountLimitException is thrown. This method call is intended for updating associations whose discount is non-global. If any of the discounts specified in the discountIds set are global an InvalidAssociationException is thrown. All of the discount associations specified must have already been created using one of this class's add methods.

Parameters:
user - the CustomerPk of the customer whose discount associations are being updated
discountIds - a Set of QualificationDiscountIds that specifies which of the user's associations to update
Throws:
AssociationNotFoundException - if the association specified by the user and any of the QualificationDiscountIds in discountIds can not be found
UseCountLimitException - if the use count limit has been reached
InvalidAssociationException - if any of the discounts specified in discountIds are global
DiscountNotFoundException - if any of the discounts specified in discountIds can not be found
RemoteException - on a communication error or other system level failure

updateUsesGlobal

public void updateUsesGlobal(CustomerPk user,
                             Set discountIds)
                      throws RemoteException,
                             DiscountNotFoundException,
                             InvalidAssociationException,
                             UseCountLimitException,
                             AssociationCreationException
Updates the use count for each of the associations for this user whose discount id is in the Set specified by discountIds. If any of the association updates results in the association's use count exceeding the discount's allowed uses a UseCountLimitException is thrown. This method call is intended for updating associations whose discount is global. If any of the discounts specified in the discountIds set are non-global an InvalidAssociationException is thrown. This method is slightly different from updateUses in that if the association specified doesn't already exists an attempt will be made to create it setting it's intial use count to 1.

Parameters:
user - the CustomerPk of the customer whose discount associations are being updated
discountIds - a Set of QualificationDiscountIds that specifies which of the user's associations to update
Throws:
AssociationCreationException - if a non-existant association was specified but it could not be created
UseCountLimitException - if the use count limit has been reached
InvalidAssociationException - if any of the discounts specified in discountIds are non-global
DiscountNotFoundException - if any of the discounts specified in discountIds can not be found
RemoteException - on a communication error or other system level failure

© 2005 BEA Systems, Inc.

Copyright © 2005 BEA Systems, Inc. All Rights Reserved