Skip to content

Commit 4a01d97

Browse files
committed
DefaultModuleService: do not persist default value
This makes iterative script development slightly more convenient. Thanks to Leon Yang for the idea.
1 parent c0ffe39 commit 4a01d97

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/main/java/org/scijava/module/DefaultModuleService.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
import org.scijava.service.Service;
6161
import org.scijava.thread.ThreadService;
6262
import org.scijava.util.ClassUtils;
63+
import org.scijava.util.MiscUtils;
6364

6465
/**
6566
* Default service for keeping track of and executing available modules.
@@ -266,6 +267,13 @@ public <T> ModuleItem<T> getSingleOutput(final Module module,
266267
public <T> void save(final ModuleItem<T> item, final T value) {
267268
if (!item.isPersisted()) return;
268269

270+
if (MiscUtils.equal(item.getDefaultValue(), value)) {
271+
// NB: Do not persist the value if it is the default.
272+
// This is nice if the default value might change later,
273+
// such as when iteratively developing a script.
274+
return;
275+
}
276+
269277
final String sValue = value == null ? "" : value.toString();
270278

271279
// do not persist if object cannot be converted back from a string

0 commit comments

Comments
 (0)