blob: 218f56d8927110cd1eff39f3f4d3436f89bf1f92 [file] [log] [blame]
Bharat saraswal870c56f2016-02-20 21:57:16 +05301/*
Brian O'Connor5ab426f2016-04-09 01:19:45 -07002 * Copyright 2016-present Open Networking Laboratory
Bharat saraswal870c56f2016-02-20 21:57:16 +05303 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package org.onosproject.yangutils.utils.io.impl;
18
19import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax;
Bharat saraswal33dfa012016-05-17 19:59:16 +053020import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
Bharat saraswal870c56f2016-02-20 21:57:16 +053021
Gaurav Agrawal56527662016-04-20 15:49:17 +053022import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
Bharat saraswale2d51d62016-03-23 19:40:35 +053023import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
24import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_CLASS_JAVA_DOC;
25import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_INTERFACE_JAVA_DOC;
26import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_OBJECT;
Bharat saraswald72411a2016-04-19 01:00:16 +053027import static org.onosproject.yangutils.utils.UtilConstants.ENUM_ATTRIBUTE_JAVADOC;
28import static org.onosproject.yangutils.utils.UtilConstants.ENUM_CLASS_JAVADOC;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053029import static org.onosproject.yangutils.utils.UtilConstants.EVENT_JAVA_DOC;
30import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER_JAVA_DOC;
Bharat saraswale2d51d62016-03-23 19:40:35 +053031import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053032import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_METHOD_NAME;
33import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_PARAM_NAME;
Bharat saraswale2d51d62016-03-23 19:40:35 +053034import static org.onosproject.yangutils.utils.UtilConstants.IMPL;
35import static org.onosproject.yangutils.utils.UtilConstants.IMPL_CLASS_JAVA_DOC;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053036import static org.onosproject.yangutils.utils.UtilConstants.INPUT;
Bharat saraswale2d51d62016-03-23 19:40:35 +053037import static org.onosproject.yangutils.utils.UtilConstants.INTERFACE_JAVA_DOC;
38import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD;
39import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD_RETURN;
40import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_CONSTRUCTOR;
Bharat saraswale2d51d62016-03-23 19:40:35 +053041import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_END_LINE;
42import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_FIRST_LINE;
43import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_GETTERS;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053044import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_MANAGER_SETTERS;
Bharat saraswale2d51d62016-03-23 19:40:35 +053045import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_OF;
46import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_PARAM;
47import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RETURN;
Gaurav Agrawal56527662016-04-20 15:49:17 +053048import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RPC;
Bharat saraswale2d51d62016-03-23 19:40:35 +053049import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS;
50import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS_COMMON;
51import static org.onosproject.yangutils.utils.UtilConstants.LIST;
52import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
Bharat saraswal2f11f652016-03-25 18:19:46 +053053import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE_ASTERISK;
Bharat saraswale2d51d62016-03-23 19:40:35 +053054import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
55import static org.onosproject.yangutils.utils.UtilConstants.OF;
56import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC;
Bharat saraswalc0e04842016-05-12 13:16:57 +053057import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC_OF_CHILD;
Bharat saraswale2d51d62016-03-23 19:40:35 +053058import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
Gaurav Agrawal56527662016-04-20 15:49:17 +053059import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_STRING;
60import static org.onosproject.yangutils.utils.UtilConstants.RPC_OUTPUT_STRING;
Bharat saraswale2d51d62016-03-23 19:40:35 +053061import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053062import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
Bharat saraswale2d51d62016-03-23 19:40:35 +053063import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
Bharat saraswalc0e04842016-05-12 13:16:57 +053064import static org.onosproject.yangutils.utils.UtilConstants.VOID;
Bharat saraswale2d51d62016-03-23 19:40:35 +053065
Bharat saraswal870c56f2016-02-20 21:57:16 +053066/**
Bharat saraswald9822e92016-04-05 15:13:44 +053067 * Represents javadoc for the generated classes.
Bharat saraswal870c56f2016-02-20 21:57:16 +053068 */
69public final class JavaDocGen {
70
71 /**
Bharat saraswald9822e92016-04-05 15:13:44 +053072 * Creates an instance of java doc gen.
Bharat saraswal870c56f2016-02-20 21:57:16 +053073 */
74 private JavaDocGen() {
75 }
76
77 /**
78 * JavaDocs types.
79 */
Vidyashree Rama74453712016-04-18 12:29:39 +053080 public enum JavaDocType {
Bharat saraswal870c56f2016-02-20 21:57:16 +053081
82 /**
83 * For class.
84 */
85 IMPL_CLASS,
86
87 /**
88 * For builder class.
89 */
90 BUILDER_CLASS,
91
92 /**
93 * For interface.
94 */
95 INTERFACE,
96
97 /**
98 * For builder interface.
99 */
100 BUILDER_INTERFACE,
101
102 /**
103 * For package-info.
104 */
105 PACKAGE_INFO,
106
107 /**
108 * For getters.
109 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530110 GETTER_METHOD,
Bharat saraswal870c56f2016-02-20 21:57:16 +0530111
112 /**
Bharat saraswalc0e04842016-05-12 13:16:57 +0530113 * For rpc service.
Gaurav Agrawal56527662016-04-20 15:49:17 +0530114 */
115 RPC_INTERFACE,
116
117 /**
Bharat saraswalc0e04842016-05-12 13:16:57 +0530118 * For rpc manager.
119 */
120 RPC_MANAGER,
121
122 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530123 * For event.
124 */
125 EVENT,
126
127 /**
128 * For event listener.
129 */
130 EVENT_LISTENER,
131
132 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530133 * For setters.
134 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530135 SETTER_METHOD,
Bharat saraswal870c56f2016-02-20 21:57:16 +0530136
137 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530138 * For type def's setters.
139 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530140 TYPE_DEF_SETTER_METHOD,
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530141
142 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530143 * For of method.
144 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530145 OF_METHOD,
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530146
147 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530148 * For default constructor.
149 */
150 DEFAULT_CONSTRUCTOR,
151
152 /**
153 * For constructor.
154 */
155 CONSTRUCTOR,
156
157 /**
Gaurav Agrawal56527662016-04-20 15:49:17 +0530158 * For from method.
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530159 */
Gaurav Agrawal56527662016-04-20 15:49:17 +0530160 FROM_METHOD,
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530161
162 /**
163 * For type constructor.
164 */
165 TYPE_CONSTRUCTOR,
166
167 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530168 * For build.
169 */
Bharat saraswald72411a2016-04-19 01:00:16 +0530170 BUILD_METHOD,
171
172 /**
173 * For enum.
174 */
175 ENUM_CLASS,
176
177 /**
178 * For enum's attributes.
179 */
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530180 ENUM_ATTRIBUTE,
181
182 /**
183 * For manager setters.
184 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530185 MANAGER_SETTER_METHOD,
186
187 /**
188 * For event subject.
189 */
190 EVENT_SUBJECT_CLASS
Bharat saraswal870c56f2016-02-20 21:57:16 +0530191 }
192
193 /**
194 * Returns java docs.
195 *
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530196 * @param type java doc type
197 * @param name name of the YangNode
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530198 * @param isList is list attribute
Bharat saraswal33dfa012016-05-17 19:59:16 +0530199 * @param pluginConfig plugin configurations
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530200 * @return javadocs.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530201 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530202 public static String getJavaDoc(JavaDocType type, String name, boolean isList, YangPluginConfig pluginConfig) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530203
Bharat saraswal33dfa012016-05-17 19:59:16 +0530204 name = JavaIdentifierSyntax.getSmallCase(getCamelCase(name, pluginConfig.getConflictResolver()));
Gaurav Agrawal56527662016-04-20 15:49:17 +0530205 switch (type) {
206 case IMPL_CLASS: {
Bharat saraswal33dfa012016-05-17 19:59:16 +0530207 return generateForClass(name);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530208 }
209 case BUILDER_CLASS: {
210 return generateForBuilderClass(name);
211 }
212 case INTERFACE: {
213 return generateForInterface(name);
214 }
215 case BUILDER_INTERFACE: {
216 return generateForBuilderInterface(name);
217 }
218 case PACKAGE_INFO: {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530219 return generateForPackage(name, isList);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530220 }
221 case GETTER_METHOD: {
222 return generateForGetters(name, isList);
223 }
224 case TYPE_DEF_SETTER_METHOD: {
225 return generateForTypeDefSetter(name);
226 }
227 case SETTER_METHOD: {
228 return generateForSetters(name, isList);
229 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530230 case MANAGER_SETTER_METHOD: {
231 return generateForManagerSetters(name, isList);
232 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530233 case OF_METHOD: {
234 return generateForOf(name);
235 }
236 case DEFAULT_CONSTRUCTOR: {
237 return generateForDefaultConstructors(name);
238 }
239 case BUILD_METHOD: {
240 return generateForBuild(name);
241 }
242 case TYPE_CONSTRUCTOR: {
243 return generateForTypeConstructor(name);
244 }
245 case FROM_METHOD: {
246 return generateForFromString(name);
247 }
248 case ENUM_CLASS: {
249 return generateForEnum(name);
250 }
251 case ENUM_ATTRIBUTE: {
252 return generateForEnumAttr(name);
253 }
254 case RPC_INTERFACE: {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530255 return generateForRpcService(name);
256 }
257 case RPC_MANAGER: {
Bharat saraswal33dfa012016-05-17 19:59:16 +0530258 return generateForClass(name);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530259 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530260 case EVENT: {
261 return generateForEvent(name);
262 }
263 case EVENT_LISTENER: {
264 return generateForEventListener(name);
265 }
Bharat saraswal33dfa012016-05-17 19:59:16 +0530266 case EVENT_SUBJECT_CLASS: {
267 return generateForClass(name);
268 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530269 default: {
270 return generateForConstructors(name);
271 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530272 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530273 }
274
275 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530276 * Generates javaDocs for enum's attributes.
277 *
278 * @param name attribute name
279 * @return javaDocs
280 */
281 private static String generateForEnumAttr(String name) {
282 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + ENUM_ATTRIBUTE_JAVADOC
283 + name + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
284 }
285
286 /**
Gaurav Agrawal56527662016-04-20 15:49:17 +0530287 * Generates javaDocs for rpc method.
288 *
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530289 * @param rpcName name of the rpc
290 * @param inputName name of input
Gaurav Agrawal56527662016-04-20 15:49:17 +0530291 * @param outputName name of output
Bharat saraswal33dfa012016-05-17 19:59:16 +0530292 * @param pluginConfig plugin configurations
Gaurav Agrawal56527662016-04-20 15:49:17 +0530293 * @return javaDocs of rpc method
294 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530295 public static String generateJavaDocForRpc(String rpcName, String inputName, String outputName,
296 YangPluginConfig pluginConfig) {
297 rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
Gaurav Agrawal56527662016-04-20 15:49:17 +0530298
Bharat saraswal33dfa012016-05-17 19:59:16 +0530299 String javadoc =
300 NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RPC
301 + rpcName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
302 + getInputString(inputName, rpcName);
Bharat saraswalc0e04842016-05-12 13:16:57 +0530303 if (!outputName.equals(VOID)) {
304 javadoc = javadoc + getOutputString(outputName, rpcName);
305 }
306 return javadoc + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Gaurav Agrawal56527662016-04-20 15:49:17 +0530307 }
308
309 /**
310 * Returns output string of rpc.
311 *
312 * @param outputName name of output
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530313 * @param rpcName name of rpc
Gaurav Agrawal56527662016-04-20 15:49:17 +0530314 * @return javaDocs for output string of rpc
315 */
316 private static String getOutputString(String outputName, String rpcName) {
317 return FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + outputName + SPACE + RPC_OUTPUT_STRING + rpcName + NEW_LINE;
318 }
319
320 /**
321 * Returns input string of rpc.
322 *
323 * @param inputName name of input
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530324 * @param rpcName name of rpc
Gaurav Agrawal56527662016-04-20 15:49:17 +0530325 * @return javaDocs for input string of rpc
326 */
327 private static String getInputString(String inputName, String rpcName) {
328 if (inputName.equals("")) {
329 return null;
330 } else {
331 return FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + inputName + SPACE + RPC_INPUT_STRING + rpcName + NEW_LINE;
332 }
333 }
334
335 /**
336 * Generates javaDoc for the interface.
337 *
338 * @param interfaceName interface name
339 * @return javaDocs
340 */
Bharat saraswalc0e04842016-05-12 13:16:57 +0530341 private static String generateForRpcService(String interfaceName) {
Gaurav Agrawal56527662016-04-20 15:49:17 +0530342 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
343 + JAVA_DOC_END_LINE;
344 }
345
346 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530347 * Generates javaDoc for the event.
348 *
349 * @param eventClassName event class name
350 * @return javaDocs
351 */
352 private static String generateForEvent(String eventClassName) {
353 return NEW_LINE + JAVA_DOC_FIRST_LINE + EVENT_JAVA_DOC + eventClassName + PERIOD + NEW_LINE
354 + JAVA_DOC_END_LINE;
355 }
356
357 /**
358 * Generates javaDoc for the event listener.
359 *
360 * @param eventListenerInterfaceName event class name
361 * @return javaDocs
362 */
363 private static String generateForEventListener(String eventListenerInterfaceName) {
364 return NEW_LINE + JAVA_DOC_FIRST_LINE + EVENT_LISTENER_JAVA_DOC + eventListenerInterfaceName
365 + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
366 }
367
368 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530369 * Generates javaDocs for getter method.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530370 *
371 * @param attribute attribute
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530372 * @param isList is list attribute
Bharat saraswal870c56f2016-02-20 21:57:16 +0530373 * @return javaDocs
374 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530375 private static String generateForGetters(String attribute, boolean isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530376
377 String getter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530378 + JAVA_DOC_GETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530379 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530380 if (isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530381 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
Vinod Kumar S38046502016-03-23 15:30:27 +0530382 getter = getter + listAttribute;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530383 } else {
384 getter = getter + VALUE + SPACE + OF + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530385 }
386
Bharat saraswale2d51d62016-03-23 19:40:35 +0530387 getter = getter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530388 return getter;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530389 }
390
391 /**
392 * Generates javaDocs for setter method.
393 *
394 * @param attribute attribute
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530395 * @param isList is list attribute
Bharat saraswal870c56f2016-02-20 21:57:16 +0530396 * @return javaDocs
397 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530398 private static String generateForSetters(String attribute, boolean isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530399
400 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530401 + JAVA_DOC_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530402 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530403 if (isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530404 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
Vinod Kumar S38046502016-03-23 15:30:27 +0530405 setter = setter + listAttribute;
406 } else {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530407 setter = setter + VALUE + SPACE + OF + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530408 }
Bharat saraswale2d51d62016-03-23 19:40:35 +0530409 setter = setter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + BUILDER_OBJECT + attribute
410 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530411 return setter;
412 }
413
414 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530415 * Generates javaDocs for setter method.
416 *
417 * @param attribute attribute
418 * @param isList is list attribute
419 * @return javaDocs
420 */
421 private static String generateForManagerSetters(String attribute, boolean isList) {
422
423 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
424 + JAVA_DOC_MANAGER_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
425 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
426 if (isList) {
427 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
428 setter = setter + listAttribute;
429 } else {
430 setter = setter + VALUE + SPACE + OF + SPACE;
431 }
432 setter = setter + attribute
433 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
434 return setter;
435 }
436
437 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530438 * Generates javaDocs for of method.
439 *
440 * @param attribute attribute
441 * @return javaDocs
442 */
443 private static String generateForOf(String attribute) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530444 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
Bharat saraswal2f11f652016-03-25 18:19:46 +0530445 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswale2d51d62016-03-23 19:40:35 +0530446 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
447 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
448 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530449 }
450
451 /**
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530452 * Generates javaDocs for from method.
453 *
454 * @param attribute attribute
455 * @return javaDocs
456 */
Gaurav Agrawal56527662016-04-20 15:49:17 +0530457 private static String generateForFromString(String attribute) {
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530458
459 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
460 + attribute + SPACE + FROM_STRING_METHOD_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + PERIOD
461 + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM
Bharat saraswalc0e04842016-05-12 13:16:57 +0530462 + FROM_STRING_PARAM_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + NEW_LINE
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530463 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
464 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
465 }
466
467 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530468 * Generates javaDocs for typedef setter method.
469 *
470 * @param attribute attribute
471 * @return javaDocs
472 */
473 private static String generateForTypeDefSetter(String attribute) {
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530474 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530475 + JAVA_DOC_SETTERS_COMMON + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530476 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530477 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530478 }
479
480 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530481 * Generates javaDocs for the impl class.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530482 *
483 * @param className class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530484 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530485 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530486 private static String generateForClass(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530487 return NEW_LINE + JAVA_DOC_FIRST_LINE + IMPL_CLASS_JAVA_DOC + className + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530488 }
489
490 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530491 * Generates javaDocs for enum.
492 *
493 * @param className enum class name
494 * @return javaDocs
495 */
496 private static String generateForEnum(String className) {
497 return NEW_LINE + NEW_LINE + JAVA_DOC_FIRST_LINE + ENUM_CLASS_JAVADOC + className + PERIOD + NEW_LINE
498 + JAVA_DOC_END_LINE;
499 }
500
501 /**
502 * Generates javaDocs for the builder class.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530503 *
504 * @param className class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530505 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530506 */
507 private static String generateForBuilderClass(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530508 return NEW_LINE + JAVA_DOC_FIRST_LINE + BUILDER_CLASS_JAVA_DOC + className + PERIOD + NEW_LINE
509 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530510 }
511
512 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530513 * Generates javaDoc for the interface.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530514 *
515 * @param interfaceName interface name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530516 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530517 */
518 private static String generateForInterface(String interfaceName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530519 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
520 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530521 }
522
523 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530524 * Generates javaDoc for the builder interface.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530525 *
526 * @param builderforName builder for name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530527 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530528 */
529 private static String generateForBuilderInterface(String builderforName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530530 return JAVA_DOC_FIRST_LINE + BUILDER_INTERFACE_JAVA_DOC + builderforName + PERIOD + NEW_LINE
531 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530532 }
533
534 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530535 * Generates javaDocs for package-info.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530536 *
537 * @param packageName package name
Bharat saraswalc0e04842016-05-12 13:16:57 +0530538 * @param isChildNode is it child node
Bharat saraswal870c56f2016-02-20 21:57:16 +0530539 * @return javaDocs
540 */
Bharat saraswalc0e04842016-05-12 13:16:57 +0530541 private static String generateForPackage(String packageName, boolean isChildNode) {
542 String javaDoc = JAVA_DOC_FIRST_LINE + PACKAGE_INFO_JAVADOC + packageName;
543 if (isChildNode) {
544 javaDoc = javaDoc + PACKAGE_INFO_JAVADOC_OF_CHILD;
545 }
546 return javaDoc + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530547 }
548
549 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530550 * Generates javaDocs for default constructor.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530551 *
Bharat saraswal6ef0b762016-04-05 12:45:45 +0530552 * @param className class name
Bharat saraswal870c56f2016-02-20 21:57:16 +0530553 * @return javaDocs
554 */
Bharat saraswal6ef0b762016-04-05 12:45:45 +0530555 private static String generateForDefaultConstructors(String className) {
556 return FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR + className
557 + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530558 }
559
560 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530561 * Generates javaDocs for constructor with parameters.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530562 *
Bharat saraswal870c56f2016-02-20 21:57:16 +0530563 * @param className class name
564 * @return javaDocs
565 */
566 private static String generateForConstructors(String className) {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530567 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
568 + className + IMPL + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
569 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + BUILDER.toLowerCase() + OBJECT + SPACE + BUILDER_OBJECT
570 + className + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530571 }
572
573 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530574 * Generates javaDocs for build.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530575 *
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530576 * @param buildName builder name
Bharat saraswal870c56f2016-02-20 21:57:16 +0530577 * @return javaDocs
578 */
579 private static String generateForBuild(String buildName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530580 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_BUILD
Bharat saraswal2f11f652016-03-25 18:19:46 +0530581 + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswale2d51d62016-03-23 19:40:35 +0530582 + JAVA_DOC_RETURN + JAVA_DOC_BUILD_RETURN + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION
583 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530584 }
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530585
586 /**
587 * Generates javaDocs for type constructor.
588 *
589 * @param attribute attribute string
590 * @return javaDocs for type constructor
591 */
592 private static String generateForTypeConstructor(String attribute) {
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530593 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530594 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
595 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530596 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530597 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530598}