Author: rdonkin
Date: Mon May 12 14:40:49 2008
New Revision: 655656
URL: http://svn.apache.org/viewvc?rev=655656&view=rev
Log:
Simplify commands
Added:
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ImapCommandImpl.java
Removed:
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/AuthenticatedStateCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/CommandTemplate.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/NonAuthenticatedStateCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/SelectedStateCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/AppendCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/AuthenticateCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CapabilityCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CheckCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CloseCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CopyCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/CreateCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/DeleteCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ExamineCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ExpungeCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/FetchCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ListCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/LoginCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/LogoutCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/LsubCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/NoopCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/RenameCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/SearchCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/SelectCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/StatusCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/StoreCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/SubscribeCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/UidCommand.java
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/UnsubscribeCommand.java
Modified:
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/StandardImap4Rev1CommandFactory.java
Added:
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ImapCommandImpl.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ImapCommandImpl.java?rev=655656&view=auto
==============================================================================
---
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ImapCommandImpl.java
(added)
+++
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/ImapCommandImpl.java
Mon May 12 14:40:49 2008
@@ -0,0 +1,82 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.james.imap.command.imap4rev1;
+
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.james.api.imap.ImapCommand;
+import org.apache.james.api.imap.ImapSessionState;
+
+/**
+ * Basic implementation.
+ */
+class ImapCommandImpl extends AbstractLogEnabled implements ImapCommand {
+
+ public static ImapCommand nonAuthenticatedStateCommand(final String name) {
+ return new ImapCommandImpl(false, false, true, name);
+ }
+
+ public static ImapCommand authenticatedStateCommand(final String name) {
+ return new ImapCommandImpl(true, true, false, name);
+ }
+
+ public static ImapCommand selectedStateCommand(final String name) {
+ return new ImapCommandImpl(false, true, false, name);
+ }
+
+ public static ImapCommand anyStateCommand(final String name) {
+ return new ImapCommandImpl(true, true, true, name);
+ }
+
+ private final boolean validInAuthenticated;
+ private final boolean validInSelected;
+ private final boolean validInNonAuthenticated;
+ private final String name;
+
+ private ImapCommandImpl(boolean validInAuthenticated, boolean
validInSelected,
+ boolean validInNonAuthenticated, final String name) {
+ super();
+ this.validInAuthenticated = validInAuthenticated;
+ this.validInSelected = validInSelected;
+ this.validInNonAuthenticated = validInNonAuthenticated;
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public boolean validForState(ImapSessionState state) {
+ final boolean result;
+ if (state == ImapSessionState.AUTHENTICATED) {
+ result = validInAuthenticated;
+ } else if (state == ImapSessionState.NON_AUTHENTICATED ) {
+ result = validInNonAuthenticated;
+ } else if (state == ImapSessionState.SELECTED) {
+ result = validInSelected;
+ } else {
+ result = false;
+ }
+ return result;
+ }
+
+ public String toString() {
+ return name;
+ }
+}
Modified:
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/StandardImap4Rev1CommandFactory.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/StandardImap4Rev1CommandFactory.java?rev=655656&r1=655655&r2=655656&view=diff
==============================================================================
---
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/StandardImap4Rev1CommandFactory.java
(original)
+++
james/server/trunk/imap-command-library/src/main/java/org/apache/james/imap/command/imap4rev1/StandardImap4Rev1CommandFactory.java
Mon May 12 14:40:49 2008
@@ -19,200 +19,201 @@
package org.apache.james.imap.command.imap4rev1;
import org.apache.james.api.imap.ImapCommand;
+import org.apache.james.api.imap.ImapConstants;
import org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory;
public class StandardImap4Rev1CommandFactory implements
Imap4Rev1CommandFactory {
- private final AppendCommand APPEND = new AppendCommand();
- private final AuthenticateCommand AUTHENTICATE = new AuthenticateCommand();
- private final CapabilityCommand CAPABILITY = new CapabilityCommand();
- private final CheckCommand CHECK = new CheckCommand();
- private final CloseCommand CLOSE = new CloseCommand();
- private final CopyCommand COPY = new CopyCommand();
- private final CreateCommand CREATE = new CreateCommand();
- private final DeleteCommand DELETE = new DeleteCommand();
- private final ExamineCommand EXAMINE = new ExamineCommand();
- private final ExpungeCommand EXPUNGE = new ExpungeCommand();
- private final FetchCommand FETCH = new FetchCommand();
- private final ListCommand LIST = new ListCommand();
- private final LoginCommand LOGIN = new LoginCommand();
- private final LogoutCommand LOGOUT = new LogoutCommand();
- private final LsubCommand LSUB = new LsubCommand();
- private final NoopCommand NOOP = new NoopCommand();
- private final RenameCommand RENAME = new RenameCommand();
- private final SearchCommand SEARCH = new SearchCommand();
- private final SelectCommand SELECT = new SelectCommand();
- private final StatusCommand STATUS = new StatusCommand();
- private final StoreCommand STORE = new StoreCommand();
- private final SubscribeCommand SUBSCRIBE = new SubscribeCommand();
- private final UidCommand UID = new UidCommand();
- private final UnsubscribeCommand UNSUBSCRIBE = new UnsubscribeCommand();
+ private final ImapCommand append =
ImapCommandImpl.authenticatedStateCommand(ImapConstants.APPEND_COMMAND_NAME);
+ private final ImapCommand authenticate =
ImapCommandImpl.nonAuthenticatedStateCommand(ImapConstants.AUTHENTICATE_COMMAND_NAME);
+ private final ImapCommand capability =
ImapCommandImpl.anyStateCommand(ImapConstants.CAPABILITY_COMMAND_NAME);
+ private final ImapCommand check =
ImapCommandImpl.selectedStateCommand(ImapConstants.CHECK_COMMAND_NAME);
+ private final ImapCommand close =
ImapCommandImpl.selectedStateCommand(ImapConstants.CLOSE_COMMAND_NAME);
+ private final ImapCommand copy =
ImapCommandImpl.selectedStateCommand(ImapConstants.COPY_COMMAND_NAME);
+ private final ImapCommand create =
ImapCommandImpl.authenticatedStateCommand(ImapConstants.CREATE_COMMAND_NAME);
+ private final ImapCommand delete =
ImapCommandImpl.authenticatedStateCommand(ImapConstants.DELETE_COMMAND_NAME);
+ private final ImapCommand examine =
ImapCommandImpl.authenticatedStateCommand(ImapConstants.EXAMINE_COMMAND_NAME);
+ private final ImapCommand expunge =
ImapCommandImpl.selectedStateCommand(ImapConstants.EXPUNGE_COMMAND_NAME);
+ private final ImapCommand fetch =
ImapCommandImpl.selectedStateCommand(ImapConstants.FETCH_COMMAND_NAME);
+ private final ImapCommand list =
ImapCommandImpl.authenticatedStateCommand(ImapConstants.LIST_COMMAND_NAME);
+ private final ImapCommand login =
ImapCommandImpl.nonAuthenticatedStateCommand(ImapConstants.LOGIN_COMMAND_NAME);
+ private final ImapCommand logout =
ImapCommandImpl.anyStateCommand(ImapConstants.LOGOUT_COMMAND_NAME);
+ private final ImapCommand lsub =
ImapCommandImpl.authenticatedStateCommand(ImapConstants.LSUB_COMMAND_NAME);
+ private final ImapCommand noop =
ImapCommandImpl.anyStateCommand(ImapConstants.NOOP_COMMAND_NAME);
+ private final ImapCommand rename =
ImapCommandImpl.authenticatedStateCommand(ImapConstants.RENAME_COMMAND_NAME);
+ private final ImapCommand search =
ImapCommandImpl.selectedStateCommand(ImapConstants.SEARCH_COMMAND_NAME);
+ private final ImapCommand select =
ImapCommandImpl.authenticatedStateCommand(ImapConstants.SELECT_COMMAND_NAME);
+ private final ImapCommand status =
ImapCommandImpl.authenticatedStateCommand(ImapConstants.STATUS_COMMAND_NAME);
+ private final ImapCommand store =
ImapCommandImpl.selectedStateCommand(ImapConstants.STORE_COMMAND_NAME);
+ private final ImapCommand subscribe =
ImapCommandImpl.authenticatedStateCommand(ImapConstants.SUBSCRIBE_COMMAND_NAME);
+ private final ImapCommand uid =
ImapCommandImpl.selectedStateCommand(ImapConstants.UID_COMMAND_NAME);
+ private final ImapCommand unsubscribe =
ImapCommandImpl.authenticatedStateCommand(ImapConstants.UNSUBSCRIBE_COMMAND_NAME);
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getAppend()
*/
public ImapCommand getAppend() {
- return APPEND;
+ return append;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getAuthenticate()
*/
public ImapCommand getAuthenticate() {
- return AUTHENTICATE;
+ return authenticate;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getCapability()
*/
public ImapCommand getCapability() {
- return CAPABILITY;
+ return capability;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getCheck()
*/
public ImapCommand getCheck() {
- return CHECK;
+ return check;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getClose()
*/
public ImapCommand getClose() {
- return CLOSE;
+ return close;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getCopy()
*/
public ImapCommand getCopy() {
- return COPY;
+ return copy;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getCreate()
*/
public ImapCommand getCreate() {
- return CREATE;
+ return create;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getDelete()
*/
public ImapCommand getDelete() {
- return DELETE;
+ return delete;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getExamine()
*/
public ImapCommand getExamine() {
- return EXAMINE;
+ return examine;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getExpunge()
*/
public ImapCommand getExpunge() {
- return EXPUNGE;
+ return expunge;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getFetch()
*/
public ImapCommand getFetch() {
- return FETCH;
+ return fetch;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getList()
*/
public ImapCommand getList() {
- return LIST;
+ return list;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getLogin()
*/
public ImapCommand getLogin() {
- return LOGIN;
+ return login;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getLogout()
*/
public ImapCommand getLogout() {
- return LOGOUT;
+ return logout;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getLsub()
*/
public ImapCommand getLsub() {
- return LSUB;
+ return lsub;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getNoop()
*/
public ImapCommand getNoop() {
- return NOOP;
+ return noop;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getRename()
*/
public ImapCommand getRename() {
- return RENAME;
+ return rename;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getSearch()
*/
public ImapCommand getSearch() {
- return SEARCH;
+ return search;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getSelect()
*/
public ImapCommand getSelect() {
- return SELECT;
+ return select;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getStatus()
*/
public ImapCommand getStatus() {
- return STATUS;
+ return status;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getStore()
*/
public ImapCommand getStore() {
- return STORE;
+ return store;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getSubscribe()
*/
public ImapCommand getSubscribe() {
- return SUBSCRIBE;
+ return subscribe;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getUid()
*/
public ImapCommand getUid() {
- return UID;
+ return uid;
}
/**
* @see
org.apache.james.api.imap.imap4rev1.Imap4Rev1CommandFactory#getUnsubscribe()
*/
public ImapCommand getUnsubscribe() {
- return UNSUBSCRIBE;
+ return unsubscribe;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]