package post.mail;

/**
 * A levelek ábrázolása. Ugyanebben a post.mail csomagban hozzuk létre a Letter
 * osztályt is, mely a kézbesítendő leveleket fogja ábrázolni
 *
 *
 * @author Daniel3ICE
 */
public class Letter {

    Address sender, recipient;
    String content;
    boolean delivered, destroyed, returningToSender;

    public Letter(Address sender, Address recipient, String content) {
        /*DEBUG3ICE*/
        System.out.println("Creating new Letter from: " + sender + " to: " + recipient + " with content: (" + content + ")");
        this.sender = sender;
        this.recipient = recipient;
        this.content = content;
        delivered = false;
        destroyed = false;
        returningToSender = false;
    }

    public boolean isDelivered() {
        return delivered;
    }

    public boolean isDestroyed() {
        return destroyed;
    }

    public boolean isReturningToSender() {
        return returningToSender;
    }

    public void delivered() {
        delivered = true;
    }

    public void backToSender() {
        returningToSender = true;
    }

    public void destroy() {
        destroyed = true;
    }

    public Address whereToDeliver() {
        if (returningToSender) {
            return sender;
        } else {
            return recipient;
        }
    }

    @Override
    public String toString() {
        return "Lttr{to: " + recipient + " delivered:"
                + delivered + " destroyed:" + destroyed
                + " returningToSender:" + returningToSender
                + " content: (" + content + ")}";
    }

}
