Loading tools/dicttool/src/android/inputmethod/latin/dicttool/Compress.java +6 −8 Original line number Diff line number Diff line Loading @@ -55,11 +55,10 @@ public class Compress { return "compress <filename>: Compresses a file using gzip compression"; } public int getArity() { return 1; } public void run() throws IOException { if (mArgs.length < 1) { throw new RuntimeException("Not enough arguments for command " + COMMAND); } final String inFilename = mArgs[0]; final String outFilename = inFilename + SUFFIX; final FileInputStream input = new FileInputStream(new File(inFilename)); Loading @@ -79,11 +78,10 @@ public class Compress { return "uncompress <filename>: Uncompresses a file compressed with gzip compression"; } public int getArity() { return 1; } public void run() throws IOException { if (mArgs.length < 1) { throw new RuntimeException("Not enough arguments for command " + COMMAND); } final String inFilename = mArgs[0]; final String outFilename = inFilename + SUFFIX; final FileInputStream input = new FileInputStream(new File(inFilename)); Loading tools/dicttool/src/android/inputmethod/latin/dicttool/Dicttool.java +9 −28 Original line number Diff line number Diff line Loading @@ -27,7 +27,6 @@ public class Dicttool { public void setArgs(String[] args) throws IllegalArgumentException { mArgs = args; } abstract public int getArity(); abstract public String getHelp(); abstract public void run() throws Exception; } Loading Loading @@ -62,40 +61,23 @@ public class Dicttool { return sCommands.containsKey(commandName); } private String mPreviousCommand = null; // local to the getNextCommand function private Command getNextCommand(final ArrayList<String> arguments) { private Command getCommand(final ArrayList<String> arguments) { final String firstArgument = arguments.get(0); final String commandName; if (isCommand(firstArgument)) { commandName = firstArgument; arguments.remove(0); } else if (isCommand(mPreviousCommand)) { commandName = mPreviousCommand; } else { throw new RuntimeException("Unknown command : " + firstArgument); } final Command command = getCommandInstance(commandName); final int arity = command.getArity(); if (arguments.size() < arity) { throw new RuntimeException("Not enough arguments to command " + commandName); } final String[] argsArray = new String[arity]; arguments.subList(0, arity).toArray(argsArray); for (int i = 0; i < arity; ++i) { // For some reason, ArrayList#removeRange is protected arguments.remove(0); } final String[] argsArray = arguments.toArray(new String[arguments.size()]); command.setArgs(argsArray); mPreviousCommand = commandName; return command; } private void execute(final ArrayList<String> arguments) { ArrayList<Command> commandsToExecute = new ArrayList<Command>(); while (!arguments.isEmpty()) { commandsToExecute.add(getNextCommand(arguments)); } for (final Command command : commandsToExecute) { final Command command = getCommand(arguments); try { command.run(); } catch (Exception e) { Loading @@ -104,7 +86,6 @@ public class Dicttool { return; } } } public static void main(final String[] args) { if (0 == args.length) { Loading tools/dicttool/src/android/inputmethod/latin/dicttool/Info.java +5 −4 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package com.android.inputmethod.latin.dicttool; public class Info extends Dicttool.Command { public static final String COMMAND = "info"; public Info() { } Loading @@ -24,12 +26,11 @@ public class Info extends Dicttool.Command { return "info <filename>: prints various information about a dictionary file"; } public int getArity() { return 1; } public void run() { // TODO: implement this if (mArgs.length < 1) { throw new RuntimeException("Not enough arguments for command " + COMMAND); } System.out.println("Not implemented yet"); } } Loading
tools/dicttool/src/android/inputmethod/latin/dicttool/Compress.java +6 −8 Original line number Diff line number Diff line Loading @@ -55,11 +55,10 @@ public class Compress { return "compress <filename>: Compresses a file using gzip compression"; } public int getArity() { return 1; } public void run() throws IOException { if (mArgs.length < 1) { throw new RuntimeException("Not enough arguments for command " + COMMAND); } final String inFilename = mArgs[0]; final String outFilename = inFilename + SUFFIX; final FileInputStream input = new FileInputStream(new File(inFilename)); Loading @@ -79,11 +78,10 @@ public class Compress { return "uncompress <filename>: Uncompresses a file compressed with gzip compression"; } public int getArity() { return 1; } public void run() throws IOException { if (mArgs.length < 1) { throw new RuntimeException("Not enough arguments for command " + COMMAND); } final String inFilename = mArgs[0]; final String outFilename = inFilename + SUFFIX; final FileInputStream input = new FileInputStream(new File(inFilename)); Loading
tools/dicttool/src/android/inputmethod/latin/dicttool/Dicttool.java +9 −28 Original line number Diff line number Diff line Loading @@ -27,7 +27,6 @@ public class Dicttool { public void setArgs(String[] args) throws IllegalArgumentException { mArgs = args; } abstract public int getArity(); abstract public String getHelp(); abstract public void run() throws Exception; } Loading Loading @@ -62,40 +61,23 @@ public class Dicttool { return sCommands.containsKey(commandName); } private String mPreviousCommand = null; // local to the getNextCommand function private Command getNextCommand(final ArrayList<String> arguments) { private Command getCommand(final ArrayList<String> arguments) { final String firstArgument = arguments.get(0); final String commandName; if (isCommand(firstArgument)) { commandName = firstArgument; arguments.remove(0); } else if (isCommand(mPreviousCommand)) { commandName = mPreviousCommand; } else { throw new RuntimeException("Unknown command : " + firstArgument); } final Command command = getCommandInstance(commandName); final int arity = command.getArity(); if (arguments.size() < arity) { throw new RuntimeException("Not enough arguments to command " + commandName); } final String[] argsArray = new String[arity]; arguments.subList(0, arity).toArray(argsArray); for (int i = 0; i < arity; ++i) { // For some reason, ArrayList#removeRange is protected arguments.remove(0); } final String[] argsArray = arguments.toArray(new String[arguments.size()]); command.setArgs(argsArray); mPreviousCommand = commandName; return command; } private void execute(final ArrayList<String> arguments) { ArrayList<Command> commandsToExecute = new ArrayList<Command>(); while (!arguments.isEmpty()) { commandsToExecute.add(getNextCommand(arguments)); } for (final Command command : commandsToExecute) { final Command command = getCommand(arguments); try { command.run(); } catch (Exception e) { Loading @@ -104,7 +86,6 @@ public class Dicttool { return; } } } public static void main(final String[] args) { if (0 == args.length) { Loading
tools/dicttool/src/android/inputmethod/latin/dicttool/Info.java +5 −4 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package com.android.inputmethod.latin.dicttool; public class Info extends Dicttool.Command { public static final String COMMAND = "info"; public Info() { } Loading @@ -24,12 +26,11 @@ public class Info extends Dicttool.Command { return "info <filename>: prints various information about a dictionary file"; } public int getArity() { return 1; } public void run() { // TODO: implement this if (mArgs.length < 1) { throw new RuntimeException("Not enough arguments for command " + COMMAND); } System.out.println("Not implemented yet"); } }