/* * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.controller.config.yangjmxgenerator.plugin.gofactory import com.google.common.base.Optional import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlTemplate import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.FullyQualifiedName import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.GeneratedObject import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.GeneratedObjectBuilder import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.JavaFileInputBuilder public class GenericGeneratedObjectFactory { public GeneratedObject toGeneratedObject(FtlTemplate template, Optional copyright) { JavaFileInputBuilder b = new JavaFileInputBuilder(); b.setHeader(template.headerString) b.setFqn(new FullyQualifiedName(template.packageName, template.typeDeclaration.name)) b.setClassJavaDoc(template.maybeJavadoc) template.annotations.each { b.addClassAnnotation(it) } // type declaration template.typeDeclaration.extended.each { b.addExtendsFQN(FullyQualifiedName.fromString(it)) } template.typeDeclaration.implemented.each { b.addImplementsFQN(FullyQualifiedName.fromString(it)) } b.setCopyright(copyright); b.setTypeName(template.typeDeclaration.toTypeName()) // fields template.fields.each { b.addToBody(it.toString()) } // constructors template.constructors.each { b.addToBody(it.toString()) } // methods template.methods.each { b.addToBody(it.toString()) } return new GeneratedObjectBuilder(b.build()).toGeneratedObject(); } }