Author: nextgens
Date: 2007-04-15 18:36:29 +0000 (Sun, 15 Apr 2007)
New Revision: 12753
Added:
trunk/freenet/src/freenet/config/EnumerableOption.java
Modified:
trunk/freenet/src/freenet/config/BooleanOption.java
trunk/freenet/src/freenet/config/Option.java
trunk/freenet/src/freenet/config/StringOption.java
Log:
Create a new interface in the configuration framework: EnumerableOption
Modified: trunk/freenet/src/freenet/config/BooleanOption.java
===================================================================
--- trunk/freenet/src/freenet/config/BooleanOption.java 2007-04-15 17:46:39 UTC
(rev 12752)
+++ trunk/freenet/src/freenet/config/BooleanOption.java 2007-04-15 18:36:29 UTC
(rev 12753)
@@ -5,7 +5,7 @@
import freenet.support.api.BooleanCallback;
-public class BooleanOption extends Option {
+public class BooleanOption extends Option implements EnumerableOption {
final boolean defaultValue;
final BooleanCallback cb;
@@ -67,4 +67,13 @@
currentValue = defaultValue;
}
+ public String[] getPossibleValues() {
+ return new String[] { "true", "false" };
+ }
+
+ public void setPossibleValues(String[] val) {}
+
+ public boolean isEnumerable() {
+ return true;
+ }
}
Added: trunk/freenet/src/freenet/config/EnumerableOption.java
===================================================================
--- trunk/freenet/src/freenet/config/EnumerableOption.java
(rev 0)
+++ trunk/freenet/src/freenet/config/EnumerableOption.java 2007-04-15
18:36:29 UTC (rev 12753)
@@ -0,0 +1,11 @@
+/* This code is part of Freenet. It is distributed under the GNU General
+ * Public License, version 2 (or at your option any later version). See
+ * http://www.gnu.org/ for further details of the GPL. */
+
+package freenet.config;
+
+public interface EnumerableOption {
+ public String[] getPossibleValues();
+ public void setPossibleValues(String[] val);
+ public String getValueString();
+}
Modified: trunk/freenet/src/freenet/config/Option.java
===================================================================
--- trunk/freenet/src/freenet/config/Option.java 2007-04-15 17:46:39 UTC
(rev 12752)
+++ trunk/freenet/src/freenet/config/Option.java 2007-04-15 18:36:29 UTC
(rev 12753)
@@ -91,4 +91,8 @@
public abstract void setDefault();
public abstract String getDefault();
+
+ public boolean isEnumerable() {
+ return false;
+ }
}
Modified: trunk/freenet/src/freenet/config/StringOption.java
===================================================================
--- trunk/freenet/src/freenet/config/StringOption.java 2007-04-15 17:46:39 UTC
(rev 12752)
+++ trunk/freenet/src/freenet/config/StringOption.java 2007-04-15 18:36:29 UTC
(rev 12753)
@@ -5,11 +5,12 @@
import freenet.support.api.StringCallback;
-public class StringOption extends Option {
+public class StringOption extends Option implements EnumerableOption {
final String defaultValue;
final StringCallback cb;
private String currentValue;
+ private String[] possibleValues;
public StringOption(SubConfig conf, String optionName, String
defaultValue, int sortOrder,
boolean expert, boolean forceWrite, String shortDesc,
String longDesc, StringCallback cb) {
@@ -29,7 +30,7 @@
public void setValue(String val) throws InvalidConfigValueException {
cb.set(val);
- this.currentValue = val;
+ this.currentValue = val; // Callbacks are in charge of ensuring
it matches with possibleValues
}
public String getValueString() {
@@ -53,4 +54,15 @@
return defaultValue;
}
+ public void setPossibleValues(String[] val) {
+ possibleValues = val;
+ }
+
+ public String[] getPossibleValues() {
+ return possibleValues;
+ }
+
+ public boolean isEnumerable() {
+ return (possibleValues != null);
+ }
}