2 * Copyright (c) 2013, 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.controller.config.yangjmxgenerator.plugin.java;
11 import static org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUtil.prefixAndJoin;
13 import com.google.common.base.Optional;
14 import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUtil;
16 public class GeneratedObjectBuilder {
17 private final JavaFileInput input;
19 public GeneratedObjectBuilder(JavaFileInput input) {
24 public GeneratedObject toGeneratedObject() {
25 FullyQualifiedName fqn = input.getFQN();
26 StringBuilder content = new StringBuilder();
29 content.append(maybeAddComment(input.getCopyright()));
30 content.append(maybeAddComment(input.getHeader()));
32 if (!input.getFQN().getPackageName().isEmpty()) {
33 content.append("package ");
34 content.append(input.getFQN().getPackageName());
35 content.append(";\n");
38 if (!input.getImports().isEmpty())
40 for (FullyQualifiedName importedType : input.getImports()) {
41 content.append("import ");
42 content.append(importedType.toString());
43 content.append(";\n");
45 if (!input.getImports().isEmpty())
48 content.append(maybeAddComment(input.getClassJavaDoc(), true));
50 for (String classAnnotation : input.getClassAnnotations()) {
51 content.append(classAnnotation);
55 content.append("public ");
56 content.append(input.getType());
58 content.append(input.getFQN().getTypeName());
59 content.append(prefixAndJoin(input.getExtends(), "extends"));
60 content.append(prefixAndJoin(input.getImplements(), "implements"));
61 content.append(" {\n");
63 for (String method : input.getBodyElements()) {
64 content.append(method);
68 content.append("\n}\n");
70 return new GeneratedObject(fqn, content.toString());
73 private static String maybeAddComment(Optional<String> comment) {
74 return maybeAddComment(comment, false);
77 private static String maybeAddComment(Optional<String> comment, boolean isJavadoc) {
78 if (comment.isPresent()) {
79 String input = comment.get();
80 return StringUtil.writeComment(input, isJavadoc);