| 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.Locks |
Copyright © 2018. All rights reserved.