UICompleter<Object> completer = InputComponents.getCompleterFor(input); if (completer != null) if (input instanceof SelectComponent) converter = (Converter<Object, String>) InputComponents.getItemLabelConverter(converterFactory, (SelectComponent<?, ?>) input); Object value = InputComponents.getValueFor(input); if (value != null)
public static void populateController(Map<String, String> requestedInputs, CommandController controller, ConverterFactory converterFactory) { Map<String, InputComponent<?, ?>> inputs = controller.getInputs(); Set<String> inputKeys = new HashSet<>(inputs.keySet()); if (requestedInputs != null) { inputKeys.retainAll(requestedInputs.keySet()); Set<Map.Entry<String, InputComponent<?, ?>>> entries = inputs.entrySet(); for (Map.Entry<String, InputComponent<?, ?>> entry : entries) { String key = entry.getKey(); InputComponent<?, ?> component = entry.getValue(); String textValue = requestedInputs.get(key); Object value = textValue; if (component != null && textValue != null) { Converter<String, ?> valueConverter = component.getValueConverter(); if (valueConverter != null) { value = valueConverter.convert(textValue); } else { Class<?> valueType = component.getValueType(); if (valueType.isEnum()) { Class<? extends Enum> enumType = (Class<? extends Enum>) valueType; value = Enum.valueOf(enumType, textValue); } } InputComponents.setValueFor(converterFactory, component, value); } else { controller.setValueFor(key, value); } Object actual = controller.getValueFor(key); } } }
String label = InputComponents.getLabelFor(select, false); String description = select.getDescription(); if (!Strings.isNullOrEmpty(description)) Converter<Object, String> itemLabelConverter = InputComponents.getItemLabelConverter(converterFactory, select); List<Object> items = Lists.toList(select.getValueChoices());
.getItemLabelConverter(converterFactory, selectComponent); Iterable<Object> valueChoices = selectComponent.getValueChoices(); List<String> choices = new ArrayList<>(); Object value = InputComponents.getValueFor(selectComponent); if (value != null)
/** * Returns if there is a value set for this {@link InputComponent} */ public static boolean hasValue(InputComponent<?, ?> input) { boolean ret; Object value = InputComponents.getValueFor(input); if (value == null) { ret = false; } else if (value instanceof String && value.toString().isEmpty()) { ret = false; } else if (!input.getValueType().isInstance(value) && value instanceof Iterable && !((Iterable) value).iterator().hasNext()) { ret = false; } else { ret = true; } return ret; }
.add("shortName", String.valueOf(input.getShortName())) .add("valueType", input.getValueType().getName()) .add("inputType", InputComponents.getInputType(input)) .add("enabled", input.isEnabled()) .add("required", input.isRequired()) .add("deprecated", input.isDeprecated()) .add("label", InputComponents.getLabelFor(input, false)); addOptional(objBuilder, "description", input.getDescription()); addOptional(objBuilder, "note", input.getNote()); inputConverter = InputComponents.getItemLabelConverter(converterFactory, selectComponent); JsonArrayBuilder valueChoices = createArrayBuilder(); for (Object valueChoice : selectComponent.getValueChoices())
final Object defaultValue = InputComponents.getValueFor(input); final boolean isMultiple = input instanceof ManyValued; final boolean hasValue = (!InputType.CHECKBOX.equals(InputComponents.getInputType(input)) && !Boolean.class .isAssignableFrom(input.getValueType()) && !boolean.class.isAssignableFrom(input.getValueType())); try
.getItemLabelConverter(converterFactory, (SelectComponent) input); Iterable<?> valueChoices = ((SelectComponent<?, ?>) input).getValueChoices();
private Object promptInputComponent(InputComponent<?, ?> input, Object componentValue) throws InterruptedException String label = InputComponents.getLabelFor(input, false); String description = input.getDescription(); if (!Strings.isNullOrEmpty(description)) String inputType = InputComponents.getInputType(input); if (InputType.SECRET.equals(inputType))
/** * Determines whether two iterables contain equal elements in the same order. More specifically, this method returns * {@code true} if {@code iterable1} and {@code iterable2} contain the same number of elements and every element of * {@code iterable1} is equal to the corresponding element of {@code iterable2}. */ public static boolean areElementsEqual( Iterable<?> iterable1, Iterable<?> iterable2) { if (iterable1 == null || iterable2 == null) { return false; } Iterator<?> iterator1 = iterable1.iterator(); Iterator<?> iterator2 = iterable2.iterator(); while (iterator1.hasNext()) { if (!iterator2.hasNext()) { return false; } Object o1 = iterator1.next(); Object o2 = iterator2.next(); if (!areEqual(o1, o2)) { return false; } } return !iterator2.hasNext(); }
@Override public void validate(UIValidationContext context) { InputComponent<?, ?> currentInputComponent = context.getCurrentInputComponent(); Object value = InputComponents.getValueFor(currentInputComponent); if (value != null) { ValidationResult result = validate(value.toString()); switch (result.getType()) { case ERROR: context.addValidationError(currentInputComponent, result.getMessage()); break; case WARNING: context.addValidationWarning(currentInputComponent, result.getMessage()); break; default: break; } } }
Converter itemLabelConverter = InputComponents.getItemLabelConverter(converterFactory, ((SelectComponent) input)); for (Object choice : valueChoices)
char shortNameChar = input.getShortName(); String shortName = Character.toString(shortNameChar); Object value = convertValueToSafeJson(input.getValueConverter(), InputComponents.getValueFor(input)); Class<?> valueType = input.getValueType(); String javaType = null;
InputComponents.setValueFor(converterFactory, input, commandLine.getArgument().getValues()); populatedInputs.put(name, input); InputComponents.setValueFor(converterFactory, input, resources); InputComponents.setValueFor(converterFactory, input, resolvedOptionValues); InputComponents.setValueFor(converterFactory, input, resolvedOptionValues); InputComponents.setValueFor(converterFactory, input, resolved.get(0)); InputComponents.setValueFor(converterFactory, input, optionValue); InputComponents.setValueFor(converterFactory, input, optionValue);
if (String.class.isAssignableFrom(sourceType)) selectConverter = getItemLabelConverter(converterFactory, selectComponent); if (valueChoices != null) Converter<Object, String> selectConverter = getItemLabelConverter(converterFactory, selectComponent); String valueLabel = selectConverter.convert(value);
char shortNameChar = input.getShortName(); String shortName = Character.toString(shortNameChar); Object inputValue = InputComponents.getValueFor(input);
InputComponents.setValueFor(converterFactory, input, value); return input.getValue();
@Override public void initializeUI(UIBuilder builder) throws Exception { Project project = getSelectedProject(builder); InputComponentFactory inputFactory = builder.getInputComponentFactory(); Furnace furnace = Furnace.instance(getClass().getClassLoader()); AddonRegistry addonRegistry = furnace.getAddonRegistry(); ConverterFactory converterFactory = addonRegistry.getServices(ConverterFactory.class).get(); ProjectOperations projectOperations = addonRegistry.getServices(ProjectOperations.class).get(); List<JavaResource> projectClasses = projectOperations.getProjectClasses(project); targetClasses = inputFactory.createSelectMany("targetClasses", String.class) .setLabel("Target Class") .setDescription("The class where the field will be created").setRequired(true) .setValueChoices( projectClasses.stream() .filter(JavaGenerateSerialVersionUIDCommand::isSerializable) .map(Objects::toString) .collect(Collectors.toList())); UIContext uiContext = builder.getUIContext(); UISelection<Object> initialSelection = uiContext.getInitialSelection(); if (initialSelection.get() instanceof JavaResource) { InputComponents.setValueFor(converterFactory, targetClasses, ((JavaResource) initialSelection.get()).getJavaType().getQualifiedName()); } useDefaultValue = inputFactory.createInput("useDefaultValue", Boolean.class) .setLabel("Generate Default Value?") .setDescription("If true, sets the serialVersionUID field to 1L"); builder.add(targetClasses).add(useDefaultValue); }