Search in sources :

Example 26 with CastExpr

use of com.github.javaparser.ast.expr.CastExpr in project drools by kiegroup.

the class FEELPropertyAccessibleImplementation method toSetPropertySwitchEntry.

private SwitchEntry toSetPropertySwitchEntry(DMNDeclaredField fieldDefinition) {
    String accessorName = fieldDefinition.overriddenSetterName().orElse(getAccessorName(fieldDefinition, "set"));
    MethodCallExpr setMethod = new MethodCallExpr(new ThisExpr(), accessorName);
    setMethod.addArgument(new CastExpr(StaticJavaParser.parseType(fieldDefinition.getObjectType()), new NameExpr("value")));
    ExpressionStmt setStatement = new ExpressionStmt();
    setStatement.setExpression(setMethod);
    NodeList<Expression> labels = nodeList(new StringLiteralExpr(fieldDefinition.getOriginalMapKey()));
    NodeList<Statement> statements = nodeList(setStatement, new ReturnStmt());
    return new SwitchEntry(labels, SwitchEntry.Type.STATEMENT_GROUP, statements);
}
Also used : Statement(com.github.javaparser.ast.stmt.Statement) NameExpr(com.github.javaparser.ast.expr.NameExpr) StringLiteralExpr(com.github.javaparser.ast.expr.StringLiteralExpr) ExpressionStmt(com.github.javaparser.ast.stmt.ExpressionStmt) Expression(com.github.javaparser.ast.expr.Expression) CastExpr(com.github.javaparser.ast.expr.CastExpr) SwitchEntry(com.github.javaparser.ast.stmt.SwitchEntry) ReturnStmt(com.github.javaparser.ast.stmt.ReturnStmt) ThisExpr(com.github.javaparser.ast.expr.ThisExpr) MethodCallExpr(com.github.javaparser.ast.expr.MethodCallExpr)

Example 27 with CastExpr

use of com.github.javaparser.ast.expr.CastExpr in project drools by kiegroup.

the class KiePMMLRegressionTableFactory method getNumericPredictorExpression.

/**
 * Create a <b>NumericPredictor</b> <code>CastExpr</code>
 * @param numericPredictor
 * @return
 */
static CastExpr getNumericPredictorExpression(final NumericPredictor numericPredictor) {
    boolean withExponent = !Objects.equals(1, numericPredictor.getExponent());
    final String lambdaExpressionMethodName = withExponent ? "evaluateNumericWithExponent" : "evaluateNumericWithoutExponent";
    final String parameterName = "input";
    final MethodCallExpr lambdaMethodCallExpr = new MethodCallExpr();
    lambdaMethodCallExpr.setName(lambdaExpressionMethodName);
    lambdaMethodCallExpr.setScope(new NameExpr(KiePMMLRegressionTable.class.getSimpleName()));
    final NodeList<Expression> arguments = new NodeList<>();
    arguments.add(0, new NameExpr(parameterName));
    arguments.add(1, getExpressionForObject(numericPredictor.getCoefficient().doubleValue()));
    if (withExponent) {
        arguments.add(2, getExpressionForObject(numericPredictor.getExponent().doubleValue()));
    }
    lambdaMethodCallExpr.setArguments(arguments);
    final ExpressionStmt lambdaExpressionStmt = new ExpressionStmt(lambdaMethodCallExpr);
    final LambdaExpr lambdaExpr = new LambdaExpr();
    final Parameter lambdaParameter = new Parameter(new UnknownType(), parameterName);
    lambdaExpr.setParameters(NodeList.nodeList(lambdaParameter));
    lambdaExpr.setBody(lambdaExpressionStmt);
    final String doubleClassName = Double.class.getSimpleName();
    final ClassOrInterfaceType serializableFunctionType = getTypedClassOrInterfaceTypeByTypeNames(SerializableFunction.class.getCanonicalName(), Arrays.asList(doubleClassName, doubleClassName));
    final CastExpr toReturn = new CastExpr();
    toReturn.setType(serializableFunctionType);
    toReturn.setExpression(lambdaExpr);
    return toReturn;
}
Also used : SerializableFunction(org.kie.pmml.api.iinterfaces.SerializableFunction) NodeList(com.github.javaparser.ast.NodeList) LambdaExpr(com.github.javaparser.ast.expr.LambdaExpr) NameExpr(com.github.javaparser.ast.expr.NameExpr) ClassOrInterfaceType(com.github.javaparser.ast.type.ClassOrInterfaceType) ExpressionStmt(com.github.javaparser.ast.stmt.ExpressionStmt) UnknownType(com.github.javaparser.ast.type.UnknownType) Expression(com.github.javaparser.ast.expr.Expression) CastExpr(com.github.javaparser.ast.expr.CastExpr) Parameter(com.github.javaparser.ast.body.Parameter) MethodCallExpr(com.github.javaparser.ast.expr.MethodCallExpr)

Example 28 with CastExpr

use of com.github.javaparser.ast.expr.CastExpr in project drools by kiegroup.

the class KiePMMLRegressionTableFactory method getResultUpdaterSupportedExpression.

