blob: 335de7f7922f0dbdcb8c8d1272ad1621a7bbc15c [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;
Bharat saraswale2d51d62016-03-23 19:40:35 +053022import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
23import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_CLASS_JAVA_DOC;
24import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_INTERFACE_JAVA_DOC;
25import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_OBJECT;
Bharat saraswald72411a2016-04-19 01:00:16 +053026import static org.onosproject.yangutils.utils.UtilConstants.ENUM_ATTRIBUTE_JAVADOC;
27import static org.onosproject.yangutils.utils.UtilConstants.ENUM_CLASS_JAVADOC;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053028import static org.onosproject.yangutils.utils.UtilConstants.EVENT_JAVA_DOC;
29import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER_JAVA_DOC;
Bharat saraswale2d51d62016-03-23 19:40:35 +053030import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053031import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_METHOD_NAME;
32import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_PARAM_NAME;
Bharat saraswale2d51d62016-03-23 19:40:35 +053033import static org.onosproject.yangutils.utils.UtilConstants.IMPL;
34import static org.onosproject.yangutils.utils.UtilConstants.IMPL_CLASS_JAVA_DOC;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053035import static org.onosproject.yangutils.utils.UtilConstants.INPUT;
Bharat saraswale2d51d62016-03-23 19:40:35 +053036import static org.onosproject.yangutils.utils.UtilConstants.INTERFACE_JAVA_DOC;
37import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD;
38import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD_RETURN;
39import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_CONSTRUCTOR;
Bharat saraswale2d51d62016-03-23 19:40:35 +053040import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_END_LINE;
41import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_FIRST_LINE;
42import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_GETTERS;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053043import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_MANAGER_SETTERS;
Bharat saraswale2d51d62016-03-23 19:40:35 +053044import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_OF;
45import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_PARAM;
46import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RETURN;
Gaurav Agrawal56527662016-04-20 15:49:17 +053047import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RPC;
Bharat saraswale2d51d62016-03-23 19:40:35 +053048import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS;
49import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS_COMMON;
50import static org.onosproject.yangutils.utils.UtilConstants.LIST;
51import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
Bharat saraswal2f11f652016-03-25 18:19:46 +053052import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE_ASTERISK;
Bharat saraswale2d51d62016-03-23 19:40:35 +053053import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
54import static org.onosproject.yangutils.utils.UtilConstants.OF;
55import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC;
Bharat saraswalc0e04842016-05-12 13:16:57 +053056import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC_OF_CHILD;
Bharat saraswale2d51d62016-03-23 19:40:35 +053057import 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;
Bharat saraswalc0e04842016-05-12 13:16:57 +053063import static org.onosproject.yangutils.utils.UtilConstants.VOID;
Bharat saraswale2d51d62016-03-23 19:40:35 +053064
Bharat saraswal870c56f2016-02-20 21:57:16 +053065/**
Bharat saraswald9822e92016-04-05 15:13:44 +053066 * Represents javadoc for the generated classes.
Bharat saraswal870c56f2016-02-20 21:57:16 +053067 */
68public final class JavaDocGen {
69
70 /**
Bharat saraswald9822e92016-04-05 15:13:44 +053071 * Creates an instance of java doc gen.
Bharat saraswal870c56f2016-02-20 21:57:16 +053072 */
73 private JavaDocGen() {
74 }
75
76 /**
77 * JavaDocs types.
78 */
Vidyashree Rama74453712016-04-18 12:29:39 +053079 public enum JavaDocType {
Bharat saraswal870c56f2016-02-20 21:57:16 +053080
81 /**
82 * For class.
83 */
84 IMPL_CLASS,
85
86 /**
87 * For builder class.
88 */
89 BUILDER_CLASS,
90
91 /**
92 * For interface.
93 */
94 INTERFACE,
95
96 /**
97 * For builder interface.
98 */
99 BUILDER_INTERFACE,
100
101 /**
102 * For package-info.
103 */
104 PACKAGE_INFO,
105
106 /**
107 * For getters.
108 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530109 GETTER_METHOD,
Bharat saraswal870c56f2016-02-20 21:57:16 +0530110
111 /**
Bharat saraswalc0e04842016-05-12 13:16:57 +0530112 * For rpc service.
Gaurav Agrawal56527662016-04-20 15:49:17 +0530113 */
114 RPC_INTERFACE,
115
116 /**
Bharat saraswalc0e04842016-05-12 13:16:57 +0530117 * For rpc manager.
118 */
119 RPC_MANAGER,
120
121 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530122 * For event.
123 */
124 EVENT,
125
126 /**
127 * For event listener.
128 */
129 EVENT_LISTENER,
130
131 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530132 * For setters.
133 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530134 SETTER_METHOD,
Bharat saraswal870c56f2016-02-20 21:57:16 +0530135
136 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530137 * For type def's setters.
138 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530139 TYPE_DEF_SETTER_METHOD,
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530140
141 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530142 * For of method.
143 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530144 OF_METHOD,
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530145
146 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530147 * For default constructor.
148 */
149 DEFAULT_CONSTRUCTOR,
150
151 /**
152 * For constructor.
153 */
154 CONSTRUCTOR,
155
156 /**
Gaurav Agrawal56527662016-04-20 15:49:17 +0530157 * For from method.
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530158 */
Gaurav Agrawal56527662016-04-20 15:49:17 +0530159 FROM_METHOD,
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530160
161 /**
162 * For type constructor.
163 */
164 TYPE_CONSTRUCTOR,
165
166 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530167 * For build.
168 */
Bharat saraswald72411a2016-04-19 01:00:16 +0530169 BUILD_METHOD,
170
171 /**
172 * For enum.
173 */
174 ENUM_CLASS,
175
176 /**
177 * For enum's attributes.
178 */
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530179 ENUM_ATTRIBUTE,
180
181 /**
182 * For manager setters.
183 */
184 MANAGER_SETTER_METHOD
Bharat saraswal870c56f2016-02-20 21:57:16 +0530185 }
186
187 /**
188 * Returns java docs.
189 *
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530190 * @param type java doc type
191 * @param name name of the YangNode
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530192 * @param isList is list attribute
193 * @return javadocs.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530194 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530195 public static String getJavaDoc(JavaDocType type, String name, boolean isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530196
Gaurav Agrawal56527662016-04-20 15:49:17 +0530197 name = JavaIdentifierSyntax.getSmallCase(getCamelCase(name, null));
198 switch (type) {
199 case IMPL_CLASS: {
200 return generateForImplClass(name);
201 }
202 case BUILDER_CLASS: {
203 return generateForBuilderClass(name);
204 }
205 case INTERFACE: {
206 return generateForInterface(name);
207 }
208 case BUILDER_INTERFACE: {
209 return generateForBuilderInterface(name);
210 }
211 case PACKAGE_INFO: {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530212 return generateForPackage(name, isList);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530213 }
214 case GETTER_METHOD: {
215 return generateForGetters(name, isList);
216 }
217 case TYPE_DEF_SETTER_METHOD: {
218 return generateForTypeDefSetter(name);
219 }
220 case SETTER_METHOD: {
221 return generateForSetters(name, isList);
222 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530223 case MANAGER_SETTER_METHOD: {
224 return generateForManagerSetters(name, isList);
225 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530226 case OF_METHOD: {
227 return generateForOf(name);
228 }
229 case DEFAULT_CONSTRUCTOR: {
230 return generateForDefaultConstructors(name);
231 }
232 case BUILD_METHOD: {
233 return generateForBuild(name);
234 }
235 case TYPE_CONSTRUCTOR: {
236 return generateForTypeConstructor(name);
237 }
238 case FROM_METHOD: {
239 return generateForFromString(name);
240 }
241 case ENUM_CLASS: {
242 return generateForEnum(name);
243 }
244 case ENUM_ATTRIBUTE: {
245 return generateForEnumAttr(name);
246 }
247 case RPC_INTERFACE: {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530248 return generateForRpcService(name);
249 }
250 case RPC_MANAGER: {
251 return generateForImplClass(name);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530252 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530253 case EVENT: {
254 return generateForEvent(name);
255 }
256 case EVENT_LISTENER: {
257 return generateForEventListener(name);
258 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530259 default: {
260 return generateForConstructors(name);
261 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530262 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530263 }
264
265 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530266 * Generates javaDocs for enum's attributes.
267 *
268 * @param name attribute name
269 * @return javaDocs
270 */
271 private static String generateForEnumAttr(String name) {
272 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + ENUM_ATTRIBUTE_JAVADOC
273 + name + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
274 }
275
276 /**
Gaurav Agrawal56527662016-04-20 15:49:17 +0530277 * Generates javaDocs for rpc method.
278 *
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530279 * @param rpcName name of the rpc
280 * @param inputName name of input
Gaurav Agrawal56527662016-04-20 15:49:17 +0530281 * @param outputName name of output
282 * @return javaDocs of rpc method
283 */
284 public static String generateJavaDocForRpc(String rpcName, String inputName, String outputName) {
285 rpcName = getCamelCase(rpcName, null);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530286
Bharat saraswalc0e04842016-05-12 13:16:57 +0530287 String javadoc = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RPC
Gaurav Agrawal56527662016-04-20 15:49:17 +0530288 + rpcName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswalc0e04842016-05-12 13:16:57 +0530289 + getInputString(inputName, rpcName);
290 if (!outputName.equals(VOID)) {
291 javadoc = javadoc + getOutputString(outputName, rpcName);
292 }
293 return javadoc + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Gaurav Agrawal56527662016-04-20 15:49:17 +0530294 }
295
296 /**
297 * Returns output string of rpc.
298 *
299 * @param outputName name of output
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530300 * @param rpcName name of rpc
Gaurav Agrawal56527662016-04-20 15:49:17 +0530301 * @return javaDocs for output string of rpc
302 */
303 private static String getOutputString(String outputName, String rpcName) {
304 return FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + outputName + SPACE + RPC_OUTPUT_STRING + rpcName + NEW_LINE;
305 }
306
307 /**
308 * Returns input string of rpc.
309 *
310 * @param inputName name of input
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530311 * @param rpcName name of rpc
Gaurav Agrawal56527662016-04-20 15:49:17 +0530312 * @return javaDocs for input string of rpc
313 */
314 private static String getInputString(String inputName, String rpcName) {
315 if (inputName.equals("")) {
316 return null;
317 } else {
318 return FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + inputName + SPACE + RPC_INPUT_STRING + rpcName + NEW_LINE;
319 }
320 }
321
322 /**
323 * Generates javaDoc for the interface.
324 *
325 * @param interfaceName interface name
326 * @return javaDocs
327 */
Bharat saraswalc0e04842016-05-12 13:16:57 +0530328 private static String generateForRpcService(String interfaceName) {
Gaurav Agrawal56527662016-04-20 15:49:17 +0530329 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
330 + JAVA_DOC_END_LINE;
331 }
332
333 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530334 * Generates javaDoc for the event.
335 *
336 * @param eventClassName event class name
337 * @return javaDocs
338 */
339 private static String generateForEvent(String eventClassName) {
340 return NEW_LINE + JAVA_DOC_FIRST_LINE + EVENT_JAVA_DOC + eventClassName + PERIOD + NEW_LINE
341 + JAVA_DOC_END_LINE;
342 }
343
344 /**
345 * Generates javaDoc for the event listener.
346 *
347 * @param eventListenerInterfaceName event class name
348 * @return javaDocs
349 */
350 private static String generateForEventListener(String eventListenerInterfaceName) {
351 return NEW_LINE + JAVA_DOC_FIRST_LINE + EVENT_LISTENER_JAVA_DOC + eventListenerInterfaceName
352 + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
353 }
354
355 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530356 * Generates javaDocs for getter method.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530357 *
358 * @param attribute attribute
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530359 * @param isList is list attribute
Bharat saraswal870c56f2016-02-20 21:57:16 +0530360 * @return javaDocs
361 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530362 private static String generateForGetters(String attribute, boolean isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530363
364 String getter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530365 + JAVA_DOC_GETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530366 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530367 if (isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530368 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
Vinod Kumar S38046502016-03-23 15:30:27 +0530369 getter = getter + listAttribute;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530370 } else {
371 getter = getter + VALUE + SPACE + OF + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530372 }
373
Bharat saraswale2d51d62016-03-23 19:40:35 +0530374 getter = getter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530375 return getter;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530376 }
377
378 /**
379 * Generates javaDocs for setter method.
380 *
381 * @param attribute attribute
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530382 * @param isList is list attribute
Bharat saraswal870c56f2016-02-20 21:57:16 +0530383 * @return javaDocs
384 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530385 private static String generateForSetters(String attribute, boolean isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530386
387 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530388 + JAVA_DOC_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530389 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530390 if (isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530391 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
Vinod Kumar S38046502016-03-23 15:30:27 +0530392 setter = setter + listAttribute;
393 } else {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530394 setter = setter + VALUE + SPACE + OF + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530395 }
Bharat saraswale2d51d62016-03-23 19:40:35 +0530396 setter = setter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + BUILDER_OBJECT + attribute
397 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530398 return setter;
399 }
400
401 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530402 * Generates javaDocs for setter method.
403 *
404 * @param attribute attribute
405 * @param isList is list attribute
406 * @return javaDocs
407 */
408 private static String generateForManagerSetters(String attribute, boolean isList) {
409
410 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
411 + JAVA_DOC_MANAGER_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
412 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
413 if (isList) {
414 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
415 setter = setter + listAttribute;
416 } else {
417 setter = setter + VALUE + SPACE + OF + SPACE;
418 }
419 setter = setter + attribute
420 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
421 return setter;
422 }
423
424 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530425 * Generates javaDocs for of method.
426 *
427 * @param attribute attribute
428 * @return javaDocs
429 */
430 private static String generateForOf(String attribute) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530431 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
Bharat saraswal2f11f652016-03-25 18:19:46 +0530432 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswale2d51d62016-03-23 19:40:35 +0530433 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
434 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
435 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530436 }
437
438 /**
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530439 * Generates javaDocs for from method.
440 *
441 * @param attribute attribute
442 * @return javaDocs
443 */
Gaurav Agrawal56527662016-04-20 15:49:17 +0530444 private static String generateForFromString(String attribute) {
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530445
446 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
447 + attribute + SPACE + FROM_STRING_METHOD_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + PERIOD
448 + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM
Bharat saraswalc0e04842016-05-12 13:16:57 +0530449 + FROM_STRING_PARAM_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + NEW_LINE
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530450 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
451 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
452 }
453
454 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530455 * Generates javaDocs for typedef setter method.
456 *
457 * @param attribute attribute
458 * @return javaDocs
459 */
460 private static String generateForTypeDefSetter(String attribute) {
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530461 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530462 + JAVA_DOC_SETTERS_COMMON + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530463 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530464 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530465 }
466
467 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530468 * Generates javaDocs for the impl class.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530469 *
470 * @param className class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530471 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530472 */
473 private static String generateForImplClass(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530474 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 +0530475 }
476
477 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530478 * Generates javaDocs for enum.
479 *
480 * @param className enum class name
481 * @return javaDocs
482 */
483 private static String generateForEnum(String className) {
484 return NEW_LINE + NEW_LINE + JAVA_DOC_FIRST_LINE + ENUM_CLASS_JAVADOC + className + PERIOD + NEW_LINE
485 + JAVA_DOC_END_LINE;
486 }
487
488 /**
489 * Generates javaDocs for the builder class.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530490 *
491 * @param className class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530492 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530493 */
494 private static String generateForBuilderClass(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530495 return NEW_LINE + JAVA_DOC_FIRST_LINE + BUILDER_CLASS_JAVA_DOC + className + PERIOD + NEW_LINE
496 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530497 }
498
499 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530500 * Generates javaDoc for the interface.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530501 *
502 * @param interfaceName interface name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530503 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530504 */
505 private static String generateForInterface(String interfaceName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530506 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
507 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530508 }
509
510 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530511 * Generates javaDoc for the builder interface.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530512 *
513 * @param builderforName builder for name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530514 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530515 */
516 private static String generateForBuilderInterface(String builderforName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530517 return JAVA_DOC_FIRST_LINE + BUILDER_INTERFACE_JAVA_DOC + builderforName + PERIOD + NEW_LINE
518 + 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 package-info.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530523 *
524 * @param packageName package name
Bharat saraswalc0e04842016-05-12 13:16:57 +0530525 * @param isChildNode is it child node
Bharat saraswal870c56f2016-02-20 21:57:16 +0530526 * @return javaDocs
527 */
Bharat saraswalc0e04842016-05-12 13:16:57 +0530528 private static String generateForPackage(String packageName, boolean isChildNode) {
529 String javaDoc = JAVA_DOC_FIRST_LINE + PACKAGE_INFO_JAVADOC + packageName;
530 if (isChildNode) {
531 javaDoc = javaDoc + PACKAGE_INFO_JAVADOC_OF_CHILD;
532 }
533 return javaDoc + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530534 }
535
536 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530537 * Generates javaDocs for default constructor.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530538 *
Bharat saraswal6ef0b762016-04-05 12:45:45 +0530539 * @param className class name
Bharat saraswal870c56f2016-02-20 21:57:16 +0530540 * @return javaDocs
541 */
Bharat saraswal6ef0b762016-04-05 12:45:45 +0530542 private static String generateForDefaultConstructors(String className) {
543 return FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR + className
544 + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530545 }
546
547 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530548 * Generates javaDocs for constructor with parameters.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530549 *
Bharat saraswal870c56f2016-02-20 21:57:16 +0530550 * @param className class name
551 * @return javaDocs
552 */
553 private static String generateForConstructors(String className) {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530554 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
555 + className + IMPL + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
556 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + BUILDER.toLowerCase() + OBJECT + SPACE + BUILDER_OBJECT
557 + className + 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 build.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530562 *
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530563 * @param buildName builder name
Bharat saraswal870c56f2016-02-20 21:57:16 +0530564 * @return javaDocs
565 */
566 private static String generateForBuild(String buildName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530567 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_BUILD
Bharat saraswal2f11f652016-03-25 18:19:46 +0530568 + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswale2d51d62016-03-23 19:40:35 +0530569 + JAVA_DOC_RETURN + JAVA_DOC_BUILD_RETURN + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION
570 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530571 }
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530572
573 /**
574 * Generates javaDocs for type constructor.
575 *
576 * @param attribute attribute string
577 * @return javaDocs for type constructor
578 */
579 private static String generateForTypeConstructor(String attribute) {
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530580 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530581 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
582 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530583 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530584 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530585}