Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
if (clause == null) {
return null;
}
clause = clause.trim();
if (clause.length() == 0) {
return null;
}
String[] tokens = tokenize(clause, getDelimiter());
ArrayList parameters = new ArrayList();
for (int i = 1; i < tokens.length; i++) {
parameters.add(tokens[i]);
}
Command command = (Command) commands.get(tokens[0]);
if (command == null) {
throw new UnknownCommandError(tokens[0]);
}
return command.run(getContext(), parameters);
}
public String[] tokenize(String s, String d) {
return s.split(d);
}
Реализовав строковый режим, мы легко можем реализовать и потоковый:
public void interpret(BufferedReader in,
PrintWriter out, PrintWriter err)
throws IOException {
while (true) {
String prompt = context.getProperty("$PROMPT");
if (prompt != null && prompt.length() > 0) {
out.print(prompt);
out.flush();
}
String clause = in.readLine();
if (clause == null) {
break;
}
String result = null;
try {
result = interpretClause(clause);
} catch (CliError ce) {
err.println(ce);
if (mustStopOnError()) {
break;
}
}
if (result != null) {
out.println(result);
}
if (mustQuit()) {
break;
}