private void initializeExpressions(List<? extends Element> elements, NodeData node) { List<Element> members = filterNotAccessibleElements(node.getTemplateType(), elements); List<VariableElement> fields = new ArrayList<>(); for (NodeFieldData field : node.getFields()) { fields.add(field.getVariable()); } for (SpecializationData specialization : node.getSpecializations()) { if (specialization.getMethod() == null) { continue; } List<Element> specializationMembers = new ArrayList<>(members.size() + specialization.getParameters().size() + fields.size()); for (Parameter p : specialization.getParameters()) { specializationMembers.add(p.getVariableElement()); } specializationMembers.addAll(fields); specializationMembers.addAll(members); DSLExpressionResolver resolver = new DSLExpressionResolver(context, specializationMembers); initializeCaches(specialization, resolver); initializeGuards(specialization, resolver); if (specialization.hasErrors()) { continue; } initializeLimit(specialization, resolver); initializeAssumptions(specialization, resolver); } }
private void initializeExpressions(List<? extends Element> elements, NodeData node) { List<Element> members = filterNotAccessibleElements(node.getTemplateType(), elements); List<VariableElement> fields = new ArrayList<>(); for (NodeFieldData field : node.getFields()) { fields.add(field.getVariable()); } for (SpecializationData specialization : node.getSpecializations()) { if (specialization.getMethod() == null) { continue; } List<Element> specializationMembers = new ArrayList<>(members.size() + specialization.getParameters().size() + fields.size()); for (Parameter p : specialization.getParameters()) { specializationMembers.add(p.getVariableElement()); } specializationMembers.addAll(fields); specializationMembers.addAll(members); DSLExpressionResolver resolver = new DSLExpressionResolver(context, specializationMembers); initializeCaches(specialization, resolver); initializeGuards(specialization, resolver); if (specialization.hasErrors()) { continue; } initializeLimit(specialization, resolver); initializeAssumptions(specialization, resolver); } }