/**
 * Create a <b>resultUpdater</b> <code>CastExpr</code>
 * @param normalizationMethod
 * @return
 */
static MethodReferenceExpr getResultUpdaterSupportedExpression(final RegressionModel.NormalizationMethod normalizationMethod) {
    final String thisExpressionMethodName = String.format("update%sResult", normalizationMethod.name());
    final CastExpr castExpr = new CastExpr();
    final String doubleClassName = Double.class.getSimpleName();
    final ClassOrInterfaceType consumerType = getTypedClassOrInterfaceTypeByTypeNames(SerializableFunction.class.getCanonicalName(), Arrays.asList(doubleClassName, doubleClassName));
    castExpr.setType(consumerType);
    castExpr.setExpression(KiePMMLRegressionTable.class.getSimpleName());
    final MethodReferenceExpr toReturn = new MethodReferenceExpr();
    toReturn.setScope(castExpr);
    toReturn.setIdentifier(thisExpressionMethodName);
    return toReturn;
}
Also used : SerializableFunction(org.kie.pmml.api.iinterfaces.SerializableFunction) KiePMMLRegressionTable(org.kie.pmml.models.regression.model.KiePMMLRegressionTable) CastExpr(com.github.javaparser.ast.expr.CastExpr) ClassOrInterfaceType(com.github.javaparser.ast.type.ClassOrInterfaceType) MethodReferenceExpr(com.github.javaparser.ast.expr.MethodReferenceExpr)

Example 29 with CastExpr

use of com.github.javaparser.ast.expr.CastExpr in project drools by kiegroup.

the class KiePMMLRegressionTableFactoryTest method getNumericPredictorExpressionWithExponent.

@Test
public void getNumericPredictorExpressionWithExponent() throws IOException {
    String predictorName = "predictorName";
    int exponent = 2;
    double coefficient = 1.23;
    NumericPredictor numericPredictor = PMMLModelTestUtils.getNumericPredictor(predictorName, exponent, coefficient);
    CastExpr retrieved = KiePMMLRegressionTableFactory.getNumericPredictorExpression(numericPredictor);
    String text = getFileContent(TEST_01_SOURCE);
    Expression expected = JavaParserUtils.parseExpression(String.format(text, coefficient, exponent));
    assertTrue(JavaParserUtils.equalsNode(expected, retrieved));
}
Also used : Expression(com.github.javaparser.ast.expr.Expression) CastExpr(com.github.javaparser.ast.expr.CastExpr) NumericPredictor(org.dmg.pmml.regression.NumericPredictor) Test(org.junit.Test)

Example 30 with CastExpr

use of com.github.javaparser.ast.expr.CastExpr in project drools by kiegroup.

the class KiePMMLRegressionTableFactoryTest method getCategoricalPredictorExpression.

@Test
public void getCategoricalPredictorExpression() throws IOException {
    final String categoricalPredictorMapName = "categoricalPredictorMapName";
    CastExpr retrieved = KiePMMLRegressionTableFactory.getCategoricalPredictorExpression(categoricalPredictorMapName);
    String text = getFileContent(TEST_05_SOURCE);
    Expression expected = JavaParserUtils.parseExpression(String.format(text, categoricalPredictorMapName));
    assertTrue(JavaParserUtils.equalsNode(expected, retrieved));
}
Also used : Expression(com.github.javaparser.ast.expr.Expression) CastExpr(com.github.javaparser.ast.expr.CastExpr) Test(org.junit.Test)

Aggregations

CastExpr (com.github.javaparser.ast.expr.CastExpr)32 Expression (com.github.javaparser.ast.expr.Expression)21 NameExpr (com.github.javaparser.ast.expr.NameExpr)13 MethodCallExpr (com.github.javaparser.ast.expr.MethodCallExpr)11 Test (org.junit.Test)9 ClassOrInterfaceType (com.github.javaparser.ast.type.ClassOrInterfaceType)7 CompilationUnit (com.github.javaparser.ast.CompilationUnit)6 MethodDeclaration (com.github.javaparser.ast.body.MethodDeclaration)6 EnclosedExpr (com.github.javaparser.ast.expr.EnclosedExpr)6 Type (com.github.javaparser.ast.type.Type)6 TypedExpression (org.drools.modelcompiler.builder.generator.TypedExpression)6 NodeList (com.github.javaparser.ast.NodeList)5 StringLiteralExpr (com.github.javaparser.ast.expr.StringLiteralExpr)5 ThisExpr (com.github.javaparser.ast.expr.ThisExpr)5 LambdaExpr (com.github.javaparser.ast.expr.LambdaExpr)4 UnificationTypedExpression (org.drools.modelcompiler.builder.generator.UnificationTypedExpression)4 DrlNameExpr (org.drools.mvel.parser.ast.expr.DrlNameExpr)4 SerializableFunction (org.kie.pmml.api.iinterfaces.SerializableFunction)4 Node (com.github.javaparser.ast.Node)3 AssignExpr (com.github.javaparser.ast.expr.AssignExpr)3