blob: 8c4996c88ad99aaa2b2fe6d433a3243abe42c301 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 IBM Corporation.
* 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:
* IBM Corporation - Initial API and implementation
*******************************************************************************/
package org.eclipse.ptp.utils.core;
import java.io.IOException;
import java.io.StreamTokenizer;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
/**
* Convert a string containing a command and arguments separated by whitespace into an
* array of strings for each token. Preserve whitespace if the token is
* quoted.
* @deprecated This calss was replaced by {@link org.eclipse.ptp.utils.core.linux.ArgumentParser}.
*/
public class ArgumentParser {
private String cmdLine;
private List<String> arguments = null;
// Prevent instances
//public ArgumentParser(String cmdLine) {
private ArgumentParser(String cmdLine) {
this.cmdLine = cmdLine;
}
/**
* Parse the command line into arguments.
*
* @return string array containing individual arguments
*/
public List<String> getArguments() {
if (arguments != null) {
return arguments;
}
List<String> result = new ArrayList<String>();
StreamTokenizer tokens = new StreamTokenizer(new StringReader(cmdLine));
tokens.resetSyntax();
tokens.wordChars('a', 'z');
tokens.wordChars('A', 'Z');
tokens.wordChars('0', '9');
tokens.wordChars('+', '/');
tokens.wordChars(':', ':');
tokens.wordChars('=', '=');
tokens.wordChars('_', '_');
tokens.whitespaceChars(0, ' ');
tokens.quoteChar('"');
tokens.quoteChar('\'');
try {
while (tokens.nextToken() != StreamTokenizer.TT_EOF) {
result.add(tokens.sval);
}
arguments = result;
} catch (IOException e) {
}
return arguments;
}
}