2 * Copyright (c) 2013 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.gofactory
11 import com.google.common.base.Optional
12 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlTemplate
13 import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.FullyQualifiedName
14 import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.GeneratedObject
15 import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.GeneratedObjectBuilder
16 import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.JavaFileInputBuilder
18 public class GenericGeneratedObjectFactory {
20 public GeneratedObject toGeneratedObject(FtlTemplate template, Optional<String> copyright) {
21 JavaFileInputBuilder b = new JavaFileInputBuilder();
22 b.setHeader(template.headerString)
23 b.setFqn(new FullyQualifiedName(template.packageName, template.typeDeclaration.name))
24 b.setClassJavaDoc(template.maybeJavadoc)
25 template.annotations.each { b.addClassAnnotation(it) }
27 template.typeDeclaration.extended.each { b.addExtendsFQN(FullyQualifiedName.fromString(it)) }
28 template.typeDeclaration.implemented.each { b.addImplementsFQN(FullyQualifiedName.fromString(it)) }
29 b.setCopyright(copyright);
30 b.setTypeName(template.typeDeclaration.toTypeName())
32 template.fields.each { b.addToBody(it.toString()) }
34 template.constructors.each { b.addToBody(it.toString()) }
36 template.methods.each { b.addToBody(it.toString()) }
38 return new GeneratedObjectBuilder(b.build()).toGeneratedObject();