Author: sletellier Date: 2010-11-23 11:32:58 +0100 (Tue, 23 Nov 2010) New Revision: 1958 Url: http://nuiton.org/repositories/revision/nuiton-utils/1958 Log: - Add loadDefaultOptions method to load all options extends OptionDef - Add interface ActionDef - Add loadActions to load actions extends ActionDef Modified: trunk/src/main/java/org/nuiton/util/ApplicationConfig.java Modified: trunk/src/main/java/org/nuiton/util/ApplicationConfig.java =================================================================== --- trunk/src/main/java/org/nuiton/util/ApplicationConfig.java 2010-11-22 14:09:46 UTC (rev 1957) +++ trunk/src/main/java/org/nuiton/util/ApplicationConfig.java 2010-11-23 10:32:58 UTC (rev 1958) @@ -379,6 +379,38 @@ protected PropertyChangeSupport pcs = new PropertyChangeSupport(this); /** + * Load default options of enum pass in param (enum must extend {@link OptionDef}) + * + * @param optionClass to load + * @param <O> type of enum extend {@link OptionDef} + */ + protected <O extends OptionDef> void loadDefaultOptions(Class<O> optionClass) { + + // load default option (included configuration file name : important) + for (O o : optionClass.getEnumConstants()) { + if (o.getDefaultValue() != null) { + setDefaultOption(o.getKey(), o.getDefaultValue()); + } + } + } + + /** + * Load actions of enum pass in param (enum must extend {@link ActionDef}) + * + * @param actionClass to load + * @param <A> type of enum extend {@link ActionDef} + */ + protected <A extends ActionDef> void loadActions(Class<A> actionClass) { + + // load actions + for (A a : actionClass.getEnumConstants()) { + for (String alias : a.getAliases()) { + addActionAlias(alias, a.getAction()); + } + } + } + + /** * Action to save user configuration. * <p/> * Add it as a listener of the configuration for a given property. @@ -471,6 +503,26 @@ } /** + * Le contrat de marquage des action, on utilise cette interface pour + * caracteriser une action. + * + * @author sletellier + * @since 1.5.2-SNAPSHOT + */ + public interface ActionDef extends Serializable { + + /** + * @return action to run + */ + String getAction(); + + /** + * @return aliases used to execute action + */ + String[] getAliases(); + } + + /** * Defines a runtime action to be launched via the {@link #doAction()} * method. *
participants (1)
-
sletellier@users.nuiton.org