01: // $Id: AbstractGetCommand.java 335 2006-10-16 06:10:05Z grro $
02:
03: /*
04: * Copyright (c) xsocket.org, 2006 - 2007. All rights reserved.
05: *
06: * This library is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation; either
09: * version 2.1 of the License, or (at your option) any later version.
10: *
11: * This library is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public
17: * License along with this library; if not, write to the Free Software
18: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19: *
20: * Please refer to the LGPL license at: http://www.gnu.org/copyleft/lesser.txt
21: * The latest copy of this software may be found on http://www.xsocket.org/
22: */
23: package org.xsocket.mail.pop3;
24:
25: import java.io.IOException;
26:
27: import org.xsocket.mail.CommandName;
28: import org.xsocket.stream.INonBlockingConnection;
29:
30: /**
31: *
32: *
33: * @author grro@xsocket.org
34: */
35: @CommandName("DELE")
36: final class DELECommand extends AbstractPOP3Command {
37:
38: public DELECommand() {
39:
40: }
41:
42: @Override
43: public void execute(ICommandContext ctx,
44: INonBlockingConnection connection, String[] arguments)
45: throws IOException, POP3ProtocolException {
46: checkState(ctx, ICommandContext.State.TRANSACTION,
47: "have to be in TRANSACTION state");
48: checkParameterCount(arguments, 1);
49:
50: Integer number = parseIntArgument(arguments[0]);
51: boolean wasNotMarked = ctx.addMessageNumberToDelete(number);
52: if (wasNotMarked) {
53: sendPositiveResponse(connection, "message " + number
54: + " deleted");
55: } else {
56: sendNegativeResponse(connection, "message " + number
57: + " is already deleted");
58: }
59: }
60: }
|