1 26 27 package org.objectweb.jonas.tools; 28 29 import java.util.StringTokenizer ; 30 34 public class GenerateWrapperConf 35 { 36 37 62 String propertyName = null; 63 int index = 1; 64 65 68 void syntax() 69 { 70 System.err.println("syntax: GenerateWrapperConf [-d <delimiters>] [-i <indx>] property.name args"); 71 System.exit(1); 72 } 73 74 77 void syntax(String arg) 78 { 79 System.err.println("GenerateWrapperConf: unrecognized argument '" + arg + "'"); 80 syntax(); 81 } 82 83 86 void syntax(Exception e) 87 { 88 System.err.println(e.toString()); 89 syntax(); 90 } 91 92 95 void generateKey(String val) 96 { 97 System.out.println (propertyName + "." + index + "=" + val); 98 index += 1; 99 } 100 101 105 void run(String [] args) 106 { 107 String delimiter = null; 108 int i = 0; 110 for ( ; i < args.length; i++) 111 { 112 if (args[i].charAt(0) != '-') break; 113 try { 114 switch(args[i].charAt(1)) 115 { 116 case 'h': 117 case '?': 118 usage(); 119 120 case 'd': 121 delimiter = args[++i]; 122 break; 123 124 case 'i': 125 index = Integer.parseInt(args[++i]); 126 break; 127 128 default: 129 syntax(args[i]); 130 } 131 } 132 catch (StringIndexOutOfBoundsException e) { 133 syntax(args[i]); 134 } 135 catch (NumberFormatException e) { 136 syntax(e); 137 } 138 } 139 140 if ((args.length - i) < 2) syntax(); 142 propertyName = args[i]; 143 i += 1; 144 145 if (delimiter == null) { 147 for ( ; i < args.length; ++i) generateKey(args[i]); 148 } 149 150 else { 152 StringTokenizer st = new StringTokenizer (args[i], delimiter); 153 while (st.hasMoreTokens()) generateKey(st.nextToken()); 154 i += 1; 155 } 156 157 if ((args.length - i) > 0) syntax(); 158 } 159 160 163 public static void main(String [] args) 164 { 165 if (args.length == 0) 166 usage(); 167 else 168 new GenerateWrapperConf().run(args); 169 } 170 171 174 private static void usage() 175 { 176 System.out.println( 177 "\nUsage: java org.objectweb.java.tools.GenerateWrapperConf [-h | -?]\n" + 178 " [-d <delimiters>] [-i <index>] property.name args\n" + 179 "\n" + 180 " -h or -? display this help message.\n" + 181 " -d <delimiters> specifies a string of delimiters used to parse\n" + 182 " args into individual tokens.\n" + 183 " -i <index> specifies the initial index for generated property\n" + 184 " values. The default value is 1.\n" + 185 " property.name specifies the property name to be generated.\n" + 186 " Property names for the individual tokens are formed\n" + 187 " as 'property.name.index' where 'index' is incremented\n" + 188 " for each token.\n" + 189 " args Either a single string to be parsed using StringTokenizer\n" + 190 " and the delimiter specified by the -d option.\n" + 191 " This form is used to process the CLASSPATH variable.\n\n" + 192 " Or, an array of strings to be processed as individual tokens.\n" + 193 " This form is used to process JAVA_OPTS style variables.\n" 194 ); 195 System.exit(1); 196 } 197 } | Popular Tags |