Index: maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserFromProperties.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserFromProperties.java:1.3 maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserFromProperties.java:1.4 --- maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserFromProperties.java:1.3 Mon Mar 24 01:34:00 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserFromProperties.java Mon Mar 24 01:43:12 2008 @@ -45,8 +45,8 @@ /** * Initialise un contexte de parseur à partir d'un fichier de propriétés. * - * @param src la source où lire les définitions (un fichier de propriétés) - * * @param injects values to inject in main config default properties + * @param src la source où lire les définitions (un fichier de propriétés) + * @param injects values to inject in main config default properties * @return un contexte de parseur avec les définitions lues * @throws java.io.IOException if any problem while reading source */ @@ -68,33 +68,12 @@ } } - // récupération des clefs d'options - /*List categories; - Map> cdefinitions; - Map> cmodifiers; - - detectConfigs(properties, - categories = new ArrayList(), - cdefinitions = new HashMap>(), - cmodifiers = new HashMap>() - ); - - List okeys; - List odefinitions; - - detectOptions(properties, categories, - odefinitions = new ArrayList(), - okeys = new ArrayList() - );*/ - - //ParserContext context = createParseContext(categories, cdefinitions, cmodifiers, okeys, odefinitions); - ConfigLoader configLoader = new ConfigLoader(injects); configLoader.doLoad(properties); OptionLoader optionLoader = new OptionLoader(configLoader.getCategoriesStr()); optionLoader.doLoad(properties); - + ParserContext context = new ParserContext(); // construction du context de parsing des options @@ -110,124 +89,4 @@ return context; } - /*public ParserContext createParseContext(List categories, Map> cdefinitions, Map> cmodifiers, List okeys, List odefinitions) { - - ParserContext context = new ParserContext(); - - // construction du context de parsing des options - OptionsContext options = new OptionsContext( - context, - okeys.toArray(new String[okeys.size()]), - odefinitions.toArray(new String[okeys.size()]) - ); - - // construction du context de parsing des configs - ConfigsContext configs = new ConfigsContext( - context, - categories.toArray(new String[categories.size()]), - cdefinitions, - cmodifiers); - - context.setOptions(options); - context.setConfigs(configs); - return context; - }*/ - - /*private void detectOptions(Properties properties, List categories, List odefinitions, List okeys) { - Map optionDefs = new HashMap(); - - String categoriesStr = ""; - if (!categories.isEmpty()) { - StringBuilder sb = new StringBuilder(); - for (String category : categories) { - sb.append('|').append(category); - } - categoriesStr = sb.substring(1); - - } - List defaultOptions = DefaultOptionAction.getConfigKeys(); - for (Object o : properties.keySet()) { - String fullKey = o.toString(); - if (!fullKey.endsWith(DefinitionParserUtil.ODEFINITION_KEY_SUFFIX)) { - continue; - } - String key = fullKey.substring(0, fullKey.length() - ODEFINITION_KEY_PREFIX_LENGTH); - String realDef = properties.getProperty(fullKey); - if (defaultOptions.contains(fullKey)) { - // do not add this, this is a generated option - log.warn("generic option " + key + " used instead of customize one, you should delete this option from your configuration..."); - // use default definition - realDef = DefaultOptionAction.valueOf(key).def(); - defaultOptions.remove(fullKey); - } - optionDefs.put(fullKey, realDef); - } - - // add default options not already found - for (String optionKey : defaultOptions) { - // get defaultOption - for (DefaultOptionAction option : DefaultOptionAction.values()) { - if (option.configKey().equals(optionKey)) { - optionDefs.put(optionKey, option.def()); - } - } - } - - List keys = new ArrayList(optionDefs.keySet()); - - // on trie les clefs d'options une seule fois - // ensuite on travaille sur cet ordre établi. - Collections.sort(keys); - - // récupérations des définitions d'options - for (String optionKey : keys) { - String realDef = optionDefs.get(optionKey); - realDef = realDef.replace("@categories@", categoriesStr); - String key = optionKey.substring(0, optionKey.length() - ODEFINITION_KEY_PREFIX_LENGTH); - if (log.isDebugEnabled()) { - log.debug("new option " + key + " : " + realDef); - } - okeys.add(key); - odefinitions.add(realDef); - } - } - - protected void detectConfigs(Properties properties, List categories, Map> cdefinitions, Map> cmodifiers) { - - for (Object o : properties.keySet()) { - String key = o.toString(); - if (!key.contains(DefinitionParserUtil.CDEFINITION_KEY_FACTOR)) { - continue; - } - - int pos = key.indexOf(DefinitionParserUtil.CDEFINITION_KEY_FACTOR); - String cat = key.substring(0, pos); - String ckey = key.substring(pos + CDEFINITION_KEY_FACTOR_LENGTH); - List defs, mods; - if (!categories.contains(cat)) { - // found a new config category - categories.add(cat); - cdefinitions.put(cat, defs = new ArrayList()); - cmodifiers.put(cat, mods = new ArrayList()); - } else { - defs = cdefinitions.get(cat); - mods = cmodifiers.get(cat); - } - String def = properties.getProperty(key); - ConfigDefEntry cdef = new ConfigDefEntry(ckey, def); - defs.add(cdef); - String mod = properties.getProperty(cat + DefinitionParserUtil.CMODIFIERS_KEY_FACTOR + ckey); - if (mod != null && !"".equals(mod)) { - // only save modifiers if we found one - ConfigDefEntry cmod = new ConfigDefEntry(ckey, mod); - mods.add(cmod); - } - } - - // on trie les catégories une seule fois - // ensuite on travaille sur cet ordre établi. - Collections.sort(categories); - } */ - - } Index: maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserContexts.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserContexts.java:1.2 maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserContexts.java:1.3 --- maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserContexts.java:1.2 Mon Mar 24 01:34:00 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserContexts.java Mon Mar 24 01:43:12 2008 @@ -102,9 +102,6 @@ /** @author tony */ public static class OptionsContext extends AbsractDefinitionContext { - //protected final String[] okeys; - //protected final String[] odefinitions; - protected final List source; /** la liste des alias d'option déjà rencontrées pendant le parsing */ @@ -116,16 +113,6 @@ /** la liste des clefs d'arguments d'options déjà rencontrées pendant le parsing */ protected final List optionArgumentKeyUsed; - OptionsContext(ParserContext context, String[] keys, String[] definitions) { - super(context, true); - //this.okeys = keys; - //this.odefinitions = definitions; - this.optionArgumentKeyUsed = new ArrayList(); - this.optionKeyUsed = new ArrayList(); - this.aliaKeyUsed = new ArrayList(); - source = null; - } - public OptionsContext(ParserContext context, List options) { super(context, true); this.optionArgumentKeyUsed = new ArrayList(); @@ -144,14 +131,6 @@ addSon(optionContext); } } - /*for (int i = 0, j = okeys.length; i < j; i++) { - String key = okeys[i]; - String definition = odefinitions[i]; - if (checkOptionSyntax(key, definition)) { - OptionContext optionContext = parseOption(key, definition); - addSon(optionContext); - } - }*/ } OptionContext parseOption(String key, String definition) { @@ -261,6 +240,7 @@ optionKeyUsed.clear(); optionArgumentKeyUsed.clear(); aliaKeyUsed.clear(); + source.clear(); } } @@ -597,30 +577,13 @@ */ public static class ConfigsContext extends AbsractDefinitionContext { - //protected final String[] categories; - //protected final Map> definitions; - //protected final Map> modifiers; - - protected List safeCategories; - protected final List source; - - protected ConfigsContext(ParserContext parent, String[] categories, - Map> definitions, - Map> modifiers) { - super(parent, true); - //this.categories = categories; - //this.definitions = definitions; - //this.modifiers = modifiers; - this.source = null; - } + + protected List safeCategories; public ConfigsContext(ParserContext parent, List configs) { super(parent, true); this.source = configs; - //this.categories = null; - //this.definitions = null; - //this.modifiers = null; } protected void parseConfigs() { @@ -837,8 +800,6 @@ protected void clear() { super.clear(); source.clear(); - //definitions.clear(); - //modifiers.clear(); safeCategories.clear(); safeCategories = null; }