Interface | Description |
---|---|
AreaStrategy<A extends AreaType,C> |
A Strategy that allows us to define which areas will be shipped to and services regarding international / local delivery.
|
ChargeStrategy<P extends Product,U extends User> |
Using rules calculate charge for Categories of products or Products; these rules/algorithms/scripts maybe for tax, shipping, tax+shipping etc.
|
ContextProviderStrategy<U extends User,CONTEXT> |
Create / handle extra context / environment data from passed Strings, currency , region/country selected etc.
|
CumulativeChargeStrategy<P extends Product,U extends User> |
Using rules to calculate data where the result may requires Cumulative analysis of all Products and not just on a per product
|
CurrencyStrategy |
A common set of API for any project that wishes to attempt automatic conversion of currencies
|
LockStrategy<P extends Product,U extends User> |
A Support strategy on how concurrent purchases will be handled using
LockStrategy.Lock
SaleStrategy and OrderStrategy would be typical consumers of this Strategy; as opposed to other Strategies
that find direct business use cases. |
OrderStrategy<P extends Product,U extends IGenericEcomUser,O extends Order<? extends I>,I extends OrderItem> |
Strategy for Order |
PaymentOptionsStrategy<O extends Order> |
What are the possible payment options for an
Order |
PromotionStrategy<P extends Product,U extends User> |
What are the possible payment options for an
Order
Note: Because Promotions are linked to users being eligible, this Strategies methods may throw ValidationException that should be explicitly handled. |
SaleStrategy<P extends Product,U extends User> |
Strategies to sell/price a product etc based on User Details and Product
|
Strategy |
Any Process that may involve data and Business Rules, Business specific Algorithms can be delegated ass a Strategy.
|
TaxStrategy<P extends Product,U extends User> |
Tax Strategy
|
Class | Description |
---|---|
AbstractChargeStrategy<P extends Product,U extends User> |
Default Strategy implementation for all
ChargeStrategy |
AbstractStrategy<P extends Product,U extends User> |
Default Strategy implementation for any
Strategy |
DefaultDiscountStrategy<P extends Product,U extends User> |
Calculate Any Discounts on Order; default impl there is no discount (all methods return null)
When discount is applied, then Amount.getDiscount() should be a positive value, and the same amount should be negative in Amount.getTotal()
so that Amount.add(Amount) of discount value results in proper calculation. |
DefaultLockStrategy<P extends Product,U extends IGenericEcomUser> |
A default implementation for
LockStrategy
WARNING : This implementation is suited for a Single VM type installation, not for a multi-node architecture. |
DefaultOrderStrategy<P extends Product,U extends IGenericEcomUser,O extends Order<I>,I extends OrderItem> |
Allow amalgamation of other strategies to a List of Products that constitute an Order
and produce a Persistent Order
|
DefaultPackagingStrategy<P extends Product,U extends User> |
Calculate Packaging cost; default impl expects packagingData attribute/field to contain the value as a number
Costs per unit are simple multiplied by Quantity |
DefaultPaymentOptionsStrategy<O extends Order> |
Default impl for
PaymentOptionsStrategy ; by default only online payment is available |
DefaultPromotionStrategy<P extends Product,U extends IGenericEcomUser> |
PromotionStrategy for this applicationThis default impl assumes a context of Object[0] = email, Object[1] = couponCode |
DefaultSaleStrategy<P extends Product,U extends User> |
By Default simple process the data coming and spit it back out.
|
DefaultShippingStrategy<P extends Product,U extends User> |
Calculate Tax; default impl expects shippingData to contain the value as a number
Costs per unit are simple multiplied by Quantity |
DefaultSubOrderStrategy<P extends Product,U extends IGenericEcomUser,O extends SubOrder<O,I>,I extends OrderItem> |
Extension to
DefaultOrderStrategy to support additional SubOrder specific common cases. |
DefaultTaxStrategy<P extends Product,U extends User> |
Calculate Tax; default impl expects taxData attribute/field to contain the value as % of basePrice
Costs per unit are simple multiplied by Quantity Default tax calculation = (Total Amount * tax%) / 100 |
LockStrategy.Lock |
An abstract concept for Locking some units
|
Exception | Description |
---|---|
LockStrategy.LockException |
Exception regarding
LockStrategy.Lock s |
Copyright © 2018. All rights reserved.