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;
10 import com.google.common.base.Optional;
11 import com.google.common.collect.Lists;
12 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Annotation;
13 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Constructor;
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 java.util.Collections;
21 import java.util.List;
23 public abstract class AbstractFtlTemplate implements FtlTemplate {
24 private final String packageName;
25 private final List<Field> fields;
26 private final List<Annotation> annotations;
27 private final List<? extends Method> methods;
28 private String javadoc = null;
29 private final TypeDeclaration typeDeclaration;
30 private final Header header;
32 protected AbstractFtlTemplate(Header header, String packageName,
33 List<Field> fields, List<? extends Method> methods,
34 TypeDeclaration typeDeclaration) {
35 this.packageName = packageName;
37 this.methods = methods;
38 this.annotations = Lists.newArrayList();
39 this.typeDeclaration = typeDeclaration;
44 public Header getHeader() {
49 public Optional<String> getHeaderString() {
51 return Optional.absent();
53 return Optional.of(header.toString());
58 public String getFullyQualifiedName() {
59 return FullyQualifiedNameHelper.getFullyQualifiedName(getPackageName(),
60 getTypeDeclaration().getName());
64 public String getPackageName() {
69 public TypeDeclaration getTypeDeclaration() {
70 return typeDeclaration;
75 public Optional<String> getMaybeJavadoc() {
76 if (javadoc == null) {
77 return Optional.absent();
79 return Optional.of(javadoc);
83 public void setJavadoc(String javadoc) {
84 this.javadoc = javadoc;
88 public List<Annotation> getAnnotations() {
93 public List<Field> getFields() {
98 public List<? extends Method> getMethods() {
104 public List<Constructor> getConstructors() {
105 return Collections.emptyList();
109 public String toString() {
110 return "AbstractFtlTemplate{" + "typeDeclaration=" + typeDeclaration
111 + ", packageName='" + packageName + '\'' + '}';