Java Code Examples for com.github.javaparser.ast.NodeList#nodeList()
The following examples show how to use
com.github.javaparser.ast.NodeList#nodeList() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: RuleSetNodeVisitor.java From kogito-runtimes with Apache License 2.0 | 6 votes |
private MethodCallExpr handleRuleFlowGroup(RuleSetNode.RuleType ruleType) { // build supplier for rule runtime BlockStmt actionBody = new BlockStmt(); LambdaExpr lambda = new LambdaExpr(new Parameter(new UnknownType(), "()"), actionBody); MethodCallExpr ruleRuntimeBuilder = new MethodCallExpr( new MethodCallExpr(new NameExpr("app"), "ruleUnits"), "ruleRuntimeBuilder"); MethodCallExpr ruleRuntimeSupplier = new MethodCallExpr( ruleRuntimeBuilder, "newKieSession", NodeList.nodeList(new StringLiteralExpr("defaultStatelessKieSession"), new NameExpr("app.config().rule()"))); actionBody.addStatement(new ReturnStmt(ruleRuntimeSupplier)); return new MethodCallExpr("ruleFlowGroup") .addArgument(new StringLiteralExpr(ruleType.getName())) .addArgument(lambda); }
Example 2
Source File: ConfigGenerator.java From kogito-runtimes with Apache License 2.0 | 5 votes |
public static MethodCallExpr callMerge(String configsName, Class<?> configToListenersScope, String configToListenersIdentifier, String listenersName) { return new MethodCallExpr(null, "merge", NodeList.nodeList( new NameExpr(configsName), new MethodReferenceExpr( new TypeExpr(new ClassOrInterfaceType(null, configToListenersScope.getCanonicalName())), null, configToListenersIdentifier ), new NameExpr(listenersName) )); }
Example 3
Source File: CDIDependencyInjectionAnnotator.java From kogito-runtimes with Apache License 2.0 | 5 votes |
@Override public Expression getMultiInstance(String fieldName) { return new MethodCallExpr( new MethodCallExpr(new NameExpr("java.util.stream.StreamSupport"), "stream", NodeList.nodeList( new MethodCallExpr(new NameExpr(fieldName), "spliterator"), new BooleanLiteralExpr(false) )), "collect", NodeList.nodeList( new MethodCallExpr(new NameExpr("java.util.stream.Collectors"), "toList") ) ); }
Example 4
Source File: ProcessesContainerGenerator.java From kogito-runtimes with Apache License 2.0 | 5 votes |
public void addProcessToApplication(ProcessGenerator r) { ObjectCreationExpr newProcess = new ObjectCreationExpr() .setType(r.targetCanonicalName()) .addArgument("application"); IfStmt byProcessId = new IfStmt(new MethodCallExpr(new StringLiteralExpr(r.processId()), "equals", NodeList.nodeList(new NameExpr("processId"))), new ReturnStmt(new MethodCallExpr( newProcess, "configure")), null); byProcessIdMethodDeclaration .getBody() .orElseThrow(() -> new NoSuchElementException("A method declaration doesn't contain a body!")) .addStatement(byProcessId); }
Example 5
Source File: ProcessesContainerGenerator.java From kogito-runtimes with Apache License 2.0 | 5 votes |
@Override public ClassOrInterfaceDeclaration classDeclaration() { byProcessIdMethodDeclaration .getBody() .orElseThrow(() -> new NoSuchElementException("A method declaration doesn't contain a body!")) .addStatement(new ReturnStmt(new NullLiteralExpr())); NodeList<Expression> processIds = NodeList.nodeList(processes.stream().map(p -> new StringLiteralExpr(p.processId())).collect(Collectors.toList())); processesMethodDeclaration .getBody() .orElseThrow(() -> new NoSuchElementException("A method declaration doesn't contain a body!")) .addStatement(new ReturnStmt(new MethodCallExpr(new NameExpr(Arrays.class.getCanonicalName()), "asList", processIds))); FieldDeclaration applicationFieldDeclaration = new FieldDeclaration(); applicationFieldDeclaration .addVariable( new VariableDeclarator( new ClassOrInterfaceType(null, "Application"), "application") ) .setModifiers( Modifier.Keyword.PRIVATE, Modifier.Keyword.FINAL ); applicationDeclarations.add( applicationFieldDeclaration ); ConstructorDeclaration constructorDeclaration = new ConstructorDeclaration("Processes") .addModifier(Modifier.Keyword.PUBLIC) .addParameter( "Application", "application" ) .setBody( new BlockStmt().addStatement( "this.application = application;" ) ); applicationDeclarations.add( constructorDeclaration ); ClassOrInterfaceDeclaration cls = super.classDeclaration().setMembers(applicationDeclarations); cls.getMembers().sort(new BodyDeclarationComparator()); return cls; }
Example 6
Source File: CodegenUtils.java From kogito-runtimes with Apache License 2.0 | 4 votes |
public static ObjectCreationExpr newObject(String type, Expression... arguments) { return new ObjectCreationExpr(null, new ClassOrInterfaceType(null, type), NodeList.nodeList(arguments)); }
Example 7
Source File: UserTaskModelMetaData.java From kogito-runtimes with Apache License 2.0 | 4 votes |
@SuppressWarnings({"unchecked"}) private CompilationUnit compilationUnitOutput() { CompilationUnit compilationUnit = parse(this.getClass().getResourceAsStream("/class-templates/TaskOutputTemplate.java")); compilationUnit.setPackageDeclaration(packageName); Optional<ClassOrInterfaceDeclaration> processMethod = compilationUnit.findFirst(ClassOrInterfaceDeclaration.class, sl1 -> true); if (!processMethod.isPresent()) { throw new RuntimeException("Cannot find class declaration in the template"); } ClassOrInterfaceDeclaration modelClass = processMethod.get(); compilationUnit.addOrphanComment(new LineComment("Task output model for user task '" + humanTaskNode.getName() + "' in process '" + processId + "'")); addUserTaskAnnotation(modelClass); modelClass.setName(outputModelClassSimpleName); // setup of the toMap method body BlockStmt toMapBody = new BlockStmt(); ClassOrInterfaceType toMap = new ClassOrInterfaceType(null, new SimpleName(Map.class.getSimpleName()), NodeList.nodeList(new ClassOrInterfaceType(null, String.class.getSimpleName()), new ClassOrInterfaceType( null, Object.class.getSimpleName()))); VariableDeclarationExpr paramsField = new VariableDeclarationExpr(toMap, "params"); toMapBody.addStatement(new AssignExpr(paramsField, new ObjectCreationExpr(null, new ClassOrInterfaceType(null, HashMap.class.getSimpleName()), NodeList.nodeList()), AssignExpr.Operator.ASSIGN)); for (Entry<String, String> entry : humanTaskNode.getOutMappings().entrySet()) { if (entry.getValue() == null || INTERNAL_FIELDS.contains(entry.getKey())) { continue; } Variable variable = Optional.ofNullable(variableScope.findVariable(entry.getValue())) .orElse(processVariableScope.findVariable(entry.getValue())); if (variable == null) { // check if given mapping is an expression Matcher matcher = PatternConstants.PARAMETER_MATCHER.matcher(entry.getValue()); if (matcher.find()) { Map<String, String> dataOutputs = (Map<String, String>) humanTaskNode.getMetaData("DataOutputs"); variable = new Variable(); variable.setName(entry.getKey()); variable.setType(new ObjectDataType(dataOutputs.get(entry.getKey()))); } else { throw new IllegalStateException("Task " + humanTaskNode.getName() +" (output) " + entry.getKey() + " reference not existing variable " + entry.getValue()); } } FieldDeclaration fd = new FieldDeclaration().addVariable( new VariableDeclarator() .setType(variable.getType().getStringType()) .setName(entry.getKey())) .addModifier(Modifier.Keyword.PRIVATE); modelClass.addMember(fd); addUserTaskParamAnnotation(fd, UserTaskParam.ParamType.OUTPUT); fd.createGetter(); fd.createSetter(); // toMap method body MethodCallExpr putVariable = new MethodCallExpr(new NameExpr("params"), "put"); putVariable.addArgument(new StringLiteralExpr(entry.getKey())); putVariable.addArgument(new FieldAccessExpr(new ThisExpr(), entry.getKey())); toMapBody.addStatement(putVariable); } Optional<MethodDeclaration> toMapMethod = modelClass.findFirst(MethodDeclaration.class, sl -> sl.getName().asString().equals("toMap")); toMapBody.addStatement(new ReturnStmt(new NameExpr("params"))); toMapMethod.ifPresent(methodDeclaration -> methodDeclaration.setBody(toMapBody)); return compilationUnit; }