diff options
Diffstat (limited to 'protocols/bundles/org.eclipse.ecf.protocol.msn/src/org/eclipse/ecf/protocol/msn/internal/encode/ResponseCommand.java')
-rw-r--r-- | protocols/bundles/org.eclipse.ecf.protocol.msn/src/org/eclipse/ecf/protocol/msn/internal/encode/ResponseCommand.java | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/protocols/bundles/org.eclipse.ecf.protocol.msn/src/org/eclipse/ecf/protocol/msn/internal/encode/ResponseCommand.java b/protocols/bundles/org.eclipse.ecf.protocol.msn/src/org/eclipse/ecf/protocol/msn/internal/encode/ResponseCommand.java new file mode 100644 index 000000000..e6d6244ab --- /dev/null +++ b/protocols/bundles/org.eclipse.ecf.protocol.msn/src/org/eclipse/ecf/protocol/msn/internal/encode/ResponseCommand.java @@ -0,0 +1,84 @@ +/******************************************************************************* + * Copyright (c) 2005, 2007 Remy Suen + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Remy Suen <remy.suen@gmail.com> - initial API and implementation + ******************************************************************************/ +package org.eclipse.ecf.protocol.msn.internal.encode; + +/** + * The ResponseCommand class processes one line of simple output from the MSN + * servers. It provides methods to handle the output easier by separating the + * command and its parameters. + */ +public class ResponseCommand { + + /** + * The command of the output, there is a large variety of commands in use + * currently and are all three characters long in uppercase. + */ + private String cmd; + + /** + * The parameters that was sent with the command. + */ + private String[] params; + + /** + * Creates a new ResponseCommand that will process the given line. The + * constructor does not do anything outside of calling + * + * @link #process(String) on the given line. + * + * @param line + * the line that this should represent + */ + public ResponseCommand(String line) { + process(line); + } + + /** + * Process the given line. It will store the first three characters as the + * command and the rest of the line will be split by a single space and + * stored as a String array. If <code>line</code> is null, both the + * command and the String array will store null pointers. + * + * @param line + * the line to be processed + */ + public void process(String line) { + if (line == null) { + cmd = null; + params = null; + } else { + cmd = line.substring(0, 3); + params = StringUtils.splitOnSpace(line.substring(4)); + } + } + + /** + * Returns the command of this line. + * + * @return the three character command + */ + public String getCommand() { + return cmd; + } + + /** + * Returns the string literal stored at the given index in params. If the + * first parameter is desired, a 0 should be passed. + * + * @param index + * the parameter at the given index + * @return the desired parameter that is at the given index + */ + public String getParam(int index) { + return params[index]; + } + +} |