@@ -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