Author: kcardineaud Date: 2011-08-25 15:46:02 +0200 (Thu, 25 Aug 2011) New Revision: 243 Url: http://nuiton.org/repositories/revision/scmwebeditor/243 Log: Change ScmWebEditorConfigOption to be an enum that implements OptionDef Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java trunk/src/main/resources/scmwebeditor.properties Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java =================================================================== --- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java 2011-08-25 09:42:26 UTC (rev 242) +++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java 2011-08-25 13:46:02 UTC (rev 243) @@ -31,7 +31,7 @@ import org.nuiton.util.ApplicationConfig; import org.nuiton.util.ArgumentsParserException; -public class ScmWebEditorConfig extends ScmWebEditorConfigOption { +public class ScmWebEditorConfig { private static final Log log = LogFactory.getLog(ScmWebEditorConfig.class); @@ -39,13 +39,13 @@ protected static ApplicationConfig config; - public static ApplicationConfig getConfig() { + public static ApplicationConfig getConfig(String... args) { if(config==null) { synchronized (ScmWebEditorConfig.class) { if(config==null) { - config = new ApplicationConfig(PROPERTIESFILES); + config = new ApplicationConfig(ScmWebEditorConfigOption.CONFIG_FILE.getDefaultValue()); try { - config.parse(); + config.parse(args); } catch (ArgumentsParserException e) { if(log.isErrorEnabled()) { log.error("Error when parsing ApplicationConfig",e); @@ -58,14 +58,20 @@ } public static List<String> getEditableFiles() { - getConfig(); - return config.getOptionAsList(EDITABLESFILES).getOption(); + return getEditableFiles(getConfig()); } + public static List<String> getEditableFiles(ApplicationConfig config) { + return config.getOptionAsList(ScmWebEditorConfigOption.EDITABLESFILES.key).getOption(); + } + public static String getKey() { - getConfig(); - return config.getOption(KEY); + return getKey(getConfig()); } + public static String getKey(ApplicationConfig config) { + return config.getOption(ScmWebEditorConfigOption.COOKIES_PRIVATE_KEY.key); + } + } Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java =================================================================== --- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java 2011-08-25 09:42:26 UTC (rev 242) +++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java 2011-08-25 13:46:02 UTC (rev 243) @@ -24,22 +24,82 @@ */ package org.nuiton.scmwebeditor; -public class ScmWebEditorConfigOption { +import org.nuiton.util.ApplicationConfig; +import org.nuiton.util.ApplicationConfig.OptionDef; - /** - * Nom du fichier de configuration - */ - protected static final String PROPERTIESFILES = "scmwebeditor.properties"; - - /** - * propriété contenant la liste des fichiers éditables - */ - protected static final String EDITABLESFILES = "editableFiles"; +public enum ScmWebEditorConfigOption implements OptionDef { + + CONFIG_FILE(ApplicationConfig.CONFIG_FILE_NAME, "The file name", "scmwebeditor.properties", String.class, false, false), + EDITABLESFILES("editableFiles", "description" , "Files types that are editable", String.class, true, true), + COOKIES_PRIVATE_KEY("cookiePrivateKey", "Private key for cookies" , null , String.class, true, true); + - /** - * Propriété contenant la clé - */ - protected static final String KEY = "key"; + public final String key; + public final String description; + public String defaultValue; + public final Class<?> type; + public boolean _transient; + public boolean _final; + + + ScmWebEditorConfigOption(String key, String description, String defaultValue, + Class<?> type, boolean _transient, boolean _final) { + this.key = key; + this.description = description; + this.defaultValue = defaultValue; + this.type = type; + this._final = _final; + this._transient = _transient; + } + + + + @Override + public String getKey() { + return key; + } + + @Override + public Class<?> getType() { + return type; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public String getDefaultValue() { + return defaultValue; + } + + @Override + public boolean isTransient() { + return _transient; + } + + @Override + public boolean isFinal() { + return _final; + } + + @Override + public void setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue ; + } + + @Override + public void setTransient(boolean isTransient) { + this._transient=isTransient; + } + + @Override + public void setFinal(boolean isFinal) { + this._final = isFinal; + } + + Modified: trunk/src/main/resources/scmwebeditor.properties =================================================================== --- trunk/src/main/resources/scmwebeditor.properties 2011-08-25 09:42:26 UTC (rev 242) +++ trunk/src/main/resources/scmwebeditor.properties 2011-08-25 13:46:02 UTC (rev 243) @@ -23,4 +23,4 @@ # #L% ### editableFiles=text,xml,javascript,sh,x-tex,x-java -key=ZvcCyhfRTVZoQz3B/IpYdw== \ No newline at end of file +cookiePrivateKey=ZvcCyhfRTVZoQz3B/IpYdw== \ No newline at end of file