package mireka.pop.command; import java.io.IOException; import mireka.pop.Command; import mireka.pop.CommandParser; import mireka.pop.IllegalSessionStateException; import mireka.pop.Pop3Exception; import mireka.pop.Session; import mireka.pop.SessionState; public class RsetCommand implements Command { private final Session session; public RsetCommand(Session session) { this.session = session; } @Override public void execute(CommandParser commandParser) throws IOException, Pop3Exception { if (session.getSessionState() != SessionState.TRANSACTION) throw new IllegalSessionStateException(); try { session.getMaildrop().resetDeletions(); } catch (IllegalArgumentException e) { session.getThread().sendResponse("-ERR " + e.getMessage()); return; } session.getThread().sendResponse( "+OK maildrop has " + session.getMaildrop().getCountOfMessages() + " messages (" + session.getMaildrop().getTotalOctets() + ")"); } }