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() == false) {
33 content.append("package ");
34 content.append(input.getFQN().getPackageName());
35 content.append(";\n");
37 content.append(maybeAddComment(input.getClassJavaDoc(), true));
39 for (String classAnnotation : input.getClassAnnotations()) {
40 content.append(classAnnotation);
44 content.append("public ");
45 content.append(input.getType());
47 content.append(input.getFQN().getTypeName());
48 content.append(prefixAndJoin(input.getExtends(), "extends"));
49 content.append(prefixAndJoin(input.getImplements(), "implements"));
50 content.append(" {\n");
52 for (String method : input.getBodyElements()) {
53 content.append(method);
57 content.append("\n}\n");
59 return new GeneratedObject(fqn, content.toString());
62 private static String maybeAddComment(Optional<String> comment) {
63 return maybeAddComment(comment, false);
66 private static String maybeAddComment(Optional<String> comment, boolean isJavadoc) {
68 if (comment.isPresent()) {
69 String input = comment.get();
70 return StringUtil.writeComment(input, isJavadoc);