View Javadoc

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17  package com.ibatis.jpetstore.domain;
    18
    19  import java.io.Serializable;
    20  import java.math.BigDecimal;
    21
    22
    23  public class CartItem implements Serializable {
    24
    25    /* Private Fields */
    26
    27    private Item item;
    28    private int quantity;
    29    private boolean inStock;
    30    private BigDecimal total;
    31
    32    /* JavaBeans Properties */
    33
    34    public boolean isInStock() {
    35      return inStock;
    36    }
    37
    38    public void setInStock(boolean inStock) {
    39      this.inStock = inStock;
    40    }
    41
    42    public BigDecimal getTotal() {
    43      return total;
    44    }
    45
    46    public Item getItem() {
    47      return item;
    48    }
    49
    50    public void setItem(Item item) {
    51      this.item = item;
    52      calculateTotal();
    53    }
    54
    55    public int getQuantity() {
    56      return quantity;
    57    }
    58
    59    public void setQuantity(int quantity) {
    60      this.quantity = quantity;
    61      calculateTotal();
    62    }
    63
    64    /* Public methods */
    65
    66    public void incrementQuantity() {
    67      quantity++;
    68      calculateTotal();
    69    }
    70
    71    /* Private methods */
    72
    73    private void calculateTotal() {
    74      if (item != null && item.getListPrice() != null) {
    75        total = item.getListPrice().multiply(new BigDecimal(quantity));
    76      } else {
    77        total = null;
    78      }
    79    }
    80
    81  }