Skip to content

Commit 829afa4

Browse files
committed
DefaultModuleService: get rid of some code smell
The AbstractModuleItem-based case logic should not have been necessary. Let's use the new ModuleItem#getInfo() method instead.
1 parent b9b17f5 commit 829afa4

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

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

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -273,14 +273,9 @@ public <T> void save(final ModuleItem<T> item, final T value) {
273273

274274
final String persistKey = item.getPersistKey();
275275
if (persistKey == null || persistKey.isEmpty()) {
276-
// Attempt to use prefService
277-
if (AbstractModuleItem.class.isAssignableFrom(item.getClass())) {
278-
final Class<?> prefClass = ((AbstractModuleItem<T>)item).getDelegateClass();
279-
final String prefKey = item.getName();
280-
prefService.put(prefClass, prefKey, sValue);
281-
}
282-
// Have to use ModuleItem#saveValue
283-
else item.saveValue(value);
276+
final Class<?> prefClass = delegateClass(item);
277+
final String prefKey = item.getName();
278+
prefService.put(prefClass, prefKey, sValue);
284279
}
285280
else prefService.put(persistKey, sValue);
286281
}
@@ -293,14 +288,9 @@ public <T> T load(final ModuleItem<T> item) {
293288
final String sValue;
294289
final String persistKey = item.getPersistKey();
295290
if (persistKey == null || persistKey.isEmpty()) {
296-
// Attempt to use prefService
297-
if (AbstractModuleItem.class.isAssignableFrom(item.getClass())) {
298-
final Class<?> prefClass = ((AbstractModuleItem<T>)item).getDelegateClass();
299-
final String prefKey = item.getName();
300-
sValue = prefService.get(prefClass, prefKey);
301-
}
302-
// Have to use ModuleItem#loadValue
303-
else return item.loadValue();
291+
final Class<?> prefClass = delegateClass(item);
292+
final String prefKey = item.getName();
293+
sValue = prefService.get(prefClass, prefKey);
304294
}
305295
else sValue = prefService.get(persistKey);
306296

@@ -438,4 +428,14 @@ private <T> ModuleItem<T> getSingleItem(final Module module,
438428
}
439429
return result;
440430
}
431+
432+
private <T> Class<?> delegateClass(final ModuleItem<T> item) {
433+
try {
434+
return item.getInfo().loadDelegateClass();
435+
}
436+
catch (final ClassNotFoundException exc) {
437+
throw new IllegalStateException(exc);
438+
}
439+
}
440+
441441
}

0 commit comments

Comments
 (0)