Fix warnings reported by maven
[yangtools.git] / code-generator / binding-generator-util / src / main / java / org / opendaylight / yangtools / binding / generator / util / generated / type / builder / GeneratedTOBuilderImpl.java
1 /*\r
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.yangtools.binding.generator.util.generated.type.builder;\r
9 \r
10 import java.util.ArrayList;\r
11 import java.util.List;\r
12 \r
13 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedProperty;\r
14 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject;\r
15 import org.opendaylight.yangtools.sal.binding.model.api.type.builder.GeneratedPropertyBuilder;\r
16 import org.opendaylight.yangtools.sal.binding.model.api.type.builder.GeneratedTOBuilder;\r
17 import org.opendaylight.yangtools.sal.binding.model.api.type.builder.MethodSignatureBuilder;\r
18 \r
19 public final class GeneratedTOBuilderImpl extends AbstractGeneratedTypeBuilder<GeneratedTOBuilder> implements\r
20         GeneratedTOBuilder {\r
21 \r
22     private GeneratedTransferObject extendsType;\r
23     private final List<GeneratedPropertyBuilder> properties = new ArrayList<>();\r
24     private final List<GeneratedPropertyBuilder> equalsProperties = new ArrayList<>();\r
25     private final List<GeneratedPropertyBuilder> hashProperties = new ArrayList<>();\r
26     private final List<GeneratedPropertyBuilder> toStringProperties = new ArrayList<>();\r
27     private boolean isUnionType = false;\r
28 \r
29     public GeneratedTOBuilderImpl(String packageName, String name) {\r
30         super(packageName, name);\r
31         setAbstract(false);\r
32     }\r
33 \r
34     @Override\r
35     public GeneratedTOBuilder setExtendsType(final GeneratedTransferObject genTransObj) {\r
36         if (genTransObj == null) {\r
37             throw new IllegalArgumentException("Generated Transfer Object cannot be null!");\r
38         }\r
39         extendsType = genTransObj;\r
40         return this;\r
41     }\r
42 \r
43     /**\r
44      * Add new Method Signature definition for Generated Type Builder and\r
45      * returns Method Signature Builder for specifying all Method parameters. <br>\r
46      * Name of Method cannot be <code>null</code>, if it is <code>null</code>\r
47      * the method SHOULD throw {@link IllegalArgumentException} <br>\r
48      * By <i>Default</i> the MethodSignatureBuilder SHOULD be pre-set as\r
49      * {@link MethodSignatureBuilder#setAbstract(boolean)},\r
50      * {TypeMemberBuilder#setFinal(boolean)} and\r
51      * {TypeMemberBuilder#setAccessModifier(boolean)}\r
52      * \r
53      * @param name\r
54      *            Name of Method\r
55      * @return <code>new</code> instance of Method Signature Builder.\r
56      */\r
57     @Override\r
58     public MethodSignatureBuilder addMethod(String name) {\r
59         final MethodSignatureBuilder builder = super.addMethod(name);\r
60         builder.setAbstract(false);\r
61         return builder;\r
62     }\r
63 \r
64     @Override\r
65     public GeneratedTOBuilder addEqualsIdentity(GeneratedPropertyBuilder property) {\r
66         equalsProperties.add(property);\r
67         return this;\r
68     }\r
69 \r
70     @Override\r
71     public GeneratedTOBuilder addHashIdentity(GeneratedPropertyBuilder property) {\r
72         hashProperties.add(property);\r
73         return this;\r
74     }\r
75 \r
76     @Override\r
77     public GeneratedTOBuilder addToStringProperty(GeneratedPropertyBuilder property) {\r
78         toStringProperties.add(property);\r
79         return this;\r
80     }\r
81 \r
82     @Override\r
83     protected GeneratedTOBuilder thisInstance() {\r
84         return this;\r
85     }\r
86 \r
87     @Override\r
88     public GeneratedTransferObject toInstance() {\r
89         return new GeneratedTransferObjectImpl(this);\r
90     }\r
91 \r
92     @Override\r
93     public String toString() {\r
94         StringBuilder builder = new StringBuilder();\r
95         builder.append("GeneratedTransferObject [packageName=");\r
96         builder.append(getPackageName());\r
97         builder.append(", name=");\r
98         builder.append(getName());\r
99         builder.append(", comment=");\r
100         builder.append(getComment());\r
101         builder.append(", constants=");\r
102         builder.append(getConstants());\r
103         builder.append(", enumerations=");\r
104         builder.append(getEnumerations());\r
105         builder.append(", properties=");\r
106         builder.append(properties);\r
107         builder.append(", equalsProperties=");\r
108         builder.append(equalsProperties);\r
109         builder.append(", hashCodeProperties=");\r
110         builder.append(hashProperties);\r
111         builder.append(", stringProperties=");\r
112         builder.append(toStringProperties);\r
113         builder.append(", annotations=");\r
114         builder.append(getAnnotations());\r
115         builder.append(", methods=");\r
116         builder.append(getMethodDefinitions());\r
117         builder.append("]");\r
118         return builder.toString();\r
119     }\r
120 \r
121     @Override\r
122     public void setIsUnion(boolean isUnion) {\r
123         this.isUnionType = isUnion;\r
124     }\r
125 \r
126     private static final class GeneratedTransferObjectImpl extends AbstractGeneratedType implements\r
127             GeneratedTransferObject {\r
128 \r
129         private final List<GeneratedProperty> equalsProperties;\r
130         private final List<GeneratedProperty> hashCodeProperties;\r
131         private final List<GeneratedProperty> stringProperties;\r
132         private final GeneratedTransferObject extendsType;\r
133         private final boolean isUnionType;\r
134 \r
135         public GeneratedTransferObjectImpl(GeneratedTOBuilderImpl builder) {\r
136             super(builder);\r
137             this.extendsType = builder.extendsType;\r
138             this.equalsProperties = toUnmodifiableProperties(builder.equalsProperties);\r
139             this.hashCodeProperties = toUnmodifiableProperties(builder.hashProperties);\r
140             this.stringProperties = toUnmodifiableProperties(builder.toStringProperties);\r
141             this.isUnionType = builder.isUnionType;\r
142         }\r
143 \r
144         @Override\r
145         public boolean isUnionType() {\r
146             return isUnionType;\r
147         }\r
148 \r
149         @Override\r
150         public GeneratedTransferObject getSuperType() {\r
151             return extendsType;\r
152         }\r
153 \r
154         @Override\r
155         public List<GeneratedProperty> getEqualsIdentifiers() {\r
156             return equalsProperties;\r
157         }\r
158 \r
159         @Override\r
160         public List<GeneratedProperty> getHashCodeIdentifiers() {\r
161             return hashCodeProperties;\r
162         }\r
163 \r
164         @Override\r
165         public List<GeneratedProperty> getToStringIdentifiers() {\r
166             return stringProperties;\r
167         }\r
168 \r
169         @Override\r
170         public String toString() {\r
171             StringBuilder builder = new StringBuilder();\r
172             builder.append("GeneratedTransferObject [packageName=");\r
173             builder.append(getPackageName());\r
174             builder.append(", name=");\r
175             builder.append(getName());\r
176             builder.append(", comment=");\r
177             builder.append(", annotations=");\r
178             builder.append(getAnnotations());\r
179             builder.append(getComment());\r
180             builder.append(", extends=");\r
181             builder.append(getSuperType());\r
182             builder.append(", implements=");\r
183             builder.append(getImplements());\r
184             builder.append(", enclosedTypes=");\r
185             builder.append(getEnclosedTypes());\r
186             builder.append(", constants=");\r
187             builder.append(getConstantDefinitions());\r
188             builder.append(", enumerations=");\r
189             builder.append(getEnumerations());\r
190             builder.append(", properties=");\r
191             builder.append(getProperties());\r
192             builder.append(", equalsProperties=");\r
193             builder.append(equalsProperties);\r
194             builder.append(", hashCodeProperties=");\r
195             builder.append(hashCodeProperties);\r
196             builder.append(", stringProperties=");\r
197             builder.append(stringProperties);\r
198             builder.append(", methods=");\r
199             builder.append(getMethodDefinitions());\r
200             builder.append("]");\r
201             return builder.toString();\r
202         }\r
203     }\r
204 }\r