blob: ea7824f09f3cc16859dda6474754c2f1d222e47f [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.translator.tojava.utils;
18
Bharat saraswalc0e04842016-05-12 13:16:57 +053019import java.util.List;
20import java.util.Map;
janani be18b5342016-07-13 21:06:41 +053021
Shankara-Huaweib9999eb2016-07-14 16:53:09 +053022import org.onosproject.yangutils.datamodel.YangLeaf;
23import org.onosproject.yangutils.datamodel.YangLeafList;
24import org.onosproject.yangutils.datamodel.YangLeavesHolder;
Bharat saraswalb551aae2016-07-14 15:18:20 +053025import org.onosproject.yangutils.datamodel.YangAtomicPath;
26import org.onosproject.yangutils.datamodel.YangAugment;
27import org.onosproject.yangutils.datamodel.YangNode;
Gaurav Agrawal8a5af142016-06-15 13:58:01 +053028import org.onosproject.yangutils.datamodel.YangType;
janani be18b5342016-07-13 21:06:41 +053029import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes;
Bharat saraswalab4c6ba2016-05-17 14:19:38 +053030import org.onosproject.yangutils.translator.exception.TranslatorException;
Vinod Kumar S38046502016-03-23 15:30:27 +053031import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo;
Bharat saraswalb551aae2016-07-14 15:18:20 +053032import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
Shankara-Huaweib9999eb2016-07-14 16:53:09 +053033import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
34import org.onosproject.yangutils.translator.tojava.TempJavaBeanFragmentFiles;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053035import org.onosproject.yangutils.utils.io.impl.JavaDocGen;
Gaurav Agrawal8a5af142016-06-15 13:58:01 +053036import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
Bharat saraswale2d51d62016-03-23 19:40:35 +053037
Shankara-Huaweib9999eb2016-07-14 16:53:09 +053038import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.DECIMAL64;
39import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT8;
40import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT16;
41import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT32;
42import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT64;
43import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT8;
44import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT16;
45import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.BOOLEAN;
46import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT64;
47import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT32;
Bharat saraswal33dfa012016-05-17 19:59:16 +053048import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +053049import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
Bharat saraswalb551aae2016-07-14 15:18:20 +053050import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getAugmentedClassNameForDataMethods;
51import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getParentNodeNameForDataMethods;
52import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getResolvedAugmentsForManager;
53import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getSetOfNodeIdentifiers;
Shankara-Huaweib9999eb2016-07-14 16:53:09 +053054import static org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles.getJavaAttributeOfLeaf;
55import static org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles.getJavaAttributeOfLeafList;
Bharat saraswal33dfa012016-05-17 19:59:16 +053056import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE;
57import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE_ANNOTATION;
Bharat saraswale2d51d62016-03-23 19:40:35 +053058import static org.onosproject.yangutils.utils.UtilConstants.ADD_STRING;
59import static org.onosproject.yangutils.utils.UtilConstants.AND;
Bharat saraswalb551aae2016-07-14 15:18:20 +053060import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTATION;
61import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED;
Mahesh Poojary Huawei30c116a2016-07-14 17:49:50 +053062import static org.onosproject.yangutils.utils.UtilConstants.BASE64;
Mahesh Poojary Huawei46fb4db2016-07-14 12:38:17 +053063import static org.onosproject.yangutils.utils.UtilConstants.BIG_DECIMAL;
Bharat saraswalb1170bd2016-07-14 13:26:18 +053064import static org.onosproject.yangutils.utils.UtilConstants.BIG_INTEGER;
Bharat saraswale2d51d62016-03-23 19:40:35 +053065import static org.onosproject.yangutils.utils.UtilConstants.BOOLEAN_DATA_TYPE;
Gaurav Agrawal8a5af142016-06-15 13:58:01 +053066import static org.onosproject.yangutils.utils.UtilConstants.BOOLEAN_WRAPPER;
Bharat saraswale2d51d62016-03-23 19:40:35 +053067import static org.onosproject.yangutils.utils.UtilConstants.BUILD;
68import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
Bharat saraswalab4c6ba2016-05-17 14:19:38 +053069import static org.onosproject.yangutils.utils.UtilConstants.BYTE;
Gaurav Agrawal8a5af142016-06-15 13:58:01 +053070import static org.onosproject.yangutils.utils.UtilConstants.BYTE_WRAPPER;
Bharat saraswalc0e04842016-05-12 13:16:57 +053071import static org.onosproject.yangutils.utils.UtilConstants.CASE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053072import static org.onosproject.yangutils.utils.UtilConstants.CATCH;
Bharat saraswale2d51d62016-03-23 19:40:35 +053073import static org.onosproject.yangutils.utils.UtilConstants.CHECK_NOT_NULL_STRING;
Bharat saraswalb551aae2016-07-14 15:18:20 +053074import static org.onosproject.yangutils.utils.UtilConstants.CLASS;
75import static org.onosproject.yangutils.utils.UtilConstants.CLASS_STRING;
Bharat saraswale2d51d62016-03-23 19:40:35 +053076import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET;
77import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS;
Mahesh Poojary Huawei30c116a2016-07-14 17:49:50 +053078import static org.onosproject.yangutils.utils.UtilConstants.COLON;
Bharat saraswale2d51d62016-03-23 19:40:35 +053079import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
Bharat saraswal33dfa012016-05-17 19:59:16 +053080import static org.onosproject.yangutils.utils.UtilConstants.DEACTIVATE;
81import static org.onosproject.yangutils.utils.UtilConstants.DEACTIVATE_ANNOTATION;
Mahesh Poojary Huawei30c116a2016-07-14 17:49:50 +053082import static org.onosproject.yangutils.utils.UtilConstants.DECODE;
Bharat saraswalc0e04842016-05-12 13:16:57 +053083import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT;
Bharat saraswale2d51d62016-03-23 19:40:35 +053084import static org.onosproject.yangutils.utils.UtilConstants.DIAMOND_CLOSE_BRACKET;
85import static org.onosproject.yangutils.utils.UtilConstants.DIAMOND_OPEN_BRACKET;
Mahesh Poojary Huawei46fb4db2016-07-14 12:38:17 +053086import static org.onosproject.yangutils.utils.UtilConstants.DOUBLE;
Bharat saraswale2d51d62016-03-23 19:40:35 +053087import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
88import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
89import static org.onosproject.yangutils.utils.UtilConstants.EQUAL;
90import static org.onosproject.yangutils.utils.UtilConstants.EQUALS_STRING;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053091import static org.onosproject.yangutils.utils.UtilConstants.EXCEPTION;
92import static org.onosproject.yangutils.utils.UtilConstants.EXCEPTION_VAR;
Bharat saraswale2d51d62016-03-23 19:40:35 +053093import static org.onosproject.yangutils.utils.UtilConstants.FALSE;
Mahesh Poojary Huawei30c116a2016-07-14 17:49:50 +053094import static org.onosproject.yangutils.utils.UtilConstants.FOR;
Bharat saraswale2d51d62016-03-23 19:40:35 +053095import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053096import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_METHOD_NAME;
97import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_PARAM_NAME;
Bharat saraswalb551aae2016-07-14 15:18:20 +053098import static org.onosproject.yangutils.utils.UtilConstants.GET;
Mahesh Poojary Huawei30c116a2016-07-14 17:49:50 +053099import static org.onosproject.yangutils.utils.UtilConstants.GET_DECODER;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530100import static org.onosproject.yangutils.utils.UtilConstants.GET_METHOD_PREFIX;
101import static org.onosproject.yangutils.utils.UtilConstants.GOOGLE_MORE_OBJECT_METHOD_STRING;
102import static org.onosproject.yangutils.utils.UtilConstants.HASH;
103import static org.onosproject.yangutils.utils.UtilConstants.HASH_CODE_STRING;
104import static org.onosproject.yangutils.utils.UtilConstants.IF;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530105import static org.onosproject.yangutils.utils.UtilConstants.INSTANCE_OF;
106import static org.onosproject.yangutils.utils.UtilConstants.INT;
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530107import static org.onosproject.yangutils.utils.UtilConstants.INTEGER_WRAPPER;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530108import static org.onosproject.yangutils.utils.UtilConstants.LIST;
Bharat saraswalab4c6ba2016-05-17 14:19:38 +0530109import static org.onosproject.yangutils.utils.UtilConstants.LONG;
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530110import static org.onosproject.yangutils.utils.UtilConstants.LONG_WRAPPER;
Bharat saraswalb551aae2016-07-14 15:18:20 +0530111import static org.onosproject.yangutils.utils.UtilConstants.MAP;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530112import static org.onosproject.yangutils.utils.UtilConstants.NEW;
113import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530114import static org.onosproject.yangutils.utils.UtilConstants.NULL;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530115import static org.onosproject.yangutils.utils.UtilConstants.OBJ;
116import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
117import static org.onosproject.yangutils.utils.UtilConstants.OBJECT_STRING;
118import static org.onosproject.yangutils.utils.UtilConstants.OF;
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530119import static org.onosproject.yangutils.utils.UtilConstants.OMIT_NULL_VALUE_STRING;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530120import static org.onosproject.yangutils.utils.UtilConstants.OPEN_CURLY_BRACKET;
121import static org.onosproject.yangutils.utils.UtilConstants.OPEN_PARENTHESIS;
122import static org.onosproject.yangutils.utils.UtilConstants.OTHER;
123import static org.onosproject.yangutils.utils.UtilConstants.OVERRIDE;
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530124import static org.onosproject.yangutils.utils.UtilConstants.PARSE_BOOLEAN;
125import static org.onosproject.yangutils.utils.UtilConstants.PARSE_BYTE;
126import static org.onosproject.yangutils.utils.UtilConstants.PARSE_INT;
127import static org.onosproject.yangutils.utils.UtilConstants.PARSE_LONG;
128import static org.onosproject.yangutils.utils.UtilConstants.PARSE_SHORT;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530129import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
130import static org.onosproject.yangutils.utils.UtilConstants.PUBLIC;
Bharat saraswalb551aae2016-07-14 15:18:20 +0530131import static org.onosproject.yangutils.utils.UtilConstants.PUT;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530132import static org.onosproject.yangutils.utils.UtilConstants.QUOTES;
133import static org.onosproject.yangutils.utils.UtilConstants.RETURN;
Gaurav Agrawal56527662016-04-20 15:49:17 +0530134import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_VAR_NAME;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530135import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
136import static org.onosproject.yangutils.utils.UtilConstants.SET_METHOD_PREFIX;
Bharat saraswalab4c6ba2016-05-17 14:19:38 +0530137import static org.onosproject.yangutils.utils.UtilConstants.SHORT;
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530138import static org.onosproject.yangutils.utils.UtilConstants.SHORT_WRAPPER;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530139import static org.onosproject.yangutils.utils.UtilConstants.SIXTEEN_SPACE_INDENTATION;
140import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
Bharat saraswal33dfa012016-05-17 19:59:16 +0530141import static org.onosproject.yangutils.utils.UtilConstants.STARTED_LOG_INFO;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530142import static org.onosproject.yangutils.utils.UtilConstants.STATIC;
Bharat saraswal33dfa012016-05-17 19:59:16 +0530143import static org.onosproject.yangutils.utils.UtilConstants.STOPPED_LOG_INFO;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530144import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
145import static org.onosproject.yangutils.utils.UtilConstants.SUFFIX_S;
Bharat saraswalc0e04842016-05-12 13:16:57 +0530146import static org.onosproject.yangutils.utils.UtilConstants.SWITCH;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530147import static org.onosproject.yangutils.utils.UtilConstants.THIS;
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530148import static org.onosproject.yangutils.utils.UtilConstants.TMP_VAL;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530149import static org.onosproject.yangutils.utils.UtilConstants.TO;
150import static org.onosproject.yangutils.utils.UtilConstants.TRUE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530151import static org.onosproject.yangutils.utils.UtilConstants.TRY;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530152import static org.onosproject.yangutils.utils.UtilConstants.TWELVE_SPACE_INDENTATION;
153import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
154import static org.onosproject.yangutils.utils.UtilConstants.VOID;
Bharat saraswalb551aae2016-07-14 15:18:20 +0530155import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530156import static org.onosproject.yangutils.utils.UtilConstants.YANG_UTILS_TODO;
Shankara-Huaweib9999eb2016-07-14 16:53:09 +0530157import static org.onosproject.yangutils.utils.UtilConstants.OPERATION;
158import static org.onosproject.yangutils.utils.UtilConstants.BITSET;
159import static org.onosproject.yangutils.utils.UtilConstants.GET_FILTER_LEAF;
160import static org.onosproject.yangutils.utils.UtilConstants.FILTER_LEAF;
161import static org.onosproject.yangutils.utils.UtilConstants.GET_SELECT_LEAF;
162import static org.onosproject.yangutils.utils.UtilConstants.SELECT_LEAF;
163import static org.onosproject.yangutils.utils.UtilConstants.GET_FILTER_LEAF_LIST;
164import static org.onosproject.yangutils.utils.UtilConstants.FILTER_LEAF_LIST;
165import static org.onosproject.yangutils.utils.UtilConstants.GET_SELECT_LEAF_LIST;
166import static org.onosproject.yangutils.utils.UtilConstants.SELECT_LEAF_LIST;
167import static org.onosproject.yangutils.utils.UtilConstants.OPERATION_ENUM;
168import static org.onosproject.yangutils.utils.UtilConstants.GET_OPERATION_TYPE;
169import static org.onosproject.yangutils.utils.UtilConstants.OP_PARAM_TYPE;
170import static org.onosproject.yangutils.utils.UtilConstants.SET_OPERATION_TYPE;
171import static org.onosproject.yangutils.utils.UtilConstants.RECEIVED_OBJECT;
172import static org.onosproject.yangutils.utils.UtilConstants.FILTER_CONTENT_MATCH;
173import static org.onosproject.yangutils.utils.UtilConstants.APP_INSTANCE;
174import static org.onosproject.yangutils.utils.UtilConstants.NOT;
175import static org.onosproject.yangutils.utils.UtilConstants.OR_OPERATION;
Mahesh Poojary Huawei30c116a2016-07-14 17:49:50 +0530176import static org.onosproject.yangutils.utils.UtilConstants.REPLACE_STRING;
177import static org.onosproject.yangutils.utils.UtilConstants.SINGLE_QUOTE;
178import static org.onosproject.yangutils.utils.UtilConstants.SPLIT_STRING;
179import static org.onosproject.yangutils.utils.UtilConstants.SQUARE_BRACKETS;
180import static org.onosproject.yangutils.utils.UtilConstants.TRIM_STRING;
181import static org.onosproject.yangutils.utils.UtilConstants.ZERO;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530182import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.BUILD_METHOD;
183import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.CONSTRUCTOR;
184import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.DEFAULT_CONSTRUCTOR;
Gaurav Agrawal56527662016-04-20 15:49:17 +0530185import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.FROM_METHOD;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530186import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530187import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.MANAGER_SETTER_METHOD;
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530188import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.OF_METHOD;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530189import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.SETTER_METHOD;
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530190import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.TYPE_CONSTRUCTOR;
Bharat saraswalb551aae2016-07-14 15:18:20 +0530191import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateForAddAugmentation;
192import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateForGetAugmentation;
Bharat saraswalb1170bd2016-07-14 13:26:18 +0530193import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateForTypeConstructor;
194import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530195import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
196import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
197import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530198import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.trimAtLast;
Mahesh Poojary Huawei46fb4db2016-07-14 12:38:17 +0530199import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.BINARY;
Mahesh Poojary Huawei30c116a2016-07-14 17:49:50 +0530200import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.BITS;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530201
202/**
Bharat saraswald9822e92016-04-05 15:13:44 +0530203 * Represents generator for methods of generated files based on the file type.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530204 */
205public final class MethodsGenerator {
Mahesh Poojary Huawei30c116a2016-07-14 17:49:50 +0530206 private static final String BITS_STRING_ARRAY_VAR = "bitsTemp";
207 private static final String BIT_TEMP_VAR = "bitTemp";
208 private static final String FOR_TYPE = " for type ";
Bharat saraswal870c56f2016-02-20 21:57:16 +0530209
Bharat saraswal870c56f2016-02-20 21:57:16 +0530210 /**
Bharat saraswald9822e92016-04-05 15:13:44 +0530211 * Creates an instance of method generator.
Bharat saraswal870c56f2016-02-20 21:57:16 +0530212 */
213 private MethodsGenerator() {
214 }
215
216 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530217 * Returns the methods strings for builder interface.
218 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530219 * @param name attribute name
Bharat saraswal33dfa012016-05-17 19:59:16 +0530220 * @param pluginConfig plugin configurations
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530221 * @return method string for builder interface
Bharat saraswal870c56f2016-02-20 21:57:16 +0530222 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530223 public static String parseBuilderInterfaceBuildMethodString(String name, YangPluginConfig pluginConfig) {
224 return getJavaDoc(BUILD_METHOD, name, false, pluginConfig) + getBuildForInterface(name);
Bharat saraswal870c56f2016-02-20 21:57:16 +0530225 }
226
227 /**
228 * Returns getter string.
229 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530230 * @param attr attribute info
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530231 * @param generatedJavaFiles generated java files
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530232 * @param pluginConfig plugin configurations
Bharat saraswal870c56f2016-02-20 21:57:16 +0530233 * @return getter string
234 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530235 public static String getGetterString(JavaAttributeInfo attr, int generatedJavaFiles,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530236 YangPluginConfig pluginConfig) {
Bharat saraswal870c56f2016-02-20 21:57:16 +0530237
Vinod Kumar S38046502016-03-23 15:30:27 +0530238 String returnType = getReturnType(attr);
janani b4a6711a2016-05-17 13:12:22 +0530239 String attributeName = attr.getAttributeName();
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530240
Bharat saraswal33dfa012016-05-17 19:59:16 +0530241 return getJavaDoc(GETTER_METHOD, attributeName, attr.isListAttr(), pluginConfig)
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530242 + getGetterForInterface(attributeName, returnType, attr.isListAttr(), generatedJavaFiles);
Bharat saraswal870c56f2016-02-20 21:57:16 +0530243 }
244
245 /**
246 * Returns setter string.
247 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530248 * @param attr attribute info
249 * @param className java class name
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530250 * @param generatedJavaFiles generated java files
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530251 * @param pluginConfig plugin configurations
Bharat saraswal870c56f2016-02-20 21:57:16 +0530252 * @return setter string
253 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530254 public static String getSetterString(JavaAttributeInfo attr, String className, int generatedJavaFiles,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530255 YangPluginConfig pluginConfig) {
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530256
Vinod Kumar S38046502016-03-23 15:30:27 +0530257 String attrType = getReturnType(attr);
janani b4a6711a2016-05-17 13:12:22 +0530258 String attributeName = attr.getAttributeName();
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530259 JavaDocGen.JavaDocType type;
Bharat saraswal33dfa012016-05-17 19:59:16 +0530260 if ((generatedJavaFiles & GENERATE_SERVICE_AND_MANAGER) != 0) {
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530261 type = MANAGER_SETTER_METHOD;
262 } else {
263 type = SETTER_METHOD;
264 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530265
Bharat saraswal33dfa012016-05-17 19:59:16 +0530266 return getJavaDoc(type, attributeName, attr.isListAttr(), pluginConfig)
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530267 + getSetterForInterface(attributeName, attrType, className, attr.isListAttr(), generatedJavaFiles);
Bharat saraswal870c56f2016-02-20 21:57:16 +0530268 }
269
270 /**
271 * Returns constructor method string.
272 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530273 * @param name class name
Bharat saraswal33dfa012016-05-17 19:59:16 +0530274 * @param pluginConfig plugin configurations
Bharat saraswal870c56f2016-02-20 21:57:16 +0530275 * @return constructor string
276 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530277 public static String getConstructorString(String name, YangPluginConfig pluginConfig) {
278 return getJavaDoc(CONSTRUCTOR, name, false, pluginConfig);
Bharat saraswal870c56f2016-02-20 21:57:16 +0530279 }
280
281 /**
282 * Returns default constructor method string.
283 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530284 * @param name class name
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530285 * @param modifierType modifier type
Bharat saraswal33dfa012016-05-17 19:59:16 +0530286 * @param pluginConfig plugin configurations
Bharat saraswal870c56f2016-02-20 21:57:16 +0530287 * @return default constructor string
288 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530289 public static String getDefaultConstructorString(String name, String modifierType,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530290 YangPluginConfig pluginConfig) {
Bharat saraswal33dfa012016-05-17 19:59:16 +0530291 return getJavaDoc(DEFAULT_CONSTRUCTOR, name, false, pluginConfig)
292 + getDefaultConstructor(name, modifierType)
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530293 + NEW_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530294 }
295
296 /**
297 * Returns check not null string.
298 *
299 * @param name attribute name
300 * @return check not null string
301 */
302 public static String getCheckNotNull(String name) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530303 return EIGHT_SPACE_INDENTATION + CHECK_NOT_NULL_STRING + OPEN_PARENTHESIS + name + COMMA + SPACE + name
304 + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530305 }
306
307 /**
308 * Returns build method string.
309 *
310 * @param name class name
311 * @return build string
312 */
313 public static String getBuildString(String name) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530314 return FOUR_SPACE_INDENTATION + OVERRIDE + NEW_LINE + getBuild(name);
Bharat saraswal870c56f2016-02-20 21:57:16 +0530315 }
316
317 /**
318 * Returns the getter method strings for class file.
319 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530320 * @param attr attribute info
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530321 * @param generatedJavaFiles for the type of java file being generated
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530322 * @return getter method for class
Bharat saraswal870c56f2016-02-20 21:57:16 +0530323 */
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530324 public static String getGetterForClass(JavaAttributeInfo attr, int generatedJavaFiles) {
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530325
Vinod Kumar S38046502016-03-23 15:30:27 +0530326 String attrQuaifiedType = getReturnType(attr);
janani b4a6711a2016-05-17 13:12:22 +0530327 String attributeName = attr.getAttributeName();
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530328
329 if (!attr.isListAttr()) {
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530330 return getGetter(attrQuaifiedType, attributeName, generatedJavaFiles);
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530331 }
Bharat saraswale2d51d62016-03-23 19:40:35 +0530332 String listAttr = getListString() + attrQuaifiedType + DIAMOND_CLOSE_BRACKET;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530333 return getGetter(listAttr, attributeName, generatedJavaFiles);
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530334 }
335
336 /**
337 * Returns getter for attribute.
338 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530339 * @param type return type
340 * @param name attribute name
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530341 * @param generatedJavaFiles generated java files
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530342 * @return getter for attribute
343 */
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530344 public static String getGetter(String type, String name, int generatedJavaFiles) {
Bharat saraswalcad0e652016-05-26 23:48:38 +0530345 String ret = parseTypeForReturnValue(type);
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530346 if ((generatedJavaFiles & GENERATE_SERVICE_AND_MANAGER) != 0) {
janani b4a6711a2016-05-17 13:12:22 +0530347 return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + type + SPACE + GET_METHOD_PREFIX + getCapitalCase(name)
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530348 + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
349 EIGHT_SPACE_INDENTATION + YANG_UTILS_TODO + NEW_LINE + EIGHT_SPACE_INDENTATION +
Bharat saraswalab4c6ba2016-05-17 14:19:38 +0530350 RETURN + SPACE + ret + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530351 } else {
352 return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + type + SPACE + name
353 + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
354 EIGHT_SPACE_INDENTATION + RETURN + SPACE + name + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION
355 + CLOSE_CURLY_BRACKET;
356 }
357
Bharat saraswal870c56f2016-02-20 21:57:16 +0530358 }
359
Bharat saraswalab4c6ba2016-05-17 14:19:38 +0530360 /*Provides string to return for type.*/
Bharat saraswalcad0e652016-05-26 23:48:38 +0530361 private static String parseTypeForReturnValue(String type) {
Bharat saraswalab4c6ba2016-05-17 14:19:38 +0530362 switch (type) {
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530363 case BYTE:
364 case INT:
365 case SHORT:
366 case LONG:
Mahesh Poojary Huawei46fb4db2016-07-14 12:38:17 +0530367 case DOUBLE:
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530368 return "0";
369 case BOOLEAN_DATA_TYPE:
370 return FALSE;
371 default:
372 return null;
Bharat saraswalab4c6ba2016-05-17 14:19:38 +0530373 }
374 }
375
Bharat saraswal870c56f2016-02-20 21:57:16 +0530376 /**
377 * Returns the setter method strings for class file.
378 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530379 * @param attr attribute info
380 * @param className name of the class
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530381 * @param generatedJavaFiles generated java files
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530382 * @return setter method for class
Bharat saraswal870c56f2016-02-20 21:57:16 +0530383 */
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530384 public static String getSetterForClass(JavaAttributeInfo attr, String className, int generatedJavaFiles) {
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530385
Vinod Kumar S38046502016-03-23 15:30:27 +0530386 String attrQuaifiedType = getReturnType(attr);
janani b4a6711a2016-05-17 13:12:22 +0530387 String attributeName = attr.getAttributeName();
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530388 if (!attr.isListAttr()) {
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530389 return getSetter(className, attributeName, attrQuaifiedType, generatedJavaFiles);
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530390 }
Bharat saraswale2d51d62016-03-23 19:40:35 +0530391 String listAttr = getListString() + attrQuaifiedType + DIAMOND_CLOSE_BRACKET;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530392 return getSetter(className, attributeName, listAttr, generatedJavaFiles);
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530393 }
394
395 /**
396 * Returns setter for attribute.
397 *
398 * @param className class name
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530399 * @param name attribute name
400 * @param type return type
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530401 * @return setter for attribute
402 */
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530403 private static String getSetter(String className, String name, String type, int generatedJavaFiles) {
404 if ((generatedJavaFiles & GENERATE_SERVICE_AND_MANAGER) != 0) {
405 return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + VOID + SPACE + SET_METHOD_PREFIX
janani b4a6711a2016-05-17 13:12:22 +0530406 + getCapitalCase(name) + OPEN_PARENTHESIS + type + SPACE + name + CLOSE_PARENTHESIS + SPACE +
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530407 OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION + YANG_UTILS_TODO +
408 NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
Bharat saraswal33dfa012016-05-17 19:59:16 +0530409 } else if (generatedJavaFiles == GENERATE_EVENT_SUBJECT_CLASS) {
410 return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + VOID + SPACE + name + OPEN_PARENTHESIS + type + SPACE
411 + name + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION
412 + THIS + PERIOD + name + SPACE + EQUAL + SPACE + name + SEMI_COLAN + NEW_LINE
413 + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530414 } else {
415 return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + className + BUILDER + SPACE +
416 name + OPEN_PARENTHESIS + type + SPACE + name + CLOSE_PARENTHESIS + SPACE
Bharat saraswal33dfa012016-05-17 19:59:16 +0530417 + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION + THIS + PERIOD + name + SPACE
418 + EQUAL + SPACE + name + SEMI_COLAN + NEW_LINE + EIGHT_SPACE_INDENTATION + RETURN + SPACE
419 + THIS + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530420 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530421 }
422
423 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530424 * Returns the setter method strings for class file.
425 *
426 * @param attr attribute info
427 * @return setter method for class
428 */
Vinod Kumar S38046502016-03-23 15:30:27 +0530429 public static String getSetterForTypeDefClass(JavaAttributeInfo attr) {
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530430
Vinod Kumar S38046502016-03-23 15:30:27 +0530431 String attrQuaifiedType = getReturnType(attr);
janani b4a6711a2016-05-17 13:12:22 +0530432 String attributeName = attr.getAttributeName();
Bharat saraswale2d51d62016-03-23 19:40:35 +0530433 return getTypeDefSetter(attrQuaifiedType, attributeName);
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530434 }
435
436 /**
437 * Returns type def's setter for attribute.
438 *
439 * @param type data type
440 * @param name attribute name
441 * @return setter for type def's attribute
442 */
443 private static String getTypeDefSetter(String type, String name) {
janani b4a6711a2016-05-17 13:12:22 +0530444 return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + VOID + SPACE + SET_METHOD_PREFIX + getCapitalCase(name)
Bharat saraswale2d51d62016-03-23 19:40:35 +0530445 + OPEN_PARENTHESIS + type + SPACE + VALUE + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE
446 + EIGHT_SPACE_INDENTATION + THIS + PERIOD + name + SPACE + EQUAL + SPACE + VALUE + SEMI_COLAN + NEW_LINE
447 + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530448 }
449
450 /**
451 * Returns override string.
452 *
453 * @return override string
454 */
455 public static String getOverRideString() {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530456 return NEW_LINE + FOUR_SPACE_INDENTATION + OVERRIDE + NEW_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530457 }
458
459 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530460 * Returns the getter method strings for interface file.
461 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530462 * @param yangName name of the attribute
463 * @param returnType return type of attribute
464 * @param isList is list attribute
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530465 * @param generatedJavaFiles generated java files
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530466 * @return getter method for interface
Bharat saraswal870c56f2016-02-20 21:57:16 +0530467 */
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530468 public static String getGetterForInterface(String yangName, String returnType, boolean isList,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530469 int generatedJavaFiles) {
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530470
471 if (!isList) {
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530472 return getGetterInterfaceString(returnType, yangName, generatedJavaFiles);
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530473 }
Bharat saraswale2d51d62016-03-23 19:40:35 +0530474 String listAttr = getListString() + returnType + DIAMOND_CLOSE_BRACKET;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530475 return getGetterInterfaceString(listAttr, yangName, generatedJavaFiles);
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530476 }
477
478 /**
479 * Returns getter for attribute in interface.
480 *
481 * @param returnType return type
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530482 * @param yangName attribute name
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530483 * @return getter for interface
484 */
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530485 private static String getGetterInterfaceString(String returnType, String yangName,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530486 int generatedJavaFiles) {
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530487 if ((generatedJavaFiles & GENERATE_SERVICE_AND_MANAGER) != 0) {
janani b4a6711a2016-05-17 13:12:22 +0530488 return FOUR_SPACE_INDENTATION + returnType + SPACE + GET_METHOD_PREFIX + getCapitalCase(yangName)
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530489 + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN;
490 } else {
491 return FOUR_SPACE_INDENTATION + returnType + SPACE + yangName
492 + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN;
493 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530494 }
495
496 /**
497 * Returns the setter method strings for interface file.
498 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530499 * @param attrName name of the attribute
500 * @param attrType return type of attribute
501 * @param className name of the java class being generated
502 * @param isList is list attribute
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530503 * @param generatedJavaFiles generated java files
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530504 * @return setter method for interface
Bharat saraswal870c56f2016-02-20 21:57:16 +0530505 */
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530506 public static String getSetterForInterface(String attrName, String attrType, String className,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530507 boolean isList, int generatedJavaFiles) {
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530508
509 if (!isList) {
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530510 return getSetterInterfaceString(className, attrName, attrType, generatedJavaFiles);
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530511 }
Bharat saraswale2d51d62016-03-23 19:40:35 +0530512 String listAttr = getListString() + attrType + DIAMOND_CLOSE_BRACKET;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530513 return getSetterInterfaceString(className, attrName, listAttr, generatedJavaFiles);
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530514 }
515
516 /**
517 * Returns setter string for interface.
518 *
519 * @param className class name
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530520 * @param attrName attribute name
521 * @param attrType attribute type
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530522 * @return setter string
523 */
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530524 private static String getSetterInterfaceString(String className, String attrName, String attrType,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530525 int generatedJavaFiles) {
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530526 if ((generatedJavaFiles & GENERATE_SERVICE_AND_MANAGER) != 0) {
527
janani b4a6711a2016-05-17 13:12:22 +0530528 return FOUR_SPACE_INDENTATION + VOID + SPACE + SET_METHOD_PREFIX + getCapitalCase(attrName)
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530529 + OPEN_PARENTHESIS + attrType + SPACE + attrName + CLOSE_PARENTHESIS + SEMI_COLAN;
530 } else {
531 return FOUR_SPACE_INDENTATION + className + BUILDER + SPACE + attrName
532 + OPEN_PARENTHESIS + attrType + SPACE + attrName + CLOSE_PARENTHESIS + SEMI_COLAN;
533 }
Bharat saraswal870c56f2016-02-20 21:57:16 +0530534 }
535
536 /**
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530537 * Returns list string.
538 *
539 * @return list string
540 */
541 private static String getListString() {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530542 return LIST + DIAMOND_OPEN_BRACKET;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530543 }
544
545 /**
Vinod Kumar S38046502016-03-23 15:30:27 +0530546 * Returns return type for attribute.
547 *
548 * @param attr attribute info
549 * @return return type
550 */
551 private static String getReturnType(JavaAttributeInfo attr) {
552
Bharat saraswale2d51d62016-03-23 19:40:35 +0530553 String returnType = EMPTY_STRING;
Vidyashree Rama7142d9c2016-04-26 15:06:06 +0530554 if (attr.isQualifiedName() && attr.getImportInfo().getPkgInfo() != null) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530555 returnType = attr.getImportInfo().getPkgInfo() + PERIOD;
Vinod Kumar S38046502016-03-23 15:30:27 +0530556 }
557 returnType = returnType + attr.getImportInfo().getClassInfo();
558 return returnType;
559 }
560
561 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530562 * Returns the build method strings for interface file.
563 *
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530564 * @param yangName name of the interface
565 * @return build method for interface
Bharat saraswal870c56f2016-02-20 21:57:16 +0530566 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530567 public static String getBuildForInterface(String yangName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530568 return FOUR_SPACE_INDENTATION + yangName + SPACE + BUILD + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN
569 + NEW_LINE;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530570 }
571
572 /**
Vinod Kumar S38046502016-03-23 15:30:27 +0530573 * Returns constructor string for impl class.
574 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530575 * @param yangName class name
Bharat saraswal33dfa012016-05-17 19:59:16 +0530576 * @param pluginConfig plugin configurations
Vinod Kumar S38046502016-03-23 15:30:27 +0530577 * @return constructor string
578 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530579 public static String getConstructorStart(String yangName, YangPluginConfig pluginConfig) {
Vinod Kumar S38046502016-03-23 15:30:27 +0530580
Bharat saraswal33dfa012016-05-17 19:59:16 +0530581 String javadoc = getConstructorString(yangName, pluginConfig);
Bharat saraswalb1170bd2016-07-14 13:26:18 +0530582 String constructor = FOUR_SPACE_INDENTATION + PUBLIC + SPACE + getCapitalCase(DEFAULT) + yangName +
583 OPEN_PARENTHESIS + yangName + BUILDER + SPACE + BUILDER.toLowerCase() + OBJECT
584 + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
Vinod Kumar S38046502016-03-23 15:30:27 +0530585 return javadoc + constructor;
586 }
587
588 /**
Shankara-Huaweib9999eb2016-07-14 16:53:09 +0530589 * Returns constructor string for op param class.
590 *
591 * @param yangName class name
592 * @param pluginConfig plugin configurations
593 * @return constructor string
594 */
595 public static String getOpParamConstructorStart(String yangName, YangPluginConfig pluginConfig) {
596
597 String javadoc = getConstructorString(yangName, pluginConfig);
598 String constructor = FOUR_SPACE_INDENTATION + PUBLIC + SPACE + yangName + OPERATION +
599 OPEN_PARENTHESIS + yangName + OPERATION + BUILDER + SPACE + BUILDER.toLowerCase() + OBJECT
600 + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
601 return javadoc + constructor;
602 }
603 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530604 * Returns the constructor strings for class file.
605 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530606 * @param attr attribute info
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530607 * @param generatedJavaFiles generated java files
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530608 * @param pluginConfig plugin configurations
Bharat saraswal870c56f2016-02-20 21:57:16 +0530609 * @return constructor for class
610 */
Bharat saraswalb1170bd2016-07-14 13:26:18 +0530611 public static String getConstructor(JavaAttributeInfo attr, int generatedJavaFiles,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530612 YangPluginConfig pluginConfig) {
Bharat saraswal870c56f2016-02-20 21:57:16 +0530613
janani b4a6711a2016-05-17 13:12:22 +0530614 String attributeName = attr.getAttributeName();
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530615 String constructor;
Bharat saraswale2d51d62016-03-23 19:40:35 +0530616
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530617 if ((generatedJavaFiles & GENERATE_SERVICE_AND_MANAGER) != 0) {
Bharat saraswalb1170bd2016-07-14 13:26:18 +0530618 constructor = EIGHT_SPACE_INDENTATION + THIS + PERIOD
619 + getCamelCase(attributeName, pluginConfig.getConflictResolver()) + SPACE + EQUAL
620 + SPACE + BUILDER.toLowerCase() + OBJECT + PERIOD + GET_METHOD_PREFIX
621 + getCapitalCase(getCamelCase(attributeName, pluginConfig.getConflictResolver()))
622 + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530623 } else {
Bharat saraswalb1170bd2016-07-14 13:26:18 +0530624 constructor = EIGHT_SPACE_INDENTATION + THIS + PERIOD
625 + getCamelCase(attributeName, pluginConfig.getConflictResolver()) + SPACE + EQUAL
626 + SPACE + BUILDER.toLowerCase() + OBJECT + PERIOD
627 + getCamelCase(attributeName, pluginConfig.getConflictResolver()) +
628 OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530629 }
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530630 return constructor;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530631 }
632
633 /**
Gaurav Agrawal56527662016-04-20 15:49:17 +0530634 * Returns the rpc strings for service interface.
635 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530636 * @param rpcName name of the rpc
637 * @param inputName name of input
638 * @param outputName name of output
Bharat saraswal33dfa012016-05-17 19:59:16 +0530639 * @param pluginConfig plugin configurations
Gaurav Agrawal56527662016-04-20 15:49:17 +0530640 * @return rpc method string
641 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530642 public static String getRpcServiceMethod(String rpcName, String inputName, String outputName,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530643 YangPluginConfig pluginConfig) {
Gaurav Agrawal56527662016-04-20 15:49:17 +0530644
Bharat saraswal33dfa012016-05-17 19:59:16 +0530645 rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
Bharat saraswalcad0e652016-05-26 23:48:38 +0530646 if (!inputName.equals(EMPTY_STRING)) {
647 inputName = inputName + SPACE + RPC_INPUT_VAR_NAME;
Bharat saraswalc0e04842016-05-12 13:16:57 +0530648 }
Bharat saraswalcad0e652016-05-26 23:48:38 +0530649 return FOUR_SPACE_INDENTATION + outputName + SPACE + rpcName + OPEN_PARENTHESIS + inputName
650 + CLOSE_PARENTHESIS + SEMI_COLAN;
Gaurav Agrawal56527662016-04-20 15:49:17 +0530651 }
652
653 /**
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530654 * Returns the rpc strings for manager impl.
655 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530656 * @param rpcName name of the rpc
657 * @param inputName name of input
658 * @param outputName name of output
Bharat saraswal33dfa012016-05-17 19:59:16 +0530659 * @param pluginConfig plugin configurations
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530660 * @return rpc method string
661 */
Bharat saraswal33dfa012016-05-17 19:59:16 +0530662 public static String getRpcManagerMethod(String rpcName, String inputName, String outputName,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530663 YangPluginConfig pluginConfig) {
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530664
Bharat saraswal33dfa012016-05-17 19:59:16 +0530665 rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
Bharat saraswalcad0e652016-05-26 23:48:38 +0530666 if (!inputName.equals(EMPTY_STRING)) {
667 inputName = inputName + SPACE + RPC_INPUT_VAR_NAME;
Bharat saraswalc0e04842016-05-12 13:16:57 +0530668 }
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530669
Bharat saraswalb1170bd2016-07-14 13:26:18 +0530670 String method = getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + outputName + SPACE + rpcName
671 + OPEN_PARENTHESIS + inputName + CLOSE_PARENTHESIS + SPACE
672 + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION + YANG_UTILS_TODO + NEW_LINE;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530673 if (!outputName.contentEquals(VOID)) {
Bharat saraswalcad0e652016-05-26 23:48:38 +0530674 method += EIGHT_SPACE_INDENTATION + RETURN + SPACE + parseTypeForReturnValue(outputName) + SEMI_COLAN
675 + NEW_LINE;
VinodKumarS-Huaweicb3a1f52016-05-10 17:58:57 +0530676 }
677 method += FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
678
679 return method;
680 }
681
682 /**
Bharat saraswal870c56f2016-02-20 21:57:16 +0530683 * Returns the build method strings for class file.
684 *
685 * @param yangName class name
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530686 * @return build method string for class
Bharat saraswal870c56f2016-02-20 21:57:16 +0530687 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530688 public static String getBuild(String yangName) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530689 return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + yangName + SPACE + BUILD + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
Bharat saraswalb1170bd2016-07-14 13:26:18 +0530690 + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION + RETURN + SPACE + NEW + SPACE +
691 getCapitalCase(DEFAULT) + yangName + OPEN_PARENTHESIS + THIS + CLOSE_PARENTHESIS + SEMI_COLAN
692 + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530693 }
694
695 /**
696 * Returns the Default constructor strings for class file.
697 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +0530698 * @param name name of the class
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530699 * @param modifierType modifier type for default constructor
Bharat saraswal870c56f2016-02-20 21:57:16 +0530700 * @return Default constructor for class
701 */
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530702 private static String getDefaultConstructor(String name, String modifierType) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530703 return FOUR_SPACE_INDENTATION + modifierType + SPACE + name + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE
704 + OPEN_CURLY_BRACKET + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
Bharat saraswal870c56f2016-02-20 21:57:16 +0530705 }
706
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530707 /**
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530708 * Returns to string method's open strings.
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530709 *
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530710 * @return string method's open string
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530711 */
712 public static String getToStringMethodOpen() {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530713 return getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STRING_DATA_TYPE + SPACE + TO
714 + STRING_DATA_TYPE + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE
715 + EIGHT_SPACE_INDENTATION + RETURN + GOOGLE_MORE_OBJECT_METHOD_STRING + NEW_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +0530716 }
717
718 /**
Shankara-Huaweib9999eb2016-07-14 16:53:09 +0530719 * Returns to string leaf for get method.
720 *
721 * @return string leaf for get method
722 */
723 public static String getToStringLeafgetter() {
724 return NEW_LINE + NEW_LINE + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + BITSET + SPACE + GET_FILTER_LEAF
725 + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE
726 + EIGHT_SPACE_INDENTATION + RETURN + SPACE + FILTER_LEAF + SEMI_COLAN + NEW_LINE
727 + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
728 }
729
730 /**
731 * Returns to string select leaf for get method.
732 *
733 * @return select leaf string for get method
734 */
735 public static String getToStringSelectLeafgetter() {
736 return NEW_LINE + NEW_LINE + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + BITSET + SPACE + GET_SELECT_LEAF
737 + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE
738 + EIGHT_SPACE_INDENTATION + RETURN + SPACE + SELECT_LEAF + SEMI_COLAN + NEW_LINE
739 + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
740 }
741
742 /**
743 * Returns to string leaf list for get method.
744 *
745 * @return string leaf list for get method
746 */
747 public static String getToStringLeafListgetter() {
748 return NEW_LINE + NEW_LINE + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + BITSET + SPACE + GET_FILTER_LEAF_LIST
749 + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE
750 + EIGHT_SPACE_INDENTATION + RETURN + SPACE + FILTER_LEAF_LIST + SEMI_COLAN + NEW_LINE
751 + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
752 }
753
754 /**
755 * Returns to string select leaf list for get.
756 *
757 * @return select leaf list list for get
758 */
759 public static String getToStringSelectLeafListgetter() {
760 return NEW_LINE + NEW_LINE + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + BITSET + SPACE + GET_SELECT_LEAF_LIST
761 + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE
762 + EIGHT_SPACE_INDENTATION + RETURN + SPACE + SELECT_LEAF_LIST + SEMI_COLAN + NEW_LINE
763 + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
764 }
765
766 /**
767 * Returns to string operation type for get method.
768 *
769 * @return operation type for get method
770 */
771 public static String getOperationTypegetter() {
772 return NEW_LINE + NEW_LINE + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + OPERATION_ENUM
773 + SPACE + GET_OPERATION_TYPE + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE
774 + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION + RETURN + SPACE
775 + OP_PARAM_TYPE + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
776 }
777
778 /**
779 * Returns to string operation type for set.
780 *
781 * @return operation type set method
782 */
783 public static String getOperationTypeSetter() {
784 return NEW_LINE + NEW_LINE + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + VOID + SPACE + SET_OPERATION_TYPE
785 + OPEN_PARENTHESIS + OPERATION_ENUM + SPACE + getSmallCase(OPERATION_ENUM) + CLOSE_PARENTHESIS
786 + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION + THIS + PERIOD
787 + OP_PARAM_TYPE + SPACE + EQUAL + SPACE + getSmallCase(OPERATION_ENUM) + SEMI_COLAN + NEW_LINE
788 + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
789 }
790
791 /**
792 * Returns string for leaf set method.
793 *
794 * @param className class name
795 * @param curnode current YANG node
796 * @param pluginConfig plugin configurations
797 * @return string for leaf set method
798 */
799 public static String getSetterForLeaf(String className, YangNode curnode, YangPluginConfig pluginConfig) {
800
801 int numleaf = 1;
802 String filterMethod = "";
803 TempJavaBeanFragmentFiles tempFragmentFiles = ((JavaCodeGeneratorInfo) curnode)
804 .getTempJavaCodeFragmentFiles().getBeanTempFiles();
805 if (curnode instanceof YangLeavesHolder) {
806 YangLeavesHolder leavesHolder = (YangLeavesHolder) curnode;
807 List<YangLeaf> leaves = leavesHolder.getListOfLeaf();
808 if (leaves != null && !leaves.isEmpty()) {
809 for (YangLeaf leaf : leaves) {
810 JavaAttributeInfo javaAttributeInfo = getJavaAttributeOfLeaf(tempFragmentFiles, leaf, pluginConfig);
811 String attrQuaifiedType = getReturnType(javaAttributeInfo);
812 String attributeName = javaAttributeInfo.getAttributeName();
813
814 filterMethod = filterMethod + NEW_LINE + FOUR_SPACE_INDENTATION + OVERRIDE + NEW_LINE
815 + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + className + BUILDER + SPACE
816 + attributeName + OPEN_PARENTHESIS + attrQuaifiedType
817 + SPACE + RECEIVED_OBJECT + attributeName + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET
818 + NEW_LINE + EIGHT_SPACE_INDENTATION + attributeName + SPACE + EQUAL + SPACE
819 + RECEIVED_OBJECT + attributeName + SEMI_COLAN + NEW_LINE + EIGHT_SPACE_INDENTATION
820 + GET_FILTER_LEAF + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD + SET_METHOD_PREFIX
821 + OPEN_PARENTHESIS + String.valueOf(numleaf) + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE
822 + EIGHT_SPACE_INDENTATION + RETURN + SPACE + THIS + SEMI_COLAN + NEW_LINE
823 + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
824 numleaf++;
825 }
826 }
827 }
828 return filterMethod;
829 }
830
831 /**
832 * Returns string for leaf list set method.
833 *
834 * @param className class name
835 * @param curnode current YANG node
836 * @param pluginConfig plugin configurations
837 * @return string for leaf list set method
838 */
839 public static String getSetterForLeafList(String className, YangNode curnode, YangPluginConfig pluginConfig) {
840
841 int numleaf = 1;
842 String filterMethod = "";
843 TempJavaBeanFragmentFiles tempFragmentFiles = ((JavaCodeGeneratorInfo) curnode)
844 .getTempJavaCodeFragmentFiles().getBeanTempFiles();
845 if (curnode instanceof YangLeavesHolder) {
846 YangLeavesHolder leavesHolder = (YangLeavesHolder) curnode;
847 List<YangLeafList> listOfLeafList = leavesHolder.getListOfLeafList();
848
849 if (listOfLeafList != null && !listOfLeafList.isEmpty()) {
850 for (YangLeafList leafList : listOfLeafList) {
851 JavaAttributeInfo javaAttributeInfo = getJavaAttributeOfLeafList(tempFragmentFiles, leafList,
852 pluginConfig);
853 String attributeName = javaAttributeInfo.getAttributeName();
854 String attrQuaifiedType = getReturnType(javaAttributeInfo);
855 if (javaAttributeInfo.isListAttr()) {
856 attrQuaifiedType = getListString() + attrQuaifiedType + DIAMOND_CLOSE_BRACKET;
857 }
858 filterMethod = filterMethod + NEW_LINE + FOUR_SPACE_INDENTATION + OVERRIDE + NEW_LINE
859 + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + className + BUILDER + SPACE
860 + attributeName + OPEN_PARENTHESIS + attrQuaifiedType
861 + SPACE + RECEIVED_OBJECT + attributeName + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET
862 + NEW_LINE + EIGHT_SPACE_INDENTATION + attributeName + SPACE + EQUAL + SPACE
863 + RECEIVED_OBJECT + attributeName + SEMI_COLAN + NEW_LINE + EIGHT_SPACE_INDENTATION
864 + GET_FILTER_LEAF_LIST + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD + SET_METHOD_PREFIX
865 + OPEN_PARENTHESIS + String.valueOf(numleaf) + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE
866 + EIGHT_SPACE_INDENTATION + RETURN + SPACE + THIS + SEMI_COLAN + NEW_LINE
867 + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
868 numleaf++;
869 }
870 }
871 }
872 return filterMethod;
873 }
874
875 /**
876 * Returns whether the data type is of primitive data type.
877 *
878 * @param dataType data type to be checked
879 * @return true, if data type can have primitive data type, false otherwise
880 */
881 public static boolean isPrimitiveDataType(YangDataTypes dataType) {
882 return dataType == INT8
883 || dataType == INT16
884 || dataType == INT32
885 || dataType == INT64
886 || dataType == UINT8
887 || dataType == UINT16
888 || dataType == UINT32
889 || dataType == UINT64
890 || dataType == DECIMAL64
891 || dataType == BOOLEAN;
892 }
893
894 /**
895 * Returns string for is filter content match method.
896 *
897 * @param className class name
898 * @param curnode current YANG node
899 * @param pluginConfig plugin configurations
900 * @return string for is filter content match method
901 */
902 public static String getisFilterContentMatch(String className, YangNode curnode, YangPluginConfig pluginConfig) {
903
904 int numleaf = 1;
905 String filterMethod = "";
906 TempJavaBeanFragmentFiles tempFragmentFiles = ((JavaCodeGeneratorInfo) curnode)
907 .getTempJavaCodeFragmentFiles().getBeanTempFiles();
908
909 if (curnode instanceof YangLeavesHolder) {
910 YangLeavesHolder leavesHolder = (YangLeavesHolder) curnode;
911 List<YangLeaf> leaves = leavesHolder.getListOfLeaf();
912 List<YangLeafList> listOfLeafList = leavesHolder.getListOfLeafList();
913 if (leaves != null || listOfLeafList != null) {
914 filterMethod = NEW_LINE + NEW_LINE + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + BOOLEAN_DATA_TYPE
915 + SPACE + FILTER_CONTENT_MATCH + OPEN_PARENTHESIS + getCapitalCase(DEFAULT)
916 + getCapitalCase(className) + SPACE + APP_INSTANCE + CLOSE_PARENTHESIS + SPACE
917 + OPEN_CURLY_BRACKET + NEW_LINE;
918 }
919 if (leaves != null) {
920 for (YangLeaf leaf : leaves) {
921 JavaAttributeInfo javaAttributeInfo = getJavaAttributeOfLeaf(tempFragmentFiles, leaf,
922 pluginConfig);
923 String attributeName = javaAttributeInfo.getAttributeName();
924
925 String attrQuaifiedType = "";
926 if (isPrimitiveDataType(leaf.getDataType().getDataType())) {
927 attrQuaifiedType = APP_INSTANCE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
928 + SPACE + NOT + EQUAL + SPACE + attributeName + OPEN_PARENTHESIS
929 + CLOSE_PARENTHESIS;
930 } else {
931 attrQuaifiedType = APP_INSTANCE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
932 + SPACE + EQUAL + EQUAL + SPACE + NULL + SPACE + OR_OPERATION + SPACE + OPEN_PARENTHESIS
933 + NOT + OPEN_PARENTHESIS + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
934 + PERIOD + EQUALS_STRING + OPEN_PARENTHESIS + APP_INSTANCE + PERIOD
935 + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS
936 + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS;
937 }
938
939 filterMethod = filterMethod + EIGHT_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS
940 + GET_FILTER_LEAF + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD + GET_METHOD_PREFIX
941 + OPEN_PARENTHESIS + String.valueOf(numleaf) + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS
942 + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + TWELVE_SPACE_INDENTATION + IF + SPACE
943 + OPEN_PARENTHESIS + attrQuaifiedType + CLOSE_PARENTHESIS + SPACE
944 + OPEN_CURLY_BRACKET + NEW_LINE + SIXTEEN_SPACE_INDENTATION + RETURN + SPACE + FALSE
945 + SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE
946 + EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
947 numleaf++;
948 }
949 }
950
951 if (listOfLeafList != null) {
952 numleaf = 1;
953 for (YangLeafList leafList : listOfLeafList) {
954 JavaAttributeInfo javaAttributeInfo = getJavaAttributeOfLeafList(tempFragmentFiles, leafList,
955 pluginConfig);
956 String attributeName = javaAttributeInfo.getAttributeName();
957 String attrQuaifiedType = "";
958 if (isPrimitiveDataType(leafList.getDataType().getDataType())) {
959 attrQuaifiedType = APP_INSTANCE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
960 + SPACE + NOT + EQUAL + SPACE + attributeName + OPEN_PARENTHESIS
961 + CLOSE_PARENTHESIS;
962 } else {
963 attrQuaifiedType = APP_INSTANCE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
964 + SPACE + EQUAL + EQUAL + SPACE + NULL + OR_OPERATION + OPEN_PARENTHESIS + NOT
965 + OPEN_PARENTHESIS + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
966 + PERIOD + EQUALS_STRING + OPEN_PARENTHESIS + APP_INSTANCE + PERIOD
967 + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS;
968 }
969
970 filterMethod = filterMethod + EIGHT_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS
971 + GET_FILTER_LEAF_LIST + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD + GET_METHOD_PREFIX
972 + OPEN_PARENTHESIS + String.valueOf(numleaf) + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS
973 + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + TWELVE_SPACE_INDENTATION + IF + SPACE
974 + OPEN_PARENTHESIS + attrQuaifiedType + CLOSE_PARENTHESIS + SPACE
975 + OPEN_CURLY_BRACKET + NEW_LINE + SIXTEEN_SPACE_INDENTATION + RETURN + SPACE + FALSE
976 + SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE
977 + EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
978 numleaf++;
979 }
980 }
981
982 if (leaves != null || listOfLeafList != null) {
983 filterMethod = filterMethod + EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLAN +
984 NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
985 }
986 }
987 return filterMethod;
988 }
989
990 /**
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530991 * Returns omit null value string.
992 *
993 * @return omit null value string
994 */
995 public static String getOmitNullValueString() {
996 return TWELVE_SPACE_INDENTATION + PERIOD + OMIT_NULL_VALUE_STRING + NEW_LINE;
997 }
998
999 /**
1000 * Returns to string method's close string.
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301001 *
1002 * @return to string method close string
1003 */
1004 public static String getToStringMethodClose() {
Bharat saraswale2d51d62016-03-23 19:40:35 +05301005 return TWELVE_SPACE_INDENTATION + PERIOD + TO + STRING_DATA_TYPE + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
1006 + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301007 }
1008
1009 /**
Bharat saraswald9822e92016-04-05 15:13:44 +05301010 * Returns to string method for class.
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301011 *
1012 * @param attr attribute info
1013 * @return to string method
1014 */
Vinod Kumar S38046502016-03-23 15:30:27 +05301015 public static String getToStringMethod(JavaAttributeInfo attr) {
1016
janani b4a6711a2016-05-17 13:12:22 +05301017 String attributeName = attr.getAttributeName();
Bharat saraswale2d51d62016-03-23 19:40:35 +05301018 return TWELVE_SPACE_INDENTATION + PERIOD + ADD_STRING + OPEN_PARENTHESIS + QUOTES + attributeName + QUOTES
1019 + COMMA + SPACE + attributeName + CLOSE_PARENTHESIS;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301020 }
1021
1022 /**
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301023 * Returns from string method's open string.
1024 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301025 * @param className name of the class
Bharat saraswal33dfa012016-05-17 19:59:16 +05301026 * @param pluginConfig plugin configurations
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301027 * @return from string method's open string
1028 */
Bharat saraswal33dfa012016-05-17 19:59:16 +05301029 public static String getFromStringMethodSignature(String className, YangPluginConfig pluginConfig) {
1030 return getJavaDoc(FROM_METHOD, className, false, pluginConfig) + FOUR_SPACE_INDENTATION + PUBLIC + SPACE
1031 + STATIC + SPACE + className + SPACE + FROM_STRING_METHOD_NAME + OPEN_PARENTHESIS
1032 + STRING_DATA_TYPE + SPACE + FROM_STRING_PARAM_NAME + CLOSE_PARENTHESIS + SPACE
1033 + OPEN_CURLY_BRACKET + NEW_LINE;
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301034 }
1035
1036 /**
1037 * Return from string method's close string.
1038 *
1039 * @return from string method's close string
1040 */
1041 public static String getFromStringMethodClose() {
1042 return EIGHT_SPACE_INDENTATION + RETURN + SPACE + NULL + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION +
1043 CLOSE_CURLY_BRACKET + NEW_LINE;
1044 }
1045
1046 /**
1047 * Return from string method's body string.
1048 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301049 * @param attr attribute info
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301050 * @param fromStringAttributeInfo attribute info for the from string
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301051 * wrapper type
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301052 * @return from string method's body string
1053 */
1054 public static String getFromStringMethod(JavaAttributeInfo attr,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301055 JavaAttributeInfo fromStringAttributeInfo) {
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301056
1057 return EIGHT_SPACE_INDENTATION + getTrySubString() + NEW_LINE + TWELVE_SPACE_INDENTATION
1058 + getParsedSubString(attr, fromStringAttributeInfo) + SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION
1059 + getReturnOfSubString() + NEW_LINE + EIGHT_SPACE_INDENTATION + getCatchSubString()
1060 + NEW_LINE + EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
1061 }
1062
1063 /**
1064 * Returns sub string with try statement for union's from string method.
1065 *
1066 * @return sub string with try statement for union's from string method
1067 */
1068 public static String getTrySubString() {
1069 return TRY + SPACE + OPEN_CURLY_BRACKET;
1070 }
1071
1072 /**
1073 * Returns sub string with return statement for union's from string method.
1074 *
1075 * @return sub string with return statement for union's from string method
1076 */
1077 public static String getReturnOfSubString() {
1078 return RETURN + SPACE + OF + OPEN_PARENTHESIS + TMP_VAL + CLOSE_PARENTHESIS + SEMI_COLAN;
1079 }
1080
1081 /**
1082 * Returns sub string with catch statement for union's from string method.
1083 *
1084 * @return sub string with catch statement for union's from string method
1085 */
1086 public static String getCatchSubString() {
1087 return CLOSE_CURLY_BRACKET + SPACE + CATCH + SPACE + OPEN_PARENTHESIS + EXCEPTION + SPACE + EXCEPTION_VAR
1088 + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET;
1089 }
1090
1091 /**
1092 * Returns sub string with parsed statement for union's from string method.
1093 *
1094 * @param attr attribute info
1095 * @return sub string with parsed statement for union's from string method
1096 */
1097 private static String getParsedSubString(JavaAttributeInfo attr,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301098 JavaAttributeInfo fromStringAttributeInfo) {
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301099
1100 String targetDataType = getReturnType(attr);
Mahesh Poojary Huawei30c116a2016-07-14 17:49:50 +05301101 if (fromStringAttributeInfo.getAttributeType().getDataType() == BITS) {
1102 String lines = targetDataType + SPACE + TMP_VAL + SPACE + EQUAL + SPACE + NEW + SPACE + targetDataType
1103 + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
1104 lines += TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE + EQUAL + SPACE + FROM_STRING_PARAM_NAME
1105 + PERIOD + REPLACE_STRING + OPEN_PARENTHESIS + SINGLE_QUOTE + OPEN_CURLY_BRACKET + SINGLE_QUOTE
1106 + COMMA + SPACE + SINGLE_QUOTE + SPACE + SINGLE_QUOTE + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
1107 lines += TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE + EQUAL + SPACE + FROM_STRING_PARAM_NAME
1108 + PERIOD + REPLACE_STRING + OPEN_PARENTHESIS + SINGLE_QUOTE + CLOSE_CURLY_BRACKET + SINGLE_QUOTE
1109 + COMMA + SPACE + SINGLE_QUOTE + SPACE + SINGLE_QUOTE + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
1110 lines += TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE + EQUAL + SPACE + FROM_STRING_PARAM_NAME
1111 + PERIOD + TRIM_STRING + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
1112 lines += TWELVE_SPACE_INDENTATION + STRING_DATA_TYPE + SQUARE_BRACKETS + SPACE + BITS_STRING_ARRAY_VAR
1113 + SPACE + EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD + SPLIT_STRING + OPEN_PARENTHESIS
1114 + QUOTES + COMMA + QUOTES + COMMA + SPACE + ZERO + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
1115 lines += TWELVE_SPACE_INDENTATION + FOR + SPACE + OPEN_PARENTHESIS + STRING_DATA_TYPE + SPACE
1116 + BIT_TEMP_VAR + SPACE + COLON + SPACE + BITS_STRING_ARRAY_VAR + CLOSE_PARENTHESIS + SPACE
1117 + OPEN_CURLY_BRACKET + NEW_LINE;
1118 lines += SIXTEEN_SPACE_INDENTATION + BIT_TEMP_VAR + SPACE + EQUAL + SPACE + BIT_TEMP_VAR + PERIOD
1119 + TRIM_STRING + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
1120 lines += SIXTEEN_SPACE_INDENTATION + TMP_VAL + PERIOD + SET_METHOD_PREFIX + OPEN_PARENTHESIS
1121 + INTEGER_WRAPPER + PERIOD + PARSE_INT + OPEN_PARENTHESIS + BIT_TEMP_VAR + CLOSE_PARENTHESIS
1122 + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
1123 lines += TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
1124 return lines;
1125 } else if (attr.getAttributeType().getDataType() == BINARY) {
1126 return targetDataType + SPACE + TMP_VAL + SPACE + EQUAL + SPACE + BASE64 + PERIOD
1127 + GET_DECODER + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD + DECODE + OPEN_PARENTHESIS
1128 + FROM_STRING_PARAM_NAME + CLOSE_PARENTHESIS + SEMI_COLAN;
Mahesh Poojary Huawei46fb4db2016-07-14 12:38:17 +05301129 } else {
1130 String parseFromStringMethod = getParseFromStringMethod(targetDataType,
1131 fromStringAttributeInfo.getAttributeType());
1132 return targetDataType + SPACE + TMP_VAL + SPACE + EQUAL + SPACE + parseFromStringMethod
Mahesh Poojary Huawei30c116a2016-07-14 17:49:50 +05301133 + OPEN_PARENTHESIS + FROM_STRING_PARAM_NAME + CLOSE_PARENTHESIS + SEMI_COLAN;
Mahesh Poojary Huawei46fb4db2016-07-14 12:38:17 +05301134 }
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301135 }
1136
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301137 /**
Bharat saraswald9822e92016-04-05 15:13:44 +05301138 * Returns hash code method open strings.
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301139 *
Bharat saraswald9822e92016-04-05 15:13:44 +05301140 * @return hash code method open string
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301141 */
1142 public static String getHashCodeMethodOpen() {
Bharat saraswale2d51d62016-03-23 19:40:35 +05301143 return getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + INT + SPACE + HASH_CODE_STRING
1144 + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION
1145 + RETURN + SPACE + OBJECT_STRING + SUFFIX_S + PERIOD + HASH + OPEN_PARENTHESIS;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301146 }
1147
1148 /**
Bharat saraswald9822e92016-04-05 15:13:44 +05301149 * Returns hash code methods close string.
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301150 *
1151 * @param hashcodeString hash code string
1152 * @return to hash code method close string
1153 */
1154 public static String getHashCodeMethodClose(String hashcodeString) {
Bharat saraswale2d51d62016-03-23 19:40:35 +05301155 hashcodeString = trimAtLast(hashcodeString, COMMA);
1156 hashcodeString = trimAtLast(hashcodeString, SPACE);
1157 return hashcodeString + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET
1158 + NEW_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301159 }
1160
1161 /**
Bharat saraswald9822e92016-04-05 15:13:44 +05301162 * Returns hash code method for class.
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301163 *
1164 * @param attr attribute info
1165 * @return hash code method
1166 */
Vinod Kumar S38046502016-03-23 15:30:27 +05301167 public static String getHashCodeMethod(JavaAttributeInfo attr) {
janani b4a6711a2016-05-17 13:12:22 +05301168 return attr.getAttributeName() + COMMA + SPACE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301169 }
1170
1171 /**
Bharat saraswald9822e92016-04-05 15:13:44 +05301172 * Returns equals method open strings.
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301173 *
1174 * @param className class name
Bharat saraswald9822e92016-04-05 15:13:44 +05301175 * @return equals method open string
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301176 */
1177 public static String getEqualsMethodOpen(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +05301178 return getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + BOOLEAN_DATA_TYPE + SPACE + EQUALS_STRING
1179 + OPEN_PARENTHESIS + OBJECT_STRING + SPACE + OBJ + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET
1180 + NEW_LINE + getEqualsMethodsCommonIfCondition() + getEqualsMethodsSpecificIfCondition(className);
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301181 }
1182
1183 /**
1184 * Returns equal methods if condition string.
1185 *
1186 * @return if condition string
1187 */
1188 private static String getEqualsMethodsCommonIfCondition() {
Bharat saraswale2d51d62016-03-23 19:40:35 +05301189 return EIGHT_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS + THIS + SPACE + EQUAL + EQUAL + SPACE + OBJ
1190 + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + TWELVE_SPACE_INDENTATION + RETURN + SPACE
1191 + TRUE + SEMI_COLAN + NEW_LINE + EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301192 }
1193
1194 /**
1195 * Returns if condition for specific class object in equals method.
1196 *
1197 * @param className class name
1198 * @return if condition string
1199 */
1200 private static String getEqualsMethodsSpecificIfCondition(String className) {
Bharat saraswale2d51d62016-03-23 19:40:35 +05301201 return EIGHT_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS + OBJ + INSTANCE_OF + className
1202 + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + TWELVE_SPACE_INDENTATION + className
1203 + SPACE + OTHER + SPACE + EQUAL + SPACE + OPEN_PARENTHESIS + className + CLOSE_PARENTHESIS + SPACE
1204 + OBJ + SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION + RETURN + NEW_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301205 }
1206
1207 /**
Bharat saraswald9822e92016-04-05 15:13:44 +05301208 * Returns equals methods close string.
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301209 *
1210 * @param equalMethodString equal method string
Bharat saraswald9822e92016-04-05 15:13:44 +05301211 * @return equals method close string
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301212 */
1213 public static String getEqualsMethodClose(String equalMethodString) {
Bharat saraswale2d51d62016-03-23 19:40:35 +05301214 equalMethodString = trimAtLast(equalMethodString, AND);
1215 equalMethodString = trimAtLast(equalMethodString, AND);
1216 equalMethodString = trimAtLast(equalMethodString, SPACE);
1217 equalMethodString = trimAtLast(equalMethodString, NEW_LINE) + SEMI_COLAN + NEW_LINE;
1218 return equalMethodString + EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION
1219 + RETURN + SPACE + FALSE + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET
1220 + NEW_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301221 }
1222
1223 /**
Bharat saraswald9822e92016-04-05 15:13:44 +05301224 * Returns equals method for class.
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301225 *
1226 * @param attr attribute info
1227 * @return equals method
1228 */
Vinod Kumar S38046502016-03-23 15:30:27 +05301229 public static String getEqualsMethod(JavaAttributeInfo attr) {
1230
janani b4a6711a2016-05-17 13:12:22 +05301231 String attributeName = attr.getAttributeName();
Bharat saraswale2d51d62016-03-23 19:40:35 +05301232 return SIXTEEN_SPACE_INDENTATION + SPACE + OBJECT_STRING + SUFFIX_S + PERIOD + EQUALS_STRING + OPEN_PARENTHESIS
1233 + attributeName + COMMA + SPACE + OTHER + PERIOD + attributeName + CLOSE_PARENTHESIS + SPACE + AND
1234 + AND;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301235 }
1236
1237 /**
1238 * Returns of method string for class.
1239 *
1240 * @param name class name
1241 * @param attr attribute info
1242 * @return of method string
1243 */
Vinod Kumar S38046502016-03-23 15:30:27 +05301244 public static String getOfMethod(String name, JavaAttributeInfo attr) {
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301245
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301246 String attrQualifiedType = getReturnType(attr);
1247
Bharat saraswale2d51d62016-03-23 19:40:35 +05301248 return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE + name + SPACE + OF + OPEN_PARENTHESIS
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301249 + attrQualifiedType + SPACE + VALUE + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE
Bharat saraswale2d51d62016-03-23 19:40:35 +05301250 + EIGHT_SPACE_INDENTATION + RETURN + SPACE + NEW + SPACE + name + OPEN_PARENTHESIS + VALUE
1251 + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
Bharat saraswal2f00b4b2016-03-04 20:08:09 +05301252 }
1253
Bharat saraswalcc1cdab2016-04-16 02:28:25 +05301254 /**
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301255 * Returns of method's string and java doc for special type.
1256 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301257 * @param attr attribute info
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301258 * @param generatedJavaClassName class name
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301259 * @param pluginConfig plugin configurations
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301260 * @return of method's string and java doc for special type
1261 */
Bharat saraswal33dfa012016-05-17 19:59:16 +05301262 public static String getOfMethodStringAndJavaDoc(JavaAttributeInfo attr, String generatedJavaClassName,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301263 YangPluginConfig pluginConfig) {
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301264
1265 String attrType = getReturnType(attr);
janani b4a6711a2016-05-17 13:12:22 +05301266 String attrName = attr.getAttributeName();
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301267
Bharat saraswal33dfa012016-05-17 19:59:16 +05301268 return getJavaDoc(OF_METHOD, generatedJavaClassName + " for type " + attrName, false, pluginConfig)
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301269 + getOfMethodString(attrType, generatedJavaClassName);
1270 }
1271
1272 /**
1273 * Returns of method's string.
1274 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301275 * @param type data type
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301276 * @param className class name
1277 * @return of method's string
1278 */
1279 private static String getOfMethodString(String type, String className) {
1280
1281 return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE + className + SPACE + OF + OPEN_PARENTHESIS
1282 + type + SPACE + VALUE + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE
1283 + EIGHT_SPACE_INDENTATION + RETURN + SPACE + NEW + SPACE + className + OPEN_PARENTHESIS + VALUE
1284 + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
1285 }
1286
1287 /**
1288 * Returns string and java doc for constructor of type class.
1289 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301290 * @param attr attribute info
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301291 * @param generatedJavaClassName class name
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301292 * @param pluginConfig plugin configurations
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301293 * @return string and java doc for constructor of type class
1294 */
Bharat saraswal33dfa012016-05-17 19:59:16 +05301295 public static String getTypeConstructorStringAndJavaDoc(JavaAttributeInfo attr,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301296 String generatedJavaClassName,
1297 YangPluginConfig pluginConfig) {
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301298
1299 String attrType = getReturnType(attr);
janani b4a6711a2016-05-17 13:12:22 +05301300 String attrName = attr.getAttributeName();
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301301
Bharat saraswal33dfa012016-05-17 19:59:16 +05301302 return getJavaDoc(TYPE_CONSTRUCTOR, generatedJavaClassName + " for type " + attrName, false, pluginConfig)
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301303 + getTypeConstructorString(attrType, attrName, generatedJavaClassName);
1304 }
1305
1306 /**
1307 * Returns type constructor string.
1308 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301309 * @param type data type
1310 * @param name attribute name
Gaurav Agrawal338735b2016-04-18 18:53:11 +05301311 * @param className class name
1312 * @return type constructor string
1313 */
1314 private static String getTypeConstructorString(String type, String name, String className) {
1315
1316 return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + className + OPEN_PARENTHESIS + type + SPACE + VALUE
1317 + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION + THIS + PERIOD
1318 + name + SPACE + EQUAL + SPACE + VALUE + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION
1319 + CLOSE_CURLY_BRACKET;
1320 }
1321
1322 /**
Bharat saraswalb551aae2016-07-14 15:18:20 +05301323 * Returns implementation of add augmentation.
1324 *
1325 * @return implementation of add augmentation
1326 */
1327 public static String getAddAugmentInfoMethodImpl() {
1328 return NEW_LINE + generateForAddAugmentation() + FOUR_SPACE_INDENTATION +
1329 PUBLIC + SPACE + VOID + SPACE + ADD_STRING
1330 + AUGMENTATION + OPEN_PARENTHESIS + YANG_AUGMENTED_INFO + SPACE + VALUE + COMMA + SPACE + CLASS_STRING +
1331 SPACE + CLASS + OBJECT_STRING + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
1332 EIGHT_SPACE_INDENTATION + getSmallCase(YANG_AUGMENTED_INFO) + MAP + PERIOD + PUT + OPEN_PARENTHESIS +
1333 CLASS + OBJECT_STRING + COMMA + SPACE + VALUE +
1334 CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION +
1335 CLOSE_CURLY_BRACKET + NEW_LINE;
1336 }
1337
1338 /**
1339 * Returns implementation of get augment info.
1340 *
1341 * @return implementation of get augment info
1342 */
1343 public static String getAugmentInfoImpl() {
1344
1345 return generateForGetAugmentation() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
1346 YANG_AUGMENTED_INFO + SPACE + GET_METHOD_PREFIX +
1347 YANG_AUGMENTED_INFO + OPEN_PARENTHESIS + CLASS_STRING + SPACE + CLASS + OBJECT_STRING +
1348 CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION +
1349 RETURN + SPACE + getSmallCase(YANG_AUGMENTED_INFO) + MAP + PERIOD + GET + OPEN_PARENTHESIS + CLASS +
1350 OBJECT_STRING + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION +
1351 CLOSE_CURLY_BRACKET + NEW_LINE;
1352 }
1353
1354 /**
Bharat saraswald72411a2016-04-19 01:00:16 +05301355 * Returns enum's constructor.
1356 *
1357 * @param className enum's class name
1358 * @return enum's constructor
1359 */
Bharat saraswalb1170bd2016-07-14 13:26:18 +05301360 public static String getEnumsConstructor(String className) {
Bharat saraswald72411a2016-04-19 01:00:16 +05301361 return FOUR_SPACE_INDENTATION + className + OPEN_PARENTHESIS + INT + SPACE + VALUE + CLOSE_PARENTHESIS + SPACE
1362 + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION + getSmallCase(className) + SPACE + EQUAL
1363 + SPACE + VALUE + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
1364 }
Bharat saraswalc0e04842016-05-12 13:16:57 +05301365
1366 /**
1367 * Returns of method for enum class.
1368 *
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301369 * @param className class name
1370 * @param attr java attribute
1371 * @param enumMap enum's sets map
1372 * @param enumList enum's sets list
Bharat saraswal33dfa012016-05-17 19:59:16 +05301373 * @param pluginConfig plugin configurations
Bharat saraswalc0e04842016-05-12 13:16:57 +05301374 * @return of method
1375 */
1376 public static String getEnumsOfMethod(String className, JavaAttributeInfo attr,
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301377 Map<String, Integer> enumMap, List<String> enumList,
1378 YangPluginConfig pluginConfig) {
Bharat saraswalc0e04842016-05-12 13:16:57 +05301379 String attrType = getReturnType(attr);
janani b4a6711a2016-05-17 13:12:22 +05301380 String attrName = attr.getAttributeName();
Bharat saraswalc0e04842016-05-12 13:16:57 +05301381
janani b4a6711a2016-05-17 13:12:22 +05301382 String method = FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE + getCapitalCase(className) + SPACE
1383 + OF + OPEN_PARENTHESIS
Bharat saraswalc0e04842016-05-12 13:16:57 +05301384 + attrType + SPACE + VALUE + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE
1385 + EIGHT_SPACE_INDENTATION + SWITCH + SPACE + OPEN_PARENTHESIS + VALUE
1386 + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
1387 int value = 0;
1388 for (String str : enumList) {
1389
1390 value = enumMap.get(str);
Mahesh Poojary Huawei30c116a2016-07-14 17:49:50 +05301391 method = method + TWELVE_SPACE_INDENTATION + CASE + SPACE + value + COLON + NEW_LINE
janani b4a6711a2016-05-17 13:12:22 +05301392 + SIXTEEN_SPACE_INDENTATION + RETURN + SPACE + getCapitalCase(className) + PERIOD
Bharat saraswalc0e04842016-05-12 13:16:57 +05301393 + str + SEMI_COLAN + NEW_LINE;
1394 }
Mahesh Poojary Huawei30c116a2016-07-14 17:49:50 +05301395 method = method + TWELVE_SPACE_INDENTATION + DEFAULT + SPACE + COLON + NEW_LINE + SIXTEEN_SPACE_INDENTATION
Bharat saraswalc0e04842016-05-12 13:16:57 +05301396 + RETURN + SPACE + NULL + SEMI_COLAN + NEW_LINE + EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET
1397 + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
1398
Mahesh Poojary Huawei30c116a2016-07-14 17:49:50 +05301399 return getJavaDoc(OF_METHOD, getCapitalCase(className) + FOR_TYPE + attrName, false, pluginConfig)
Bharat saraswal33dfa012016-05-17 19:59:16 +05301400 + method;
Bharat saraswalc0e04842016-05-12 13:16:57 +05301401 }
Bharat saraswal33dfa012016-05-17 19:59:16 +05301402
1403 /**
1404 * Returns activate method string.
1405 *
1406 * @return activate method string
1407 */
1408 public static String addActivateMethod() {
1409 return FOUR_SPACE_INDENTATION + ACTIVATE_ANNOTATION + FOUR_SPACE_INDENTATION
1410 + PUBLIC + SPACE + VOID + SPACE + ACTIVATE + OPEN_PARENTHESIS
1411 + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET
1412 + NEW_LINE + EIGHT_SPACE_INDENTATION
1413 + YANG_UTILS_TODO
1414 + NEW_LINE + EIGHT_SPACE_INDENTATION
1415 + STARTED_LOG_INFO + FOUR_SPACE_INDENTATION
1416 + CLOSE_CURLY_BRACKET + NEW_LINE;
1417 }
1418
1419 /**
1420 * Returns deactivate method string.
1421 *
1422 * @return deactivate method string
1423 */
1424 public static String addDeActivateMethod() {
1425 return NEW_LINE + FOUR_SPACE_INDENTATION + DEACTIVATE_ANNOTATION + FOUR_SPACE_INDENTATION
1426 + PUBLIC + SPACE + VOID + SPACE + DEACTIVATE + OPEN_PARENTHESIS
1427 + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION
1428 + YANG_UTILS_TODO + NEW_LINE + EIGHT_SPACE_INDENTATION
1429 + STOPPED_LOG_INFO + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
1430 }
1431
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301432 /**
1433 * Returns from string method parsed string.
1434 *
1435 * @param targetDataType target data type
1436 * @param yangType YANG type
1437 * @return parsed string
1438 */
1439 public static String getParseFromStringMethod(String targetDataType, YangType<?> yangType) {
1440
1441 YangDataTypes type = yangType.getDataType();
1442
1443 switch (type) {
1444 case INT8:
1445 return BYTE_WRAPPER + PERIOD + PARSE_BYTE;
1446 case INT16:
1447 return SHORT_WRAPPER + PERIOD + PARSE_SHORT;
1448 case INT32:
1449 return INTEGER_WRAPPER + PERIOD + PARSE_INT;
1450 case INT64:
1451 return LONG_WRAPPER + PERIOD + PARSE_LONG;
1452 case UINT8:
1453 return SHORT_WRAPPER + PERIOD + PARSE_SHORT;
1454 case UINT16:
1455 return INTEGER_WRAPPER + PERIOD + PARSE_INT;
1456 case UINT32:
1457 return LONG_WRAPPER + PERIOD + PARSE_LONG;
1458 case UINT64:
1459 return NEW + SPACE + BIG_INTEGER;
Mahesh Poojary Huawei46fb4db2016-07-14 12:38:17 +05301460 case DECIMAL64:
1461 return NEW + SPACE + BIG_DECIMAL;
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301462 case STRING:
1463 return EMPTY_STRING;
1464 case EMPTY:
1465 case BOOLEAN:
1466 return BOOLEAN_WRAPPER + PERIOD + PARSE_BOOLEAN;
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301467 case BITS:
Gaurav Agrawal8a5af142016-06-15 13:58:01 +05301468 case UNION:
1469 case ENUMERATION:
1470 case DERIVED:
1471 return targetDataType + PERIOD + FROM_STRING_METHOD_NAME;
1472 default:
1473 throw new TranslatorException("given data type is not supported.");
1474 }
1475 }
Bharat saraswalb1170bd2016-07-14 13:26:18 +05301476
1477 /**
1478 * Returns copy constructor for augmented class.
1479 *
1480 * @param yangName augmente class name
1481 * @param augmentName augmented class name
1482 * @return copy constructor for augmented class
1483 */
1484 public static String getAugmentedNodesConstructorStart(String yangName,
1485 String augmentName) {
1486
1487 String javadoc = generateForTypeConstructor(yangName);
1488 String constructor = FOUR_SPACE_INDENTATION + PUBLIC + SPACE + yangName + BUILDER + OPEN_PARENTHESIS
1489 + augmentName + PERIOD + augmentName + BUILDER + SPACE + VALUE + CLOSE_PARENTHESIS + SPACE
1490 + OPEN_CURLY_BRACKET + NEW_LINE;
1491 return javadoc + constructor;
1492
1493 }
1494
1495 /**
1496 * Returns the constructor strings for class file.
1497 *
1498 * @param attr attribute info
1499 * @param pluginConfig plugin configurations
1500 * @return constructor for class
1501 */
1502 public static String getAugmentedConstructor(JavaAttributeInfo attr, YangPluginConfig pluginConfig) {
1503
1504 String attributeName = getCamelCase(attr.getAttributeName(), pluginConfig.getConflictResolver());
1505
1506 return EIGHT_SPACE_INDENTATION + THIS + PERIOD + attributeName + OPEN_PARENTHESIS
1507 + VALUE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
1508 + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
1509 }
Bharat saraswalb551aae2016-07-14 15:18:20 +05301510
1511 /**
1512 * Returns augmented data getter and setter methods for service class.
1513 *
1514 * @param parent parent node
1515 * @return augmented data getter and setter methods for service class
1516 */
1517 public static String getAugmentsDataMethodForService(YangNode parent) {
1518 Map<YangAtomicPath, YangAugment> resolvedAugmentsForManager = getResolvedAugmentsForManager(parent);
1519 List<YangAtomicPath> targets = getSetOfNodeIdentifiers(parent);
1520 YangNode augmentedNode;
1521 String curNodeName;
1522 String method;
1523 StringBuilder methods = new StringBuilder();
1524 String parentName;
1525 String returnType;
1526 YangPluginConfig pluginConfig = ((JavaFileInfoContainer) parent).getJavaFileInfo().getPluginConfig();
1527 for (YangAtomicPath nodeId : targets) {
1528 augmentedNode = resolvedAugmentsForManager.get(nodeId).getResolveNodeInPath().get(nodeId);
1529 if (((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName() != null) {
1530 curNodeName = ((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName();
1531 } else {
1532 curNodeName = getCapitalCase(getCamelCase(augmentedNode.getName(), pluginConfig
1533 .getConflictResolver()));
1534 }
1535 returnType = getAugmentedClassNameForDataMethods(augmentedNode, parent);
1536 parentName = getParentNodeNameForDataMethods(augmentedNode.getParent(), pluginConfig);
1537 method = getJavaDoc(GETTER_METHOD, getSmallCase(AUGMENTED + parentName + curNodeName), false,
1538 pluginConfig) + getGetterForInterface(AUGMENTED + parentName
1539 + getCapitalCase(curNodeName),
1540 returnType, false, GENERATE_SERVICE_AND_MANAGER)
1541 + NEW_LINE;
1542 methods.append(method);
1543
1544 method = getJavaDoc(MANAGER_SETTER_METHOD, AUGMENTED +
1545 getCapitalCase(parentName) + curNodeName, false, pluginConfig) +
1546 getSetterForInterface(getSmallCase(AUGMENTED) + parentName +
1547 getCapitalCase(curNodeName), returnType, parentName,
1548 false,
1549 GENERATE_SERVICE_AND_MANAGER) + NEW_LINE;
1550 methods.append(method);
1551 }
1552 return methods.toString();
1553 }
1554
1555 /**
1556 * Returns augmented data getter and setter methods for manager class.
1557 *
1558 * @param parent parent node
1559 * @return augmented data getter and setter methods for manager class
1560 */
1561 public static String getAugmentsDataMethodForManager(YangNode parent) {
1562 Map<YangAtomicPath, YangAugment> resolvedAugmentsForManager = getResolvedAugmentsForManager(parent);
1563 List<YangAtomicPath> targets = getSetOfNodeIdentifiers(parent);
1564 YangNode augmentedNode;
1565 String curNodeName;
1566 String returnType;
1567 String method;
1568 StringBuilder methods = new StringBuilder();
1569 String parentName;
1570 YangPluginConfig pluginConfig = ((JavaFileInfoContainer) parent).getJavaFileInfo().getPluginConfig();
1571 for (YangAtomicPath nodeId : targets) {
1572 augmentedNode = resolvedAugmentsForManager.get(nodeId).getResolveNodeInPath().get(nodeId);
1573 if (((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName() != null) {
1574 curNodeName = ((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName();
1575 } else {
1576 curNodeName = getCapitalCase(getCamelCase(augmentedNode.getName(), pluginConfig
1577 .getConflictResolver()));
1578 }
1579 returnType = getAugmentedClassNameForDataMethods(augmentedNode, parent);
1580 parentName = getParentNodeNameForDataMethods(augmentedNode.getParent(), pluginConfig);
1581 method = getOverRideString() + getGetter(returnType, AUGMENTED
1582 + parentName + getCapitalCase(curNodeName),
1583 GENERATE_SERVICE_AND_MANAGER) + NEW_LINE;
1584 methods.append(method);
1585
1586 method = getOverRideString() + getSetter(parentName, getSmallCase(AUGMENTED) +
1587 getCapitalCase(parentName) + getCapitalCase(curNodeName),
1588 returnType,
1589 GENERATE_SERVICE_AND_MANAGER)
1590 + NEW_LINE;
1591 methods.append(method);
1592 }
1593 return methods.toString();
1594 }
1595
Bharat saraswal870c56f2016-02-20 21:57:16 +05301596}