Author: toad
Date: 2008-06-18 19:02:46 +0000 (Wed, 18 Jun 2008)
New Revision: 20450
Added:
branches/db4o/freenet/src/freenet/config/NullBooleanCallback.java
branches/db4o/freenet/src/freenet/config/NullIntCallback.java
branches/db4o/freenet/src/freenet/config/NullLongCallback.java
branches/db4o/freenet/src/freenet/config/NullShortCallback.java
branches/db4o/freenet/src/freenet/config/NullStringCallback.java
Modified:
branches/db4o/freenet/src/freenet/config/SubConfig.java
Log:
Fix more NPEs: allow null for the callback for any config option except
StringArray
Added: branches/db4o/freenet/src/freenet/config/NullBooleanCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/config/NullBooleanCallback.java
(rev 0)
+++ branches/db4o/freenet/src/freenet/config/NullBooleanCallback.java
2008-06-18 19:02:46 UTC (rev 20450)
@@ -0,0 +1,15 @@
+package freenet.config;
+
+import freenet.support.api.BooleanCallback;
+
+public class NullBooleanCallback implements BooleanCallback {
+
+ public boolean get() {
+ return false;
+ }
+
+ public void set(boolean val) throws InvalidConfigValueException {
+ // Ignore
+ }
+
+}
Added: branches/db4o/freenet/src/freenet/config/NullIntCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/config/NullIntCallback.java
(rev 0)
+++ branches/db4o/freenet/src/freenet/config/NullIntCallback.java
2008-06-18 19:02:46 UTC (rev 20450)
@@ -0,0 +1,15 @@
+package freenet.config;
+
+import freenet.support.api.IntCallback;
+
+public class NullIntCallback implements IntCallback {
+
+ public int get() {
+ return 0;
+ }
+
+ public void set(int val) throws InvalidConfigValueException {
+ // Ignore
+ }
+
+}
Added: branches/db4o/freenet/src/freenet/config/NullLongCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/config/NullLongCallback.java
(rev 0)
+++ branches/db4o/freenet/src/freenet/config/NullLongCallback.java
2008-06-18 19:02:46 UTC (rev 20450)
@@ -0,0 +1,15 @@
+package freenet.config;
+
+import freenet.support.api.LongCallback;
+
+public class NullLongCallback implements LongCallback {
+
+ public long get() {
+ return 0;
+ }
+
+ public void set(long val) throws InvalidConfigValueException {
+ // Ignore
+ }
+
+}
Added: branches/db4o/freenet/src/freenet/config/NullShortCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/config/NullShortCallback.java
(rev 0)
+++ branches/db4o/freenet/src/freenet/config/NullShortCallback.java
2008-06-18 19:02:46 UTC (rev 20450)
@@ -0,0 +1,15 @@
+package freenet.config;
+
+import freenet.support.api.ShortCallback;
+
+public class NullShortCallback implements ShortCallback {
+
+ public short get() {
+ return 0;
+ }
+
+ public void set(short val) throws InvalidConfigValueException {
+ // Ignore
+ }
+
+}
Added: branches/db4o/freenet/src/freenet/config/NullStringCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/config/NullStringCallback.java
(rev 0)
+++ branches/db4o/freenet/src/freenet/config/NullStringCallback.java
2008-06-18 19:02:46 UTC (rev 20450)
@@ -0,0 +1,15 @@
+package freenet.config;
+
+import freenet.support.api.StringCallback;
+
+public class NullStringCallback implements StringCallback {
+
+ public String get() {
+ return null;
+ }
+
+ public void set(String val) throws InvalidConfigValueException {
+ // Ignore
+ }
+
+}
Modified: branches/db4o/freenet/src/freenet/config/SubConfig.java
===================================================================
--- branches/db4o/freenet/src/freenet/config/SubConfig.java 2008-06-18
18:51:00 UTC (rev 20449)
+++ branches/db4o/freenet/src/freenet/config/SubConfig.java 2008-06-18
19:02:46 UTC (rev 20450)
@@ -62,36 +62,43 @@
public void register(String optionName, int defaultValue, int sortOrder,
boolean expert, boolean forceWrite, String shortDesc,
String longDesc, IntCallback cb) {
+ if(cb == null) cb = new NullIntCallback();
register(new IntOption(this, optionName, defaultValue, null,
sortOrder, expert, forceWrite, shortDesc, longDesc, cb));
}
public void register(String optionName, long defaultValue, int
sortOrder,
boolean expert, boolean forceWrite, String shortDesc,
String longDesc, LongCallback cb) {
+ if(cb == null) cb = new NullLongCallback();
register(new LongOption(this, optionName, defaultValue, null,
sortOrder, expert, forceWrite, shortDesc, longDesc, cb));
}
public void register(String optionName, String defaultValueString, int
sortOrder,
boolean expert, boolean forceWrite, String shortDesc,
String longDesc, IntCallback cb) {
+ if(cb == null) cb = new NullIntCallback();
register(new IntOption(this, optionName, defaultValueString,
sortOrder, expert, forceWrite, shortDesc, longDesc, cb));
}
public void register(String optionName, String defaultValueString, int
sortOrder,
boolean expert, boolean forceWrite, String shortDesc,
String longDesc, LongCallback cb) {
+ if(cb == null) cb = new NullLongCallback();
register(new LongOption(this, optionName, defaultValueString,
sortOrder, expert, forceWrite, shortDesc, longDesc, cb));
}
public void register(String optionName, boolean defaultValue, int
sortOrder,
boolean expert, boolean forceWrite, String shortDesc,
String longDesc, BooleanCallback cb) {
+ if(cb == null) cb = new NullBooleanCallback();
register(new BooleanOption(this, optionName, defaultValue,
sortOrder, expert, forceWrite, shortDesc, longDesc, cb));
}
public void register(String optionName, String defaultValue, int
sortOrder,
boolean expert, boolean forceWrite, String shortDesc,
String longDesc, StringCallback cb) {
+ if(cb == null) cb = new NullStringCallback();
register(new StringOption(this, optionName, defaultValue,
sortOrder, expert, forceWrite, shortDesc, longDesc, cb));
}
public void register(String optionName, short defaultValue, int
sortOrder,
boolean expert, boolean forceWrite, String shortDesc,
String longDesc, ShortCallback cb) {
+ if(cb == null) cb = new NullShortCallback();
register(new ShortOption(this, optionName, defaultValue,
sortOrder, expert, forceWrite, shortDesc, longDesc, cb));
}