CommonCodegenUtils { public static void setAssignExpressionValue( final BlockStmt body, final String assignExpressionName, final Expression value) { AssignExpr assignExpr = getAssignExpression(body, assignExpressionName) .orElseThrow(() -> new KiePMMLException(String.format(MISSING_VARIABLE_IN_BODY, assignExpressionName, body))); assignExpr.setValue(value); } private  CommonCodegenUtils(); static void populateMethodDeclarations(final ClassOrInterfaceDeclaration toPopulate,
                                                  final Collection<MethodDeclaration> methodDeclarations); static ExpressionStmt getFilteredKiePMMLNameValueExpression(final String kiePMMLNameValueListParam,
                                                                       final String fieldNameToRef,
                                                                       boolean stringLiteralComparison); static void addMapPopulation(final Map<String, MethodDeclaration> toAdd,
                                        final BlockStmt body,
                                        final String mapName); static MethodDeclaration getMethodDeclaration(final String methodName,
                                                         final Map<String, ClassOrInterfaceType> parameterNameTypeMap); static MethodDeclaration getMethodDeclaration(final String methodName); static ReturnStmt getReturnStmt(final String returnedVariableName); static ClassOrInterfaceType getTypedClassOrInterfaceType(final String className,
                                                                    final List<String> typesName ); static void setAssignExpressionValue( final BlockStmt body, final String assignExpressionName, final Expression value); static Optional<AssignExpr> getAssignExpression(final BlockStmt body, final String assignExpressionName); static Optional<ExplicitConstructorInvocationStmt> getExplicitConstructorInvocationStmt(final BlockStmt body); static void setExplicitConstructorInvocationArgument(final ExplicitConstructorInvocationStmt constructorInvocationStmt, final String parameterName, final String value); static Optional<NameExpr> getExplicitConstructorInvocationParameter(final ExplicitConstructorInvocationStmt constructorInvocationStmt, final String parameterName); static Optional<MethodDeclaration> getMethodDeclaration(final ClassOrInterfaceDeclaration classOrInterfaceDeclaration, final String methodName); static MethodDeclaration addMethod(final MethodDeclaration methodTemplate,
                                                 final ClassOrInterfaceDeclaration tableTemplate,
                                                 final String methodName); static Optional<VariableDeclarator> getVariableDeclarator(final BlockStmt body, final String variableName); static String OPTIONAL_FILTERED_KIEPMMLNAMEVALUE_NAME; }
@Test public void setAssignExpressionValueMatch() { final BlockStmt body = new BlockStmt(); AssignExpr assignExpr = new AssignExpr(); assignExpr.setTarget(new NameExpr("MATCH")); body.addStatement(assignExpr); final Expression value = new DoubleLiteralExpr(24.22); CommonCodegenUtils.setAssignExpressionValue(body, "MATCH", value); assertEquals(value, assignExpr.getValue()); }
@Test(expected = KiePMMLException.class) public void setAssignExpressionValueNoMatch() { final BlockStmt body = new BlockStmt(); AssignExpr assignExpr = new AssignExpr(); assignExpr.setTarget(new NameExpr("MATCH")); body.addStatement(assignExpr); CommonCodegenUtils.setAssignExpressionValue(body, "NOMATCH", new DoubleLiteralExpr(24.22)); }
@Test(expected = KiePMMLException.class) public void setAssignExpressionValueNoAssignExpressions() { final BlockStmt body = new BlockStmt(); CommonCodegenUtils.setAssignExpressionValue(body, "NOMATCH", new DoubleLiteralExpr(24.22)); }