blob: af0b4e3c0a30bb49a233519fca276c534ad0d6d6 [file] [log] [blame]
Bharat saraswal97459962016-02-20 21:57:16 +05301/*
Brian O'Connor0f7908b2016-04-09 01:19:45 -07002 * Copyright 2016-present Open Networking Laboratory
Bharat saraswal97459962016-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
Bharat saraswalaf413b82016-07-14 15:18:20 +053019import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED;
Bharat saraswal64e7e232016-07-14 23:33:55 +053020import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_FOR_VALIDATOR;
21import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_FOR_VALIDATOR_RETURN;
22import static org.onosproject.yangutils.utils.UtilConstants.MAX_RANGE;
23import static org.onosproject.yangutils.utils.UtilConstants.MIN_RANGE;
Bharat saraswalaf413b82016-07-14 15:18:20 +053024import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO;
Bharat saraswal84366c52016-03-23 19:40:35 +053025import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
26import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_CLASS_JAVA_DOC;
Shankara-Huaweia1039e52016-07-14 16:53:09 +053027import static org.onosproject.yangutils.utils.UtilConstants.OP_PARAM_JAVA_DOC;
Bharat saraswal84366c52016-03-23 19:40:35 +053028import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_INTERFACE_JAVA_DOC;
29import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_OBJECT;
Bharat saraswalaf413b82016-07-14 15:18:20 +053030import static org.onosproject.yangutils.utils.UtilConstants.CLASS;
Bharat saraswal5cd9e9c2016-05-26 23:48:38 +053031import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
Bharat saraswal68fa0d12016-04-19 01:00:16 +053032import static org.onosproject.yangutils.utils.UtilConstants.ENUM_ATTRIBUTE_JAVADOC;
33import static org.onosproject.yangutils.utils.UtilConstants.ENUM_CLASS_JAVADOC;
VinodKumarS-Huawei6266db32016-05-10 17:58:57 +053034import static org.onosproject.yangutils.utils.UtilConstants.EVENT_JAVA_DOC;
35import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER_JAVA_DOC;
Bharat saraswal84366c52016-03-23 19:40:35 +053036import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
Gaurav Agrawal97a5e1c2016-04-18 18:53:11 +053037import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_METHOD_NAME;
38import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_PARAM_NAME;
Bharat saraswal84366c52016-03-23 19:40:35 +053039import static org.onosproject.yangutils.utils.UtilConstants.IMPL;
40import static org.onosproject.yangutils.utils.UtilConstants.IMPL_CLASS_JAVA_DOC;
Gaurav Agrawal97a5e1c2016-04-18 18:53:11 +053041import static org.onosproject.yangutils.utils.UtilConstants.INPUT;
Bharat saraswal84366c52016-03-23 19:40:35 +053042import static org.onosproject.yangutils.utils.UtilConstants.INTERFACE_JAVA_DOC;
43import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD;
44import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD_RETURN;
45import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_CONSTRUCTOR;
Bharat saraswal84366c52016-03-23 19:40:35 +053046import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_END_LINE;
47import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_FIRST_LINE;
48import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_GETTERS;
VinodKumarS-Huawei6266db32016-05-10 17:58:57 +053049import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_MANAGER_SETTERS;
Bharat saraswal84366c52016-03-23 19:40:35 +053050import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_OF;
51import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_PARAM;
52import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RETURN;
Gaurav Agrawal02a60de2016-04-20 15:49:17 +053053import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RPC;
Bharat saraswal84366c52016-03-23 19:40:35 +053054import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS;
55import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS_COMMON;
56import static org.onosproject.yangutils.utils.UtilConstants.LIST;
Bharat saraswalaf413b82016-07-14 15:18:20 +053057import static org.onosproject.yangutils.utils.UtilConstants.MAP;
Bharat saraswal84366c52016-03-23 19:40:35 +053058import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
Bharat saraswald532a4c2016-03-25 18:19:46 +053059import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE_ASTERISK;
Bharat saraswal84366c52016-03-23 19:40:35 +053060import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
Bharat saraswalaf413b82016-07-14 15:18:20 +053061import static org.onosproject.yangutils.utils.UtilConstants.OBJECT_STRING;
Bharat saraswal84366c52016-03-23 19:40:35 +053062import static org.onosproject.yangutils.utils.UtilConstants.OF;
63import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC;
Bharat saraswal250a7472016-05-12 13:16:57 +053064import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC_OF_CHILD;
Bharat saraswal84366c52016-03-23 19:40:35 +053065import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
Gaurav Agrawal02a60de2016-04-20 15:49:17 +053066import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_STRING;
67import static org.onosproject.yangutils.utils.UtilConstants.RPC_OUTPUT_STRING;
Bharat saraswal84366c52016-03-23 19:40:35 +053068import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
Gaurav Agrawal97a5e1c2016-04-18 18:53:11 +053069import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
Bharat saraswal84366c52016-03-23 19:40:35 +053070import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
Bharat saraswal250a7472016-05-12 13:16:57 +053071import static org.onosproject.yangutils.utils.UtilConstants.VOID;
Bharat saraswalaf413b82016-07-14 15:18:20 +053072import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
73import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase;
Bharat saraswal84366c52016-03-23 19:40:35 +053074
Bharat saraswal97459962016-02-20 21:57:16 +053075/**
Bharat saraswal63f26fb2016-04-05 15:13:44 +053076 * Represents javadoc for the generated classes.
Bharat saraswal97459962016-02-20 21:57:16 +053077 */
78public final class JavaDocGen {
79
80 /**
Bharat saraswal63f26fb2016-04-05 15:13:44 +053081 * Creates an instance of java doc gen.
Bharat saraswal97459962016-02-20 21:57:16 +053082 */
83 private JavaDocGen() {
84 }
85
86 /**
Bharat saraswal97459962016-02-20 21:57:16 +053087 * Returns java docs.
88 *
Bharat saraswalaf413b82016-07-14 15:18:20 +053089 * @param type java doc type
90 * @param name name of the YangNode
91 * @param isList is list attribute
Bharat saraswal715d3fc2016-05-17 19:59:16 +053092 * @param pluginConfig plugin configurations
Bharat saraswal022dae92016-03-04 20:08:09 +053093 * @return javadocs.
Bharat saraswal97459962016-02-20 21:57:16 +053094 */
Bharat saraswal715d3fc2016-05-17 19:59:16 +053095 public static String getJavaDoc(JavaDocType type, String name, boolean isList, YangPluginConfig pluginConfig) {
Bharat saraswal84366c52016-03-23 19:40:35 +053096
Gaurav Agrawalbfce9342016-06-15 13:58:01 +053097 name = YangIoUtils.getSmallCase(getCamelCase(name, pluginConfig.getConflictResolver()));
Gaurav Agrawal02a60de2016-04-20 15:49:17 +053098 switch (type) {
99 case IMPL_CLASS: {
Bharat saraswal715d3fc2016-05-17 19:59:16 +0530100 return generateForClass(name);
Gaurav Agrawal02a60de2016-04-20 15:49:17 +0530101 }
102 case BUILDER_CLASS: {
103 return generateForBuilderClass(name);
104 }
Shankara-Huaweia1039e52016-07-14 16:53:09 +0530105 case OPERATION_CLASS: {
106 return generateForOpParamClass(name);
107 }
108 case OPERATION_BUILDER_CLASS: {
109 return generateForOpParamClass(name);
110 }
Gaurav Agrawal02a60de2016-04-20 15:49:17 +0530111 case INTERFACE: {
112 return generateForInterface(name);
113 }
114 case BUILDER_INTERFACE: {
115 return generateForBuilderInterface(name);
116 }
117 case PACKAGE_INFO: {
Bharat saraswal250a7472016-05-12 13:16:57 +0530118 return generateForPackage(name, isList);
Gaurav Agrawal02a60de2016-04-20 15:49:17 +0530119 }
120 case GETTER_METHOD: {
121 return generateForGetters(name, isList);
122 }
123 case TYPE_DEF_SETTER_METHOD: {
124 return generateForTypeDefSetter(name);
125 }
126 case SETTER_METHOD: {
127 return generateForSetters(name, isList);
128 }
VinodKumarS-Huawei6266db32016-05-10 17:58:57 +0530129 case MANAGER_SETTER_METHOD: {
130 return generateForManagerSetters(name, isList);
131 }
Gaurav Agrawal02a60de2016-04-20 15:49:17 +0530132 case OF_METHOD: {
133 return generateForOf(name);
134 }
135 case DEFAULT_CONSTRUCTOR: {
136 return generateForDefaultConstructors(name);
137 }
138 case BUILD_METHOD: {
139 return generateForBuild(name);
140 }
141 case TYPE_CONSTRUCTOR: {
142 return generateForTypeConstructor(name);
143 }
144 case FROM_METHOD: {
145 return generateForFromString(name);
146 }
147 case ENUM_CLASS: {
148 return generateForEnum(name);
149 }
150 case ENUM_ATTRIBUTE: {
151 return generateForEnumAttr(name);
152 }
153 case RPC_INTERFACE: {
Bharat saraswalaf413b82016-07-14 15:18:20 +0530154 return generateForRpcService(name);
Bharat saraswal250a7472016-05-12 13:16:57 +0530155 }
156 case RPC_MANAGER: {
Bharat saraswalaf413b82016-07-14 15:18:20 +0530157 return generateForClass(name);
Gaurav Agrawal02a60de2016-04-20 15:49:17 +0530158 }
VinodKumarS-Huawei6266db32016-05-10 17:58:57 +0530159 case EVENT: {
160 return generateForEvent(name);
161 }
162 case EVENT_LISTENER: {
163 return generateForEventListener(name);
164 }
Bharat saraswal715d3fc2016-05-17 19:59:16 +0530165 case EVENT_SUBJECT_CLASS: {
166 return generateForClass(name);
167 }
Gaurav Agrawal02a60de2016-04-20 15:49:17 +0530168 default: {
169 return generateForConstructors(name);
170 }
Bharat saraswal97459962016-02-20 21:57:16 +0530171 }
Bharat saraswal97459962016-02-20 21:57:16 +0530172 }
173
174 /**
Bharat saraswal68fa0d12016-04-19 01:00:16 +0530175 * Generates javaDocs for enum's attributes.
176 *
177 * @param name attribute name
178 * @return javaDocs
179 */
180 private static String generateForEnumAttr(String name) {
181 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + ENUM_ATTRIBUTE_JAVADOC
182 + name + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
183 }
184
185 /**
Gaurav Agrawal02a60de2016-04-20 15:49:17 +0530186 * Generates javaDocs for rpc method.
187 *
Bharat saraswalaf413b82016-07-14 15:18:20 +0530188 * @param rpcName name of the rpc
189 * @param inputName name of input
190 * @param outputName name of output
Bharat saraswal715d3fc2016-05-17 19:59:16 +0530191 * @param pluginConfig plugin configurations
Gaurav Agrawal02a60de2016-04-20 15:49:17 +0530192 * @return javaDocs of rpc method
193 */
Bharat saraswal715d3fc2016-05-17 19:59:16 +0530194 public static String generateJavaDocForRpc(String rpcName, String inputName, String outputName,
Bharat saraswalaf413b82016-07-14 15:18:20 +0530195 YangPluginConfig pluginConfig) {
Bharat saraswal715d3fc2016-05-17 19:59:16 +0530196 rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
Gaurav Agrawal02a60de2016-04-20 15:49:17 +0530197
Bharat saraswal715d3fc2016-05-17 19:59:16 +0530198 String javadoc =
199 NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RPC
Bharat saraswal5cd9e9c2016-05-26 23:48:38 +0530200 + rpcName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK;
201 if (!inputName.equals(EMPTY_STRING)) {
202 javadoc = javadoc + getInputString(inputName, rpcName);
203 }
Bharat saraswal250a7472016-05-12 13:16:57 +0530204 if (!outputName.equals(VOID)) {
205 javadoc = javadoc + getOutputString(outputName, rpcName);
206 }
207 return javadoc + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Gaurav Agrawal02a60de2016-04-20 15:49:17 +0530208 }
209
210 /**
211 * Returns output string of rpc.
212 *
213 * @param outputName name of output
Bharat saraswalaf413b82016-07-14 15:18:20 +0530214 * @param rpcName name of rpc
Gaurav Agrawal02a60de2016-04-20 15:49:17 +0530215 * @return javaDocs for output string of rpc
216 */
217 private static String getOutputString(String outputName, String rpcName) {
218 return FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + outputName + SPACE + RPC_OUTPUT_STRING + rpcName + NEW_LINE;
219 }
220
221 /**
222 * Returns input string of rpc.
223 *
224 * @param inputName name of input
Bharat saraswalaf413b82016-07-14 15:18:20 +0530225 * @param rpcName name of rpc
Gaurav Agrawal02a60de2016-04-20 15:49:17 +0530226 * @return javaDocs for input string of rpc
227 */
228 private static String getInputString(String inputName, String rpcName) {
229 if (inputName.equals("")) {
230 return null;
231 } else {
232 return FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + inputName + SPACE + RPC_INPUT_STRING + rpcName + NEW_LINE;
233 }
234 }
235
236 /**
237 * Generates javaDoc for the interface.
238 *
239 * @param interfaceName interface name
240 * @return javaDocs
241 */
Bharat saraswal250a7472016-05-12 13:16:57 +0530242 private static String generateForRpcService(String interfaceName) {
Gaurav Agrawal02a60de2016-04-20 15:49:17 +0530243 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
244 + JAVA_DOC_END_LINE;
245 }
246
247 /**
VinodKumarS-Huawei6266db32016-05-10 17:58:57 +0530248 * Generates javaDoc for the event.
249 *
250 * @param eventClassName event class name
251 * @return javaDocs
252 */
253 private static String generateForEvent(String eventClassName) {
254 return NEW_LINE + JAVA_DOC_FIRST_LINE + EVENT_JAVA_DOC + eventClassName + PERIOD + NEW_LINE
255 + JAVA_DOC_END_LINE;
256 }
257
258 /**
259 * Generates javaDoc for the event listener.
260 *
261 * @param eventListenerInterfaceName event class name
262 * @return javaDocs
263 */
264 private static String generateForEventListener(String eventListenerInterfaceName) {
265 return NEW_LINE + JAVA_DOC_FIRST_LINE + EVENT_LISTENER_JAVA_DOC + eventListenerInterfaceName
266 + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
267 }
268
269 /**
Bharat saraswal68fa0d12016-04-19 01:00:16 +0530270 * Generates javaDocs for getter method.
Bharat saraswal97459962016-02-20 21:57:16 +0530271 *
272 * @param attribute attribute
Bharat saraswalaf413b82016-07-14 15:18:20 +0530273 * @param isList is list attribute
Bharat saraswal97459962016-02-20 21:57:16 +0530274 * @return javaDocs
275 */
Bharat saraswal022dae92016-03-04 20:08:09 +0530276 private static String generateForGetters(String attribute, boolean isList) {
Bharat saraswal84366c52016-03-23 19:40:35 +0530277
278 String getter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswald532a4c2016-03-25 18:19:46 +0530279 + JAVA_DOC_GETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswal84366c52016-03-23 19:40:35 +0530280 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN;
Bharat saraswal022dae92016-03-04 20:08:09 +0530281 if (isList) {
Bharat saraswal84366c52016-03-23 19:40:35 +0530282 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
Vinod Kumar S9f26ae52016-03-23 15:30:27 +0530283 getter = getter + listAttribute;
Bharat saraswal84366c52016-03-23 19:40:35 +0530284 } else {
285 getter = getter + VALUE + SPACE + OF + SPACE;
Bharat saraswal022dae92016-03-04 20:08:09 +0530286 }
287
Bharat saraswal84366c52016-03-23 19:40:35 +0530288 getter = getter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal022dae92016-03-04 20:08:09 +0530289 return getter;
Bharat saraswal97459962016-02-20 21:57:16 +0530290 }
291
292 /**
293 * Generates javaDocs for setter method.
294 *
295 * @param attribute attribute
Bharat saraswalaf413b82016-07-14 15:18:20 +0530296 * @param isList is list attribute
Bharat saraswal97459962016-02-20 21:57:16 +0530297 * @return javaDocs
298 */
Bharat saraswal022dae92016-03-04 20:08:09 +0530299 private static String generateForSetters(String attribute, boolean isList) {
Bharat saraswal84366c52016-03-23 19:40:35 +0530300
301 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswald532a4c2016-03-25 18:19:46 +0530302 + JAVA_DOC_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswal84366c52016-03-23 19:40:35 +0530303 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
Bharat saraswal022dae92016-03-04 20:08:09 +0530304 if (isList) {
Bharat saraswal84366c52016-03-23 19:40:35 +0530305 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
Vinod Kumar S9f26ae52016-03-23 15:30:27 +0530306 setter = setter + listAttribute;
307 } else {
Bharat saraswal84366c52016-03-23 19:40:35 +0530308 setter = setter + VALUE + SPACE + OF + SPACE;
Bharat saraswal022dae92016-03-04 20:08:09 +0530309 }
Bharat saraswal5cd9e9c2016-05-26 23:48:38 +0530310 setter = setter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + BUILDER_OBJECT
311 + attribute
Bharat saraswal84366c52016-03-23 19:40:35 +0530312 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal022dae92016-03-04 20:08:09 +0530313 return setter;
314 }
315
316 /**
VinodKumarS-Huawei6266db32016-05-10 17:58:57 +0530317 * Generates javaDocs for setter method.
318 *
319 * @param attribute attribute
Bharat saraswalaf413b82016-07-14 15:18:20 +0530320 * @param isList is list attribute
VinodKumarS-Huawei6266db32016-05-10 17:58:57 +0530321 * @return javaDocs
322 */
323 private static String generateForManagerSetters(String attribute, boolean isList) {
324
325 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
326 + JAVA_DOC_MANAGER_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
327 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
328 if (isList) {
329 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
330 setter = setter + listAttribute;
331 } else {
332 setter = setter + VALUE + SPACE + OF + SPACE;
333 }
334 setter = setter + attribute
335 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
336 return setter;
337 }
338
339 /**
Bharat saraswal022dae92016-03-04 20:08:09 +0530340 * Generates javaDocs for of method.
341 *
342 * @param attribute attribute
343 * @return javaDocs
344 */
345 private static String generateForOf(String attribute) {
Bharat saraswal84366c52016-03-23 19:40:35 +0530346 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
Bharat saraswald532a4c2016-03-25 18:19:46 +0530347 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswal84366c52016-03-23 19:40:35 +0530348 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
349 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
350 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal022dae92016-03-04 20:08:09 +0530351 }
352
353 /**
Gaurav Agrawal97a5e1c2016-04-18 18:53:11 +0530354 * Generates javaDocs for from method.
355 *
356 * @param attribute attribute
357 * @return javaDocs
358 */
Gaurav Agrawal02a60de2016-04-20 15:49:17 +0530359 private static String generateForFromString(String attribute) {
Gaurav Agrawal97a5e1c2016-04-18 18:53:11 +0530360
361 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
362 + attribute + SPACE + FROM_STRING_METHOD_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + PERIOD
363 + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM
Bharat saraswal250a7472016-05-12 13:16:57 +0530364 + FROM_STRING_PARAM_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + NEW_LINE
Gaurav Agrawal97a5e1c2016-04-18 18:53:11 +0530365 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
366 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
367 }
368
369 /**
Bharat saraswal022dae92016-03-04 20:08:09 +0530370 * Generates javaDocs for typedef setter method.
371 *
372 * @param attribute attribute
373 * @return javaDocs
374 */
375 private static String generateForTypeDefSetter(String attribute) {
Vidyashree Rama13960652016-04-26 15:06:06 +0530376 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswald532a4c2016-03-25 18:19:46 +0530377 + JAVA_DOC_SETTERS_COMMON + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswal84366c52016-03-23 19:40:35 +0530378 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute
Vidyashree Rama13960652016-04-26 15:06:06 +0530379 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal022dae92016-03-04 20:08:09 +0530380 }
381
382 /**
Bharat saraswal68fa0d12016-04-19 01:00:16 +0530383 * Generates javaDocs for the impl class.
Bharat saraswal97459962016-02-20 21:57:16 +0530384 *
385 * @param className class name
Vinod Kumar S08710982016-03-03 19:55:30 +0530386 * @return javaDocs
Bharat saraswal97459962016-02-20 21:57:16 +0530387 */
Bharat saraswal715d3fc2016-05-17 19:59:16 +0530388 private static String generateForClass(String className) {
Bharat saraswal84366c52016-03-23 19:40:35 +0530389 return NEW_LINE + JAVA_DOC_FIRST_LINE + IMPL_CLASS_JAVA_DOC + className + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
Bharat saraswal97459962016-02-20 21:57:16 +0530390 }
391
392 /**
Bharat saraswal68fa0d12016-04-19 01:00:16 +0530393 * Generates javaDocs for enum.
394 *
395 * @param className enum class name
396 * @return javaDocs
397 */
398 private static String generateForEnum(String className) {
399 return NEW_LINE + NEW_LINE + JAVA_DOC_FIRST_LINE + ENUM_CLASS_JAVADOC + className + PERIOD + NEW_LINE
400 + JAVA_DOC_END_LINE;
401 }
402
403 /**
404 * Generates javaDocs for the builder class.
Bharat saraswal97459962016-02-20 21:57:16 +0530405 *
406 * @param className class name
Vinod Kumar S08710982016-03-03 19:55:30 +0530407 * @return javaDocs
Bharat saraswal97459962016-02-20 21:57:16 +0530408 */
409 private static String generateForBuilderClass(String className) {
Bharat saraswal84366c52016-03-23 19:40:35 +0530410 return NEW_LINE + JAVA_DOC_FIRST_LINE + BUILDER_CLASS_JAVA_DOC + className + PERIOD + NEW_LINE
411 + JAVA_DOC_END_LINE;
Bharat saraswal97459962016-02-20 21:57:16 +0530412 }
413
414 /**
Shankara-Huaweia1039e52016-07-14 16:53:09 +0530415 * Generates javaDocs for the op param class.
416 *
417 * @param className class name
418 * @return javaDocs
419 */
420 private static String generateForOpParamClass(String className) {
421 return NEW_LINE + JAVA_DOC_FIRST_LINE + OP_PARAM_JAVA_DOC + className + PERIOD + NEW_LINE
422 + JAVA_DOC_END_LINE;
423 }
424
425 /**
Bharat saraswal68fa0d12016-04-19 01:00:16 +0530426 * Generates javaDoc for the interface.
Bharat saraswal97459962016-02-20 21:57:16 +0530427 *
428 * @param interfaceName interface name
Vinod Kumar S08710982016-03-03 19:55:30 +0530429 * @return javaDocs
Bharat saraswal97459962016-02-20 21:57:16 +0530430 */
431 private static String generateForInterface(String interfaceName) {
Bharat saraswal84366c52016-03-23 19:40:35 +0530432 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
433 + JAVA_DOC_END_LINE;
Bharat saraswal97459962016-02-20 21:57:16 +0530434 }
435
436 /**
Bharat saraswal68fa0d12016-04-19 01:00:16 +0530437 * Generates javaDoc for the builder interface.
Bharat saraswal97459962016-02-20 21:57:16 +0530438 *
439 * @param builderforName builder for name
Vinod Kumar S08710982016-03-03 19:55:30 +0530440 * @return javaDocs
Bharat saraswal97459962016-02-20 21:57:16 +0530441 */
442 private static String generateForBuilderInterface(String builderforName) {
Bharat saraswal84366c52016-03-23 19:40:35 +0530443 return JAVA_DOC_FIRST_LINE + BUILDER_INTERFACE_JAVA_DOC + builderforName + PERIOD + NEW_LINE
444 + JAVA_DOC_END_LINE;
Bharat saraswal97459962016-02-20 21:57:16 +0530445 }
446
447 /**
Bharat saraswal68fa0d12016-04-19 01:00:16 +0530448 * Generates javaDocs for package-info.
Bharat saraswal97459962016-02-20 21:57:16 +0530449 *
450 * @param packageName package name
Bharat saraswal250a7472016-05-12 13:16:57 +0530451 * @param isChildNode is it child node
Bharat saraswal97459962016-02-20 21:57:16 +0530452 * @return javaDocs
453 */
Bharat saraswal250a7472016-05-12 13:16:57 +0530454 private static String generateForPackage(String packageName, boolean isChildNode) {
455 String javaDoc = JAVA_DOC_FIRST_LINE + PACKAGE_INFO_JAVADOC + packageName;
456 if (isChildNode) {
457 javaDoc = javaDoc + PACKAGE_INFO_JAVADOC_OF_CHILD;
458 }
459 return javaDoc + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
Bharat saraswal97459962016-02-20 21:57:16 +0530460 }
461
462 /**
Bharat saraswal68fa0d12016-04-19 01:00:16 +0530463 * Generates javaDocs for default constructor.
Bharat saraswal97459962016-02-20 21:57:16 +0530464 *
Bharat saraswal780eca32016-04-05 12:45:45 +0530465 * @param className class name
Bharat saraswal97459962016-02-20 21:57:16 +0530466 * @return javaDocs
467 */
Bharat saraswal780eca32016-04-05 12:45:45 +0530468 private static String generateForDefaultConstructors(String className) {
469 return FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR + className
470 + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal97459962016-02-20 21:57:16 +0530471 }
472
473 /**
Bharat saraswal68fa0d12016-04-19 01:00:16 +0530474 * Generates javaDocs for constructor with parameters.
Bharat saraswal97459962016-02-20 21:57:16 +0530475 *
Bharat saraswal97459962016-02-20 21:57:16 +0530476 * @param className class name
477 * @return javaDocs
478 */
479 private static String generateForConstructors(String className) {
Bharat saraswal250a7472016-05-12 13:16:57 +0530480 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
481 + className + IMPL + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
482 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + BUILDER.toLowerCase() + OBJECT + SPACE + BUILDER_OBJECT
483 + className + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal97459962016-02-20 21:57:16 +0530484 }
485
486 /**
Bharat saraswal68fa0d12016-04-19 01:00:16 +0530487 * Generates javaDocs for build.
Bharat saraswal97459962016-02-20 21:57:16 +0530488 *
Vinod Kumar S08710982016-03-03 19:55:30 +0530489 * @param buildName builder name
Bharat saraswal97459962016-02-20 21:57:16 +0530490 * @return javaDocs
491 */
492 private static String generateForBuild(String buildName) {
Bharat saraswal84366c52016-03-23 19:40:35 +0530493 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_BUILD
Bharat saraswald532a4c2016-03-25 18:19:46 +0530494 + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswal84366c52016-03-23 19:40:35 +0530495 + JAVA_DOC_RETURN + JAVA_DOC_BUILD_RETURN + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION
496 + JAVA_DOC_END_LINE;
Bharat saraswal97459962016-02-20 21:57:16 +0530497 }
Gaurav Agrawal97a5e1c2016-04-18 18:53:11 +0530498
499 /**
500 * Generates javaDocs for type constructor.
501 *
502 * @param attribute attribute string
503 * @return javaDocs for type constructor
504 */
Bharat saraswald14cbe82016-07-14 13:26:18 +0530505 public static String generateForTypeConstructor(String attribute) {
Vidyashree Rama13960652016-04-26 15:06:06 +0530506 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
Gaurav Agrawal97a5e1c2016-04-18 18:53:11 +0530507 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
508 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
Vidyashree Rama13960652016-04-26 15:06:06 +0530509 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Gaurav Agrawal97a5e1c2016-04-18 18:53:11 +0530510 }
Bharat saraswalaf413b82016-07-14 15:18:20 +0530511
512 /**
513 * Generates javaDocs for add augmentation method.
514 *
515 * @return javaDocs
516 */
517 public static String generateForAddAugmentation() {
518 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
519 + JAVA_DOC_SETTERS_COMMON + getSmallCase(YANG_AUGMENTED_INFO) + MAP + PERIOD + NEW_LINE +
520 FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE +
521 VALUE + SPACE + OF + SPACE + getSmallCase(YANG_AUGMENTED_INFO) + NEW_LINE + FOUR_SPACE_INDENTATION
522 + JAVA_DOC_PARAM + CLASS + OBJECT_STRING + SPACE +
523 VALUE + SPACE + OF + SPACE + AUGMENTED + CLASS + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
524 }
525
Bharat saraswal64e7e232016-07-14 23:33:55 +0530526 /**
527 * Returns javadoc for get augmentation method.
528 *
529 * @return javadoc for get augmentation method
530 */
Bharat saraswalaf413b82016-07-14 15:18:20 +0530531 public static String generateForGetAugmentation() {
532 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
533 + JAVA_DOC_GETTERS + getSmallCase(YANG_AUGMENTED_INFO) + PERIOD + NEW_LINE +
534 FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + CLASS +
535 OBJECT_STRING + SPACE + VALUE + SPACE + OF + SPACE + AUGMENTED + CLASS + NEW_LINE +
536 FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + VALUE + SPACE +
537 OF + SPACE + YANG_AUGMENTED_INFO + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
538 }
539
540 /**
Bharat saraswal64e7e232016-07-14 23:33:55 +0530541 * Returns javadoc for validator method.
542 *
543 * @return javadoc for validator method
544 */
545 public static String generateForValidatorMethod() {
546 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION +
547 JAVA_DOC_FOR_VALIDATOR + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK +
548 FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + MIN_RANGE + SPACE + MIN_RANGE + SPACE + OF + SPACE +
549 VALUE + NEW_LINE +
550 FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + MAX_RANGE + SPACE + MAX_RANGE + SPACE + OF + SPACE + VALUE +
551 NEW_LINE +
552 FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + NEW_LINE +
553 FOUR_SPACE_INDENTATION + JAVA_DOC_FOR_VALIDATOR_RETURN + NEW_LINE + FOUR_SPACE_INDENTATION +
554 JAVA_DOC_END_LINE;
555 }
556
557 /**
Bharat saraswalaf413b82016-07-14 15:18:20 +0530558 * JavaDocs types.
559 */
560 public enum JavaDocType {
561
562 /**
563 * For class.
564 */
565 IMPL_CLASS,
566
567 /**
568 * For builder class.
569 */
570 BUILDER_CLASS,
571
572 /**
573 * For interface.
574 */
575 INTERFACE,
576
577 /**
578 * For builder interface.
579 */
580 BUILDER_INTERFACE,
581
582 /**
583 * For package-info.
584 */
585 PACKAGE_INFO,
586
587 /**
588 * For getters.
589 */
590 GETTER_METHOD,
591
592 /**
593 * For rpc service.
594 */
595 RPC_INTERFACE,
596
597 /**
598 * For rpc manager.
599 */
600 RPC_MANAGER,
601
602 /**
603 * For event.
604 */
605 EVENT,
606
607 /**
608 * For event listener.
609 */
610 EVENT_LISTENER,
611
612 /**
613 * For setters.
614 */
615 SETTER_METHOD,
616
617 /**
618 * For type def's setters.
619 */
620 TYPE_DEF_SETTER_METHOD,
621
622 /**
623 * For of method.
624 */
625 OF_METHOD,
626
627 /**
628 * For default constructor.
629 */
630 DEFAULT_CONSTRUCTOR,
631
632 /**
633 * For constructor.
634 */
635 CONSTRUCTOR,
636
637 /**
638 * For from method.
639 */
640 FROM_METHOD,
641
642 /**
643 * For type constructor.
644 */
645 TYPE_CONSTRUCTOR,
646
647 /**
648 * For build.
649 */
650 BUILD_METHOD,
651
652 /**
653 * For enum.
654 */
655 ENUM_CLASS,
656
657 /**
658 * For enum's attributes.
659 */
660 ENUM_ATTRIBUTE,
661
662 /**
663 * For manager setters.
664 */
665 MANAGER_SETTER_METHOD,
666
667 /**
668 * For event subject.
669 */
Shankara-Huaweia1039e52016-07-14 16:53:09 +0530670 EVENT_SUBJECT_CLASS,
671
672 /**
673 * For operation.
674 */
675 OPERATION_CLASS,
676
677 /**
678 * For operation builder.
679 */
680 OPERATION_BUILDER_CLASS
Bharat saraswalaf413b82016-07-14 15:18:20 +0530681 }
Bharat saraswal97459962016-02-20 21:57:16 +0530682}