panda.net.imap.IMAPCommand Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of panda-nets Show documentation
Show all versions of panda-nets Show documentation
Panda Nets is a client side library of many basic Internet protocols.
package panda.net.imap;
/**
* IMAPCommand stores IMAP command codes.
*/
public enum IMAPCommand {
// These enums must either use the same name as the IMAP command
// or must provide the correct string as the parameter.
// Commands valid in any state:
CAPABILITY(0),
NOOP(0),
LOGOUT(0),
// Commands valid in Not Authenticated state
STARTTLS(0),
AUTHENTICATE(1),
LOGIN(2),
XOAUTH(1),
// commands valid in authenticated state
SELECT(1),
EXAMINE(1),
CREATE(1),
DELETE(1),
RENAME(2),
SUBSCRIBE(1),
UNSUBSCRIBE(1),
LIST(2),
LSUB(2),
STATUS(2), // P2 = list in ()
APPEND(2, 4), // mbox [(flags)] [date-time] literal
// commands valid in selected state (substate of authenticated)
CHECK(0),
CLOSE(0),
EXPUNGE(0),
SEARCH(1, Integer.MAX_VALUE),
FETCH(2),
STORE(3),
COPY(2),
UID(2, Integer.MAX_VALUE), ;
private final String imapCommand;
@SuppressWarnings("unused")
// not yet used
private final int minParamCount;
@SuppressWarnings("unused")
// not yet used
private final int maxParamCount;
IMAPCommand() {
this(null);
}
IMAPCommand(String name) {
this(name, 0);
}
IMAPCommand(int paramCount) {
this(null, paramCount, paramCount);
}
IMAPCommand(int minCount, int maxCount) {
this(null, minCount, maxCount);
}
IMAPCommand(String name, int paramCount) {
this(name, paramCount, paramCount);
}
IMAPCommand(String name, int minCount, int maxCount) {
this.imapCommand = name;
this.minParamCount = minCount;
this.maxParamCount = maxCount;
}
/**
* Get the IMAP protocol string command corresponding to a command code.
*
* @param command the IMAPCommand whose command string is required.
* @return The IMAP protocol string command corresponding to a command code.
*/
public static final String getCommand(IMAPCommand command) {
return command.getIMAPCommand();
}
/**
* Get the IMAP protocol string command for this command
*
* @return The IMAP protocol string command corresponding to this command
*/
public String getIMAPCommand() {
return imapCommand != null ? imapCommand : name();
}
}
/* kate: indent-width 4; replace-tabs on; */
© 2015 - 2025 Weber Informatics LLC | Privacy Policy