public FunctionDefBuilder withParam(String paramName, String type) { params.add(new ParamDef(paramName, type)); return this; }
protected List<FunctionDef> findAvailableFunctions(Class<?> clazz, ClassLoader classLoader) { List<FunctionDef> result = new ArrayList<>(); Class<?> paramClass; for (FunctionDef functionDef : FunctionsRegistry.getInstance().getFunctions()) { try { paramClass = classLoader.loadClass(functionDef.getParams().get(0).getType()); if (paramClass.isAssignableFrom(clazz)) { result.add(functionDef); } } catch (ClassNotFoundException e) { LOGGER.warn("Uncommon error, internal function param type was not resolved: " + functionDef.getParams().get(0).getType()); } } return result; }
private void initParams(String function, List<String> paramValues) { removeParams(); Map<Integer, String> paramValue = new HashMap<>(); if (paramValues != null) { for (int i = 0; i < paramValues.size(); i++) { paramValue.put(i, paramValues.get(i)); } } FunctionDef functionDef = functionSearchService.getFunction(function); ParamDef paramDef; for (int i = 1; i < functionDef.getParams().size(); i++) { paramDef = functionDef.getParams().get(i); ConditionParamPresenter param = newParamPresenter(); currentParams.add(param); param.setName(functionNamingService.getParamName(functionDef.getName(), paramDef.getName())); param.setHelp(functionNamingService.getParamHelp(functionDef.getName(), paramDef.getName())); param.setValue(paramValue.get(i)); view.addParam(param.getView().getElement()); param.setOnChangeCommand(this::onParamChange); } }
@Test public void testParamDefEqualsAndHashCode() { TestCaseBuilder.newTestCase() .addTrueCase(new ParamDef(null, null), new ParamDef(null, null)) .addTrueCase(new ParamDef("name", null), new ParamDef("name", null)) .addTrueCase(new ParamDef("name", "type"), new ParamDef("name", "type")) .addFalseCase(new ParamDef("name", "type"), new ParamDef("name", null)) .addFalseCase(new ParamDef("name", "type"), new ParamDef(null, "type")) .addFalseCase(new ParamDef("name", null), new ParamDef("name1", null)) .addFalseCase(new ParamDef("name", "type"), new ParamDef("name", "type1")) .addFalseCase(new ParamDef("name", "type"), new ParamDef("name1", "type1")) .test(); }
@Test public void testFunctionDefEqualsAndHashCode() { TestCaseBuilder.newTestCase() .addTrueCase(new FunctionDef(null), new FunctionDef(null)) .addTrueCase(new FunctionDef(null, null), new FunctionDef(null, null)) .addTrueCase(new FunctionDef("name"), new FunctionDef("name")) .addTrueCase(new FunctionDef("name", null), new FunctionDef("name", null)) .addTrueCase(new FunctionDef("name", Arrays.asList(new ParamDef("param1", "type1"))), new FunctionDef("name", Arrays.asList(new ParamDef("param1", "type1")))) .addFalseCase(new FunctionDef("name"), new FunctionDef(null)) .addFalseCase(new FunctionDef("name", null), new FunctionDef(null, null)) .addFalseCase(new FunctionDef("name", new ArrayList<>()), new FunctionDef("name", null)) .addFalseCase(new FunctionDef("name"), new FunctionDef("name1")) .addFalseCase(new FunctionDef("name", Arrays.asList(new ParamDef("param1", "type1"))), new FunctionDef("name1", new ArrayList<>())) .addFalseCase(new FunctionDef("name", Arrays.asList(new ParamDef("param1", "type1"))), new FunctionDef("name", Arrays.asList(new ParamDef("param2", "type1")))) .addFalseCase(new FunctionDef("name", Arrays.asList(new ParamDef("param1", "type1"))), new FunctionDef("name", Arrays.asList(new ParamDef("param1", "type2")))) .test(); }