bd28d93756497828d09b491b9dcb793c9b2a6d47
[controller.git] / opendaylight / config / yang-jmx-generator-plugin / src / main / java / org / opendaylight / controller / config / yangjmxgenerator / plugin / ftl / model / ModuleField.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model;
9
10
11 import java.util.ArrayList;
12 import java.util.Collections;
13 import java.util.List;
14 import javax.lang.model.element.Modifier;
15 import org.opendaylight.controller.config.yangjmxgenerator.attribute.Dependency;
16
17 public class ModuleField extends Field {
18
19     private final String nullableDefault, attributeName;
20     private final boolean dependent, isListOfDependencies;
21     private final Dependency dependency;
22
23     private ModuleField(List<Modifier> modifiers, String type, String name, String attributeName,
24             String nullableDefault, boolean isDependency, Dependency dependency, boolean isListOfDependencies,
25             boolean needsDepResolver) {
26         super(modifiers, type, name, null, needsDepResolver);
27         this.dependent = isDependency;
28         this.dependency = dependency;
29         this.attributeName = attributeName;
30         if (type.startsWith(List.class.getName()) && nullableDefault == null) {
31             String generics = type.substring(List.class.getName().length());
32             nullableDefault = "new " + ArrayList.class.getName() + generics + "()";
33         }
34         this.nullableDefault = nullableDefault;
35         this.isListOfDependencies = isListOfDependencies;
36     }
37
38     public ModuleField(String type, String name, String attributeName, String nullableDefault, boolean isDependency,
39             Dependency dependency, boolean isListOfDependencies, boolean needsDepResolve) {
40         this(Collections.emptyList(), type, name, attributeName, nullableDefault, isDependency, dependency,
41                 isListOfDependencies, needsDepResolve);
42     }
43
44     public boolean isIdentityRef() {
45         return false;
46     }
47
48     @Override
49     public String toString() {
50         return ModuleFieldSerializer.toString(this);
51     }
52
53     public Dependency getDependency() {
54         return dependency;
55     }
56
57     public String getNullableDefault() {
58         return nullableDefault;
59     }
60
61     public boolean isDependent() {
62         return dependent;
63     }
64
65     public boolean isListOfDependencies() {
66         return isListOfDependencies;
67     }
68
69     public String getAttributeName() {
70         return attributeName;
71     }
72
73
74     public boolean isList() {
75         return getType().startsWith("java.util.List");
76     }
77
78 }