blob: 19660b1a361f92c575628f272090509b1e04a669 [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
Gaurav Agrawal8a5af142016-06-15 13:58:01 +053019import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
Bharat saraswale2d51d62016-03-23 19:40:35 +053020import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
21import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_CLASS_JAVA_DOC;
22import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_INTERFACE_JAVA_DOC;
23import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_OBJECT;
Bharat saraswalcad0e652016-05-26 23:48:38 +053024import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
Bharat saraswald72411a2016-04-19 01:00:16 +053025import static org.onosproject.yangutils.utils.UtilConstants.ENUM_ATTRIBUTE_JAVADOC;
26import static org.onosproject.yangutils.utils.UtilConstants.ENUM_CLASS_JAVADOC;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053027import static org.onosproject.yangutils.utils.UtilConstants.EVENT_JAVA_DOC;
28import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER_JAVA_DOC;
Bharat saraswale2d51d62016-03-23 19:40:35 +053029import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053030import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_METHOD_NAME;
31import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_PARAM_NAME;
Bharat saraswale2d51d62016-03-23 19:40:35 +053032import static org.onosproject.yangutils.utils.UtilConstants.IMPL;
33import static org.onosproject.yangutils.utils.UtilConstants.IMPL_CLASS_JAVA_DOC;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053034import static org.onosproject.yangutils.utils.UtilConstants.INPUT;
Bharat saraswale2d51d62016-03-23 19:40:35 +053035import static org.onosproject.yangutils.utils.UtilConstants.INTERFACE_JAVA_DOC;
36import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD;
37import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD_RETURN;
38import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_CONSTRUCTOR;
Bharat saraswale2d51d62016-03-23 19:40:35 +053039import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_END_LINE;
40import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_FIRST_LINE;
41import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_GETTERS;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053042import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_MANAGER_SETTERS;
Bharat saraswale2d51d62016-03-23 19:40:35 +053043import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_OF;
44import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_PARAM;
45import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RETURN;
Gaurav Agrawal56527662016-04-20 15:49:17 +053046import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RPC;
Bharat saraswale2d51d62016-03-23 19:40:35 +053047import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS;
48import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS_COMMON;
49import static org.onosproject.yangutils.utils.UtilConstants.LIST;
50import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
Bharat saraswal2f11f652016-03-25 18:19:46 +053051import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE_ASTERISK;
Bharat saraswale2d51d62016-03-23 19:40:35 +053052import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
53import static org.onosproject.yangutils.utils.UtilConstants.OF;
54import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC;
Bharat saraswalc0e04842016-05-12 13:16:57 +053055import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC_OF_CHILD;
Bharat saraswale2d51d62016-03-23 19:40:35 +053056import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
Gaurav Agrawal56527662016-04-20 15:49:17 +053057import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_STRING;
58import static org.onosproject.yangutils.utils.UtilConstants.RPC_OUTPUT_STRING;
Bharat saraswale2d51d62016-03-23 19:40:35 +053059import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053060import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
Bharat saraswale2d51d62016-03-23 19:40:35 +053061import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
Bharat saraswalc0e04842016-05-12 13:16:57 +053062import static org.onosproject.yangutils.utils.UtilConstants.VOID;
Bharat saraswale2d51d62016-03-23 19:40:35 +053063
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 /**
Bharat saraswalc0e04842016-05-12 13:16:57 +0530111 * For rpc service.
Gaurav Agrawal56527662016-04-20 15:49:17 +0530112 */
113 RPC_INTERFACE,
114
115 /**
Bharat saraswalc0e04842016-05-12 13:16:57 +0530116 * For rpc manager.
117 */
118 RPC_MANAGER,
119
120 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530121 * For event.
122 */
123 EVENT,
124
125 /**
126 * For event listener.
127 */
128 EVENT_LISTENER,
129
130 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530131 * For setters.
132 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530133 SETTER_METHOD,
Bharat saraswal870c56f2016-02-20 21:57:16 +0530134
135 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530136 * For type def's setters.
137 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530138 TYPE_DEF_SETTER_METHOD,
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530139
140 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530141 * For of method.
142 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530143 OF_METHOD,
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530144
145 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530146 * For default constructor.
147 */
148 DEFAULT_CONSTRUCTOR,
149
150 /**
151 * For constructor.
152 */
153 CONSTRUCTOR,
154
155 /**
Gaurav Agrawal56527662016-04-20 15:49:17 +0530156 * For from method.
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530157 */
Gaurav Agrawal56527662016-04-20 15:49:17 +0530158 FROM_METHOD,
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530159
160 /**
161 * For type constructor.
162 */
163 TYPE_CONSTRUCTOR,
164
165 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530166 * For build.
167 */
Bharat saraswald72411a2016-04-19 01:00:16 +0530168 BUILD_METHOD,
169
170 /**
171 * For enum.
172 */
173 ENUM_CLASS,
174
175 /**
176 * For enum's attributes.
177 */
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530178 ENUM_ATTRIBUTE,
179
180 /**
181 * For manager setters.
182 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530183 MANAGER_SETTER_METHOD,
184
185 /**
186 * For event subject.
187 */
188 EVENT_SUBJECT_CLASS
Bharat saraswal870c56f2016-02-20 21:57:16 +0530189 }
190
191 /**
192 * Returns java docs.
193 *
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530194 * @param type java doc type
195 * @param name name of the YangNode
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530196 * @param isList is list attribute
Bharat saraswal33dfa012016-05-17 19:59:16 +0530197 * @param pluginConfig plugin configurations
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530198 * @return javadocs.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530199 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530200 public static String getJavaDoc(JavaDocType type, String name, boolean isList, YangPluginConfig pluginConfig) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530201
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530202 name = YangIoUtils.getSmallCase(getCamelCase(name, pluginConfig.getConflictResolver()));
Gaurav Agrawal56527662016-04-20 15:49:17 +0530203 switch (type) {
204 case IMPL_CLASS: {
Bharat saraswal33dfa012016-05-17 19:59:16 +0530205 return generateForClass(name);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530206 }
207 case BUILDER_CLASS: {
208 return generateForBuilderClass(name);
209 }
210 case INTERFACE: {
211 return generateForInterface(name);
212 }
213 case BUILDER_INTERFACE: {
214 return generateForBuilderInterface(name);
215 }
216 case PACKAGE_INFO: {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530217 return generateForPackage(name, isList);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530218 }
219 case GETTER_METHOD: {
220 return generateForGetters(name, isList);
221 }
222 case TYPE_DEF_SETTER_METHOD: {
223 return generateForTypeDefSetter(name);
224 }
225 case SETTER_METHOD: {
226 return generateForSetters(name, isList);
227 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530228 case MANAGER_SETTER_METHOD: {
229 return generateForManagerSetters(name, isList);
230 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530231 case OF_METHOD: {
232 return generateForOf(name);
233 }
234 case DEFAULT_CONSTRUCTOR: {
235 return generateForDefaultConstructors(name);
236 }
237 case BUILD_METHOD: {
238 return generateForBuild(name);
239 }
240 case TYPE_CONSTRUCTOR: {
241 return generateForTypeConstructor(name);
242 }
243 case FROM_METHOD: {
244 return generateForFromString(name);
245 }
246 case ENUM_CLASS: {
247 return generateForEnum(name);
248 }
249 case ENUM_ATTRIBUTE: {
250 return generateForEnumAttr(name);
251 }
252 case RPC_INTERFACE: {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530253 return generateForRpcService(name);
254 }
255 case RPC_MANAGER: {
Bharat saraswal33dfa012016-05-17 19:59:16 +0530256 return generateForClass(name);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530257 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530258 case EVENT: {
259 return generateForEvent(name);
260 }
261 case EVENT_LISTENER: {
262 return generateForEventListener(name);
263 }
Bharat saraswal33dfa012016-05-17 19:59:16 +0530264 case EVENT_SUBJECT_CLASS: {
265 return generateForClass(name);
266 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530267 default: {
268 return generateForConstructors(name);
269 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530270 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530271 }
272
273 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530274 * Generates javaDocs for enum's attributes.
275 *
276 * @param name attribute name
277 * @return javaDocs
278 */
279 private static String generateForEnumAttr(String name) {
280 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + ENUM_ATTRIBUTE_JAVADOC
281 + name + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
282 }
283
284 /**
Gaurav Agrawal56527662016-04-20 15:49:17 +0530285 * Generates javaDocs for rpc method.
286 *
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530287 * @param rpcName name of the rpc
288 * @param inputName name of input
Gaurav Agrawal56527662016-04-20 15:49:17 +0530289 * @param outputName name of output
Bharat saraswal33dfa012016-05-17 19:59:16 +0530290 * @param pluginConfig plugin configurations
Gaurav Agrawal56527662016-04-20 15:49:17 +0530291 * @return javaDocs of rpc method
292 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530293 public static String generateJavaDocForRpc(String rpcName, String inputName, String outputName,
294 YangPluginConfig pluginConfig) {
295 rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
Gaurav Agrawal56527662016-04-20 15:49:17 +0530296
Bharat saraswal33dfa012016-05-17 19:59:16 +0530297 String javadoc =
298 NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RPC
Bharat saraswalcad0e652016-05-26 23:48:38 +0530299 + rpcName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK;
300 if (!inputName.equals(EMPTY_STRING)) {
301 javadoc = javadoc + getInputString(inputName, rpcName);
302 }
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 saraswalcad0e652016-05-26 23:48:38 +0530409 setter = setter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + BUILDER_OBJECT
410 + attribute
Bharat saraswale2d51d62016-03-23 19:40:35 +0530411 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530412 return setter;
413 }
414
415 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530416 * Generates javaDocs for setter method.
417 *
418 * @param attribute attribute
419 * @param isList is list attribute
420 * @return javaDocs
421 */
422 private static String generateForManagerSetters(String attribute, boolean isList) {
423
424 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
425 + JAVA_DOC_MANAGER_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
426 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
427 if (isList) {
428 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
429 setter = setter + listAttribute;
430 } else {
431 setter = setter + VALUE + SPACE + OF + SPACE;
432 }
433 setter = setter + attribute
434 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
435 return setter;
436 }
437
438 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530439 * Generates javaDocs for of method.
440 *
441 * @param attribute attribute
442 * @return javaDocs
443 */
444 private static String generateForOf(String attribute) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530445 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
Bharat saraswal2f11f652016-03-25 18:19:46 +0530446 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswale2d51d62016-03-23 19:40:35 +0530447 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
448 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
449 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530450 }
451
452 /**
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530453 * Generates javaDocs for from method.
454 *
455 * @param attribute attribute
456 * @return javaDocs
457 */
Gaurav Agrawal56527662016-04-20 15:49:17 +0530458 private static String generateForFromString(String attribute) {
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530459
460 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
461 + attribute + SPACE + FROM_STRING_METHOD_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + PERIOD
462 + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM
Bharat saraswalc0e04842016-05-12 13:16:57 +0530463 + FROM_STRING_PARAM_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + NEW_LINE
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530464 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
465 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
466 }
467
468 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530469 * Generates javaDocs for typedef setter method.
470 *
471 * @param attribute attribute
472 * @return javaDocs
473 */
474 private static String generateForTypeDefSetter(String attribute) {
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530475 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530476 + JAVA_DOC_SETTERS_COMMON + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530477 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530478 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530479 }
480
481 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530482 * Generates javaDocs for the impl class.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530483 *
484 * @param className class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530485 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530486 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530487 private static String generateForClass(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530488 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 +0530489 }
490
491 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530492 * Generates javaDocs for enum.
493 *
494 * @param className enum class name
495 * @return javaDocs
496 */
497 private static String generateForEnum(String className) {
498 return NEW_LINE + NEW_LINE + JAVA_DOC_FIRST_LINE + ENUM_CLASS_JAVADOC + className + PERIOD + NEW_LINE
499 + JAVA_DOC_END_LINE;
500 }
501
502 /**
503 * Generates javaDocs for the builder class.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530504 *
505 * @param className class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530506 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530507 */
508 private static String generateForBuilderClass(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530509 return NEW_LINE + JAVA_DOC_FIRST_LINE + BUILDER_CLASS_JAVA_DOC + className + PERIOD + NEW_LINE
510 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530511 }
512
513 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530514 * Generates javaDoc for the interface.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530515 *
516 * @param interfaceName interface name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530517 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530518 */
519 private static String generateForInterface(String interfaceName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530520 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
521 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530522 }
523
524 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530525 * Generates javaDoc for the builder interface.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530526 *
527 * @param builderforName builder for name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530528 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530529 */
530 private static String generateForBuilderInterface(String builderforName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530531 return JAVA_DOC_FIRST_LINE + BUILDER_INTERFACE_JAVA_DOC + builderforName + PERIOD + NEW_LINE
532 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530533 }
534
535 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530536 * Generates javaDocs for package-info.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530537 *
538 * @param packageName package name
Bharat saraswalc0e04842016-05-12 13:16:57 +0530539 * @param isChildNode is it child node
Bharat saraswal870c56f2016-02-20 21:57:16 +0530540 * @return javaDocs
541 */
Bharat saraswalc0e04842016-05-12 13:16:57 +0530542 private static String generateForPackage(String packageName, boolean isChildNode) {
543 String javaDoc = JAVA_DOC_FIRST_LINE + PACKAGE_INFO_JAVADOC + packageName;
544 if (isChildNode) {
545 javaDoc = javaDoc + PACKAGE_INFO_JAVADOC_OF_CHILD;
546 }
547 return javaDoc + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530548 }
549
550 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530551 * Generates javaDocs for default constructor.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530552 *
Bharat saraswal6ef0b762016-04-05 12:45:45 +0530553 * @param className class name
Bharat saraswal870c56f2016-02-20 21:57:16 +0530554 * @return javaDocs
555 */
Bharat saraswal6ef0b762016-04-05 12:45:45 +0530556 private static String generateForDefaultConstructors(String className) {
557 return FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR + className
558 + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530559 }
560
561 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530562 * Generates javaDocs for constructor with parameters.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530563 *
Bharat saraswal870c56f2016-02-20 21:57:16 +0530564 * @param className class name
565 * @return javaDocs
566 */
567 private static String generateForConstructors(String className) {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530568 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
569 + className + IMPL + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
570 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + BUILDER.toLowerCase() + OBJECT + SPACE + BUILDER_OBJECT
571 + className + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530572 }
573
574 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530575 * Generates javaDocs for build.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530576 *
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530577 * @param buildName builder name
Bharat saraswal870c56f2016-02-20 21:57:16 +0530578 * @return javaDocs
579 */
580 private static String generateForBuild(String buildName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530581 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_BUILD
Bharat saraswal2f11f652016-03-25 18:19:46 +0530582 + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswale2d51d62016-03-23 19:40:35 +0530583 + JAVA_DOC_RETURN + JAVA_DOC_BUILD_RETURN + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION
584 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530585 }
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530586
587 /**
588 * Generates javaDocs for type constructor.
589 *
590 * @param attribute attribute string
591 * @return javaDocs for type constructor
592 */
593 private static String generateForTypeConstructor(String attribute) {
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530594 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530595 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
596 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530597 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530598 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530599}