package lab05.v2_pastelaria;

public class Cake {
    private Shape shape;
    private String cakeLayer;
    private int numCakeLayers;
    private Cream midLayerCream;
    private Cream topLayerCream;
    private Topping topping;
    private String message;

    public Cake(){};

   // public Cake(Shape shape, int numCakeLayers, String message){
   //     this.shape = shape;
   //     this.numCakeLayers = numCakeLayers;
   //     this.message = message;
   // }
//
   // public Cake(int numCakeLayers, String message){
   //     this.shape = Shape.Circular;
   //     this.numCakeLayers = numCakeLayers;
   //     this.message = message;
   // }
//
   // public Cake(String message){
   //     this.shape = Shape.Circular;
   //     this.numCakeLayers = 1;
   //     this.message = message;
   // }

    // getters and setters //

    public Shape getShape() {
        return shape;
    }

    public void setShape(Shape shape) {
        this.shape = shape;
    }

    public String getCakeLayer() {
        return cakeLayer;
    }

    public void setCakeLayer(String cakeLayer) {
        this.cakeLayer = cakeLayer;
    }

    public int getNumCakeLayers() {
        return numCakeLayers;
    }

    public void setNumCakeLayers(int numCakeLayers) {
        this.numCakeLayers = numCakeLayers;
    }

    public Cream getMidLayerCream() {
        return midLayerCream;
    }

    public void setMidLayerCream(Cream midLayerCream) {
        this.midLayerCream = midLayerCream;
    }

    public Cream getTopLayerCream() {
        return topLayerCream;
    }

    public void setTopLayerCream(Cream topLayerCream) {
        this.topLayerCream = topLayerCream;
    }

    public Topping getTopping() {
        return topping;
    }

    public void setTopping(Topping topping) {
        this.topping = topping;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
    
    @Override
    public String toString(){
        
        String str = this.cakeLayer + " cake with "+ this.numCakeLayers + " layers";

        if (this.midLayerCream != null){
            str += " and "+ this.midLayerCream + " cream, ";
        }

        else{
            str += ", ";
        }

        str += "topped with "+ this.topLayerCream + " and " + this.topping + ". Message says: '" + this.message + "'.";
        return str;
    }
}
