Loading src/main/java/com/inteligr8/activiti/doclet/FieldFreemarkerModel.java 0 → 100644 +42 −0 Original line number Diff line number Diff line /* * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see <https://www.gnu.org/licenses/>. */ package com.inteligr8.activiti.doclet; /** * @author brian@inteligr8.com */ public class FieldFreemarkerModel { private String name; private String comment; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } } src/main/java/com/inteligr8/activiti/doclet/MarkdownWriter.java +77 −2 Original line number Diff line number Diff line Loading @@ -135,7 +135,7 @@ class MarkdownWriter { this.buildDocumentation(commentTree, beanModel); for (DocTree tag : commentTree.getBlockTags()) { this.buildTagModel(tag, beandoc.getBeanId(), null, null, null, beanModel); null, null, null, null, null, null, beanModel); } } Loading Loading @@ -186,6 +186,9 @@ class MarkdownWriter { this.logger.debug("Building documentation method model: {}", logId); Map<String, String> paramComments = new HashMap<>(); Map<String, String> fieldComments = new LinkedHashMap<>(); Map<String, String> varInComments = new LinkedHashMap<>(); Map<String, String> varOutComments = new LinkedHashMap<>(); Map<String, String> throwComments = new LinkedHashMap<>(); Map<String, String> errorComments = new LinkedHashMap<>(); Loading @@ -196,11 +199,14 @@ class MarkdownWriter { this.buildDocumentation(methodCommentTree, sigModel); for (DocTree tag : methodCommentTree.getBlockTags()) { this.buildTagModel(tag, logId, paramComments, throwComments, errorComments, sigModel); paramComments, fieldComments, varInComments, varOutComments, throwComments, errorComments, sigModel); } } this.buildMethodArguments(methodElement, logId, paramComments, sigModel); this.buildMethodFields(methodElement, logId, fieldComments, sigModel); this.buildMethodVariablesIn(methodElement, logId, varInComments, sigModel); this.buildMethodVariablesOut(methodElement, logId, varOutComments, sigModel); this.buildMethodThrows(methodElement, logId, throwComments, !errorComments.isEmpty(), sigModel); this.buildMethodErrors(methodElement, logId, errorComments, sigModel); this.buildMethodReturns(methodElement, logId, sigModel); Loading @@ -222,6 +228,9 @@ class MarkdownWriter { private void buildTagModel(DocTree tag, String logId, Map<String, String> paramComments, Map<String, String> fieldComments, Map<String, String> varInComments, Map<String, String> varOutComments, Map<String, String> throwComments, Map<String, String> errorComments, JavadocTaggable sigModel) { Loading @@ -246,6 +255,33 @@ class MarkdownWriter { paramComments.put(matcher.group(1), this.sanitize(matcher.group(2).trim())); else this.logger.warn("A @param for the {} bean and {} method is improperly formatted", logId); return; case "field": if (fieldComments == null) break; matcher = this.namedCommentPattern.matcher(tagComment); if (matcher.find()) fieldComments.put(matcher.group(1), this.sanitize(matcher.group(2).trim())); else this.logger.warn("A @field for the {} bean and {} method is improperly formatted", logId); return; case "varIn": if (varInComments == null) break; matcher = this.namedCommentPattern.matcher(tagComment); if (matcher.find()) varInComments.put(matcher.group(1), this.sanitize(matcher.group(2).trim())); else this.logger.warn("A @field for the {} bean and {} method is improperly formatted", logId); return; case "varOut": if (varOutComments == null) break; matcher = this.namedCommentPattern.matcher(tagComment); if (matcher.find()) varOutComments.put(matcher.group(1), this.sanitize(matcher.group(2).trim())); else this.logger.warn("A @field for the {} bean and {} method is improperly formatted", logId); return; case "throws": if (throwComments == null) break; Loading Loading @@ -295,6 +331,45 @@ class MarkdownWriter { } } private void buildMethodFields(ExecutableElement methodElement, String logId, Map<String, String> fieldComments, MethodSignatureFreemarkerModel sigModel) { for (Entry<String, String> fieldComment : fieldComments.entrySet()) { this.logger.trace("Found BPMN field '{}' for '{}'", fieldComment.getKey(), logId); FieldFreemarkerModel fieldModel = new FieldFreemarkerModel(); fieldModel.setName(fieldComment.getKey()); fieldModel.setComment(fieldComment.getValue()); sigModel.getBpmnFields().put(fieldModel.getName(), fieldModel); } } private void buildMethodVariablesIn(ExecutableElement methodElement, String logId, Map<String, String> varComments, MethodSignatureFreemarkerModel sigModel) { for (Entry<String, String> varComment : varComments.entrySet()) { this.logger.trace("Found input variable '{}' for '{}'", varComment.getKey(), logId); VarFreemarkerModel varModel = new VarFreemarkerModel(); varModel.setName(varComment.getKey()); varModel.setComment(varComment.getValue()); sigModel.getVariablesIn().put(varModel.getName(), varModel); } } private void buildMethodVariablesOut(ExecutableElement methodElement, String logId, Map<String, String> varComments, MethodSignatureFreemarkerModel sigModel) { for (Entry<String, String> varComment : varComments.entrySet()) { this.logger.trace("Found output variable '{}' for '{}'", varComment.getKey(), logId); VarFreemarkerModel varModel = new VarFreemarkerModel(); varModel.setName(varComment.getKey()); varModel.setComment(varComment.getValue()); sigModel.getVariablesIn().put(varModel.getName(), varModel); } } private void buildMethodThrows(ExecutableElement methodElement, String logId, Map<String, String> throwComments, boolean hasBpmnErrorComments, MethodSignatureFreemarkerModel sigModel) { for (TypeMirror thrownType : methodElement.getThrownTypes()) { Loading src/main/java/com/inteligr8/activiti/doclet/MethodSignatureFreemarkerModel.java +30 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,12 @@ public class MethodSignatureFreemarkerModel implements JavadocDocumentable, Java private Map<String, ParamFreemarkerModel> params = new LinkedHashMap<>(); private Map<String, FieldFreemarkerModel> bpmnFields = new LinkedHashMap<>(); private Map<String, VarFreemarkerModel> variablesIn = new LinkedHashMap<>(); private Map<String, VarFreemarkerModel> variablesOut = new LinkedHashMap<>(); private String returnType; private Map<String, ThrowFreemarkerModel> throwTypes = new LinkedHashMap<>(); Loading Loading @@ -55,6 +61,30 @@ public class MethodSignatureFreemarkerModel implements JavadocDocumentable, Java this.params = params; } public Map<String, FieldFreemarkerModel> getBpmnFields() { return bpmnFields; } public void setBpmnFields(Map<String, FieldFreemarkerModel> fields) { this.bpmnFields = fields; } public Map<String, VarFreemarkerModel> getVariablesIn() { return variablesIn; } public void setVariablesIn(Map<String, VarFreemarkerModel> variablesIn) { this.variablesIn = variablesIn; } public Map<String, VarFreemarkerModel> getVariablesOut() { return variablesOut; } public void setVariablesOut(Map<String, VarFreemarkerModel> variablesOut) { this.variablesOut = variablesOut; } public String getReturnType() { return returnType; } Loading src/main/java/com/inteligr8/activiti/doclet/VarFreemarkerModel.java 0 → 100644 +42 −0 Original line number Diff line number Diff line /* * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see <https://www.gnu.org/licenses/>. */ package com.inteligr8.activiti.doclet; /** * @author brian@inteligr8.com */ public class VarFreemarkerModel { private String name; private String comment; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } } src/main/resources/templates/bean.md.ftl +23 −8 Original line number Diff line number Diff line Loading @@ -80,27 +80,42 @@ This bean and its methods may be used in any "Expression" field or script in a S <#if sig.docBody??>${sig.docBody}<#else>No documentation available.</#if> <#if (sig.params?size > 0)> | Parameter Name | Java Type | Documentation | | ------------------------ | ------------------------------------------------ | ------------------------ | | Input Type | Name | Java Type | Documentation | | ------------------------ | ------------------------ | ------------------------------------------------ | ---------------------------------- | <#list sig.params as paramName, param> | ${("`" + paramName + "`")?right_pad(24)} | ${("`" + param.type + "`")?right_pad(48)} | <#if (param.comment?? && param.comment?length > 0)>${param.comment?right_pad(24)}<#else>No documentation available.</#if> | | Method Parameter | ${("`" + paramName + "`")?right_pad(24)} | ${("`" + param.type + "`")?right_pad(48)} | <#if (param.comment?? && param.comment?length > 0)>${param.comment?right_pad(32)}<#else>No documentation available.</#if> | </#list> <#if (sig.bpmnFields?size > 0)> <#list sig.bpmnFields as fieldName, field> | BPMN Field | ${("`" + fieldName + "`")?right_pad(48)} | ${("")?right_pad(48)} | <#if (field.comment?? && field.comment?length > 0)>${field.comment?right_pad(32)}<#else>No documentation available.</#if> | </#list> </#if> <#if (sig.variablesIn?size > 0)> <#list sig.variablesIn as varName, var> | Variable | ${("`" + varName + "`")?right_pad(48)} | ${("")?right_pad(48)} | <#if (var.comment?? && var.comment?length > 0)>${var.comment?right_pad(32)}<#else>No documentation available.</#if> | </#list> </#if> </#if> <#if (sig.returnType?? || sig.throwTypes?size > 0)> | Result Type | Java Type or BPMN Error Code | Documentation | | ------------------------ | ------------------------------------------------ | ------------------------ | | Result Type | Java Type, Name, or Error Code | Documentation | | ------------------------ | ------------------------------------------------ | -------------------------------- | <#if sig.returnType??> | Return Value | ${("`" + sig.returnType + "`")?right_pad(48)} | <#if (sig.tags.return?? && sig.tags.return[0]?length > 0)>${sig.tags.return[0]?right_pad(24)}<#else>No documentation available.</#if> | | Return Value | ${("`" + sig.returnType + "`")?right_pad(48)} | <#if (sig.tags.return?? && sig.tags.return[0]?length > 0)>${sig.tags.return[0]?right_pad(32)}<#else>No documentation available.</#if> | </#if> <#if (sig.variablesOut?size > 0)> <#list sig.variablesOut as varName, var> | Variable | ${("`" + varName + "`")?right_pad(48)} | <#if (var.comment?? && var.comment?length > 0)>${var.comment?right_pad(32)}<#else>No documentation available.</#if> | </#list> </#if> <#if (sig.throwTypes?size > 0)> <#list sig.throwTypes as throwType, throw> | Thrown Exception | ${("`" + throwType + "`")?right_pad(48)} | <#if (throw.comment?? && throw.comment?length > 0)>${throw.comment?right_pad(24)}<#else>No documentation available.</#if> | | Thrown Exception | ${("`" + throwType + "`")?right_pad(48)} | <#if (throw.comment?? && throw.comment?length > 0)>${throw.comment?right_pad(32)}<#else>No documentation available.</#if> | </#list> </#if> <#if (sig.bpmnErrors?size > 0)> <#list sig.bpmnErrors as errorCode, bpmnError> | Thrown BPMN Error | ${("`" + errorCode + "`")?right_pad(48)} | <#if (bpmnError.comment?? && bpmnError.comment?length > 0)>${bpmnError.comment?right_pad(24)}<#else>No documentation available.</#if> | | Thrown BPMN Error | ${("`" + errorCode + "`")?right_pad(48)} | <#if (bpmnError.comment?? && bpmnError.comment?length > 0)>${bpmnError.comment?right_pad(32)}<#else>No documentation available.</#if> | </#list> </#if> Loading Loading
src/main/java/com/inteligr8/activiti/doclet/FieldFreemarkerModel.java 0 → 100644 +42 −0 Original line number Diff line number Diff line /* * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see <https://www.gnu.org/licenses/>. */ package com.inteligr8.activiti.doclet; /** * @author brian@inteligr8.com */ public class FieldFreemarkerModel { private String name; private String comment; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } }
src/main/java/com/inteligr8/activiti/doclet/MarkdownWriter.java +77 −2 Original line number Diff line number Diff line Loading @@ -135,7 +135,7 @@ class MarkdownWriter { this.buildDocumentation(commentTree, beanModel); for (DocTree tag : commentTree.getBlockTags()) { this.buildTagModel(tag, beandoc.getBeanId(), null, null, null, beanModel); null, null, null, null, null, null, beanModel); } } Loading Loading @@ -186,6 +186,9 @@ class MarkdownWriter { this.logger.debug("Building documentation method model: {}", logId); Map<String, String> paramComments = new HashMap<>(); Map<String, String> fieldComments = new LinkedHashMap<>(); Map<String, String> varInComments = new LinkedHashMap<>(); Map<String, String> varOutComments = new LinkedHashMap<>(); Map<String, String> throwComments = new LinkedHashMap<>(); Map<String, String> errorComments = new LinkedHashMap<>(); Loading @@ -196,11 +199,14 @@ class MarkdownWriter { this.buildDocumentation(methodCommentTree, sigModel); for (DocTree tag : methodCommentTree.getBlockTags()) { this.buildTagModel(tag, logId, paramComments, throwComments, errorComments, sigModel); paramComments, fieldComments, varInComments, varOutComments, throwComments, errorComments, sigModel); } } this.buildMethodArguments(methodElement, logId, paramComments, sigModel); this.buildMethodFields(methodElement, logId, fieldComments, sigModel); this.buildMethodVariablesIn(methodElement, logId, varInComments, sigModel); this.buildMethodVariablesOut(methodElement, logId, varOutComments, sigModel); this.buildMethodThrows(methodElement, logId, throwComments, !errorComments.isEmpty(), sigModel); this.buildMethodErrors(methodElement, logId, errorComments, sigModel); this.buildMethodReturns(methodElement, logId, sigModel); Loading @@ -222,6 +228,9 @@ class MarkdownWriter { private void buildTagModel(DocTree tag, String logId, Map<String, String> paramComments, Map<String, String> fieldComments, Map<String, String> varInComments, Map<String, String> varOutComments, Map<String, String> throwComments, Map<String, String> errorComments, JavadocTaggable sigModel) { Loading @@ -246,6 +255,33 @@ class MarkdownWriter { paramComments.put(matcher.group(1), this.sanitize(matcher.group(2).trim())); else this.logger.warn("A @param for the {} bean and {} method is improperly formatted", logId); return; case "field": if (fieldComments == null) break; matcher = this.namedCommentPattern.matcher(tagComment); if (matcher.find()) fieldComments.put(matcher.group(1), this.sanitize(matcher.group(2).trim())); else this.logger.warn("A @field for the {} bean and {} method is improperly formatted", logId); return; case "varIn": if (varInComments == null) break; matcher = this.namedCommentPattern.matcher(tagComment); if (matcher.find()) varInComments.put(matcher.group(1), this.sanitize(matcher.group(2).trim())); else this.logger.warn("A @field for the {} bean and {} method is improperly formatted", logId); return; case "varOut": if (varOutComments == null) break; matcher = this.namedCommentPattern.matcher(tagComment); if (matcher.find()) varOutComments.put(matcher.group(1), this.sanitize(matcher.group(2).trim())); else this.logger.warn("A @field for the {} bean and {} method is improperly formatted", logId); return; case "throws": if (throwComments == null) break; Loading Loading @@ -295,6 +331,45 @@ class MarkdownWriter { } } private void buildMethodFields(ExecutableElement methodElement, String logId, Map<String, String> fieldComments, MethodSignatureFreemarkerModel sigModel) { for (Entry<String, String> fieldComment : fieldComments.entrySet()) { this.logger.trace("Found BPMN field '{}' for '{}'", fieldComment.getKey(), logId); FieldFreemarkerModel fieldModel = new FieldFreemarkerModel(); fieldModel.setName(fieldComment.getKey()); fieldModel.setComment(fieldComment.getValue()); sigModel.getBpmnFields().put(fieldModel.getName(), fieldModel); } } private void buildMethodVariablesIn(ExecutableElement methodElement, String logId, Map<String, String> varComments, MethodSignatureFreemarkerModel sigModel) { for (Entry<String, String> varComment : varComments.entrySet()) { this.logger.trace("Found input variable '{}' for '{}'", varComment.getKey(), logId); VarFreemarkerModel varModel = new VarFreemarkerModel(); varModel.setName(varComment.getKey()); varModel.setComment(varComment.getValue()); sigModel.getVariablesIn().put(varModel.getName(), varModel); } } private void buildMethodVariablesOut(ExecutableElement methodElement, String logId, Map<String, String> varComments, MethodSignatureFreemarkerModel sigModel) { for (Entry<String, String> varComment : varComments.entrySet()) { this.logger.trace("Found output variable '{}' for '{}'", varComment.getKey(), logId); VarFreemarkerModel varModel = new VarFreemarkerModel(); varModel.setName(varComment.getKey()); varModel.setComment(varComment.getValue()); sigModel.getVariablesIn().put(varModel.getName(), varModel); } } private void buildMethodThrows(ExecutableElement methodElement, String logId, Map<String, String> throwComments, boolean hasBpmnErrorComments, MethodSignatureFreemarkerModel sigModel) { for (TypeMirror thrownType : methodElement.getThrownTypes()) { Loading
src/main/java/com/inteligr8/activiti/doclet/MethodSignatureFreemarkerModel.java +30 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,12 @@ public class MethodSignatureFreemarkerModel implements JavadocDocumentable, Java private Map<String, ParamFreemarkerModel> params = new LinkedHashMap<>(); private Map<String, FieldFreemarkerModel> bpmnFields = new LinkedHashMap<>(); private Map<String, VarFreemarkerModel> variablesIn = new LinkedHashMap<>(); private Map<String, VarFreemarkerModel> variablesOut = new LinkedHashMap<>(); private String returnType; private Map<String, ThrowFreemarkerModel> throwTypes = new LinkedHashMap<>(); Loading Loading @@ -55,6 +61,30 @@ public class MethodSignatureFreemarkerModel implements JavadocDocumentable, Java this.params = params; } public Map<String, FieldFreemarkerModel> getBpmnFields() { return bpmnFields; } public void setBpmnFields(Map<String, FieldFreemarkerModel> fields) { this.bpmnFields = fields; } public Map<String, VarFreemarkerModel> getVariablesIn() { return variablesIn; } public void setVariablesIn(Map<String, VarFreemarkerModel> variablesIn) { this.variablesIn = variablesIn; } public Map<String, VarFreemarkerModel> getVariablesOut() { return variablesOut; } public void setVariablesOut(Map<String, VarFreemarkerModel> variablesOut) { this.variablesOut = variablesOut; } public String getReturnType() { return returnType; } Loading
src/main/java/com/inteligr8/activiti/doclet/VarFreemarkerModel.java 0 → 100644 +42 −0 Original line number Diff line number Diff line /* * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see <https://www.gnu.org/licenses/>. */ package com.inteligr8.activiti.doclet; /** * @author brian@inteligr8.com */ public class VarFreemarkerModel { private String name; private String comment; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } }
src/main/resources/templates/bean.md.ftl +23 −8 Original line number Diff line number Diff line Loading @@ -80,27 +80,42 @@ This bean and its methods may be used in any "Expression" field or script in a S <#if sig.docBody??>${sig.docBody}<#else>No documentation available.</#if> <#if (sig.params?size > 0)> | Parameter Name | Java Type | Documentation | | ------------------------ | ------------------------------------------------ | ------------------------ | | Input Type | Name | Java Type | Documentation | | ------------------------ | ------------------------ | ------------------------------------------------ | ---------------------------------- | <#list sig.params as paramName, param> | ${("`" + paramName + "`")?right_pad(24)} | ${("`" + param.type + "`")?right_pad(48)} | <#if (param.comment?? && param.comment?length > 0)>${param.comment?right_pad(24)}<#else>No documentation available.</#if> | | Method Parameter | ${("`" + paramName + "`")?right_pad(24)} | ${("`" + param.type + "`")?right_pad(48)} | <#if (param.comment?? && param.comment?length > 0)>${param.comment?right_pad(32)}<#else>No documentation available.</#if> | </#list> <#if (sig.bpmnFields?size > 0)> <#list sig.bpmnFields as fieldName, field> | BPMN Field | ${("`" + fieldName + "`")?right_pad(48)} | ${("")?right_pad(48)} | <#if (field.comment?? && field.comment?length > 0)>${field.comment?right_pad(32)}<#else>No documentation available.</#if> | </#list> </#if> <#if (sig.variablesIn?size > 0)> <#list sig.variablesIn as varName, var> | Variable | ${("`" + varName + "`")?right_pad(48)} | ${("")?right_pad(48)} | <#if (var.comment?? && var.comment?length > 0)>${var.comment?right_pad(32)}<#else>No documentation available.</#if> | </#list> </#if> </#if> <#if (sig.returnType?? || sig.throwTypes?size > 0)> | Result Type | Java Type or BPMN Error Code | Documentation | | ------------------------ | ------------------------------------------------ | ------------------------ | | Result Type | Java Type, Name, or Error Code | Documentation | | ------------------------ | ------------------------------------------------ | -------------------------------- | <#if sig.returnType??> | Return Value | ${("`" + sig.returnType + "`")?right_pad(48)} | <#if (sig.tags.return?? && sig.tags.return[0]?length > 0)>${sig.tags.return[0]?right_pad(24)}<#else>No documentation available.</#if> | | Return Value | ${("`" + sig.returnType + "`")?right_pad(48)} | <#if (sig.tags.return?? && sig.tags.return[0]?length > 0)>${sig.tags.return[0]?right_pad(32)}<#else>No documentation available.</#if> | </#if> <#if (sig.variablesOut?size > 0)> <#list sig.variablesOut as varName, var> | Variable | ${("`" + varName + "`")?right_pad(48)} | <#if (var.comment?? && var.comment?length > 0)>${var.comment?right_pad(32)}<#else>No documentation available.</#if> | </#list> </#if> <#if (sig.throwTypes?size > 0)> <#list sig.throwTypes as throwType, throw> | Thrown Exception | ${("`" + throwType + "`")?right_pad(48)} | <#if (throw.comment?? && throw.comment?length > 0)>${throw.comment?right_pad(24)}<#else>No documentation available.</#if> | | Thrown Exception | ${("`" + throwType + "`")?right_pad(48)} | <#if (throw.comment?? && throw.comment?length > 0)>${throw.comment?right_pad(32)}<#else>No documentation available.</#if> | </#list> </#if> <#if (sig.bpmnErrors?size > 0)> <#list sig.bpmnErrors as errorCode, bpmnError> | Thrown BPMN Error | ${("`" + errorCode + "`")?right_pad(48)} | <#if (bpmnError.comment?? && bpmnError.comment?length > 0)>${bpmnError.comment?right_pad(24)}<#else>No documentation available.</#if> | | Thrown BPMN Error | ${("`" + errorCode + "`")?right_pad(48)} | <#if (bpmnError.comment?? && bpmnError.comment?length > 0)>${bpmnError.comment?right_pad(32)}<#else>No documentation available.</#if> | </#list> </#if> Loading