blob: 336cc52d0422f5e7f3119b5e11779459dcee54d2 [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;
23import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_INTERFACE_JAVA_DOC;
24import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_OBJECT;
Bharat saraswalb551aae2016-07-14 15:18:20 +053025import static org.onosproject.yangutils.utils.UtilConstants.CLASS;
Bharat saraswalcad0e652016-05-26 23:48:38 +053026import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
Bharat saraswald72411a2016-04-19 01:00:16 +053027import static org.onosproject.yangutils.utils.UtilConstants.ENUM_ATTRIBUTE_JAVADOC;
28import static org.onosproject.yangutils.utils.UtilConstants.ENUM_CLASS_JAVADOC;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053029import static org.onosproject.yangutils.utils.UtilConstants.EVENT_JAVA_DOC;
30import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER_JAVA_DOC;
Bharat saraswale2d51d62016-03-23 19:40:35 +053031import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053032import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_METHOD_NAME;
33import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_PARAM_NAME;
Bharat saraswale2d51d62016-03-23 19:40:35 +053034import static org.onosproject.yangutils.utils.UtilConstants.IMPL;
35import static org.onosproject.yangutils.utils.UtilConstants.IMPL_CLASS_JAVA_DOC;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053036import static org.onosproject.yangutils.utils.UtilConstants.INPUT;
Bharat saraswale2d51d62016-03-23 19:40:35 +053037import static org.onosproject.yangutils.utils.UtilConstants.INTERFACE_JAVA_DOC;
38import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD;
39import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD_RETURN;
40import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_CONSTRUCTOR;
Bharat saraswale2d51d62016-03-23 19:40:35 +053041import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_END_LINE;
42import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_FIRST_LINE;
43import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_GETTERS;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053044import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_MANAGER_SETTERS;
Bharat saraswale2d51d62016-03-23 19:40:35 +053045import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_OF;
46import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_PARAM;
47import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RETURN;
Gaurav Agrawal56527662016-04-20 15:49:17 +053048import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RPC;
Bharat saraswale2d51d62016-03-23 19:40:35 +053049import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS;
50import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS_COMMON;
51import static org.onosproject.yangutils.utils.UtilConstants.LIST;
Bharat saraswalb551aae2016-07-14 15:18:20 +053052import static org.onosproject.yangutils.utils.UtilConstants.MAP;
Bharat saraswale2d51d62016-03-23 19:40:35 +053053import 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;
Bharat saraswalb551aae2016-07-14 15:18:20 +053056import static org.onosproject.yangutils.utils.UtilConstants.OBJECT_STRING;
Bharat saraswale2d51d62016-03-23 19:40:35 +053057import static org.onosproject.yangutils.utils.UtilConstants.OF;
58import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC;
Bharat saraswalc0e04842016-05-12 13:16:57 +053059import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC_OF_CHILD;
Bharat saraswale2d51d62016-03-23 19:40:35 +053060import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
Gaurav Agrawal56527662016-04-20 15:49:17 +053061import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_STRING;
62import static org.onosproject.yangutils.utils.UtilConstants.RPC_OUTPUT_STRING;
Bharat saraswale2d51d62016-03-23 19:40:35 +053063import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053064import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
Bharat saraswale2d51d62016-03-23 19:40:35 +053065import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
Bharat saraswalc0e04842016-05-12 13:16:57 +053066import static org.onosproject.yangutils.utils.UtilConstants.VOID;
Bharat saraswalb551aae2016-07-14 15:18:20 +053067import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
68import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase;
Bharat saraswale2d51d62016-03-23 19:40:35 +053069
Bharat saraswal870c56f2016-02-20 21:57:16 +053070/**
Bharat saraswald9822e92016-04-05 15:13:44 +053071 * Represents javadoc for the generated classes.
Bharat saraswal870c56f2016-02-20 21:57:16 +053072 */
73public final class JavaDocGen {
74
75 /**
Bharat saraswald9822e92016-04-05 15:13:44 +053076 * Creates an instance of java doc gen.
Bharat saraswal870c56f2016-02-20 21:57:16 +053077 */
78 private JavaDocGen() {
79 }
80
81 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +053082 * Returns java docs.
83 *
Bharat saraswalb551aae2016-07-14 15:18:20 +053084 * @param type java doc type
85 * @param name name of the YangNode
86 * @param isList is list attribute
Bharat saraswal33dfa012016-05-17 19:59:16 +053087 * @param pluginConfig plugin configurations
Bharat saraswal2f00b4b2016-03-04 20:08:09 +053088 * @return javadocs.
Bharat saraswal870c56f2016-02-20 21:57:16 +053089 */
Bharat saraswal33dfa012016-05-17 19:59:16 +053090 public static String getJavaDoc(JavaDocType type, String name, boolean isList, YangPluginConfig pluginConfig) {
Bharat saraswale2d51d62016-03-23 19:40:35 +053091
Gaurav Agrawal8a5af142016-06-15 13:58:01 +053092 name = YangIoUtils.getSmallCase(getCamelCase(name, pluginConfig.getConflictResolver()));
Gaurav Agrawal56527662016-04-20 15:49:17 +053093 switch (type) {
94 case IMPL_CLASS: {
Bharat saraswal33dfa012016-05-17 19:59:16 +053095 return generateForClass(name);
Gaurav Agrawal56527662016-04-20 15:49:17 +053096 }
97 case BUILDER_CLASS: {
98 return generateForBuilderClass(name);
99 }
100 case INTERFACE: {
101 return generateForInterface(name);
102 }
103 case BUILDER_INTERFACE: {
104 return generateForBuilderInterface(name);
105 }
106 case PACKAGE_INFO: {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530107 return generateForPackage(name, isList);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530108 }
109 case GETTER_METHOD: {
110 return generateForGetters(name, isList);
111 }
112 case TYPE_DEF_SETTER_METHOD: {
113 return generateForTypeDefSetter(name);
114 }
115 case SETTER_METHOD: {
116 return generateForSetters(name, isList);
117 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530118 case MANAGER_SETTER_METHOD: {
119 return generateForManagerSetters(name, isList);
120 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530121 case OF_METHOD: {
122 return generateForOf(name);
123 }
124 case DEFAULT_CONSTRUCTOR: {
125 return generateForDefaultConstructors(name);
126 }
127 case BUILD_METHOD: {
128 return generateForBuild(name);
129 }
130 case TYPE_CONSTRUCTOR: {
131 return generateForTypeConstructor(name);
132 }
133 case FROM_METHOD: {
134 return generateForFromString(name);
135 }
136 case ENUM_CLASS: {
137 return generateForEnum(name);
138 }
139 case ENUM_ATTRIBUTE: {
140 return generateForEnumAttr(name);
141 }
142 case RPC_INTERFACE: {
Bharat saraswalb551aae2016-07-14 15:18:20 +0530143 return generateForRpcService(name);
Bharat saraswalc0e04842016-05-12 13:16:57 +0530144 }
145 case RPC_MANAGER: {
Bharat saraswalb551aae2016-07-14 15:18:20 +0530146 return generateForClass(name);
Gaurav Agrawal56527662016-04-20 15:49:17 +0530147 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530148 case EVENT: {
149 return generateForEvent(name);
150 }
151 case EVENT_LISTENER: {
152 return generateForEventListener(name);
153 }
Bharat saraswal33dfa012016-05-17 19:59:16 +0530154 case EVENT_SUBJECT_CLASS: {
155 return generateForClass(name);
156 }
Gaurav Agrawal56527662016-04-20 15:49:17 +0530157 default: {
158 return generateForConstructors(name);
159 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530160 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530161 }
162
163 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530164 * Generates javaDocs for enum's attributes.
165 *
166 * @param name attribute name
167 * @return javaDocs
168 */
169 private static String generateForEnumAttr(String name) {
170 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + ENUM_ATTRIBUTE_JAVADOC
171 + name + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
172 }
173
174 /**
Gaurav Agrawal56527662016-04-20 15:49:17 +0530175 * Generates javaDocs for rpc method.
176 *
Bharat saraswalb551aae2016-07-14 15:18:20 +0530177 * @param rpcName name of the rpc
178 * @param inputName name of input
179 * @param outputName name of output
Bharat saraswal33dfa012016-05-17 19:59:16 +0530180 * @param pluginConfig plugin configurations
Gaurav Agrawal56527662016-04-20 15:49:17 +0530181 * @return javaDocs of rpc method
182 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530183 public static String generateJavaDocForRpc(String rpcName, String inputName, String outputName,
Bharat saraswalb551aae2016-07-14 15:18:20 +0530184 YangPluginConfig pluginConfig) {
Bharat saraswal33dfa012016-05-17 19:59:16 +0530185 rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
Gaurav Agrawal56527662016-04-20 15:49:17 +0530186
Bharat saraswal33dfa012016-05-17 19:59:16 +0530187 String javadoc =
188 NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RPC
Bharat saraswalcad0e652016-05-26 23:48:38 +0530189 + rpcName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK;
190 if (!inputName.equals(EMPTY_STRING)) {
191 javadoc = javadoc + getInputString(inputName, rpcName);
192 }
Bharat saraswalc0e04842016-05-12 13:16:57 +0530193 if (!outputName.equals(VOID)) {
194 javadoc = javadoc + getOutputString(outputName, rpcName);
195 }
196 return javadoc + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Gaurav Agrawal56527662016-04-20 15:49:17 +0530197 }
198
199 /**
200 * Returns output string of rpc.
201 *
202 * @param outputName name of output
Bharat saraswalb551aae2016-07-14 15:18:20 +0530203 * @param rpcName name of rpc
Gaurav Agrawal56527662016-04-20 15:49:17 +0530204 * @return javaDocs for output string of rpc
205 */
206 private static String getOutputString(String outputName, String rpcName) {
207 return FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + outputName + SPACE + RPC_OUTPUT_STRING + rpcName + NEW_LINE;
208 }
209
210 /**
211 * Returns input string of rpc.
212 *
213 * @param inputName name of input
Bharat saraswalb551aae2016-07-14 15:18:20 +0530214 * @param rpcName name of rpc
Gaurav Agrawal56527662016-04-20 15:49:17 +0530215 * @return javaDocs for input string of rpc
216 */
217 private static String getInputString(String inputName, String rpcName) {
218 if (inputName.equals("")) {
219 return null;
220 } else {
221 return FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + inputName + SPACE + RPC_INPUT_STRING + rpcName + NEW_LINE;
222 }
223 }
224
225 /**
226 * Generates javaDoc for the interface.
227 *
228 * @param interfaceName interface name
229 * @return javaDocs
230 */
Bharat saraswalc0e04842016-05-12 13:16:57 +0530231 private static String generateForRpcService(String interfaceName) {
Gaurav Agrawal56527662016-04-20 15:49:17 +0530232 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
233 + JAVA_DOC_END_LINE;
234 }
235
236 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530237 * Generates javaDoc for the event.
238 *
239 * @param eventClassName event class name
240 * @return javaDocs
241 */
242 private static String generateForEvent(String eventClassName) {
243 return NEW_LINE + JAVA_DOC_FIRST_LINE + EVENT_JAVA_DOC + eventClassName + PERIOD + NEW_LINE
244 + JAVA_DOC_END_LINE;
245 }
246
247 /**
248 * Generates javaDoc for the event listener.
249 *
250 * @param eventListenerInterfaceName event class name
251 * @return javaDocs
252 */
253 private static String generateForEventListener(String eventListenerInterfaceName) {
254 return NEW_LINE + JAVA_DOC_FIRST_LINE + EVENT_LISTENER_JAVA_DOC + eventListenerInterfaceName
255 + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
256 }
257
258 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530259 * Generates javaDocs for getter method.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530260 *
261 * @param attribute attribute
Bharat saraswalb551aae2016-07-14 15:18:20 +0530262 * @param isList is list attribute
Bharat saraswal870c56f2016-02-20 21:57:16 +0530263 * @return javaDocs
264 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530265 private static String generateForGetters(String attribute, boolean isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530266
267 String getter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530268 + JAVA_DOC_GETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530269 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530270 if (isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530271 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
Vinod Kumar S38046502016-03-23 15:30:27 +0530272 getter = getter + listAttribute;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530273 } else {
274 getter = getter + VALUE + SPACE + OF + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530275 }
276
Bharat saraswale2d51d62016-03-23 19:40:35 +0530277 getter = getter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530278 return getter;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530279 }
280
281 /**
282 * Generates javaDocs for setter method.
283 *
284 * @param attribute attribute
Bharat saraswalb551aae2016-07-14 15:18:20 +0530285 * @param isList is list attribute
Bharat saraswal870c56f2016-02-20 21:57:16 +0530286 * @return javaDocs
287 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530288 private static String generateForSetters(String attribute, boolean isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530289
290 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530291 + JAVA_DOC_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530292 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530293 if (isList) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530294 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
Vinod Kumar S38046502016-03-23 15:30:27 +0530295 setter = setter + listAttribute;
296 } else {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530297 setter = setter + VALUE + SPACE + OF + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530298 }
Bharat saraswalcad0e652016-05-26 23:48:38 +0530299 setter = setter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + BUILDER_OBJECT
300 + attribute
Bharat saraswale2d51d62016-03-23 19:40:35 +0530301 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530302 return setter;
303 }
304
305 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530306 * Generates javaDocs for setter method.
307 *
308 * @param attribute attribute
Bharat saraswalb551aae2016-07-14 15:18:20 +0530309 * @param isList is list attribute
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530310 * @return javaDocs
311 */
312 private static String generateForManagerSetters(String attribute, boolean isList) {
313
314 String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
315 + JAVA_DOC_MANAGER_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
316 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
317 if (isList) {
318 String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
319 setter = setter + listAttribute;
320 } else {
321 setter = setter + VALUE + SPACE + OF + SPACE;
322 }
323 setter = setter + attribute
324 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
325 return setter;
326 }
327
328 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530329 * Generates javaDocs for of method.
330 *
331 * @param attribute attribute
332 * @return javaDocs
333 */
334 private static String generateForOf(String attribute) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530335 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
Bharat saraswal2f11f652016-03-25 18:19:46 +0530336 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswale2d51d62016-03-23 19:40:35 +0530337 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
338 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
339 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530340 }
341
342 /**
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530343 * Generates javaDocs for from method.
344 *
345 * @param attribute attribute
346 * @return javaDocs
347 */
Gaurav Agrawal56527662016-04-20 15:49:17 +0530348 private static String generateForFromString(String attribute) {
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530349
350 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
351 + attribute + SPACE + FROM_STRING_METHOD_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + PERIOD
352 + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM
Bharat saraswalc0e04842016-05-12 13:16:57 +0530353 + FROM_STRING_PARAM_NAME + SPACE + INPUT + SPACE + STRING_DATA_TYPE + NEW_LINE
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530354 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
355 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
356 }
357
358 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530359 * Generates javaDocs for typedef setter method.
360 *
361 * @param attribute attribute
362 * @return javaDocs
363 */
364 private static String generateForTypeDefSetter(String attribute) {
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530365 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
Bharat saraswal2f11f652016-03-25 18:19:46 +0530366 + JAVA_DOC_SETTERS_COMMON + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
Bharat saraswale2d51d62016-03-23 19:40:35 +0530367 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530368 + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530369 }
370
371 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530372 * Generates javaDocs for the impl class.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530373 *
374 * @param className class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530375 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530376 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530377 private static String generateForClass(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530378 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 +0530379 }
380
381 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530382 * Generates javaDocs for enum.
383 *
384 * @param className enum class name
385 * @return javaDocs
386 */
387 private static String generateForEnum(String className) {
388 return NEW_LINE + NEW_LINE + JAVA_DOC_FIRST_LINE + ENUM_CLASS_JAVADOC + className + PERIOD + NEW_LINE
389 + JAVA_DOC_END_LINE;
390 }
391
392 /**
393 * Generates javaDocs for the builder class.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530394 *
395 * @param className class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530396 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530397 */
398 private static String generateForBuilderClass(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530399 return NEW_LINE + JAVA_DOC_FIRST_LINE + BUILDER_CLASS_JAVA_DOC + className + PERIOD + NEW_LINE
400 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530401 }
402
403 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530404 * Generates javaDoc for the interface.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530405 *
406 * @param interfaceName interface name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530407 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530408 */
409 private static String generateForInterface(String interfaceName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530410 return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
411 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530412 }
413
414 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530415 * Generates javaDoc for the builder interface.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530416 *
417 * @param builderforName builder for name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530418 * @return javaDocs
Bharat saraswal870c56f2016-02-20 21:57:16 +0530419 */
420 private static String generateForBuilderInterface(String builderforName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530421 return JAVA_DOC_FIRST_LINE + BUILDER_INTERFACE_JAVA_DOC + builderforName + PERIOD + NEW_LINE
422 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530423 }
424
425 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530426 * Generates javaDocs for package-info.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530427 *
428 * @param packageName package name
Bharat saraswalc0e04842016-05-12 13:16:57 +0530429 * @param isChildNode is it child node
Bharat saraswal870c56f2016-02-20 21:57:16 +0530430 * @return javaDocs
431 */
Bharat saraswalc0e04842016-05-12 13:16:57 +0530432 private static String generateForPackage(String packageName, boolean isChildNode) {
433 String javaDoc = JAVA_DOC_FIRST_LINE + PACKAGE_INFO_JAVADOC + packageName;
434 if (isChildNode) {
435 javaDoc = javaDoc + PACKAGE_INFO_JAVADOC_OF_CHILD;
436 }
437 return javaDoc + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530438 }
439
440 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530441 * Generates javaDocs for default constructor.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530442 *
Bharat saraswal6ef0b762016-04-05 12:45:45 +0530443 * @param className class name
Bharat saraswal870c56f2016-02-20 21:57:16 +0530444 * @return javaDocs
445 */
Bharat saraswal6ef0b762016-04-05 12:45:45 +0530446 private static String generateForDefaultConstructors(String className) {
447 return FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR + className
448 + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530449 }
450
451 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530452 * Generates javaDocs for constructor with parameters.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530453 *
Bharat saraswal870c56f2016-02-20 21:57:16 +0530454 * @param className class name
455 * @return javaDocs
456 */
457 private static String generateForConstructors(String className) {
Bharat saraswalc0e04842016-05-12 13:16:57 +0530458 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
459 + className + IMPL + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
460 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + BUILDER.toLowerCase() + OBJECT + SPACE + BUILDER_OBJECT
461 + className + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530462 }
463
464 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530465 * Generates javaDocs for build.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530466 *
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530467 * @param buildName builder name
Bharat saraswal870c56f2016-02-20 21:57:16 +0530468 * @return javaDocs
469 */
470 private static String generateForBuild(String buildName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530471 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_BUILD
Bharat saraswal2f11f652016-03-25 18:19:46 +0530472 + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
Bharat saraswale2d51d62016-03-23 19:40:35 +0530473 + JAVA_DOC_RETURN + JAVA_DOC_BUILD_RETURN + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION
474 + JAVA_DOC_END_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530475 }
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530476
477 /**
478 * Generates javaDocs for type constructor.
479 *
480 * @param attribute attribute string
481 * @return javaDocs for type constructor
482 */
Bharat saraswalb1170bd2016-07-14 13:26:18 +0530483 public static String generateForTypeConstructor(String attribute) {
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530484 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530485 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
486 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530487 + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530488 }
Bharat saraswalb551aae2016-07-14 15:18:20 +0530489
490 /**
491 * Generates javaDocs for add augmentation method.
492 *
493 * @return javaDocs
494 */
495 public static String generateForAddAugmentation() {
496 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
497 + JAVA_DOC_SETTERS_COMMON + getSmallCase(YANG_AUGMENTED_INFO) + MAP + PERIOD + NEW_LINE +
498 FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE +
499 VALUE + SPACE + OF + SPACE + getSmallCase(YANG_AUGMENTED_INFO) + NEW_LINE + FOUR_SPACE_INDENTATION
500 + JAVA_DOC_PARAM + CLASS + OBJECT_STRING + SPACE +
501 VALUE + SPACE + OF + SPACE + AUGMENTED + CLASS + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
502 }
503
504 public static String generateForGetAugmentation() {
505 return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
506 + JAVA_DOC_GETTERS + getSmallCase(YANG_AUGMENTED_INFO) + PERIOD + NEW_LINE +
507 FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + CLASS +
508 OBJECT_STRING + SPACE + VALUE + SPACE + OF + SPACE + AUGMENTED + CLASS + NEW_LINE +
509 FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + VALUE + SPACE +
510 OF + SPACE + YANG_AUGMENTED_INFO + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
511 }
512
513 /**
514 * JavaDocs types.
515 */
516 public enum JavaDocType {
517
518 /**
519 * For class.
520 */
521 IMPL_CLASS,
522
523 /**
524 * For builder class.
525 */
526 BUILDER_CLASS,
527
528 /**
529 * For interface.
530 */
531 INTERFACE,
532
533 /**
534 * For builder interface.
535 */
536 BUILDER_INTERFACE,
537
538 /**
539 * For package-info.
540 */
541 PACKAGE_INFO,
542
543 /**
544 * For getters.
545 */
546 GETTER_METHOD,
547
548 /**
549 * For rpc service.
550 */
551 RPC_INTERFACE,
552
553 /**
554 * For rpc manager.
555 */
556 RPC_MANAGER,
557
558 /**
559 * For event.
560 */
561 EVENT,
562
563 /**
564 * For event listener.
565 */
566 EVENT_LISTENER,
567
568 /**
569 * For setters.
570 */
571 SETTER_METHOD,
572
573 /**
574 * For type def's setters.
575 */
576 TYPE_DEF_SETTER_METHOD,
577
578 /**
579 * For of method.
580 */
581 OF_METHOD,
582
583 /**
584 * For default constructor.
585 */
586 DEFAULT_CONSTRUCTOR,
587
588 /**
589 * For constructor.
590 */
591 CONSTRUCTOR,
592
593 /**
594 * For from method.
595 */
596 FROM_METHOD,
597
598 /**
599 * For type constructor.
600 */
601 TYPE_CONSTRUCTOR,
602
603 /**
604 * For build.
605 */
606 BUILD_METHOD,
607
608 /**
609 * For enum.
610 */
611 ENUM_CLASS,
612
613 /**
614 * For enum's attributes.
615 */
616 ENUM_ATTRIBUTE,
617
618 /**
619 * For manager setters.
620 */
621 MANAGER_SETTER_METHOD,
622
623 /**
624 * For event subject.
625 */
626 EVENT_SUBJECT_CLASS
627 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530628}