blob: fdf876d2d8935b36a782de1701bf26ec32d0d4f9 [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 saraswal870c56f2016-02-20 21:57:16 +053020
Gaurav Agrawal56527662016-04-20 15:49:17 +053021import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
22import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCaptialCase;
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;
57import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
Gaurav Agrawal56527662016-04-20 15:49:17 +053058import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_STRING;
59import static org.onosproject.yangutils.utils.UtilConstants.RPC_OUTPUT_STRING;
Bharat saraswale2d51d62016-03-23 19:40:35 +053060import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053061import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
Bharat saraswale2d51d62016-03-23 19:40:35 +053062import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
63
Bharat saraswal870c56f2016-02-20 21:57:16 +053064/**
Bharat saraswald9822e92016-04-05 15:13:44 +053065 * Represents javadoc for the generated classes.
Bharat saraswal870c56f2016-02-20 21:57:16 +053066 */
67public final class JavaDocGen {
68
69 /**
Bharat saraswald9822e92016-04-05 15:13:44 +053070 * Creates an instance of java doc gen.
Bharat saraswal870c56f2016-02-20 21:57:16 +053071 */
72 private JavaDocGen() {
73 }
74
75 /**
76 * JavaDocs types.
77 */
Vidyashree Rama74453712016-04-18 12:29:39 +053078 public enum JavaDocType {
Bharat saraswal870c56f2016-02-20 21:57:16 +053079
80 /**
81 * For class.
82 */
83 IMPL_CLASS,
84
85 /**
86 * For builder class.
87 */
88 BUILDER_CLASS,
89
90 /**
91 * For interface.
92 */
93 INTERFACE,
94
95 /**
96 * For builder interface.
97 */
98 BUILDER_INTERFACE,
99
100 /**
101 * For package-info.
102 */
103 PACKAGE_INFO,
104
105 /**
106 * For getters.
107 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530108 GETTER_METHOD,
Bharat saraswal870c56f2016-02-20 21:57:16 +0530109
110 /**
Gaurav Agrawal56527662016-04-20 15:49:17 +0530111 * For rpc.
112 */
113 RPC_INTERFACE,
114
115 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530116 * For event.
117 */
118 EVENT,
119
120 /**
121 * For event listener.
122 */
123 EVENT_LISTENER,
124
125 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530126 * For setters.
127 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530128 SETTER_METHOD,
Bharat saraswal870c56f2016-02-20 21:57:16 +0530129
130 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530131 * For type def's setters.
132 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530133 TYPE_DEF_SETTER_METHOD,
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530134
135 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530136 * For of method.
137 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530138 OF_METHOD,
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530139
140 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530141 * For default constructor.
142 */
143 DEFAULT_CONSTRUCTOR,
144
145 /**
146 * For constructor.
147 */
148 CONSTRUCTOR,
149
150 /**
Gaurav Agrawal56527662016-04-20 15:49:17 +0530151 * For from method.
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530152 */
Gaurav Agrawal56527662016-04-20 15:49:17 +0530153 FROM_METHOD,
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530154
155 /**
156 * For type constructor.
157 */
158 TYPE_CONSTRUCTOR,
159
160 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530161 * For build.
162 */
Bharat saraswald72411a2016-04-19 01:00:16 +0530163 BUILD_METHOD,
164
165 /**
166 * For enum.
167 */
168 ENUM_CLASS,
169
170 /**
171 * For enum's attributes.
172 */
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530173 ENUM_ATTRIBUTE,
174
175 /**
176 * For manager setters.
177 */
178 MANAGER_SETTER_METHOD
Bharat saraswal870c56f2016-02-20 21:57:16 +0530179 }
180
181 /**
182 * Returns java docs.
183 *
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530184 * @param type java doc type
185 * @param name name of the YangNode
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530186 * @param isList is list attribute
187 * @return javadocs.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530188 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530189 public static String getJavaDoc(JavaDocType type, String name, boolean isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530190
Gaurav Agrawal56527662016-04-20 15:49:17 +0530191 name = JavaIdentifierSyntax.getSmallCase(getCamelCase(name, null));
192 switch (type) {
193 case IMPL_CLASS: {
194 return generateForImplClass(name);
195 }
196 case BUILDER_CLASS: {
197 return generateForBuilderClass(name);
198 }
199 case INTERFACE: {
200 return generateForInterface(name);
201 }
202 case BUILDER_INTERFACE: {
203 return generateForBuilderInterface(name);
204 }
205 case PACKAGE_INFO: {
206 return generateForPackage(name);
207 }
208 case GETTER_METHOD: {
209 return generateForGetters(name, isList);
210 }
211 case TYPE_DEF_SETTER_METHOD: {
212 return generateForTypeDefSetter(name);
213 }
214 case SETTER_METHOD: {
215 return generateForSetters(name, isList);
216 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530217 case MANAGER_SETTER_METHOD: {
218 return generateForManagerSetters(name, isList);
219 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530220 case OF_METHOD: {
221 return generateForOf(name);
222 }
223 case DEFAULT_CONSTRUCTOR: {
224 return generateForDefaultConstructors(name);
225 }
226 case BUILD_METHOD: {
227 return generateForBuild(name);
228 }
229 case TYPE_CONSTRUCTOR: {
230 return generateForTypeConstructor(name);
231 }
232 case FROM_METHOD: {
233 return generateForFromString(name);
234 }
235 case ENUM_CLASS: {
236 return generateForEnum(name);
237 }
238 case ENUM_ATTRIBUTE: {
239 return generateForEnumAttr(name);
240 }
241 case RPC_INTERFACE: {
242 return generateForRpcInterface(name);
243 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530244 case EVENT: {
245 return generateForEvent(name);
246 }
247 case EVENT_LISTENER: {
248 return generateForEventListener(name);
249 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530250 default: {
251 return generateForConstructors(name);
252 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530253 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530254 }
255
256 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530257 * Generates javaDocs for enum's attributes.
258 *
259 * @param name attribute name
260 * @return javaDocs
261 */
262 private static String generateForEnumAttr(String name) {
263 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + ENUM_ATTRIBUTE_JAVADOC
264 + name + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
265 }
266
267 /**
Gaurav Agrawal56527662016-04-20 15:49:17 +0530268 * Generates javaDocs for rpc method.
269 *
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530270 * @param rpcName name of the rpc
271 * @param inputName name of input
Gaurav Agrawal56527662016-04-20 15:49:17 +0530272 * @param outputName name of output
273 * @return javaDocs of rpc method
274 */
275 public static String generateJavaDocForRpc(String rpcName, String inputName, String outputName) {
276 rpcName = getCamelCase(rpcName, null);
277 inputName = getCaptialCase(inputName);
278 outputName = getCaptialCase(outputName);
279
280 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RPC
281 + rpcName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
282 + getInputString(inputName, rpcName) + getOutputString(outputName, rpcName) + FOUR_SPACE_INDENTATION
283 + JAVA_DOC_END_LINE;
284 }
285
286 /**
287 * Returns output string of rpc.
288 *
289 * @param outputName name of output
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530290 * @param rpcName name of rpc
Gaurav Agrawal56527662016-04-20 15:49:17 +0530291 * @return javaDocs for output string of rpc
292 */
293 private static String getOutputString(String outputName, String rpcName) {
294 return FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + outputName + SPACE + RPC_OUTPUT_STRING + rpcName + NEW_LINE;
295 }
296
297 /**
298 * Returns input string of rpc.
299 *
300 * @param inputName name of input
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530301 * @param rpcName name of rpc
Gaurav Agrawal56527662016-04-20 15:49:17 +0530302 * @return javaDocs for input string of rpc
303 */
304 private static String getInputString(String inputName, String rpcName) {
305 if (inputName.equals("")) {
306 return null;
307 } else {
308 return FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + inputName + SPACE + RPC_INPUT_STRING + rpcName + NEW_LINE;
309 }
310 }
311
312 /**
313 * Generates javaDoc for the interface.
314 *
315 * @param interfaceName interface name
316 * @return javaDocs
317 */
318 private static String generateForRpcInterface(String interfaceName) {
319 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
320 + JAVA_DOC_END_LINE;
321 }
322
323 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530324 * Generates javaDoc for the event.
325 *
326 * @param eventClassName event class name
327 * @return javaDocs
328 */
329 private static String generateForEvent(String eventClassName) {
330 return NEW_LINE + JAVA_DOC_FIRST_LINE + EVENT_JAVA_DOC + eventClassName + PERIOD + NEW_LINE
331 + JAVA_DOC_END_LINE;
332 }
333
334 /**
335 * Generates javaDoc for the event listener.
336 *
337 * @param eventListenerInterfaceName event class name
338 * @return javaDocs
339 */
340 private static String generateForEventListener(String eventListenerInterfaceName) {
341 return NEW_LINE + JAVA_DOC_FIRST_LINE + EVENT_LISTENER_JAVA_DOC + eventListenerInterfaceName
342 + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
343 }
344
345 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530346 * Generates javaDocs for getter method.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530347 *
348 * @param attribute attribute
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530349 * @param isList is list attribute
Bharat saraswal870c56f2016-02-20 21:57:16 +0530350 * @return javaDocs
351 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530352 private static String generateForGetters(String attribute, boolean isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530353
354 String getter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530355 + JAVA_DOC_GETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530356 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530357 if (isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530358 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
Vinod Kumar S38046502016-03-23 15:30:27 +0530359 getter = getter + listAttribute;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530360 } else {
361 getter = getter + VALUE + SPACE + OF + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530362 }
363
Bharat saraswale2d51d62016-03-23 19:40:35 +0530364 getter = getter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530365 return getter;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530366 }
367
368 /**
369 * Generates javaDocs for setter method.
370 *
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 generateForSetters(String attribute, boolean isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530376
377 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530378 + JAVA_DOC_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530379 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
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 setter = setter + listAttribute;
383 } else {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530384 setter = setter + VALUE + SPACE + OF + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530385 }
Bharat saraswale2d51d62016-03-23 19:40:35 +0530386 setter = setter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + BUILDER_OBJECT + attribute
387 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530388 return setter;
389 }
390
391 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530392 * Generates javaDocs for setter method.
393 *
394 * @param attribute attribute
395 * @param isList is list attribute
396 * @return javaDocs
397 */
398 private static String generateForManagerSetters(String attribute, boolean isList) {
399
400 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
401 + JAVA_DOC_MANAGER_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
402 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
403 if (isList) {
404 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
405 setter = setter + listAttribute;
406 } else {
407 setter = setter + VALUE + SPACE + OF + SPACE;
408 }
409 setter = setter + attribute
410 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
411 return setter;
412 }
413
414 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530415 * Generates javaDocs for of method.
416 *
417 * @param attribute attribute
418 * @return javaDocs
419 */
420 private static String generateForOf(String attribute) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530421 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
Bharat saraswal2f11f652016-03-25 18:19:46 +0530422 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswale2d51d62016-03-23 19:40:35 +0530423 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
424 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
425 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530426 }
427
428 /**
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530429 * Generates javaDocs for from method.
430 *
431 * @param attribute attribute
432 * @return javaDocs
433 */
Gaurav Agrawal56527662016-04-20 15:49:17 +0530434 private static String generateForFromString(String attribute) {
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530435
436 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
437 + attribute + SPACE + FROM_STRING_METHOD_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + PERIOD
438 + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM
439 + FROM_STRING_PARAM_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + PERIOD + NEW_LINE
440 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
441 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
442 }
443
444 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530445 * Generates javaDocs for typedef setter method.
446 *
447 * @param attribute attribute
448 * @return javaDocs
449 */
450 private static String generateForTypeDefSetter(String attribute) {
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530451 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530452 + JAVA_DOC_SETTERS_COMMON + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530453 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530454 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530455 }
456
457 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530458 * Generates javaDocs for the impl class.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530459 *
460 * @param className class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530461 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530462 */
463 private static String generateForImplClass(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530464 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 +0530465 }
466
467 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530468 * Generates javaDocs for enum.
469 *
470 * @param className enum class name
471 * @return javaDocs
472 */
473 private static String generateForEnum(String className) {
474 return NEW_LINE + NEW_LINE + JAVA_DOC_FIRST_LINE + ENUM_CLASS_JAVADOC + className + PERIOD + NEW_LINE
475 + JAVA_DOC_END_LINE;
476 }
477
478 /**
479 * Generates javaDocs for the builder class.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530480 *
481 * @param className class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530482 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530483 */
484 private static String generateForBuilderClass(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530485 return NEW_LINE + JAVA_DOC_FIRST_LINE + BUILDER_CLASS_JAVA_DOC + className + PERIOD + NEW_LINE
486 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530487 }
488
489 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530490 * Generates javaDoc for the interface.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530491 *
492 * @param interfaceName interface name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530493 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530494 */
495 private static String generateForInterface(String interfaceName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530496 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
497 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530498 }
499
500 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530501 * Generates javaDoc for the builder interface.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530502 *
503 * @param builderforName builder for name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530504 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530505 */
506 private static String generateForBuilderInterface(String builderforName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530507 return JAVA_DOC_FIRST_LINE + BUILDER_INTERFACE_JAVA_DOC + builderforName + PERIOD + NEW_LINE
508 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530509 }
510
511 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530512 * Generates javaDocs for package-info.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530513 *
514 * @param packageName package name
515 * @return javaDocs
516 */
517 private static String generateForPackage(String packageName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530518 return JAVA_DOC_FIRST_LINE + PACKAGE_INFO_JAVADOC + packageName + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530519 }
520
521 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530522 * Generates javaDocs for default constructor.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530523 *
Bharat saraswal6ef0b762016-04-05 12:45:45 +0530524 * @param className class name
Bharat saraswal870c56f2016-02-20 21:57:16 +0530525 * @return javaDocs
526 */
Bharat saraswal6ef0b762016-04-05 12:45:45 +0530527 private static String generateForDefaultConstructors(String className) {
528 return FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR + className
529 + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530530 }
531
532 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530533 * Generates javaDocs for constructor with parameters.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530534 *
Bharat saraswal870c56f2016-02-20 21:57:16 +0530535 * @param className class name
536 * @return javaDocs
537 */
538 private static String generateForConstructors(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530539 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE
540 + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR + className + IMPL + PERIOD + NEW_LINE
Bharat saraswal2f11f652016-03-25 18:19:46 +0530541 + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM
542 + BUILDER.toLowerCase() + OBJECT + SPACE + BUILDER_OBJECT + className + NEW_LINE
Bharat saraswale2d51d62016-03-23 19:40:35 +0530543 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530544 }
545
546 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530547 * Generates javaDocs for build.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530548 *
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530549 * @param buildName builder name
Bharat saraswal870c56f2016-02-20 21:57:16 +0530550 * @return javaDocs
551 */
552 private static String generateForBuild(String buildName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530553 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_BUILD
Bharat saraswal2f11f652016-03-25 18:19:46 +0530554 + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswale2d51d62016-03-23 19:40:35 +0530555 + JAVA_DOC_RETURN + JAVA_DOC_BUILD_RETURN + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION
556 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530557 }
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530558
559 /**
560 * Generates javaDocs for type constructor.
561 *
562 * @param attribute attribute string
563 * @return javaDocs for type constructor
564 */
565 private static String generateForTypeConstructor(String attribute) {
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530566 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530567 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
568 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530569 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530570 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530571}