Search in sources :

Example 21 with VariableDeclarator

use of com.github.javaparser.ast.body.VariableDeclarator in project javaparser by javaparser.

the class SymbolResolutionResolutionTest method getTypeOfField.

@Test
public void getTypeOfField() {
    CompilationUnit cu = parseSample("ReflectionFieldOfItself");
    ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "MyClass");
    VariableDeclarator field = Navigator.demandField(clazz, "PUBLIC");
    TypeSolver typeSolver = new ReflectionTypeSolver();
    ResolvedType ref = JavaParserFacade.get(typeSolver).getType(field);
    assertEquals("int", ref.describe());
}
Also used : CompilationUnit(com.github.javaparser.ast.CompilationUnit) ClassOrInterfaceDeclaration(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration) TypeSolver(com.github.javaparser.symbolsolver.model.resolution.TypeSolver) ReflectionTypeSolver(com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver) ReflectionTypeSolver(com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver) ResolvedType(com.github.javaparser.resolution.types.ResolvedType) VariableDeclarator(com.github.javaparser.ast.body.VariableDeclarator) AbstractResolutionTest(com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest) Test(org.junit.Test)

Example 22 with VariableDeclarator

use of com.github.javaparser.ast.body.VariableDeclarator in project meghanada-server by mopemope.

the class LocationSearcher method getFieldLocation.

private static Location getFieldLocation(SearchContext context, File targetFile, FieldDeclaration declaration) throws IOException {
    final List<VariableDeclarator> variables = declaration.getVariables();
    for (final VariableDeclarator variable : variables) {
        final SimpleName simpleName = variable.getName();
        final String name = simpleName.getIdentifier();
        final Optional<Position> begin = simpleName.getBegin();
        if (name.equals(context.name) && begin.isPresent()) {
            final Position position = begin.get();
            return new Location(targetFile.getCanonicalPath(), position.line, position.column);
        }
    }
    return null;
}
Also used : Position(com.github.javaparser.Position) SimpleName(com.github.javaparser.ast.expr.SimpleName) VariableDeclarator(com.github.javaparser.ast.body.VariableDeclarator)

Example 23 with VariableDeclarator

use of com.github.javaparser.ast.body.VariableDeclarator in project drools by kiegroup.

the class ObjectTypeNodeCompiler method createAdditionalFields.

// TODO DT-ANC move this outside?
private void createAdditionalFields(StringBuilder builder) {
    for (FieldDeclaration fd : additionalFields) {
        builder.append(fd.toString());
    }
    MethodDeclaration initMethod = new MethodDeclaration();
    initMethod.setModifiers(NodeList.nodeList(Modifier.publicModifier()));
    initMethod.setType(new VoidType());
    initMethod.setName("init");
    Parameter args = new Parameter(parseType("Object"), "args");
    args.setVarArgs(true);
    initMethod.setParameters(NodeList.nodeList(args));
    BlockStmt initMethodStatements = new BlockStmt();
    for (int i = 0, additionalFieldsSize = additionalFields.size(); i < additionalFieldsSize; i++) {
        FieldDeclaration fd = additionalFields.get(i);
        VariableDeclarator fieldType = fd.getVariables().iterator().next();
        String fieldInitFromVarargs = String.format("%s = (%s)%s;", fieldType.getName(), fieldType.getType(), String.format("args[%d]", i));
        Statement initStatement = StaticJavaParser.parseStatement(fieldInitFromVarargs);
        initMethodStatements.addStatement(initStatement);
    }
    initMethod.setBody(initMethodStatements);
    builder.append(initMethod);
}
Also used : VoidType(com.github.javaparser.ast.type.VoidType) MethodDeclaration(com.github.javaparser.ast.body.MethodDeclaration) Statement(com.github.javaparser.ast.stmt.Statement) BlockStmt(com.github.javaparser.ast.stmt.BlockStmt) Parameter(com.github.javaparser.ast.body.Parameter) FieldDeclaration(com.github.javaparser.ast.body.FieldDeclaration) VariableDeclarator(com.github.javaparser.ast.body.VariableDeclarator)

Example 24 with VariableDeclarator

use of com.github.javaparser.ast.body.VariableDeclarator in project drools by kiegroup.

the class KiePMMLDefineFunctionFactory method getDefineFunctionVariableDeclaration.

