Листинг 4.3. Остальная часть кода класса ShoppingCart (ShoppingCart.java)
// remove an item from the cart by product id
public CartItem removeById( String s ){
CartItem ret = (CartItem)itemsById.get( s );
if( ret == null ) return null ;
itemsById.remove(s); // remove by key
items.removeElement( ret );
return ret ;
}
// remove all CartItem for which the numberOrdered is zero
// returns the count of items left
public int removeEmptyItems(){
Enumeration keys = itemsById.keys();
while( keys.hasMoreElements()){
String key = (String)keys.nextElement();
CartItem ci = (CartItem)itemsById.get(key);
if( ci.getNumberOrdered() == 0 ){
removeById( key );
}
}
return items.size();
}
// mainly for debugging
public String toString()
{ StringBuffer sb = new StringBuffer( "ShoppingCart has " +
items.size() + " items.\r\n" ) ;
Enumeration e = items.elements();
while( e.hasMoreElements()){
sb.append("Item: ");
sb.append( e.nextElement().toString() );
sb.append("\r\n");
}
return sb.toString();
}
}