Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package rbvs.product;
- //import ict.basic.IDeepCopy;
- import java.util.ArrayList;
- import java.util.Collection;
- //Eldira Sesto, 11815163
- public class CompositeProduct extends Product {
- private Collection<Product> containedProducts;
- private float discount;
- public CompositeProduct(String name, float discountPercentage) {
- super(name == null ? "" : name, 0);
- if(discountPercentage < 0) discount = 0;
- else if(discountPercentage > 100) discount = 100;
- else discount = discountPercentage;
- }
- public CompositeProduct(String name, float discountPercentage, Collection<Product> products) {
- super(name == null ? "" : name);
- if(discountPercentage < 0) discount = 0;
- else if(discountPercentage > 100) discount = 100;
- else discount = discountPercentage;
- if(products != null){
- containedProducts = new ArrayList<>();
- containedProducts.addAll(products);
- }
- }
- @Override
- public CompositeProduct deepCopy() {
- Collection<Product> copiedCollection = new ArrayList<>();
- for(Product p : containedProducts){
- copiedCollection.add((Product) p.deepCopy());
- }
- return new CompositeProduct(getname(), discount, copiedCollection);
- }
- public void addProduct(Product product){
- containedProducts.add(product);
- }
- public Collection<Product> getProducts(){
- return containedProducts;
- }
- public float getPrice(){
- float sum = 0;
- for(Product p : containedProducts){
- sum += p.getPrice();
- }
- return sum * discount / 100;
- }
- public boolean removeProduct(Product product){
- if(containedProducts.contains(product)){
- containedProducts.remove(product);
- return true;
- }
- return false;
- }
- @Override
- public String toString() {
- return "CompositeProduct{" +
- "containedProducts=" + containedProducts +
- ", discount=" + discount +
- '}';
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement