diff options
author | Camil Staps | 2015-06-11 16:24:00 +0200 |
---|---|---|
committer | Camil Staps | 2015-06-11 16:26:22 +0200 |
commit | c55c2987d23adc518b642410fca36416d5f80b5f (patch) | |
tree | de527d7a5159925cc679ef181fc274287f0a04dc /Week16 Webshop | |
parent | UML diagram w16b (diff) |
Wrapping up w16
Diffstat (limited to 'Week16 Webshop')
6 files changed, 90 insertions, 7 deletions
diff --git a/Week16 Webshop/src/com/camilstaps/webshop/Cart.java b/Week16 Webshop/src/com/camilstaps/webshop/Cart.java index a5bed86..4869806 100644 --- a/Week16 Webshop/src/com/camilstaps/webshop/Cart.java +++ b/Week16 Webshop/src/com/camilstaps/webshop/Cart.java @@ -1,5 +1,25 @@ /* - * Copyright (c) 2015 Camil Staps + * The MIT License (MIT) + * + * Copyright (c) 2015 Camil Staps <info@camilstaps.nl> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. */ package com.camilstaps.webshop; @@ -10,13 +30,20 @@ import java.util.ArrayList; import java.util.List; /** - * - * @author camilstaps + * A Cart holds articles and can be checked out + * @author Camil Staps */ public class Cart extends ArrayList<Article> { - + + /** + * If no payment method gets set by the user, iDeal will be used + */ private PaymentMethod paymentMethod = new IDeal(); + /** + * The price of the articles without shipping costs + * @return + */ public double getSubtotal() { double total = 0; for (Article a : this) { @@ -25,6 +52,11 @@ public class Cart extends ArrayList<Article> { return total; } + /** + * The summed shipping costs of all articles + * The same cost will only be charged once + * @return + */ public double getShippingCosts() { List<Double> seenCosts = new ArrayList<>(); double total = 0; @@ -37,14 +69,26 @@ public class Cart extends ArrayList<Article> { return total; } + /** + * Get the total amount to pay + * @return + */ public double getTotal() { return getSubtotal() + getShippingCosts(); } + /** + * Set the Payment Method + * @param paymentMethod + */ public void setPaymentMethod(PaymentMethod paymentMethod) { this.paymentMethod = paymentMethod; } + /** + * Pay using the set payment method (see { @link self#setPaymentMethod }. + * @return + */ public boolean pay() { System.out.println("Subtotal : " + getSubtotal()); System.out.println("Shipping : " + getShippingCosts()); diff --git a/Week16 Webshop/src/com/camilstaps/webshop/Week16Webshop.java b/Week16 Webshop/src/com/camilstaps/webshop/Week16Webshop.java index 6772ada..fd5f13e 100644 --- a/Week16 Webshop/src/com/camilstaps/webshop/Week16Webshop.java +++ b/Week16 Webshop/src/com/camilstaps/webshop/Week16Webshop.java @@ -1,5 +1,25 @@ /* - * Copyright (c) 2015 Camil Staps + * The MIT License (MIT) + * + * Copyright (c) 2015 Camil Staps <info@camilstaps.nl> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. */ package com.camilstaps.webshop; @@ -9,12 +29,13 @@ import com.camilstaps.webshop.article.WineGlass; import com.camilstaps.webshop.payment.PayPal; /** - * - * @author camilstaps + * Solutions to week 16 part 2 + * @author Camil Staps */ public class Week16Webshop { /** + * Example creating a cart with various articles and paying using a custom payment method * @param args the command line arguments */ public static void main(String[] args) { diff --git a/Week16 Webshop/src/com/camilstaps/webshop/article/Article.java b/Week16 Webshop/src/com/camilstaps/webshop/article/Article.java index 911adcf..d34d336 100644 --- a/Week16 Webshop/src/com/camilstaps/webshop/article/Article.java +++ b/Week16 Webshop/src/com/camilstaps/webshop/article/Article.java @@ -46,6 +46,11 @@ public abstract class Article { return price; } + /** + * Get the additional sum a customer has to pay if he wishes to have the + * article delivered home. + * @return + */ public abstract double getShippingCosts(); } diff --git a/Week16 Webshop/src/com/camilstaps/webshop/payment/CreditCard.java b/Week16 Webshop/src/com/camilstaps/webshop/payment/CreditCard.java index f2d0b31..a4b9fd7 100644 --- a/Week16 Webshop/src/com/camilstaps/webshop/payment/CreditCard.java +++ b/Week16 Webshop/src/com/camilstaps/webshop/payment/CreditCard.java @@ -31,6 +31,9 @@ import java.util.Date; */ public class CreditCard implements PaymentMethod { + /** + * Credit card details + */ private final String cardNr, holder; private final Date expiryDate; diff --git a/Week16 Webshop/src/com/camilstaps/webshop/payment/IDeal.java b/Week16 Webshop/src/com/camilstaps/webshop/payment/IDeal.java index 05247f1..72afb84 100644 --- a/Week16 Webshop/src/com/camilstaps/webshop/payment/IDeal.java +++ b/Week16 Webshop/src/com/camilstaps/webshop/payment/IDeal.java @@ -31,7 +31,14 @@ import java.util.Scanner; */ public class IDeal implements PaymentMethod { + /** + * Bank details + */ private String bank, accountNr, pincode; + + /** + * Scanner to get user input from if bank details are missing + */ private final Scanner sc = new Scanner(System.in); /** diff --git a/Week16 Webshop/src/com/camilstaps/webshop/payment/PayPal.java b/Week16 Webshop/src/com/camilstaps/webshop/payment/PayPal.java index a752453..dfc791f 100644 --- a/Week16 Webshop/src/com/camilstaps/webshop/payment/PayPal.java +++ b/Week16 Webshop/src/com/camilstaps/webshop/payment/PayPal.java @@ -29,6 +29,9 @@ package com.camilstaps.webshop.payment; */ public class PayPal implements PaymentMethod { + /** + * PayPal credentials + */ private final String email, pass; public PayPal(String email, String pass) { |