Pizza Builder

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

import java.util.

Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
Pizza margherita = new Pizza.PizzaBuilder("Margherita", 32)
.setAddChees(true)
.setAddSouce(true)
.setTakeway(true)
.build();
Pizza taraneasca = new Pizza.PizzaBuilder("Taraneasca", 40)
.setAddChees(false)
.setAddSouce(true)
.setTakeway(false)
.build();
List<Pizza> pizzaList = Arrays.asList(margherita, taraneasca);
pizzaList.stream()
.sorted(Comparator.comparing(Pizza::toString))
.forEach(pizza -> System.out.print(pizza));
}
}
class Pizza {
private String name;
private int size;
private boolean addChees;
private boolean addSouce;
private boolean takeway;
public String getName() {
return name;
}
public int getSize() {
return size;
}
public boolean isAddChees() {
return addChees;
}
public boolean isAddSouce() {
return addSouce;
}
public boolean isTakeway() {
return takeway;
}
public Pizza(PizzaBuilder pizzaBuilder) {
this.name = pizzaBuilder.name;
this.size = pizzaBuilder.size;
this.addChees = pizzaBuilder.addChees;
this.addSouce = pizzaBuilder.addSouce;
this.takeway = pizzaBuilder.takeway;
}
@Override
public String toString() {
return "Pizza: " + getName() + " size= " + getSize() + ", addChees= " +
isAddChees() + ", addSouce= " + isAddSouce() + ", takeway= " + isTakeway() + "\n";
}
public static class PizzaBuilder {
private String name;
private int size;
private boolean addChees;
private boolean addSouce;
private boolean takeway;
public PizzaBuilder(String name, int size) {
this.name = name;
this.size = size;
}
public PizzaBuilder setAddChees(boolean addChees) {
this.addChees = addChees;
return this;
}
public PizzaBuilder setAddSouce(boolean addSouce) {
this.addSouce = addSouce;
return this;
}
public PizzaBuilder setTakeway(boolean takeway) {
this.takeway = takeway;
return this;
}
public Pizza build() {
return new Pizza(this);
}
}
}

You might also like