| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package java |
| |
| import ( |
| "strings" |
| ) |
| |
| // javaRawComment extracts a raw language-independent comment from a VDL comment. |
| func javaRawComment(vdlComment string) string { |
| if vdlComment == "" { |
| return "" |
| } |
| comment := strings.Replace(vdlComment, "/**", "", -1) |
| comment = strings.Replace(comment, "/*", "", -1) |
| comment = strings.Replace(comment, "*/", "", -1) |
| comment = strings.Replace(comment, "//", "", -1) |
| comment = strings.Replace(comment, "\n *", "\n", -1) |
| splitComment := strings.Split(comment, "\n") |
| for i, _ := range splitComment { |
| splitComment[i] = strings.TrimSpace(splitComment[i]) |
| } |
| return strings.TrimSpace(strings.Join(splitComment, "\n")) |
| } |
| |
| // javaDocInComment transforms a VDL comment to javadoc style, but without starting a new comment. |
| // (i.e. this assumes that the output will be within a /** */ comment). |
| func javaDocInComment(vdlComment string) string { |
| if vdlComment == "" { |
| return "" |
| } |
| return "\n * " + strings.Replace(javaRawComment(vdlComment), "\n", "\n * ", -1) |
| } |
| |
| // javaDoc transforms the provided VDL comment into the JavaDoc format. |
| // This starts a new javadoc comment block. |
| func javaDoc(vdlComment string) string { |
| if vdlComment == "" { |
| return "" |
| } |
| return "/**" + javaDocInComment(vdlComment) + "\n */\n" |
| } |