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
8 package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl;
11 import java.util.List;
13 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Annotation;
14 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field;
15 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Header;
16 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Method;
17 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.TypeDeclaration;
18 import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.FullyQualifiedNameHelper;
20 import com.google.common.collect.Lists;
22 public abstract class AbstractFtlTemplate implements FtlTemplate {
23 private final String packageName;
24 private final List<Field> fields;
25 private final List<Annotation> annotations;
26 private final List<? extends Method> methods;
27 private String javadoc = null;
28 private final TypeDeclaration typeDeclaration;
29 private final Header header;
31 protected AbstractFtlTemplate(Header header, String packageName,
32 List<Field> fields, List<? extends Method> methods,
33 TypeDeclaration typeDeclaration) {
34 this.packageName = packageName;
36 this.methods = methods;
37 this.annotations = Lists.newArrayList();
38 this.typeDeclaration = typeDeclaration;
43 public Header getHeader() {
48 public String getFullyQualifiedName() {
49 return FullyQualifiedNameHelper.getFullyQualifiedName(getPackageName(),
50 getTypeDeclaration().getName());
54 public String getPackageName() {
59 public TypeDeclaration getTypeDeclaration() {
60 return typeDeclaration;
64 public String getJavadoc() {
68 public void setJavadoc(String javadoc) {
69 this.javadoc = javadoc;
73 public List<Annotation> getAnnotations() {
78 public List<Field> getFields() {
83 public List<? extends Method> getMethods() {
88 public File getRelativeFile() {
89 return new File(packageName.replace(".", File.separator),
90 getTypeDeclaration().getName() + ".java");
94 public String getFtlTempleteLocation() {
95 return "abstract_ftl_file.ftl";
99 public String toString() {
100 return "AbstractFtlTemplate{" + "typeDeclaration=" + typeDeclaration
101 + ", packageName='" + packageName + '\'' + '}';