blob: fb8f981d651a370e8f28dd828d77feed5de3f2e1 [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 saraswalcad0e652016-05-26 23:48:38 +053027import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
Bharat saraswald72411a2016-04-19 01:00:16 +053028import static org.onosproject.yangutils.utils.UtilConstants.ENUM_ATTRIBUTE_JAVADOC;
29import static org.onosproject.yangutils.utils.UtilConstants.ENUM_CLASS_JAVADOC;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053030import static org.onosproject.yangutils.utils.UtilConstants.EVENT_JAVA_DOC;
31import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER_JAVA_DOC;
Bharat saraswale2d51d62016-03-23 19:40:35 +053032import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053033import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_METHOD_NAME;
34import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_PARAM_NAME;
Bharat saraswale2d51d62016-03-23 19:40:35 +053035import static org.onosproject.yangutils.utils.UtilConstants.IMPL;
36import static org.onosproject.yangutils.utils.UtilConstants.IMPL_CLASS_JAVA_DOC;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053037import static org.onosproject.yangutils.utils.UtilConstants.INPUT;
Bharat saraswale2d51d62016-03-23 19:40:35 +053038import static org.onosproject.yangutils.utils.UtilConstants.INTERFACE_JAVA_DOC;
39import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD;
40import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD_RETURN;
41import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_CONSTRUCTOR;
Bharat saraswale2d51d62016-03-23 19:40:35 +053042import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_END_LINE;
43import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_FIRST_LINE;
44import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_GETTERS;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053045import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_MANAGER_SETTERS;
Bharat saraswale2d51d62016-03-23 19:40:35 +053046import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_OF;
47import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_PARAM;
48import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RETURN;
Gaurav Agrawal56527662016-04-20 15:49:17 +053049import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RPC;
Bharat saraswale2d51d62016-03-23 19:40:35 +053050import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS;
51import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS_COMMON;
52import static org.onosproject.yangutils.utils.UtilConstants.LIST;
53import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
Bharat saraswal2f11f652016-03-25 18:19:46 +053054import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE_ASTERISK;
Bharat saraswale2d51d62016-03-23 19:40:35 +053055import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
56import static org.onosproject.yangutils.utils.UtilConstants.OF;
57import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC;
Bharat saraswalc0e04842016-05-12 13:16:57 +053058import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC_OF_CHILD;
Bharat saraswale2d51d62016-03-23 19:40:35 +053059import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
Gaurav Agrawal56527662016-04-20 15:49:17 +053060import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_STRING;
61import static org.onosproject.yangutils.utils.UtilConstants.RPC_OUTPUT_STRING;
Bharat saraswale2d51d62016-03-23 19:40:35 +053062import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053063import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
Bharat saraswale2d51d62016-03-23 19:40:35 +053064import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
Bharat saraswalc0e04842016-05-12 13:16:57 +053065import static org.onosproject.yangutils.utils.UtilConstants.VOID;
Bharat saraswale2d51d62016-03-23 19:40:35 +053066
Bharat saraswal870c56f2016-02-20 21:57:16 +053067/**
Bharat saraswald9822e92016-04-05 15:13:44 +053068 * Represents javadoc for the generated classes.
Bharat saraswal870c56f2016-02-20 21:57:16 +053069 */
70public final class JavaDocGen {
71
72 /**
Bharat saraswald9822e92016-04-05 15:13:44 +053073 * Creates an instance of java doc gen.
Bharat saraswal870c56f2016-02-20 21:57:16 +053074 */
75 private JavaDocGen() {
76 }
77
78 /**
79 * JavaDocs types.
80 */
Vidyashree Rama74453712016-04-18 12:29:39 +053081 public enum JavaDocType {
Bharat saraswal870c56f2016-02-20 21:57:16 +053082
83 /**
84 * For class.
85 */
86 IMPL_CLASS,
87
88 /**
89 * For builder class.
90 */
91 BUILDER_CLASS,
92
93 /**
94 * For interface.
95 */
96 INTERFACE,
97
98 /**
99 * For builder interface.
100 */
101 BUILDER_INTERFACE,
102
103 /**
104 * For package-info.
105 */
106 PACKAGE_INFO,
107
108 /**
109 * For getters.
110 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530111 GETTER_METHOD,
Bharat saraswal870c56f2016-02-20 21:57:16 +0530112
113 /**
Bharat saraswalc0e04842016-05-12 13:16:57 +0530114 * For rpc service.
Gaurav Agrawal56527662016-04-20 15:49:17 +0530115 */
116 RPC_INTERFACE,
117
118 /**
Bharat saraswalc0e04842016-05-12 13:16:57 +0530119 * For rpc manager.
120 */
121 RPC_MANAGER,
122
123 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530124 * For event.
125 */
126 EVENT,
127
128 /**
129 * For event listener.
130 */
131 EVENT_LISTENER,
132
133 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530134 * For setters.
135 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530136 SETTER_METHOD,
Bharat saraswal870c56f2016-02-20 21:57:16 +0530137
138 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530139 * For type def's setters.
140 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530141 TYPE_DEF_SETTER_METHOD,
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530142
143 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530144 * For of method.
145 */
Bharat saraswale2d51d62016-03-23 19:40:35 +0530146 OF_METHOD,
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530147
148 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530149 * For default constructor.
150 */
151 DEFAULT_CONSTRUCTOR,
152
153 /**
154 * For constructor.
155 */
156 CONSTRUCTOR,
157
158 /**
Gaurav Agrawal56527662016-04-20 15:49:17 +0530159 * For from method.
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530160 */
Gaurav Agrawal56527662016-04-20 15:49:17 +0530161 FROM_METHOD,
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530162
163 /**
164 * For type constructor.
165 */
166 TYPE_CONSTRUCTOR,
167
168 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530169 * For build.
170 */
Bharat saraswald72411a2016-04-19 01:00:16 +0530171 BUILD_METHOD,
172
173 /**
174 * For enum.
175 */
176 ENUM_CLASS,
177
178 /**
179 * For enum's attributes.
180 */
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530181 ENUM_ATTRIBUTE,
182
183 /**
184 * For manager setters.
185 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530186 MANAGER_SETTER_METHOD,
187
188 /**
189 * For event subject.
190 */
191 EVENT_SUBJECT_CLASS
Bharat saraswal870c56f2016-02-20 21:57:16 +0530192 }
193
194 /**
195 * Returns java docs.
196 *
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530197 * @param type java doc type
198 * @param name name of the YangNode
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530199 * @param isList is list attribute
Bharat saraswal33dfa012016-05-17 19:59:16 +0530200 * @param pluginConfig plugin configurations
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530201 * @return javadocs.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530202 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530203 public static String getJavaDoc(JavaDocType type, String name, boolean isList, YangPluginConfig pluginConfig) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530204
Bharat saraswal33dfa012016-05-17 19:59:16 +0530205 name = JavaIdentifierSyntax.getSmallCase(getCamelCase(name, pluginConfig.getConflictResolver()));
Gaurav Agrawal56527662016-04-20 15:49:17 +0530206 switch (type) {
207 case IMPL_CLASS: {
Bharat saraswal33dfa012016-05-17 19:59:16 +0530208 return generateForClass(name);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530209 }
210 case BUILDER_CLASS: {
211 return generateForBuilderClass(name);
212 }
213 case INTERFACE: {
214 return generateForInterface(name);
215 }
216 case BUILDER_INTERFACE: {
217 return generateForBuilderInterface(name);
218 }
219 case PACKAGE_INFO: {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530220 return generateForPackage(name, isList);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530221 }
222 case GETTER_METHOD: {
223 return generateForGetters(name, isList);
224 }
225 case TYPE_DEF_SETTER_METHOD: {
226 return generateForTypeDefSetter(name);
227 }
228 case SETTER_METHOD: {
229 return generateForSetters(name, isList);
230 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530231 case MANAGER_SETTER_METHOD: {
232 return generateForManagerSetters(name, isList);
233 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530234 case OF_METHOD: {
235 return generateForOf(name);
236 }
237 case DEFAULT_CONSTRUCTOR: {
238 return generateForDefaultConstructors(name);
239 }
240 case BUILD_METHOD: {
241 return generateForBuild(name);
242 }
243 case TYPE_CONSTRUCTOR: {
244 return generateForTypeConstructor(name);
245 }
246 case FROM_METHOD: {
247 return generateForFromString(name);
248 }
249 case ENUM_CLASS: {
250 return generateForEnum(name);
251 }
252 case ENUM_ATTRIBUTE: {
253 return generateForEnumAttr(name);
254 }
255 case RPC_INTERFACE: {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530256 return generateForRpcService(name);
257 }
258 case RPC_MANAGER: {
Bharat saraswal33dfa012016-05-17 19:59:16 +0530259 return generateForClass(name);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530260 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530261 case EVENT: {
262 return generateForEvent(name);
263 }
264 case EVENT_LISTENER: {
265 return generateForEventListener(name);
266 }
Bharat saraswal33dfa012016-05-17 19:59:16 +0530267 case EVENT_SUBJECT_CLASS: {
268 return generateForClass(name);
269 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530270 default: {
271 return generateForConstructors(name);
272 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530273 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530274 }
275
276 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530277 * Generates javaDocs for enum's attributes.
278 *
279 * @param name attribute name
280 * @return javaDocs
281 */
282 private static String generateForEnumAttr(String name) {
283 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + ENUM_ATTRIBUTE_JAVADOC
284 + name + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
285 }
286
287 /**
Gaurav Agrawal56527662016-04-20 15:49:17 +0530288 * Generates javaDocs for rpc method.
289 *
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530290 * @param rpcName name of the rpc
291 * @param inputName name of input
Gaurav Agrawal56527662016-04-20 15:49:17 +0530292 * @param outputName name of output
Bharat saraswal33dfa012016-05-17 19:59:16 +0530293 * @param pluginConfig plugin configurations
Gaurav Agrawal56527662016-04-20 15:49:17 +0530294 * @return javaDocs of rpc method
295 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530296 public static String generateJavaDocForRpc(String rpcName, String inputName, String outputName,
297 YangPluginConfig pluginConfig) {
298 rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
Gaurav Agrawal56527662016-04-20 15:49:17 +0530299
Bharat saraswal33dfa012016-05-17 19:59:16 +0530300 String javadoc =
301 NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RPC
Bharat saraswalcad0e652016-05-26 23:48:38 +0530302 + rpcName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK;
303 if (!inputName.equals(EMPTY_STRING)) {
304 javadoc = javadoc + getInputString(inputName, rpcName);
305 }
Bharat saraswalc0e04842016-05-12 13:16:57 +0530306 if (!outputName.equals(VOID)) {
307 javadoc = javadoc + getOutputString(outputName, rpcName);
308 }
309 return javadoc + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Gaurav Agrawal56527662016-04-20 15:49:17 +0530310 }
311
312 /**
313 * Returns output string of rpc.
314 *
315 * @param outputName name of output
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530316 * @param rpcName name of rpc
Gaurav Agrawal56527662016-04-20 15:49:17 +0530317 * @return javaDocs for output string of rpc
318 */
319 private static String getOutputString(String outputName, String rpcName) {
320 return FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + outputName + SPACE + RPC_OUTPUT_STRING + rpcName + NEW_LINE;
321 }
322
323 /**
324 * Returns input string of rpc.
325 *
326 * @param inputName name of input
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530327 * @param rpcName name of rpc
Gaurav Agrawal56527662016-04-20 15:49:17 +0530328 * @return javaDocs for input string of rpc
329 */
330 private static String getInputString(String inputName, String rpcName) {
331 if (inputName.equals("")) {
332 return null;
333 } else {
334 return FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + inputName + SPACE + RPC_INPUT_STRING + rpcName + NEW_LINE;
335 }
336 }
337
338 /**
339 * Generates javaDoc for the interface.
340 *
341 * @param interfaceName interface name
342 * @return javaDocs
343 */
Bharat saraswalc0e04842016-05-12 13:16:57 +0530344 private static String generateForRpcService(String interfaceName) {
Gaurav Agrawal56527662016-04-20 15:49:17 +0530345 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
346 + JAVA_DOC_END_LINE;
347 }
348
349 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530350 * Generates javaDoc for the event.
351 *
352 * @param eventClassName event class name
353 * @return javaDocs
354 */
355 private static String generateForEvent(String eventClassName) {
356 return NEW_LINE + JAVA_DOC_FIRST_LINE + EVENT_JAVA_DOC + eventClassName + PERIOD + NEW_LINE
357 + JAVA_DOC_END_LINE;
358 }
359
360 /**
361 * Generates javaDoc for the event listener.
362 *
363 * @param eventListenerInterfaceName event class name
364 * @return javaDocs
365 */
366 private static String generateForEventListener(String eventListenerInterfaceName) {
367 return NEW_LINE + JAVA_DOC_FIRST_LINE + EVENT_LISTENER_JAVA_DOC + eventListenerInterfaceName
368 + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
369 }
370
371 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530372 * Generates javaDocs for getter method.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530373 *
374 * @param attribute attribute
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530375 * @param isList is list attribute
Bharat saraswal870c56f2016-02-20 21:57:16 +0530376 * @return javaDocs
377 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530378 private static String generateForGetters(String attribute, boolean isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530379
380 String getter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530381 + JAVA_DOC_GETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530382 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530383 if (isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530384 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
Vinod Kumar S38046502016-03-23 15:30:27 +0530385 getter = getter + listAttribute;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530386 } else {
387 getter = getter + VALUE + SPACE + OF + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530388 }
389
Bharat saraswale2d51d62016-03-23 19:40:35 +0530390 getter = getter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530391 return getter;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530392 }
393
394 /**
395 * Generates javaDocs for setter method.
396 *
397 * @param attribute attribute
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530398 * @param isList is list attribute
Bharat saraswal870c56f2016-02-20 21:57:16 +0530399 * @return javaDocs
400 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530401 private static String generateForSetters(String attribute, boolean isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530402
403 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530404 + JAVA_DOC_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530405 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530406 if (isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530407 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
Vinod Kumar S38046502016-03-23 15:30:27 +0530408 setter = setter + listAttribute;
409 } else {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530410 setter = setter + VALUE + SPACE + OF + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530411 }
Bharat saraswalcad0e652016-05-26 23:48:38 +0530412 setter = setter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + BUILDER_OBJECT
413 + attribute
Bharat saraswale2d51d62016-03-23 19:40:35 +0530414 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530415 return setter;
416 }
417
418 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530419 * Generates javaDocs for setter method.
420 *
421 * @param attribute attribute
422 * @param isList is list attribute
423 * @return javaDocs
424 */
425 private static String generateForManagerSetters(String attribute, boolean isList) {
426
427 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
428 + JAVA_DOC_MANAGER_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
429 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
430 if (isList) {
431 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
432 setter = setter + listAttribute;
433 } else {
434 setter = setter + VALUE + SPACE + OF + SPACE;
435 }
436 setter = setter + attribute
437 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
438 return setter;
439 }
440
441 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530442 * Generates javaDocs for of method.
443 *
444 * @param attribute attribute
445 * @return javaDocs
446 */
447 private static String generateForOf(String attribute) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530448 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
Bharat saraswal2f11f652016-03-25 18:19:46 +0530449 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswale2d51d62016-03-23 19:40:35 +0530450 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
451 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
452 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530453 }
454
455 /**
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530456 * Generates javaDocs for from method.
457 *
458 * @param attribute attribute
459 * @return javaDocs
460 */
Gaurav Agrawal56527662016-04-20 15:49:17 +0530461 private static String generateForFromString(String attribute) {
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530462
463 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
464 + attribute + SPACE + FROM_STRING_METHOD_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + PERIOD
465 + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM
Bharat saraswalc0e04842016-05-12 13:16:57 +0530466 + FROM_STRING_PARAM_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + NEW_LINE
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530467 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
468 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
469 }
470
471 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530472 * Generates javaDocs for typedef setter method.
473 *
474 * @param attribute attribute
475 * @return javaDocs
476 */
477 private static String generateForTypeDefSetter(String attribute) {
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530478 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530479 + JAVA_DOC_SETTERS_COMMON + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530480 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530481 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530482 }
483
484 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530485 * Generates javaDocs for the impl class.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530486 *
487 * @param className class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530488 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530489 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530490 private static String generateForClass(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530491 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 +0530492 }
493
494 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530495 * Generates javaDocs for enum.
496 *
497 * @param className enum class name
498 * @return javaDocs
499 */
500 private static String generateForEnum(String className) {
501 return NEW_LINE + NEW_LINE + JAVA_DOC_FIRST_LINE + ENUM_CLASS_JAVADOC + className + PERIOD + NEW_LINE
502 + JAVA_DOC_END_LINE;
503 }
504
505 /**
506 * Generates javaDocs for the builder class.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530507 *
508 * @param className class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530509 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530510 */
511 private static String generateForBuilderClass(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530512 return NEW_LINE + JAVA_DOC_FIRST_LINE + BUILDER_CLASS_JAVA_DOC + className + PERIOD + NEW_LINE
513 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530514 }
515
516 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530517 * Generates javaDoc for the interface.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530518 *
519 * @param interfaceName interface name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530520 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530521 */
522 private static String generateForInterface(String interfaceName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530523 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
524 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530525 }
526
527 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530528 * Generates javaDoc for the builder interface.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530529 *
530 * @param builderforName builder for name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530531 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530532 */
533 private static String generateForBuilderInterface(String builderforName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530534 return JAVA_DOC_FIRST_LINE + BUILDER_INTERFACE_JAVA_DOC + builderforName + PERIOD + NEW_LINE
535 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530536 }
537
538 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530539 * Generates javaDocs for package-info.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530540 *
541 * @param packageName package name
Bharat saraswalc0e04842016-05-12 13:16:57 +0530542 * @param isChildNode is it child node
Bharat saraswal870c56f2016-02-20 21:57:16 +0530543 * @return javaDocs
544 */
Bharat saraswalc0e04842016-05-12 13:16:57 +0530545 private static String generateForPackage(String packageName, boolean isChildNode) {
546 String javaDoc = JAVA_DOC_FIRST_LINE + PACKAGE_INFO_JAVADOC + packageName;
547 if (isChildNode) {
548 javaDoc = javaDoc + PACKAGE_INFO_JAVADOC_OF_CHILD;
549 }
550 return javaDoc + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530551 }
552
553 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530554 * Generates javaDocs for default constructor.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530555 *
Bharat saraswal6ef0b762016-04-05 12:45:45 +0530556 * @param className class name
Bharat saraswal870c56f2016-02-20 21:57:16 +0530557 * @return javaDocs
558 */
Bharat saraswal6ef0b762016-04-05 12:45:45 +0530559 private static String generateForDefaultConstructors(String className) {
560 return FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR + className
561 + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530562 }
563
564 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530565 * Generates javaDocs for constructor with parameters.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530566 *
Bharat saraswal870c56f2016-02-20 21:57:16 +0530567 * @param className class name
568 * @return javaDocs
569 */
570 private static String generateForConstructors(String className) {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530571 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
572 + className + IMPL + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
573 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + BUILDER.toLowerCase() + OBJECT + SPACE + BUILDER_OBJECT
574 + className + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530575 }
576
577 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530578 * Generates javaDocs for build.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530579 *
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530580 * @param buildName builder name
Bharat saraswal870c56f2016-02-20 21:57:16 +0530581 * @return javaDocs
582 */
583 private static String generateForBuild(String buildName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530584 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_BUILD
Bharat saraswal2f11f652016-03-25 18:19:46 +0530585 + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswale2d51d62016-03-23 19:40:35 +0530586 + JAVA_DOC_RETURN + JAVA_DOC_BUILD_RETURN + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION
587 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530588 }
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530589
590 /**
591 * Generates javaDocs for type constructor.
592 *
593 * @param attribute attribute string
594 * @return javaDocs for type constructor
595 */
596 private static String generateForTypeConstructor(String attribute) {
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530597 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530598 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
599 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530600 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530601 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530602}