1 55 56 package org.jboss.axis.utils; 57 58 64 65 import org.jboss.logging.Logger; 66 67 import java.net.MalformedURLException ; 68 import java.net.URL ; 69 import java.util.ArrayList ; 70 import java.util.Vector ; 71 72 public class Options 73 { 74 private static Logger log = Logger.getLogger(Options.class.getName()); 75 76 String args[] = null; 77 Vector usedArgs = null; 78 URL defaultURL = null; 79 80 83 86 89 public Options(String _args[]) throws MalformedURLException 90 { 91 if (_args == null) 92 { 93 _args = new String []{}; 94 } 95 args = _args; 96 usedArgs = null; 97 defaultURL = new URL ("http://localhost:8080/axis/servlet/AxisServlet"); 98 99 102 103 104 try 105 { 106 getURL(); 107 } 108 catch (MalformedURLException e) 109 { 110 log.error(Messages.getMessage("cantDoURL00")); 111 throw e; 112 } 113 getUser(); 114 getPassword(); 115 116 } 119 120 public void setDefaultURL(String url) throws MalformedURLException 121 { 122 defaultURL = new URL (url); 123 } 124 125 public void setDefaultURL(URL url) 126 { 127 defaultURL = url; 128 } 129 130 136 public int isFlagSet(char optChar) 137 { 138 int value = 0; 139 int loop; 140 int i; 141 142 for (loop = 0; usedArgs != null && loop < usedArgs.size(); loop++) 143 { 144 String arg = (String )usedArgs.elementAt(loop); 145 if (arg.charAt(0) != '-') continue; 146 for (i = 0; i < arg.length(); i++) 147 if (arg.charAt(i) == optChar) value++; 148 } 149 150 for (loop = 0; loop < args.length; loop++) 151 { 152 if (args[loop] == null || args[loop].length() == 0) continue; 153 if (args[loop].charAt(0) != '-') continue; 154 while (args[loop] != null && 155 (i = args[loop].indexOf(optChar)) != -1) 156 { 157 args[loop] = args[loop].substring(0, i) + args[loop].substring(i + 1); 158 if (args[loop].length() == 1) 159 args[loop] = null; 160 value++; 161 if (usedArgs == null) usedArgs = new Vector (); 162 usedArgs.add("-" + optChar); 163 } 164 } 165 return (value); 166 } 167 168 179 public String isValueSet(char optChar) 180 { 181 String value = null; 182 int loop; 183 int i; 184 185 for (loop = 0; usedArgs != null && loop < usedArgs.size(); loop++) 186 { 187 String arg = (String )usedArgs.elementAt(loop); 188 if (arg.charAt(0) != '-' || arg.charAt(1) != optChar) 189 continue; 190 value = arg.substring(2); 191 if (loop + 1 < usedArgs.size()) 192 value = (String )usedArgs.elementAt(++loop); 193 } 194 195 for (loop = 0; loop < args.length; loop++) 196 { 197 if (args[loop] == null || args[loop].length() == 0) continue; 198 if (args[loop].charAt(0) != '-') continue; 199 i = args[loop].indexOf(optChar); 200 if (i != 1) continue; 201 if (i != args[loop].length() - 1) 202 { 203 value = args[loop].substring(i + 1); 205 args[loop] = args[loop].substring(0, i); 206 } 207 else 208 { 209 args[loop] = args[loop].substring(0, i); 211 212 if (loop + 1 < args.length && args[loop + 1] != null) 214 { 215 if (args[loop + 1].charAt(0) != '-') 217 { 218 value = args[loop + 1]; 219 args[loop + 1] = null; 220 } 221 } 222 else 223 { 224 } 227 } 228 if (args[loop].length() == 1) 229 args[loop] = null; 230 } 233 if (value != null) 234 { 235 if (usedArgs == null) usedArgs = new Vector (); 236 usedArgs.add("-" + optChar); 237 if (value.length() > 0) usedArgs.add(value); 238 } 239 return (value); 240 } 241 242 246 public String getRemainingFlags() 247 { 248 StringBuffer sb = null; 249 int loop; 250 251 for (loop = 0; loop < args.length; loop++) 252 { 253 if (args[loop] == null || args[loop].length() == 0) continue; 254 if (args[loop].charAt(0) != '-') continue; 255 if (sb == null) sb = new StringBuffer (); 256 sb.append(args[loop].substring(1)); 257 } 258 return (sb == null ? null : sb.toString()); 259 } 260 261 265 public String [] getRemainingArgs() 266 { 267 ArrayList al = null; 268 int loop; 269 270 for (loop = 0; loop < args.length; loop++) 271 { 272 if (args[loop] == null || args[loop].length() == 0) continue; 273 if (args[loop].charAt(0) == '-') continue; 274 if (al == null) al = new ArrayList (); 275 al.add((String )args[loop]); 276 } 277 if (al == null) return (null); 278 String a[] = new String [al.size()]; 279 for (loop = 0; loop < al.size(); loop++) 280 a[loop] = (String )al.get(loop); 281 return (a); 282 } 283 284 public String getURL() throws MalformedURLException 287 { 288 String tmp; 289 String host = null; String port = null; String servlet = null; String protocol = null; 293 294 URL url = null; 295 296 org.jboss.axis.client.Call.initialize(); 298 299 if ((tmp = isValueSet('l')) != null) 300 { 301 url = new URL (tmp); 302 host = url.getHost(); 303 port = "" + url.getPort(); 304 servlet = url.getFile(); 305 protocol = url.getProtocol(); 306 } 307 308 if ((tmp = isValueSet('f')) != null) 309 { 310 host = ""; 311 port = "-1"; 312 servlet = tmp; 313 protocol = "file"; 314 } 315 316 tmp = isValueSet('h'); 317 if (host == null) host = tmp; 318 tmp = isValueSet('p'); 319 if (port == null) port = tmp; 320 tmp = isValueSet('s'); 321 if (servlet == null) servlet = tmp; 322 323 if (host == null) host = defaultURL.getHost(); 324 if (port == null) port = "" + defaultURL.getPort(); 325 if (servlet == null) 326 servlet = defaultURL.getFile(); 327 else if (servlet.length() > 0 && servlet.charAt(0) != '/') 328 servlet = "/" + servlet; 329 330 if (url == null) 331 { 332 if (protocol == null) protocol = defaultURL.getProtocol(); 333 tmp = protocol + "://" + host; 334 if (port != null && !port.equals("-1")) tmp += ":" + port; 335 if (servlet != null) tmp += servlet; 336 } 337 else 338 tmp = url.toString(); 339 log.debug(Messages.getMessage("return02", "getURL", tmp)); 340 return (tmp); 341 } 342 343 public String getHost() 344 { 345 try 346 { 347 URL url = new URL (getURL()); 348 return (url.getHost()); 349 } 350 catch (Exception exp) 351 { 352 return ("localhost"); 353 } 354 } 355 356 public int getPort() 357 { 358 try 359 { 360 URL url = new URL (getURL()); 361 return (url.getPort()); 362 } 363 catch (Exception exp) 364 { 365 return (-1); 366 } 367 } 368 369 public String getUser() 370 { 371 return (isValueSet('u')); 372 } 373 374 public String getPassword() 375 { 376 return (isValueSet('w')); 377 } 378 } 381 | Popular Tags |