diff options
Diffstat (limited to 'java/src/Ice/PropertiesI.java')
-rw-r--r-- | java/src/Ice/PropertiesI.java | 154 |
1 files changed, 46 insertions, 108 deletions
diff --git a/java/src/Ice/PropertiesI.java b/java/src/Ice/PropertiesI.java index b192803a815..83a004be14b 100644 --- a/java/src/Ice/PropertiesI.java +++ b/java/src/Ice/PropertiesI.java @@ -116,7 +116,27 @@ class PropertiesI implements Properties public synchronized String[] parseCommandLineOptions(String prefix, String[] options) { - return null; + java.util.ArrayList result = new java.util.ArrayList(); + for (int i = 0; i < options.length; i++) + { + String opt = options[i]; + if (opt.startsWith("--" + prefix + ".")) + { + if (opt.indexOf('=') == -1) + { + opt += "=1"; + } + + parseLine(opt.substring(2)); + } + else + { + result.add(opt); + } + } + String[] arr = new String[result.size()]; + result.toArray(arr); + return arr; } public synchronized void @@ -144,61 +164,28 @@ class PropertiesI implements Properties return p; } - static void - addArgumentPrefix(String prefix) + PropertiesI() { - _argumentPrefixes.add(prefix); } PropertiesI(String[] args) { - String file = getConfigFile(args); - - if (file.length() > 0) - { - load(file); - } - - StringSeqHolder argsH = new StringSeqHolder(); - argsH.value = args; - parseArgs(argsH); - setProperty("Ice.Config", file); - } - - PropertiesI(StringSeqHolder args) - { - String file = getConfigFile(args.value); - - if (file.length() > 0) - { - load(file); - } - - parseArgs(args); - setProperty("Ice.Config", file); - } - - PropertiesI(String[] args, String file) - { - if (file == null) - { - file = ""; - } - - if (file.length() > 0) + for (int i = 0; i < args.length; i++) { - load(file); + if (args[i].startsWith("--Ice.Config")) + { + String line = args[i]; + if (line.indexOf('=') == -1) + { + line += "=1"; + } + parseLine(line.substring(2)); + } } - StringSeqHolder argsH = new StringSeqHolder(); - argsH.value = args; - parseArgs(argsH); - setProperty("Ice.Config", file); - } + String file = getProperty("Ice.Config"); - PropertiesI(StringSeqHolder args, String file) - { - if (file == null) + if (file.equals("1")) { file = ""; } @@ -208,23 +195,25 @@ class PropertiesI implements Properties load(file); } - parseArgs(args); setProperty("Ice.Config", file); } - private String - getConfigFile(String[] args) + PropertiesI(StringSeqHolder args) { - for (int i = 0; i < args.length; i++) + for (int i = 0; i < args.value.length; i++) { - if (args[i].startsWith("--Ice.Config")) + if (args.value[i].startsWith("--Ice.Config")) { - String line = args[i]; + String line = args.value[i]; if (line.indexOf('=') == -1) { line += "=1"; } parseLine(line.substring(2)); + String[] arr = new String[args.value.length - 1]; + System.arraycopy(args.value, 0, arr, 0, i); + System.arraycopy(args.value, i + 1, arr, i, args.value.length - i); + args.value = arr; } } @@ -235,63 +224,12 @@ class PropertiesI implements Properties file = ""; } - return file; - } - - private void - parseArgs(StringSeqHolder args) - { - int idx = 0; - while (idx < args.value.length) + if (file.length() > 0) { - boolean match = false; - String arg = args.value[idx]; - int beg = arg.indexOf("--"); - if (beg == 0) - { - String rest = arg.substring(2); - if (rest.startsWith("Ice.")) - { - match = true; - } - else - { - java.util.Iterator p = _argumentPrefixes.iterator(); - while (p.hasNext()) - { - String prefix = (String)p.next(); - if (rest.startsWith(prefix + '.')) - { - match = true; - break; - } - } - } - - if (match) - { - String[] arr = new String[args.value.length - 1]; - System.arraycopy(args.value, 0, arr, 0, idx); - if (idx < args.value.length - 1) - { - System.arraycopy(args.value, idx + 1, arr, idx, args.value.length - idx - 1); - } - args.value = arr; - - if (arg.indexOf('=') == -1) - { - arg += "=1"; - } - - parseLine(arg.substring(2)); - } - } - - if (!match) - { - idx++; - } + load(file); } + + setProperty("Ice.Config", file); } private void |