@Override public <T> T getDefaultValue(final ModuleItem<T> item) { final T defaultValue = item.getDefaultValue(); if (defaultValue != null) return defaultValue; final T min = item.getMinimumValue(); if (min != null) return min; final T softMin = item.getSoftMinimum(); if (softMin != null) return softMin; final T max = item.getMaximumValue(); if (max != null) return max; final T softMax = item.getSoftMaximum(); if (softMax != null) return softMax; if (Number.class.isAssignableFrom(item.getType())) { final T zero = convertService.convert("0", item.getType()); if (zero != null) return zero; } // no known default value return null; }
@Override public <T> T getDefaultValue(final ModuleItem<T> item) { final T defaultValue = item.getDefaultValue(); if (defaultValue != null) return defaultValue; final T min = item.getMinimumValue(); if (min != null) return min; final T softMin = item.getSoftMinimum(); if (softMin != null) return softMin; final T max = item.getMaximumValue(); if (max != null) return max; final T softMax = item.getSoftMaximum(); if (softMax != null) return softMax; if (Number.class.isAssignableFrom(item.getType())) { final T zero = convertService.convert("0", item.getType()); if (zero != null) return zero; } // no known default value return null; }
@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); }
private void assertItem(final String name, final Class<?> type, final String label, final ItemIO ioType, final boolean required, final boolean persist, final String persistKey, final String style, final Object value, final Object min, final Object max, final Object softMin, final Object softMax, final Number stepSize, final List<?> choices, final ModuleItem<?> item) { assertEquals(name, item.getName()); assertSame(type, item.getType()); assertEquals(label, item.getLabel()); assertSame(ioType, item.getIOType()); assertEquals(required, item.isRequired()); assertEquals(persist, item.isPersisted()); assertEquals(persistKey, item.getPersistKey()); assertEquals(style, item.getWidgetStyle()); assertEquals(value, item.getDefaultValue()); assertEquals(min, item.getMinimumValue()); assertEquals(max, item.getMaximumValue()); assertEquals(softMin, item.getSoftMinimum()); assertEquals(softMax, item.getSoftMaximum()); assertEquals(stepSize, item.getStepSize()); assertEquals(choices, item.getChoices()); }