| CartEvent.java |
/*
* Copyright 2002 Sun Microsystems, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistribution in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* Neither the name of Sun Microsystems, Inc. or the names of
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* This software is provided "AS IS," without a warranty of any
* kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
* WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
* EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
* SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
* DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
* OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
* FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*
* You acknowledge that Software is not designed, licensed or intended
* for use in the design, construction, operation or maintenance of
* any nuclear facility.
*/
package com.sun.j2ee.blueprints.petstore.controller.events;
import java.util.*;
import com.sun.j2ee.blueprints.waf.event.EventSupport;
/**
* This Event contains the information for the EJBController of a change the
* state of the shopping cart.
* <br><br>
* There are four basic types of cart events:
* <br> ADD_ITEM
* <br> DELETE_ITEM
* <br> UPDATE_ITEM(S)
* <br>
*
*/
public class CartEvent extends EventSupport {
public static final int ADD_ITEM = 1;
public static final int DELETE_ITEM = 2;
public static final int UPDATE_ITEMS = 3;
public static final int EMPTY = 4;
// private variables
private int actionType = -1;
// for updates to multiple items where the key = itemID
// The Integer value = quantity
private Map items = null;
// for updates, addition, removal of target item
private String itemId;
// for updates and and addtion of single items; multiple items use the items HashMap
private int quantity = 1;
/**
* This contructor is used for the EMPTY_ITEMS actionType
* exclusively. It will cause all items to be remove from the Shopping Cart
*/
public CartEvent(int actionType) {
this.actionType = actionType;
}
/**
* This constructor is used for the ADD_ITEM and DELETE_ITEM actionTypes
* exclusively.
* <br><br>
* <br> actionType = ADD_ITEM or DELETE_ITEM
* <br> itemId = id of the item to be removed or added.
* <br> <br>
* When adding items with this construtor the purchase quantity is 1.
*
*/
public CartEvent(int actionType, String itemId) {
this.actionType = actionType;
this.itemId = itemId;
}
/**
* This constructor is used for the ADD_ITEM or UPDATE_ITEM actionTypes
* exclusively.
* <br><br>
* <br> actionType = ADD_ITEM or UPDATE_ITEM
* <br> itemId = id of the item to be removed or added.
* <br> itemId = id of the item to be removed or added.
* <br> <br>
* When adding items with this construtor the purchase quantity is 1.
*
*/
public CartEvent(int actionType, String itemId, int quantity) {
this.actionType = actionType;
this.itemId = itemId;
this.quantity = quantity;
}
/**
* This constructor is used for the UPDATE_ITEM actionType
* exclusively.
* <br><br>
* <br> actionType = UPDATE_ITEM
* <br> HashMap items = a HashMap of the items to
* be updated. In this HashMap the key is an itemId to be updated
* and the value is an Iteger which contains the quantity to be changed
* to. When the quantity is 0 the item will be remove from the cart..
* <br> <br>
* When adding items with this construtor the purchase quantity is 1.
*
*/
public CartEvent(int actionType, HashMap items) {
this.actionType = actionType;
this.items = items;
}
public static CartEvent createUpdateItemEvent(Map items) {
// Defensive copy or items
CartEvent ret = new CartEvent(UPDATE_ITEMS, new HashMap(items));
return ret;
}
public int getActionType() {
return actionType;
}
public String getItemId() {
return itemId;
}
public int getQuantity() {
return quantity;
}
public Map getItems() {
return items;
}
public String toString() {
return "CartEvent[actionType=" + actionType + ", itemId=" +
itemId + ", quantity=" + quantity + ", items=" + items + "]";
}
public String getEventName() {
return "CartEvent";
}
}
| CartEvent.java |