import java.util.*;

public class Porta {
	
	private Porta() {}
	private static Porta instance = new Porta();
	public  static Porta getInstance() {
		return instance;
	}
	
	public final static Estado FECHADA  = new PortaFechada();
	public final static Estado FECHANDO = new PortaFechando();
	public final static Estado ABERTA   = new PortaAberta();
	public final static Estado ABRINDO  = new PortaAbrindo();
	public final static Estado MANTER_ABERTA = new ManterPortaAberta();
	
	private Estado estado = new PortaFechada();

	public void clicarBotao() {
		estado.mudarEstado();
	}

	public void abrir() {
		System.out.println("Motor estah abrindo a porta...");
	}
	
	public void fechar() {
		System.out.println("Motor estah fechando a porta...");
	}
	
	public void operacaoTerminada() {
		estado.operacaoTerminada();
	}

	public String status() {
		return estado.status();
	}

	public void timeout() {
		estado.timeout();
	}
	
	public void setEstado(Estado estado) {
		this.estado = estado;
	}
}