static BlockStmt getDefineFunctionVariableDeclaration(final DefineFunction defineFunction) {
    final MethodDeclaration methodDeclaration = DEFINE_FUNCTION_TEMPLATE.getMethodsByName(GETKIEPMMLDEFINEFUNCTION).get(0).clone();
    final BlockStmt defineFunctionBody = methodDeclaration.getBody().orElseThrow(() -> new KiePMMLException(String.format(MISSING_BODY_TEMPLATE, methodDeclaration)));
    final VariableDeclarator variableDeclarator = getVariableDeclarator(defineFunctionBody, DEFINE_FUNCTION).orElseThrow(() -> new KiePMMLException(String.format(MISSING_VARIABLE_IN_BODY, DEFINE_FUNCTION, defineFunctionBody)));
    variableDeclarator.setName(defineFunction.getName());
    final BlockStmt toReturn = new BlockStmt();
    int counter = 0;
    final NodeList<Expression> parameterFieldArguments = new NodeList<>();
    for (ParameterField parameterField : defineFunction.getParameterFields()) {
        String nestedVariableName = String.format(VARIABLE_NAME_TEMPLATE, defineFunction.getName(), counter);
        parameterFieldArguments.add(new NameExpr(nestedVariableName));
        BlockStmt toAdd = getParameterFieldVariableDeclaration(nestedVariableName, parameterField);
        toAdd.getStatements().forEach(toReturn::addStatement);
        counter++;
    }
    String kiePMMLExpression = String.format("%s_Expression", defineFunction.getName());
    BlockStmt toAdd = getKiePMMLExpressionBlockStmt(kiePMMLExpression, defineFunction.getExpression());
    toAdd.getStatements().forEach(toReturn::addStatement);
    final ObjectCreationExpr objectCreationExpr = variableDeclarator.getInitializer().orElseThrow(() -> new KiePMMLException(String.format(MISSING_VARIABLE_INITIALIZER_TEMPLATE, DEFINE_FUNCTION, toReturn))).asObjectCreationExpr();
    final StringLiteralExpr nameExpr = new StringLiteralExpr(defineFunction.getName());
    objectCreationExpr.getArguments().set(0, nameExpr);
    final Expression dataTypeExpression = getExpressionForDataType(defineFunction.getDataType());
    final Expression opTypeExpression = getExpressionForOpType(defineFunction.getOpType());
    objectCreationExpr.getArguments().set(2, dataTypeExpression);
    objectCreationExpr.getArguments().set(3, opTypeExpression);
    objectCreationExpr.getArguments().get(4).asMethodCallExpr().setArguments(parameterFieldArguments);
    objectCreationExpr.getArguments().set(5, new NameExpr(kiePMMLExpression));
    defineFunctionBody.getStatements().forEach(toReturn::addStatement);
    return toReturn;
}
Also used : ObjectCreationExpr(com.github.javaparser.ast.expr.ObjectCreationExpr) MethodDeclaration(com.github.javaparser.ast.body.MethodDeclaration) KiePMMLExpressionFactory.getKiePMMLExpressionBlockStmt(org.kie.pmml.compiler.commons.codegenfactories.KiePMMLExpressionFactory.getKiePMMLExpressionBlockStmt) BlockStmt(com.github.javaparser.ast.stmt.BlockStmt) NodeList(com.github.javaparser.ast.NodeList) NameExpr(com.github.javaparser.ast.expr.NameExpr) StringLiteralExpr(com.github.javaparser.ast.expr.StringLiteralExpr) CommonCodegenUtils.getVariableDeclarator(org.kie.pmml.compiler.commons.utils.CommonCodegenUtils.getVariableDeclarator) VariableDeclarator(com.github.javaparser.ast.body.VariableDeclarator) Expression(com.github.javaparser.ast.expr.Expression) KiePMMLException(org.kie.pmml.api.exceptions.KiePMMLException) ParameterField(org.dmg.pmml.ParameterField)

Example 25 with VariableDeclarator

use of com.github.javaparser.ast.body.VariableDeclarator in project drools by kiegroup.

the class KiePMMLDiscretizeBinFactory method getDiscretizeBinVariableDeclaration.

