/**
 * Zprava s prikazem.
 * 
 * @author Marek Dvoroznak
 * @version 0.1
 */
public class CommandMessage extends AbstractMessage
{
    // prikaz
    private String cmd;

    /**
     * Zkonstruuje objekt typu CommandMessage.
     * 
     * @param from odesilatel
     * @param cmd prikaz
     * @param body telo zpravy
     */
    public CommandMessage(Subject from, String cmd, String body)
    {
        this(from, null, cmd, body);
    }
    
    /**
     * Zkonstruuje objekt typu CommandMessage.
     * 
     * @param from odesilatel
     * @param to adresat
     * @param cmd prikaz
     * @param body telo zpravy
     */
    public CommandMessage(Subject from, Subject to, String cmd, String body)
    {
        super(from, to, body);
        this.cmd = cmd;
    }

    /**
     * Vrati zformatovane telo zpravy.
     * 
     * @return zformatovane telo zpravy
     */
    public String getFormatedBody()
    {
        User from = (User)getFrom();
        String body = (String)getBody();
        return ":" + from.getName() + "!" + from.getUsername() + "@" + from.getHost() + " " + cmd + " " + body;
    }
}
