@Override public <T> void save(final ModuleItem<T> item, final T value) { if (!item.isPersisted()) return; if (Objects.equals(item.getDefaultValue(), value)) { // NB: Do not persist the value if it is the default. // This is nice if the default value might change later, // such as when iteratively developing a script. prefService.remove(prefClass(item), prefKey(item)); return; } final String sValue = value == null ? "" : convertService.convert(value, String.class); // do not persist if object cannot be converted back from a string if (!convertService.supports(sValue, item.getType())) return; prefService.put(prefClass(item), prefKey(item), sValue); }
@Override public <T> void save(final ModuleItem<T> item, final T value) { if (!item.isPersisted()) return; if (Objects.equals(item.getDefaultValue(), value)) { // NB: Do not persist the value if it is the default. // This is nice if the default value might change later, // such as when iteratively developing a script. prefService.remove(prefClass(item), prefKey(item)); return; } final String sValue = value == null ? "" : convertService.convert(value, String.class); // do not persist if object cannot be converted back from a string if (!convertService.supports(sValue, item.getType())) return; prefService.put(prefClass(item), prefKey(item), sValue); }
@Override public <T> T load(final ModuleItem<T> item) { // if there is nothing to load from persistence return nothing if (!item.isPersisted()) return null; final String sValue = prefService.get(prefClass(item), prefKey(item)); // if persisted value has never been set before return null if (sValue == null) return null; return convertService.convert(sValue, item.getType()); }
@Override public <T> T load(final ModuleItem<T> item) { // if there is nothing to load from persistence return nothing if (!item.isPersisted()) return null; final String sValue = prefService.get(prefClass(item), prefKey(item)); // if persisted value has never been set before return null if (sValue == null) return null; return convertService.convert(sValue, item.getType()); }