static BlockStmt getDiscretizeBinVariableDeclaration(final String variableName, final DiscretizeBin discretizeBin) {
    final MethodDeclaration methodDeclaration = DISCRETIZE_BIN_TEMPLATE.getMethodsByName(GETKIEPMMLDISCRETIZE_BIN).get(0).clone();
    final BlockStmt discretizeBinBody = methodDeclaration.getBody().orElseThrow(() -> new KiePMMLException(String.format(MISSING_BODY_TEMPLATE, methodDeclaration)));
    final VariableDeclarator variableDeclarator = getVariableDeclarator(discretizeBinBody, DISCRETIZE_BIN).orElseThrow(() -> new KiePMMLException(String.format(MISSING_VARIABLE_IN_BODY, DISCRETIZE_BIN, discretizeBinBody)));
    variableDeclarator.setName(variableName);
    final BlockStmt toReturn = new BlockStmt();
    String nestedVariableName = String.format("%s_Interval", variableName);
    BlockStmt toAdd = getIntervalVariableDeclaration(nestedVariableName, discretizeBin.getInterval());
    toAdd.getStatements().forEach(toReturn::addStatement);
    final ObjectCreationExpr objectCreationExpr = variableDeclarator.getInitializer().orElseThrow(() -> new KiePMMLException(String.format(MISSING_VARIABLE_INITIALIZER_TEMPLATE, DISCRETIZE_BIN, discretizeBinBody))).asObjectCreationExpr();
    final Expression nameExpr = new StringLiteralExpr(variableName);
    final Expression binValueExpr = getExpressionForObject(discretizeBin.getBinValue());
    final NameExpr intervalExpr = new NameExpr(nestedVariableName);
    objectCreationExpr.getArguments().set(0, nameExpr);
    objectCreationExpr.getArguments().set(2, binValueExpr);
    objectCreationExpr.getArguments().set(3, intervalExpr);
    discretizeBinBody.getStatements().forEach(toReturn::addStatement);
    return toReturn;
}
Also used : ObjectCreationExpr(com.github.javaparser.ast.expr.ObjectCreationExpr) Expression(com.github.javaparser.ast.expr.Expression) MethodDeclaration(com.github.javaparser.ast.body.MethodDeclaration) BlockStmt(com.github.javaparser.ast.stmt.BlockStmt) StringLiteralExpr(com.github.javaparser.ast.expr.StringLiteralExpr) NameExpr(com.github.javaparser.ast.expr.NameExpr) KiePMMLException(org.kie.pmml.api.exceptions.KiePMMLException) CommonCodegenUtils.getVariableDeclarator(org.kie.pmml.compiler.commons.utils.CommonCodegenUtils.getVariableDeclarator) VariableDeclarator(com.github.javaparser.ast.body.VariableDeclarator)

Aggregations

VariableDeclarator (com.github.javaparser.ast.body.VariableDeclarator)110 BlockStmt (com.github.javaparser.ast.stmt.BlockStmt)50 MethodDeclaration (com.github.javaparser.ast.body.MethodDeclaration)44 Expression (com.github.javaparser.ast.expr.Expression)43 KiePMMLException (org.kie.pmml.api.exceptions.KiePMMLException)41 CommonCodegenUtils.getVariableDeclarator (org.kie.pmml.compiler.commons.utils.CommonCodegenUtils.getVariableDeclarator)39 NameExpr (com.github.javaparser.ast.expr.NameExpr)33 StringLiteralExpr (com.github.javaparser.ast.expr.StringLiteralExpr)32 MethodCallExpr (com.github.javaparser.ast.expr.MethodCallExpr)30 Test (org.junit.Test)25 ObjectCreationExpr (com.github.javaparser.ast.expr.ObjectCreationExpr)24 ClassOrInterfaceDeclaration (com.github.javaparser.ast.body.ClassOrInterfaceDeclaration)18 VariableDeclarationExpr (com.github.javaparser.ast.expr.VariableDeclarationExpr)17 CompilationUnit (com.github.javaparser.ast.CompilationUnit)16 NodeList (com.github.javaparser.ast.NodeList)16 ResolvedType (com.github.javaparser.resolution.types.ResolvedType)14 FieldDeclaration (com.github.javaparser.ast.body.FieldDeclaration)13 ReflectionTypeSolver (com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver)13 NullLiteralExpr (com.github.javaparser.ast.expr.NullLiteralExpr)11 Parameter (com.github.javaparser.ast.body.Parameter)9