/** * Build an object using named arguments. * @param builder The builder to use. * @param args The arguments. * @param <T> The type of object to be built. * @return A new object. */ public static <T> T buildObject(Builder<T> builder, Map<String, Object> args) { for (Map.Entry<String,Object> arg: args.entrySet()) { String name = arg.getKey(); // Use Groovy to invoke, since we're called from Groovy InvokerHelper.invokeMethod(builder, "set" + StringUtils.capitalize(name), arg.getValue()); } return builder.build(); } }
protected final void initModuleSettingsPanel(VBox panel) { panel.getStyleClass().addAll(Style.DEAULT_CONTAINER.css()); panel.getStyleClass().addAll(Style.MODULE_CONTAINER.css()); panel.getChildren().add(footer); footer.runButton().setOnAction(event -> { ErrorTracker errorTracker = new ErrorTracker(); Builder<? extends AbstractParameters> builder = getBuilder(errorTracker .andThen(s -> eventStudio().broadcast(new AddNotificationRequestEvent(NotificationType.ERROR, s, DefaultI18nContext.getInstance().i18n("Invalid parameters"))))); if (!errorTracker.errorOnBuild) { eventStudio().broadcast(new TaskExecutionRequestEvent(id(), builder.build())); } }); modulePanel.setCenter(panel); eventStudio().addAnnotatedListeners(this); }
/** * Build an object using named arguments. * @param builder The builder to use. * @param args The arguments. * @param <T> The type of object to be built. * @return A new object. */ public static <T> T buildObject(Builder<T> builder, Map<String, Object> args) { for (Map.Entry<String,Object> arg: args.entrySet()) { String name = arg.getKey(); // Use Groovy to invoke, since we're called from Groovy InvokerHelper.invokeMethod(builder, "set" + StringUtils.capitalize(name), arg.getValue()); } return builder.build(); } }