diff options
author | Camil Staps | 2015-04-18 13:44:44 +0200 |
---|---|---|
committer | Camil Staps | 2015-04-18 13:44:44 +0200 |
commit | 6a44b074f0169a1b0f9e92347af929c5e471746e (patch) | |
tree | ae5663fe7c69881bf4ecfedbef99c2505f8ec964 /Week9 Webshop/src/com/camilstaps/shop/Cart.java | |
parent | Added copyright to docs (diff) |
Reorganised projects
Diffstat (limited to 'Week9 Webshop/src/com/camilstaps/shop/Cart.java')
-rw-r--r-- | Week9 Webshop/src/com/camilstaps/shop/Cart.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/Week9 Webshop/src/com/camilstaps/shop/Cart.java b/Week9 Webshop/src/com/camilstaps/shop/Cart.java new file mode 100644 index 0000000..74f6ccd --- /dev/null +++ b/Week9 Webshop/src/com/camilstaps/shop/Cart.java @@ -0,0 +1,67 @@ +/** + * Copyright (c) 2015 Camil Staps <info@camilstaps.nl> + * See the LICENSE file for copying permission. + */ + +package com.camilstaps.shop; + +import java.io.Serializable; +import java.util.HashSet; +import java.util.Set; + +/** + * A Cart holds the articles a User is planning to buy. + * @author Camil Staps, s4498062 + */ +public class Cart implements Serializable { + + private final Set<Article> articles = new HashSet<>(); + + public Set<Article> getArticles() { + return articles; + } + + /** + * Get the total price of all articles + * @return + */ + public float getTotalAmount() { + float result = 0; + for (Article a : articles) { + result += a.getPrice(); + } + return result; + } + + /** + * Add a new article + * @param article + */ + public void add(Article article) { + Database.getInstance().removeItem(article); + articles.add(article); + } + + /** + * Remove an article (and put it back in the database) + * @param article + */ + public void remove(Article article) { + articles.remove(article); + try { + Database.getInstance().addItem(article); + } catch (DuplicateEntryException ex) { + } + } + + /** + * Remove all articles in the manner of remove() + * @see self#remove + */ + public void reset() { + for (Article a : articles) { + remove(a); + } + } + +}
\ No newline at end of file |