1 package org.opendaylight.controller.config.yangjmxgenerator.plugin.java;
3 import com.google.common.base.Optional;
4 import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUtil;
6 import static org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUtil.prefixAndJoin;
8 public class GeneratedObjectBuilder {
9 private final JavaFileInput input;
11 public GeneratedObjectBuilder(JavaFileInput input) {
16 public GeneratedObject toGeneratedObject() {
17 FullyQualifiedName fqn = input.getFQN();
18 StringBuilder content = new StringBuilder();
21 content.append(maybeAddComment(input.getCopyright()));
22 content.append(maybeAddComment(input.getHeader()));
24 if (input.getFQN().getPackageName().isEmpty() == false) {
25 content.append("package ");
26 content.append(input.getFQN().getPackageName());
27 content.append(";\n");
29 content.append(maybeAddComment(input.getClassJavaDoc(), true));
31 for (String classAnnotation : input.getClassAnnotations()) {
32 content.append(classAnnotation);
36 content.append("public ");
37 content.append(input.getType());
39 content.append(input.getFQN().getTypeName());
40 content.append(prefixAndJoin(input.getExtends(), "extends"));
41 content.append(prefixAndJoin(input.getImplements(), "implements"));
42 content.append(" {\n");
44 for (String method : input.getBodyElements()) {
45 content.append(method);
49 content.append("\n}\n");
51 return new GeneratedObject(fqn, content.toString());
54 private static String maybeAddComment(Optional<String> comment) {
55 return maybeAddComment(comment, false);
58 private static String maybeAddComment(Optional<String> comment, boolean isJavadoc) {
60 if (comment.isPresent()) {
61 String input = comment.get();
62 return StringUtil.writeComment(input, isJavadoc);