/** Creates a mutable copy of the given module item. */ private <T> DefaultMutableModuleItem<T> copy(final ModuleItem<T> item) { return new DefaultMutableModuleItem<>(this, item); }
private <T> void assignAttribute(final DefaultMutableModuleItem<T> item, final String k, final Object v) { // CTR: There must be an easier way to do this. // Just compile the thing using javac? Or parse via javascript, maybe? if (is(k, "callback")) item.setCallback(as(v, String.class)); else if (is(k, "choices")) item.setChoices(asList(v, item.getType())); else if (is(k, "columns")) item.setColumnCount(as(v, int.class)); else if (is(k, "description")) item.setDescription(as(v, String.class)); else if (is(k, "initializer")) item.setInitializer(as(v, String.class)); else if (is(k, "validater")) item.setValidater(as(v, String.class)); else if (is(k, "type")) item.setIOType(as(v, ItemIO.class)); else if (is(k, "label")) item.setLabel(as(v, String.class)); else if (is(k, "max")) item.setMaximumValue(as(v, item.getType())); else if (is(k, "min")) item.setMinimumValue(as(v, item.getType())); else if (is(k, "name")) item.setName(as(v, String.class)); else if (is(k, "persist")) item.setPersisted(as(v, boolean.class)); else if (is(k, "persistKey")) item.setPersistKey(as(v, String.class)); else if (is(k, "required")) item.setRequired(as(v, boolean.class)); else if (is(k, "softMax")) item.setSoftMaximum(as(v, item.getType())); else if (is(k, "softMin")) item.setSoftMinimum(as(v, item.getType())); else if (is(k, "stepSize")) item.setStepSize(as(v, double.class)); else if (is(k, "style")) item.setWidgetStyle(as(v, String.class)); else if (is(k, "visibility")) item.setVisibility(as(v, ItemVisibility.class)); else if (is(k, "value")) item.setDefaultValue(as(v, item.getType())); else item.set(k, v.toString()); }
private <T> void addItem(final String name, final Class<T> type, final Map<String, Object> attrs, final boolean explicit) { final DefaultMutableModuleItem<T> item = new DefaultMutableModuleItem<>(info, name, type); for (final String key : attrs.keySet()) { final Object value = attrs.get(key); assignAttribute(item, key, value); } if (item.isInput()) info.registerInput(item); if (item.isOutput()) { info.registerOutput(item); // NB: Only append the return value as an extra // output when no explicit outputs are declared. if (explicit) info.setReturnValueAppended(false); } }
public AlphabetModuleInfo() { // So much fun to construct modules by hand! Who needs commands? setModuleClass(AlphabetModule.class); final DefaultMutableModuleItem<StringBuilder> bufferItem = new DefaultMutableModuleItem<>(this, "buffer", StringBuilder.class); bufferItem.setIOType(ItemIO.BOTH); addInput(bufferItem); addInput(new DefaultMutableModuleItem<>(this, "length", int.class)); }
private <T> void assignAttribute(final DefaultMutableModuleItem<T> item, final String k, final Object v) { // CTR: There must be an easier way to do this. // Just compile the thing using javac? Or parse via javascript, maybe? if (is(k, "callback")) item.setCallback(as(v, String.class)); else if (is(k, "choices")) item.setChoices(asList(v, item.getType())); else if (is(k, "columns")) item.setColumnCount(as(v, int.class)); else if (is(k, "description")) item.setDescription(as(v, String.class)); else if (is(k, "initializer")) item.setInitializer(as(v, String.class)); else if (is(k, "validater")) item.setValidater(as(v, String.class)); else if (is(k, "type")) item.setIOType(as(v, ItemIO.class)); else if (is(k, "label")) item.setLabel(as(v, String.class)); else if (is(k, "max")) item.setMaximumValue(as(v, item.getType())); else if (is(k, "min")) item.setMinimumValue(as(v, item.getType())); else if (is(k, "name")) item.setName(as(v, String.class)); else if (is(k, "persist")) item.setPersisted(as(v, boolean.class)); else if (is(k, "persistKey")) item.setPersistKey(as(v, String.class)); else if (is(k, "required")) item.setRequired(as(v, boolean.class)); else if (is(k, "softMax")) item.setSoftMaximum(as(v, item.getType())); else if (is(k, "softMin")) item.setSoftMinimum(as(v, item.getType())); else if (is(k, "stepSize")) item.setStepSize(as(v, double.class)); else if (is(k, "style")) item.setWidgetStyle(as(v, String.class)); else if (is(k, "visibility")) item.setVisibility(as(v, ItemVisibility.class)); else if (is(k, "value")) item.setDefaultValue(as(v, item.getType())); else item.set(k, v.toString()); }
private <T> void addItem(final String name, final Class<T> type, final Map<String, Object> attrs, final boolean explicit) { final DefaultMutableModuleItem<T> item = new DefaultMutableModuleItem<>(info, name, type); for (final String key : attrs.keySet()) { final Object value = attrs.get(key); assignAttribute(item, key, value); } if (item.isInput()) info.registerInput(item); if (item.isOutput()) { info.registerOutput(item); // NB: Only append the return value as an extra // output when no explicit outputs are declared. if (explicit) info.setReturnValueAppended(false); } }
/** Creates a mutable copy of the given module item. */ private <T> DefaultMutableModuleItem<T> copy(final ModuleItem<T> item) { return new DefaultMutableModuleItem<>(this, item); }
/** Adds an input to the list. */ default <T> MutableModuleItem<T> addInput(final String name, final Class<T> type) { final DefaultMutableModuleItem<T> item = new DefaultMutableModuleItem<>(this, name, type); addInput(item); return item; }
/** Adds an input to the list. */ default <T> MutableModuleItem<T> addInput(final String name, final Class<T> type) { final DefaultMutableModuleItem<T> item = new DefaultMutableModuleItem<>(this, name, type); addInput(item); return item; }
/** Adds an output to the list. */ default <T> MutableModuleItem<T> addOutput(final String name, final Class<T> type) { final DefaultMutableModuleItem<T> item = new DefaultMutableModuleItem<>(this, name, type); addOutput(item); return item; }
/** Adds an output to the list. */ default <T> MutableModuleItem<T> addOutput(final String name, final Class<T> type) { final DefaultMutableModuleItem<T> item = new DefaultMutableModuleItem<>(this, name, type); addOutput(item); return item; }