blob: 34e4983f192328be2c30cf61438e476b135801ee [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
Bharat saraswalb551aae2016-07-14 15:18:20 +053019import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED;
20import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO;
Bharat saraswale2d51d62016-03-23 19:40:35 +053021import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
22import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_CLASS_JAVA_DOC;
Shankara-Huaweib9999eb2016-07-14 16:53:09 +053023import static org.onosproject.yangutils.utils.UtilConstants.OP_PARAM_JAVA_DOC;
Bharat saraswale2d51d62016-03-23 19:40:35 +053024import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_INTERFACE_JAVA_DOC;
25import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_OBJECT;
Bharat saraswalb551aae2016-07-14 15:18:20 +053026import static org.onosproject.yangutils.utils.UtilConstants.CLASS;
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;
Bharat saraswalb551aae2016-07-14 15:18:20 +053053import static org.onosproject.yangutils.utils.UtilConstants.MAP;
Bharat saraswale2d51d62016-03-23 19:40:35 +053054import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
Bharat saraswal2f11f652016-03-25 18:19:46 +053055import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE_ASTERISK;
Bharat saraswale2d51d62016-03-23 19:40:35 +053056import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
Bharat saraswalb551aae2016-07-14 15:18:20 +053057import static org.onosproject.yangutils.utils.UtilConstants.OBJECT_STRING;
Bharat saraswale2d51d62016-03-23 19:40:35 +053058import static org.onosproject.yangutils.utils.UtilConstants.OF;
59import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC;
Bharat saraswalc0e04842016-05-12 13:16:57 +053060import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC_OF_CHILD;
Bharat saraswale2d51d62016-03-23 19:40:35 +053061import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
Gaurav Agrawal56527662016-04-20 15:49:17 +053062import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_STRING;
63import static org.onosproject.yangutils.utils.UtilConstants.RPC_OUTPUT_STRING;
Bharat saraswale2d51d62016-03-23 19:40:35 +053064import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053065import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
Bharat saraswale2d51d62016-03-23 19:40:35 +053066import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
Bharat saraswalc0e04842016-05-12 13:16:57 +053067import static org.onosproject.yangutils.utils.UtilConstants.VOID;
Bharat saraswalb551aae2016-07-14 15:18:20 +053068import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
69import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase;
Bharat saraswale2d51d62016-03-23 19:40:35 +053070
Bharat saraswal870c56f2016-02-20 21:57:16 +053071/**
Bharat saraswald9822e92016-04-05 15:13:44 +053072 * Represents javadoc for the generated classes.
Bharat saraswal870c56f2016-02-20 21:57:16 +053073 */
74public final class JavaDocGen {
75
76 /**
Bharat saraswald9822e92016-04-05 15:13:44 +053077 * Creates an instance of java doc gen.
Bharat saraswal870c56f2016-02-20 21:57:16 +053078 */
79 private JavaDocGen() {
80 }
81
82 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +053083 * Returns java docs.
84 *
Bharat saraswalb551aae2016-07-14 15:18:20 +053085 * @param type java doc type
86 * @param name name of the YangNode
87 * @param isList is list attribute
Bharat saraswal33dfa012016-05-17 19:59:16 +053088 * @param pluginConfig plugin configurations
Bharat saraswal2f00b4b2016-03-04 20:08:09 +053089 * @return javadocs.
Bharat saraswal870c56f2016-02-20 21:57:16 +053090 */
Bharat saraswal33dfa012016-05-17 19:59:16 +053091 public static String getJavaDoc(JavaDocType type, String name, boolean isList, YangPluginConfig pluginConfig) {
Bharat saraswale2d51d62016-03-23 19:40:35 +053092
Gaurav Agrawal8a5af142016-06-15 13:58:01 +053093 name = YangIoUtils.getSmallCase(getCamelCase(name, pluginConfig.getConflictResolver()));
Gaurav Agrawal56527662016-04-20 15:49:17 +053094 switch (type) {
95 case IMPL_CLASS: {
Bharat saraswal33dfa012016-05-17 19:59:16 +053096 return generateForClass(name);
Gaurav Agrawal56527662016-04-20 15:49:17 +053097 }
98 case BUILDER_CLASS: {
99 return generateForBuilderClass(name);
100 }
Shankara-Huaweib9999eb2016-07-14 16:53:09 +0530101 case OPERATION_CLASS: {
102 return generateForOpParamClass(name);
103 }
104 case OPERATION_BUILDER_CLASS: {
105 return generateForOpParamClass(name);
106 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530107 case INTERFACE: {
108 return generateForInterface(name);
109 }
110 case BUILDER_INTERFACE: {
111 return generateForBuilderInterface(name);
112 }
113 case PACKAGE_INFO: {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530114 return generateForPackage(name, isList);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530115 }
116 case GETTER_METHOD: {
117 return generateForGetters(name, isList);
118 }
119 case TYPE_DEF_SETTER_METHOD: {
120 return generateForTypeDefSetter(name);
121 }
122 case SETTER_METHOD: {
123 return generateForSetters(name, isList);
124 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530125 case MANAGER_SETTER_METHOD: {
126 return generateForManagerSetters(name, isList);
127 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530128 case OF_METHOD: {
129 return generateForOf(name);
130 }
131 case DEFAULT_CONSTRUCTOR: {
132 return generateForDefaultConstructors(name);
133 }
134 case BUILD_METHOD: {
135 return generateForBuild(name);
136 }
137 case TYPE_CONSTRUCTOR: {
138 return generateForTypeConstructor(name);
139 }
140 case FROM_METHOD: {
141 return generateForFromString(name);
142 }
143 case ENUM_CLASS: {
144 return generateForEnum(name);
145 }
146 case ENUM_ATTRIBUTE: {
147 return generateForEnumAttr(name);
148 }
149 case RPC_INTERFACE: {
Bharat saraswalb551aae2016-07-14 15:18:20 +0530150 return generateForRpcService(name);
Bharat saraswalc0e04842016-05-12 13:16:57 +0530151 }
152 case RPC_MANAGER: {
Bharat saraswalb551aae2016-07-14 15:18:20 +0530153 return generateForClass(name);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530154 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530155 case EVENT: {
156 return generateForEvent(name);
157 }
158 case EVENT_LISTENER: {
159 return generateForEventListener(name);
160 }
Bharat saraswal33dfa012016-05-17 19:59:16 +0530161 case EVENT_SUBJECT_CLASS: {
162 return generateForClass(name);
163 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530164 default: {
165 return generateForConstructors(name);
166 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530167 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530168 }
169
170 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530171 * Generates javaDocs for enum's attributes.
172 *
173 * @param name attribute name
174 * @return javaDocs
175 */
176 private static String generateForEnumAttr(String name) {
177 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + ENUM_ATTRIBUTE_JAVADOC
178 + name + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
179 }
180
181 /**
Gaurav Agrawal56527662016-04-20 15:49:17 +0530182 * Generates javaDocs for rpc method.
183 *
Bharat saraswalb551aae2016-07-14 15:18:20 +0530184 * @param rpcName name of the rpc
185 * @param inputName name of input
186 * @param outputName name of output
Bharat saraswal33dfa012016-05-17 19:59:16 +0530187 * @param pluginConfig plugin configurations
Gaurav Agrawal56527662016-04-20 15:49:17 +0530188 * @return javaDocs of rpc method
189 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530190 public static String generateJavaDocForRpc(String rpcName, String inputName, String outputName,
Bharat saraswalb551aae2016-07-14 15:18:20 +0530191 YangPluginConfig pluginConfig) {
Bharat saraswal33dfa012016-05-17 19:59:16 +0530192 rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
Gaurav Agrawal56527662016-04-20 15:49:17 +0530193
Bharat saraswal33dfa012016-05-17 19:59:16 +0530194 String javadoc =
195 NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RPC
Bharat saraswalcad0e652016-05-26 23:48:38 +0530196 + rpcName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK;
197 if (!inputName.equals(EMPTY_STRING)) {
198 javadoc = javadoc + getInputString(inputName, rpcName);
199 }
Bharat saraswalc0e04842016-05-12 13:16:57 +0530200 if (!outputName.equals(VOID)) {
201 javadoc = javadoc + getOutputString(outputName, rpcName);
202 }
203 return javadoc + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Gaurav Agrawal56527662016-04-20 15:49:17 +0530204 }
205
206 /**
207 * Returns output string of rpc.
208 *
209 * @param outputName name of output
Bharat saraswalb551aae2016-07-14 15:18:20 +0530210 * @param rpcName name of rpc
Gaurav Agrawal56527662016-04-20 15:49:17 +0530211 * @return javaDocs for output string of rpc
212 */
213 private static String getOutputString(String outputName, String rpcName) {
214 return FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + outputName + SPACE + RPC_OUTPUT_STRING + rpcName + NEW_LINE;
215 }
216
217 /**
218 * Returns input string of rpc.
219 *
220 * @param inputName name of input
Bharat saraswalb551aae2016-07-14 15:18:20 +0530221 * @param rpcName name of rpc
Gaurav Agrawal56527662016-04-20 15:49:17 +0530222 * @return javaDocs for input string of rpc
223 */
224 private static String getInputString(String inputName, String rpcName) {
225 if (inputName.equals("")) {
226 return null;
227 } else {
228 return FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + inputName + SPACE + RPC_INPUT_STRING + rpcName + NEW_LINE;
229 }
230 }
231
232 /**
233 * Generates javaDoc for the interface.
234 *
235 * @param interfaceName interface name
236 * @return javaDocs
237 */
Bharat saraswalc0e04842016-05-12 13:16:57 +0530238 private static String generateForRpcService(String interfaceName) {
Gaurav Agrawal56527662016-04-20 15:49:17 +0530239 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
240 + JAVA_DOC_END_LINE;
241 }
242
243 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530244 * Generates javaDoc for the event.
245 *
246 * @param eventClassName event class name
247 * @return javaDocs
248 */
249 private static String generateForEvent(String eventClassName) {
250 return NEW_LINE + JAVA_DOC_FIRST_LINE + EVENT_JAVA_DOC + eventClassName + PERIOD + NEW_LINE
251 + JAVA_DOC_END_LINE;
252 }
253
254 /**
255 * Generates javaDoc for the event listener.
256 *
257 * @param eventListenerInterfaceName event class name
258 * @return javaDocs
259 */
260 private static String generateForEventListener(String eventListenerInterfaceName) {
261 return NEW_LINE + JAVA_DOC_FIRST_LINE + EVENT_LISTENER_JAVA_DOC + eventListenerInterfaceName
262 + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
263 }
264
265 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530266 * Generates javaDocs for getter method.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530267 *
268 * @param attribute attribute
Bharat saraswalb551aae2016-07-14 15:18:20 +0530269 * @param isList is list attribute
Bharat saraswal870c56f2016-02-20 21:57:16 +0530270 * @return javaDocs
271 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530272 private static String generateForGetters(String attribute, boolean isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530273
274 String getter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530275 + JAVA_DOC_GETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530276 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530277 if (isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530278 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
Vinod Kumar S38046502016-03-23 15:30:27 +0530279 getter = getter + listAttribute;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530280 } else {
281 getter = getter + VALUE + SPACE + OF + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530282 }
283
Bharat saraswale2d51d62016-03-23 19:40:35 +0530284 getter = getter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530285 return getter;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530286 }
287
288 /**
289 * Generates javaDocs for setter method.
290 *
291 * @param attribute attribute
Bharat saraswalb551aae2016-07-14 15:18:20 +0530292 * @param isList is list attribute
Bharat saraswal870c56f2016-02-20 21:57:16 +0530293 * @return javaDocs
294 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530295 private static String generateForSetters(String attribute, boolean isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530296
297 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530298 + JAVA_DOC_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530299 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530300 if (isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530301 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
Vinod Kumar S38046502016-03-23 15:30:27 +0530302 setter = setter + listAttribute;
303 } else {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530304 setter = setter + VALUE + SPACE + OF + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530305 }
Bharat saraswalcad0e652016-05-26 23:48:38 +0530306 setter = setter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + BUILDER_OBJECT
307 + attribute
Bharat saraswale2d51d62016-03-23 19:40:35 +0530308 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530309 return setter;
310 }
311
312 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530313 * Generates javaDocs for setter method.
314 *
315 * @param attribute attribute
Bharat saraswalb551aae2016-07-14 15:18:20 +0530316 * @param isList is list attribute
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530317 * @return javaDocs
318 */
319 private static String generateForManagerSetters(String attribute, boolean isList) {
320
321 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
322 + JAVA_DOC_MANAGER_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
323 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
324 if (isList) {
325 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
326 setter = setter + listAttribute;
327 } else {
328 setter = setter + VALUE + SPACE + OF + SPACE;
329 }
330 setter = setter + attribute
331 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
332 return setter;
333 }
334
335 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530336 * Generates javaDocs for of method.
337 *
338 * @param attribute attribute
339 * @return javaDocs
340 */
341 private static String generateForOf(String attribute) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530342 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
Bharat saraswal2f11f652016-03-25 18:19:46 +0530343 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswale2d51d62016-03-23 19:40:35 +0530344 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
345 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
346 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530347 }
348
349 /**
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530350 * Generates javaDocs for from method.
351 *
352 * @param attribute attribute
353 * @return javaDocs
354 */
Gaurav Agrawal56527662016-04-20 15:49:17 +0530355 private static String generateForFromString(String attribute) {
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530356
357 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
358 + attribute + SPACE + FROM_STRING_METHOD_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + PERIOD
359 + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM
Bharat saraswalc0e04842016-05-12 13:16:57 +0530360 + FROM_STRING_PARAM_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + NEW_LINE
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530361 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
362 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
363 }
364
365 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530366 * Generates javaDocs for typedef setter method.
367 *
368 * @param attribute attribute
369 * @return javaDocs
370 */
371 private static String generateForTypeDefSetter(String attribute) {
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530372 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530373 + JAVA_DOC_SETTERS_COMMON + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530374 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530375 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530376 }
377
378 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530379 * Generates javaDocs for the impl class.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530380 *
381 * @param className class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530382 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530383 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530384 private static String generateForClass(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530385 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 +0530386 }
387
388 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530389 * Generates javaDocs for enum.
390 *
391 * @param className enum class name
392 * @return javaDocs
393 */
394 private static String generateForEnum(String className) {
395 return NEW_LINE + NEW_LINE + JAVA_DOC_FIRST_LINE + ENUM_CLASS_JAVADOC + className + PERIOD + NEW_LINE
396 + JAVA_DOC_END_LINE;
397 }
398
399 /**
400 * Generates javaDocs for the builder class.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530401 *
402 * @param className class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530403 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530404 */
405 private static String generateForBuilderClass(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530406 return NEW_LINE + JAVA_DOC_FIRST_LINE + BUILDER_CLASS_JAVA_DOC + className + PERIOD + NEW_LINE
407 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530408 }
409
410 /**
Shankara-Huaweib9999eb2016-07-14 16:53:09 +0530411 * Generates javaDocs for the op param class.
412 *
413 * @param className class name
414 * @return javaDocs
415 */
416 private static String generateForOpParamClass(String className) {
417 return NEW_LINE + JAVA_DOC_FIRST_LINE + OP_PARAM_JAVA_DOC + className + PERIOD + NEW_LINE
418 + JAVA_DOC_END_LINE;
419 }
420
421 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530422 * Generates javaDoc for the interface.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530423 *
424 * @param interfaceName interface name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530425 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530426 */
427 private static String generateForInterface(String interfaceName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530428 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
429 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530430 }
431
432 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530433 * Generates javaDoc for the builder interface.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530434 *
435 * @param builderforName builder for name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530436 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530437 */
438 private static String generateForBuilderInterface(String builderforName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530439 return JAVA_DOC_FIRST_LINE + BUILDER_INTERFACE_JAVA_DOC + builderforName + PERIOD + NEW_LINE
440 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530441 }
442
443 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530444 * Generates javaDocs for package-info.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530445 *
446 * @param packageName package name
Bharat saraswalc0e04842016-05-12 13:16:57 +0530447 * @param isChildNode is it child node
Bharat saraswal870c56f2016-02-20 21:57:16 +0530448 * @return javaDocs
449 */
Bharat saraswalc0e04842016-05-12 13:16:57 +0530450 private static String generateForPackage(String packageName, boolean isChildNode) {
451 String javaDoc = JAVA_DOC_FIRST_LINE + PACKAGE_INFO_JAVADOC + packageName;
452 if (isChildNode) {
453 javaDoc = javaDoc + PACKAGE_INFO_JAVADOC_OF_CHILD;
454 }
455 return javaDoc + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530456 }
457
458 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530459 * Generates javaDocs for default constructor.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530460 *
Bharat saraswal6ef0b762016-04-05 12:45:45 +0530461 * @param className class name
Bharat saraswal870c56f2016-02-20 21:57:16 +0530462 * @return javaDocs
463 */
Bharat saraswal6ef0b762016-04-05 12:45:45 +0530464 private static String generateForDefaultConstructors(String className) {
465 return FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR + className
466 + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530467 }
468
469 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530470 * Generates javaDocs for constructor with parameters.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530471 *
Bharat saraswal870c56f2016-02-20 21:57:16 +0530472 * @param className class name
473 * @return javaDocs
474 */
475 private static String generateForConstructors(String className) {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530476 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
477 + className + IMPL + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
478 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + BUILDER.toLowerCase() + OBJECT + SPACE + BUILDER_OBJECT
479 + className + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530480 }
481
482 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530483 * Generates javaDocs for build.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530484 *
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530485 * @param buildName builder name
Bharat saraswal870c56f2016-02-20 21:57:16 +0530486 * @return javaDocs
487 */
488 private static String generateForBuild(String buildName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530489 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_BUILD
Bharat saraswal2f11f652016-03-25 18:19:46 +0530490 + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswale2d51d62016-03-23 19:40:35 +0530491 + JAVA_DOC_RETURN + JAVA_DOC_BUILD_RETURN + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION
492 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530493 }
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530494
495 /**
496 * Generates javaDocs for type constructor.
497 *
498 * @param attribute attribute string
499 * @return javaDocs for type constructor
500 */
Bharat saraswalb1170bd2016-07-14 13:26:18 +0530501 public static String generateForTypeConstructor(String attribute) {
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530502 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530503 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
504 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530505 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530506 }
Bharat saraswalb551aae2016-07-14 15:18:20 +0530507
508 /**
509 * Generates javaDocs for add augmentation method.
510 *
511 * @return javaDocs
512 */
513 public static String generateForAddAugmentation() {
514 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
515 + JAVA_DOC_SETTERS_COMMON + getSmallCase(YANG_AUGMENTED_INFO) + MAP + PERIOD + NEW_LINE +
516 FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE +
517 VALUE + SPACE + OF + SPACE + getSmallCase(YANG_AUGMENTED_INFO) + NEW_LINE + FOUR_SPACE_INDENTATION
518 + JAVA_DOC_PARAM + CLASS + OBJECT_STRING + SPACE +
519 VALUE + SPACE + OF + SPACE + AUGMENTED + CLASS + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
520 }
521
522 public static String generateForGetAugmentation() {
523 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
524 + JAVA_DOC_GETTERS + getSmallCase(YANG_AUGMENTED_INFO) + PERIOD + NEW_LINE +
525 FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + CLASS +
526 OBJECT_STRING + SPACE + VALUE + SPACE + OF + SPACE + AUGMENTED + CLASS + NEW_LINE +
527 FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + VALUE + SPACE +
528 OF + SPACE + YANG_AUGMENTED_INFO + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
529 }
530
531 /**
532 * JavaDocs types.
533 */
534 public enum JavaDocType {
535
536 /**
537 * For class.
538 */
539 IMPL_CLASS,
540
541 /**
542 * For builder class.
543 */
544 BUILDER_CLASS,
545
546 /**
547 * For interface.
548 */
549 INTERFACE,
550
551 /**
552 * For builder interface.
553 */
554 BUILDER_INTERFACE,
555
556 /**
557 * For package-info.
558 */
559 PACKAGE_INFO,
560
561 /**
562 * For getters.
563 */
564 GETTER_METHOD,
565
566 /**
567 * For rpc service.
568 */
569 RPC_INTERFACE,
570
571 /**
572 * For rpc manager.
573 */
574 RPC_MANAGER,
575
576 /**
577 * For event.
578 */
579 EVENT,
580
581 /**
582 * For event listener.
583 */
584 EVENT_LISTENER,
585
586 /**
587 * For setters.
588 */
589 SETTER_METHOD,
590
591 /**
592 * For type def's setters.
593 */
594 TYPE_DEF_SETTER_METHOD,
595
596 /**
597 * For of method.
598 */
599 OF_METHOD,
600
601 /**
602 * For default constructor.
603 */
604 DEFAULT_CONSTRUCTOR,
605
606 /**
607 * For constructor.
608 */
609 CONSTRUCTOR,
610
611 /**
612 * For from method.
613 */
614 FROM_METHOD,
615
616 /**
617 * For type constructor.
618 */
619 TYPE_CONSTRUCTOR,
620
621 /**
622 * For build.
623 */
624 BUILD_METHOD,
625
626 /**
627 * For enum.
628 */
629 ENUM_CLASS,
630
631 /**
632 * For enum's attributes.
633 */
634 ENUM_ATTRIBUTE,
635
636 /**
637 * For manager setters.
638 */
639 MANAGER_SETTER_METHOD,
640
641 /**
642 * For event subject.
643 */
Shankara-Huaweib9999eb2016-07-14 16:53:09 +0530644 EVENT_SUBJECT_CLASS,
645
646 /**
647 * For operation.
648 */
649 OPERATION_CLASS,
650
651 /**
652 * For operation builder.
653 */
654 OPERATION_BUILDER_CLASS
Bharat saraswalb551aae2016-07-14 15:18:20 +0530655 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530656}