examples.businesspolicy
Class BusinessPolicyExample
java.lang.Object
|
+--examples.businesspolicy.BusinessPolicyExample
- public class BusinessPolicyExample
- extends java.lang.Object
This example demonstrates the concept of "Pluggable Methods",
better known as policies. When you create your components, you will
realize that many times you want to alter the component behaviour
based on external conditions that you can not evaluate at
development time. Reusability, extensibility and rapid development
and enhancement are typical problems that can be solved using
policies. BusinessPolicy is Theory Center's implementation of the Policy and
Strategy design patterns.
Using this concepts allows you to replace the default policy at runtime. The
policy is stored as a property for the item.
In this example we will use an item component. The item component has a
default pricing policy. The item's price can be calculated in two ways: By
supplying only a quantity, you can have the price be calculated based on the
default policy; By supplying a pricing policy in addition to a quantity, the
item's price can be calculated using the new pricing policy. You can replace
the pricing policy to alter the way the price is calculated for the item.
This means that you can modify the behaviour of the item by plugging in a
method that calculates the price the way you want.
The example creates an item. It Then, sets the SeniorCitizenDiscountPolicy
as the default pricing policy for the item. Then, the item's price is
calculated using the default policy. Finally,it modifies the item quantity
and once again, calculates the price; this time using the
AprilFoolsDiscountPolicy policy.
To better understand this example it would be great if you go through the
Axiom example first
- See Also:
AxiomExample
,
Item
,
ItemPriceCalculationPolicy
,
BusinessPolicy
,
AprilFoolsDiscountPolicy
,
SeniorCitizenDiscountPolicy
,
Quantity
,
Price
Field Summary |
static java.lang.String |
HOME_NAME
|
Method Summary |
void |
displayItemDetails(Item item)
Displays the description and price of an item. |
void |
exitExample(java.lang.String message,
java.lang.Exception e)
Display the message and the exception and terminate the
the program |
Customer |
findOrCreateCustomer(java.lang.String customerKey)
Finds or Creates a customer with the given customerKey. |
Item |
findOrCreateItem(java.lang.String identifier,
java.lang.String supplier,
java.lang.String version)
Obtains the item home from JNDI, it searches for an item with the
given primary key. |
javax.naming.Context |
getInitialContext()
Gets an initial context for the current user, password and url. |
static void |
main(java.lang.String[] argv)
The main method of the Business Policy example. |
boolean |
run()
This method is the sequence of the example:
1.- Find or create a new Item with the given primary key
2.- Create an quantity belonging
3.- Create a new SeniorCitizenDiscountPolicy
4.- Calculate the price using the above quantity and policy
5.- Change the count in the quantity
6.- Create a new AprilFoolsDiscountPolicy
7.- Calculate the price using the new quantity and policy |
Methods inherited from class java.lang.Object |
equals,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
HOME_NAME
public static final java.lang.String HOME_NAME
BusinessPolicyExample
public BusinessPolicyExample()
- BusinessPolicyExample default constructor.
displayItemDetails
public void displayItemDetails(Item item)
- Displays the description and price of an item.
This method also illustrates the use of the Price component
- Parameters:
item
- The item that you want to display- See Also:
Price
exitExample
public void exitExample(java.lang.String message,
java.lang.Exception e)
- Display the message and the exception and terminate the
the program
- Parameters:
message
- The message to display upon terminatione
- The exception thrown or null if no exception was thrown
findOrCreateCustomer
public Customer findOrCreateCustomer(java.lang.String customerKey)
- Finds or Creates a customer with the given customerKey.
- Parameters:
customerKey
- the key for the customer- Returns:
- the customer's entity bean
findOrCreateItem
public Item findOrCreateItem(java.lang.String identifier,
java.lang.String supplier,
java.lang.String version)
- Obtains the item home from JNDI, it searches for an item with the
given primary key. If the item is found it is returned, otherwise
a new item with the given primary key is created and returned.
- Parameters:
identifier
- A unique identifier for the item (SKU)supplier
- The item supplierversion
- The catalog version of this item- Returns:
- The item with the given primary key
getInitialContext
public javax.naming.Context getInitialContext()
throws java.lang.Exception
- Gets an initial context for the current user, password and url.
- Returns:
- Context
- Throws:
- java.lang.Exception - if there is
an error in getting the Context
main
public static void main(java.lang.String[] argv)
- The main method of the Business Policy example.
It instantiates and runs a new BusinessPolicy Example
- Parameters:
argv
- The command line arguments
run
public boolean run()
- This method is the sequence of the example:
1.- Find or create a new Item with the given primary key
2.- Create an quantity belonging
3.- Create a new SeniorCitizenDiscountPolicy
4.- Calculate the price using the above quantity and policy
5.- Change the count in the quantity
6.- Create a new AprilFoolsDiscountPolicy
7.- Calculate the price using the new quantity and policy
- See Also:
AprilFoolsDiscountPolicy
,
SeniorCitizenDiscountPolicy
,
Quantity
Copyright © 2000 BEA Systems, Inc. All Rights Reserved