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());
}
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;
}
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);
}
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;
}
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;
}
Aggregations