Skip to content
Snippets Groups Projects
Commit 7176669a authored by Nicolas Fley's avatar Nicolas Fley
Browse files

visitors fixed & Order added

parent 57cce3a1
No related branches found
No related tags found
No related merge requests found
...@@ -29,7 +29,14 @@ public class Dish extends Item implements VisitablePrice{ ...@@ -29,7 +29,14 @@ public class Dish extends Item implements VisitablePrice{
/** VISIT LOGIC **/ /** VISIT LOGIC **/
public double acceptPrice(VisitorPrice v) { public void acceptPrice(VisitorPrice v) {
return v.visitPrice(this); if(v instanceof Meal){
Meal vMeal = (Meal) v;
vMeal.setPrice(vMeal.getPrice()+price);
}
if(v instanceof Dish){
Dish vDish = (Dish) v;
vDish.setPrice(vDish.getPrice()+price);
}
} }
} }
...@@ -2,6 +2,8 @@ package Item; ...@@ -2,6 +2,8 @@ package Item;
import java.util.ArrayList; import java.util.ArrayList;
import Order.Order;
/** /**
* *
...@@ -88,6 +90,9 @@ public abstract class Meal extends Item implements VisitorPrice{ ...@@ -88,6 +90,9 @@ public abstract class Meal extends Item implements VisitorPrice{
public double getPrice(){ public double getPrice(){
return price; return price;
} }
public void setPrice(double _price){
price = _price;
}
public ArrayList<Dish> getListDish() { public ArrayList<Dish> getListDish() {
return listDish; return listDish;
} }
...@@ -102,16 +107,19 @@ public abstract class Meal extends Item implements VisitorPrice{ ...@@ -102,16 +107,19 @@ public abstract class Meal extends Item implements VisitorPrice{
/** VISIT LOGIC **/ /** VISIT LOGIC **/
@Override @Override
public double acceptPrice(VisitorPrice v){ public void acceptPrice(VisitorPrice v){
price=0; price=0; // reseting price
if(v instanceof Order){
Order vOrder = (Order) v;
for(Dish item: listDish){ for(Dish item: listDish){
item.acceptPrice(this); item.acceptPrice(this);
} }
return this.getPrice(); vOrder.setPrice(vOrder.getPrice()+this.getPrice()*0.95);
}
} }
@Override @Override
public double visitPrice(VisitablePrice v) { public void visitPrice(VisitablePrice v) {
return v.acceptPrice(this); v.acceptPrice(this);
} }
} }
package Item; package Item;
public interface VisitablePrice { public interface VisitablePrice {
public double acceptPrice(VisitorPrice v); public void acceptPrice(VisitorPrice v);
} }
package Item; package Item;
public interface VisitorPrice { public interface VisitorPrice {
public double visitPrice(VisitablePrice v); public void visitPrice(VisitablePrice v);
} }
package Order;
import java.util.ArrayList;
import Item.Dish;
import Item.Meal;
import Item.VisitablePrice;
import Item.VisitorPrice;
public class Order implements VisitorPrice{
private double price;
ArrayList<Dish> listDish;
ArrayList<Meal> listMeal;
public Order() {
// TODO Auto-generated constructor stub
}
/** GETTER AND SETTER **/
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public void visitPrice(VisitablePrice v) {
for(Dish dish:listDish){
dish.acceptPrice(this);
}
for(Meal meal:listMeal){
meal.acceptPrice(this);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment