private <T extends PIR> List<IRStatus<T>> filter(List<IRStatus<T>> statuses, List<GeneratedModule> generated, List<String> userTestCases) { List<IRStatus<T>> filtered = new LinkedList<IRStatus<T>>(); for (IRStatus<T> status : statuses) { if (status.canBeGenerated()) { filtered.add(status); } else { boolean isUserTestCase = userTestCases.contains(status.getIrNodeName()); generated.add(new GeneratedModule(status.getIrNodeName(), status.getUnsupportedInIr(), new HashSet<IrNodeInfo>(), isUserTestCase)); } } return filtered; }
private GeneratedModule prettyPrintNode(MergeVisitor pp, IRStatus<? extends INode> status) throws org.overture.codegen.ir.analysis.AnalysisException { INode irClass = status.getIrNode(); StringWriter sw = new StringWriter(); irClass.apply(pp, sw); if (pp.hasMergeErrors()) { return new GeneratedModule(status.getIrNodeName(), irClass, pp.getMergeErrors(), false); } else if (pp.hasUnsupportedTargLangNodes()) { return new GeneratedModule(status.getIrNodeName(), new HashSet<VdmNodeInfo>(), pp.getUnsupportedInTargLang(), false); } else { // Code can be generated. Ideally, should format it GeneratedModule generatedModule = new GeneratedModule(status.getIrNodeName(), irClass, sw.toString(), false); generatedModule.setTransformationWarnings(status.getTransformationWarnings()); return generatedModule; } } }
qc.apply(javaFormat.getMergeVisitor(), writer); modules.add(new GeneratedModule(quoteNameVdm, qc, formatCode(writer), false));
if (mergeVisitor.hasMergeErrors()) generatedModule = new GeneratedModule(status.getIrNodeName(), status.getIrNode(), mergeVisitor.getMergeErrors(), isTestCase); } else if (mergeVisitor.hasUnsupportedTargLangNodes()) generatedModule = new GeneratedModule(status.getIrNodeName(), new HashSet<VdmNodeInfo>(), mergeVisitor.getUnsupportedInTargLang(), isTestCase); } else generatedModule = new GeneratedModule(status.getIrNodeName(), status.getIrNode(), formatCode(writer), isTestCase); generatedModule.setTransformationWarnings(status.getTransformationWarnings()); } else return new GeneratedModule(status.getIrNodeName(), status.getUnsupportedInIr(), new HashSet<IrNodeInfo>(), isTestCase(status));
} else genModules.add(new GeneratedModule(status.getIrNodeName(), status.getUnsupportedInIr(), new HashSet<IrNodeInfo>(), isTestCase(status))); funcValueInterface.apply(javaFormat.getMergeVisitor(), writer); String formattedJavaCode = JavaCodeGenUtil.formatJavaCode(writer.toString()); genModules.add(new GeneratedModule(funcValueInterface.getName(), funcValueInterface, formattedJavaCode, false));