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); } } }
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);
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); }