1 /* 2 * Copyright (C) 2012 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 * use this file except in compliance with the License. You may obtain a copy of 6 * the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 * License for the specific language governing permissions and limitations under 14 * the License. 15 */ 16 17 package com.android.inputmethod.keyboard.tools; 18 19 import java.util.Arrays; 20 import java.util.LinkedList; 21 import java.util.NoSuchElementException; 22 import java.util.jar.JarFile; 23 24 public class MakeKeyboardText { 25 static class Options { 26 private static final String OPTION_JAVA = "-java"; 27 28 public final String mJava; 29 usage(String message)30 public static void usage(String message) { 31 if (message != null) { 32 System.err.println(message); 33 } 34 System.err.println("usage: make-keyboard-text " + OPTION_JAVA + " <java_output_dir>"); 35 System.exit(1); 36 } 37 Options(final String[] argsArray)38 public Options(final String[] argsArray) { 39 final LinkedList<String> args = new LinkedList<>(Arrays.asList(argsArray)); 40 String arg = null; 41 String java = null; 42 try { 43 while (!args.isEmpty()) { 44 arg = args.removeFirst(); 45 if (arg.equals(OPTION_JAVA)) { 46 java = args.removeFirst(); 47 } else { 48 usage("Unknown option: " + arg); 49 } 50 } 51 } catch (NoSuchElementException e) { 52 usage("Option " + arg + " needs argument"); 53 } 54 55 mJava = java; 56 } 57 } 58 main(final String[] args)59 public static void main(final String[] args) { 60 final Options options = new Options(args); 61 final JarFile jar = JarUtils.getJarFile(MakeKeyboardText.class); 62 final MoreKeysResources resources = new MoreKeysResources(jar); 63 resources.writeToJava(options.mJava); 64 } 65 } 66