From a414f50e6d8a1ba28f26faf8e41724f9befed625 Mon Sep 17 00:00:00 2001 From: Jitendra Zaa Date: Mon, 10 Apr 2017 13:02:08 -0400 Subject: [PATCH 1/2] Fixed Bug 56 : https://github.com/SalesforceFoundation/ApexDoc/issues/56 --- .gitignore | 1 + src/org/salesforce/apexdoc/ClassModel.java | 6 +++--- src/org/salesforce/apexdoc/FileManager.java | 2 ++ src/org/salesforce/apexdoc/MethodModel.java | 1 + 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index ea8c4bf..8194ca6 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /target +Test Demo diff --git a/src/org/salesforce/apexdoc/ClassModel.java b/src/org/salesforce/apexdoc/ClassModel.java index bb81bd6..e717dbe 100644 --- a/src/org/salesforce/apexdoc/ClassModel.java +++ b/src/org/salesforce/apexdoc/ClassModel.java @@ -44,7 +44,7 @@ public ArrayList getMethods() { public ArrayList getMethodsSorted() { @SuppressWarnings("unchecked") - List sorted = (List)methods.clone(); + List sorted = (List)methods.clone(); Collections.sort(sorted, new Comparator(){ @Override public int compare(MethodModel o1, MethodModel o2) { @@ -52,9 +52,9 @@ public int compare(MethodModel o1, MethodModel o2) { String methodName2 = o2.getMethodName(); String className = getClassName(); - if(methodName1.equals(className)){ + if(methodName1 != null && methodName1.equals(className)){ return Integer.MIN_VALUE; - } else if(methodName2.equals(className)){ + } else if(methodName2 != null && methodName2.equals(className)){ return Integer.MAX_VALUE; } return (methodName1.toLowerCase().compareTo(methodName2.toLowerCase())); diff --git a/src/org/salesforce/apexdoc/FileManager.java b/src/org/salesforce/apexdoc/FileManager.java index 86ed5ad..8567e96 100644 --- a/src/org/salesforce/apexdoc/FileManager.java +++ b/src/org/salesforce/apexdoc/FileManager.java @@ -212,6 +212,8 @@ private String htmlForClassModel(ClassModel cModel, String hostedSourceURL) { "

Methods

" + "
"; + + // method Table of Contents (TOC) contents += "
    "; for (MethodModel method : cModel.getMethodsSorted()) { diff --git a/src/org/salesforce/apexdoc/MethodModel.java b/src/org/salesforce/apexdoc/MethodModel.java index 0663391..ca47334 100644 --- a/src/org/salesforce/apexdoc/MethodModel.java +++ b/src/org/salesforce/apexdoc/MethodModel.java @@ -40,6 +40,7 @@ public String getMethodName() { int lastindex = nameLine.indexOf("("); if (lastindex >= 0) { String methodName = ApexDoc.strPrevWord(nameLine, lastindex); + methodName = methodName != null ? methodName : ""; return methodName; } } From 67a3ccecaa1ec348c1f4f377e8681143b7217dfd Mon Sep 17 00:00:00 2001 From: Jitendra Zaa Date: Mon, 10 Apr 2017 13:43:49 -0400 Subject: [PATCH 2/2] Maintain line breaks in multi line comment --- src/org/salesforce/apexdoc/ApexDoc.java | 2 +- src/org/salesforce/apexdoc/Constants.java | 3 +++ src/org/salesforce/apexdoc/FileManager.java | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/org/salesforce/apexdoc/ApexDoc.java b/src/org/salesforce/apexdoc/ApexDoc.java index 8da4f97..6b173c7 100644 --- a/src/org/salesforce/apexdoc/ApexDoc.java +++ b/src/org/salesforce/apexdoc/ApexDoc.java @@ -558,7 +558,7 @@ private static void fillClassModel(ClassModel cModelParent, ClassModel cModel, S break; } if (j < comment.length()) { - cModel.setDescription(cModel.getDescription() + ' ' + comment.substring(j)); + cModel.setDescription(cModel.getDescription() + Constants.newLinePlaceHolder + comment.substring(j)); } continue; } diff --git a/src/org/salesforce/apexdoc/Constants.java b/src/org/salesforce/apexdoc/Constants.java index 9e808bc..d22f2e7 100644 --- a/src/org/salesforce/apexdoc/Constants.java +++ b/src/org/salesforce/apexdoc/Constants.java @@ -1,6 +1,9 @@ package org.salesforce.apexdoc; public class Constants { + + public static final String newLinePlaceHolder = "[BR]"; + public static final String newLineHTML = "
    "; public static final String HEADER_OPEN = "" + "" + diff --git a/src/org/salesforce/apexdoc/FileManager.java b/src/org/salesforce/apexdoc/FileManager.java index 8567e96..968f091 100644 --- a/src/org/salesforce/apexdoc/FileManager.java +++ b/src/org/salesforce/apexdoc/FileManager.java @@ -38,9 +38,24 @@ private static String escapeHTML(String s) { out.append(c); } } + replaceAll(out,Constants.newLinePlaceHolder,Constants.newLineHTML); return out.toString(); } + /** + * There is no replaceAll method for Stringbuilder, so custom method + * */ + public static void replaceAll(StringBuilder builder, String oldString, String newString) + { + int index = builder.indexOf(oldString); + while (index != -1) + { + builder.replace(index, index + oldString.length(), newString); + index += newString.length(); // Move to the end of the replacement + index = builder.indexOf(oldString, index); + } + } + public FileManager(String path) { infoMessages = new StringBuffer();