blob: 6c91f4f5e81ce5355d5be4f9ede3f96908869d66 [file] [log] [blame]
Bharat saraswal4bf8b152016-02-25 02:26:43 +05301/*
Brian O'Connor5ab426f2016-04-09 01:19:45 -07002 * Copyright 2016-present Open Networking Laboratory
Bharat saraswal4bf8b152016-02-25 02:26:43 +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
19import org.onosproject.yangutils.datamodel.YangDataTypes;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +053020import org.onosproject.yangutils.datamodel.YangDerivedInfo;
Bharat saraswald72411a2016-04-19 01:00:16 +053021import org.onosproject.yangutils.datamodel.YangEnumeration;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +053022import org.onosproject.yangutils.datamodel.YangNode;
Bharat saraswal4bf8b152016-02-25 02:26:43 +053023import org.onosproject.yangutils.datamodel.YangType;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +053024import org.onosproject.yangutils.datamodel.YangTypeDef;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053025import org.onosproject.yangutils.datamodel.YangUnion;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +053026import org.onosproject.yangutils.translator.exception.TranslatorException;
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +053027import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +053028import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
Bharat saraswald72411a2016-04-19 01:00:16 +053029import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaEnumeration;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +053030import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaTypeDef;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053031import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaUnion;
Bharat saraswale2d51d62016-03-23 19:40:35 +053032
Bharat saraswale2d51d62016-03-23 19:40:35 +053033import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
34import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCaptialCase;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +053035import static org.onosproject.yangutils.utils.UtilConstants.BIG_INTEGER;
Bharat saraswale2d51d62016-03-23 19:40:35 +053036import static org.onosproject.yangutils.utils.UtilConstants.BOOLEAN_DATA_TYPE;
37import static org.onosproject.yangutils.utils.UtilConstants.BOOLEAN_WRAPPER;
38import static org.onosproject.yangutils.utils.UtilConstants.BYTE;
39import static org.onosproject.yangutils.utils.UtilConstants.BYTE_WRAPPER;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053040import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
Bharat saraswale2d51d62016-03-23 19:40:35 +053041import static org.onosproject.yangutils.utils.UtilConstants.INT;
42import static org.onosproject.yangutils.utils.UtilConstants.INTEGER_WRAPPER;
43import static org.onosproject.yangutils.utils.UtilConstants.JAVA_LANG;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +053044import static org.onosproject.yangutils.utils.UtilConstants.JAVA_MATH;
Bharat saraswale2d51d62016-03-23 19:40:35 +053045import static org.onosproject.yangutils.utils.UtilConstants.LONG;
46import static org.onosproject.yangutils.utils.UtilConstants.LONG_WRAPPER;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053047import static org.onosproject.yangutils.utils.UtilConstants.NEW;
48import static org.onosproject.yangutils.utils.UtilConstants.OF;
49import static org.onosproject.yangutils.utils.UtilConstants.PARSE_BYTE;
50import static org.onosproject.yangutils.utils.UtilConstants.PARSE_INT;
51import static org.onosproject.yangutils.utils.UtilConstants.PARSE_LONG;
52import static org.onosproject.yangutils.utils.UtilConstants.PARSE_SHORT;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +053053import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
Bharat saraswale2d51d62016-03-23 19:40:35 +053054import static org.onosproject.yangutils.utils.UtilConstants.SHORT;
55import static org.onosproject.yangutils.utils.UtilConstants.SHORT_WRAPPER;
Gaurav Agrawal338735b2016-04-18 18:53:11 +053056import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
Bharat saraswale2d51d62016-03-23 19:40:35 +053057import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
Bharat saraswal4bf8b152016-02-25 02:26:43 +053058
59/**
Bharat saraswald9822e92016-04-05 15:13:44 +053060 * Represents java data types info corresponding to YANG type.
Bharat saraswal4bf8b152016-02-25 02:26:43 +053061 */
62public final class AttributesJavaDataType {
63
64 /**
Bharat saraswald9822e92016-04-05 15:13:44 +053065 * Creates an instance of attribute java data type.
Bharat saraswal4bf8b152016-02-25 02:26:43 +053066 */
67 private AttributesJavaDataType() {
68 }
69
70 /**
Vinod Kumar Sc4216002016-03-03 19:55:30 +053071 * Returns java type.
Bharat saraswal4bf8b152016-02-25 02:26:43 +053072 *
73 * @param yangType YANG type
Vinod Kumar Sc4216002016-03-03 19:55:30 +053074 * @return java type
Bharat saraswal4bf8b152016-02-25 02:26:43 +053075 */
Vinod Kumar Sc4216002016-03-03 19:55:30 +053076 public static String getJavaDataType(YangType<?> yangType) {
Bharat saraswale2d51d62016-03-23 19:40:35 +053077
Vinod Kumar Sc4216002016-03-03 19:55:30 +053078 YangDataTypes type = yangType.getDataType();
Bharat saraswal4bf8b152016-02-25 02:26:43 +053079
Bharat saraswalcc1cdab2016-04-16 02:28:25 +053080 switch (type) {
81 case INT8:
82 return BYTE;
83 case INT16:
84 return SHORT;
85 case INT32:
86 return INT;
87 case INT64:
88 return LONG;
89 case UINT8:
90 return SHORT;
91 case UINT16:
92 return INT;
93 case UINT32:
94 return LONG;
95 case UINT64:
96 return BIG_INTEGER;
97 case DECIMAL64:
98 //TODO: DECIMAL64.
99 case STRING:
100 return STRING_DATA_TYPE;
101 case BOOLEAN:
102 return BOOLEAN_DATA_TYPE;
103 default:
104 throw new TranslatorException("given data type is not supported.");
Bharat saraswal4bf8b152016-02-25 02:26:43 +0530105 }
Bharat saraswal4bf8b152016-02-25 02:26:43 +0530106 }
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530107
108 /**
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530109 * Returns from string method parsed string.
110 *
111 * @param targetDataType target data type
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530112 * @param yangType YANG type
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530113 * @return parsed string
114 */
115 public static String getParseFromStringMethod(String targetDataType, YangType<?> yangType) {
116
117 YangDataTypes type = yangType.getDataType();
118
119 switch (type) {
120 case INT8:
121 return BYTE_WRAPPER + PERIOD + PARSE_BYTE;
122 case INT16:
123 return SHORT_WRAPPER + PERIOD + PARSE_SHORT;
124 case INT32:
125 return INTEGER_WRAPPER + PERIOD + PARSE_INT;
126 case INT64:
127 return LONG_WRAPPER + PERIOD + PARSE_LONG;
128 case UINT8:
129 return SHORT_WRAPPER + PERIOD + PARSE_SHORT;
130 case UINT16:
131 return INTEGER_WRAPPER + PERIOD + PARSE_INT;
132 case UINT32:
133 return LONG_WRAPPER + PERIOD + PARSE_LONG;
134 case UINT64:
135 return NEW + SPACE + BIG_INTEGER;
136 case DECIMAL64:
137 //TODO: DECIMAL64.
138 case STRING:
139 return EMPTY_STRING;
140 case BOOLEAN:
141 return BOOLEAN_DATA_TYPE;
142 case ENUMERATION:
143 //TODO:ENUMERATION.
144 case BITS:
145 //TODO:BITS
146 case BINARY:
147 //TODO:BINARY
148 case DERIVED:
149 return targetDataType + PERIOD + OF;
150 default:
151 throw new TranslatorException("given data type is not supported.");
152 }
153 }
154
155 /**
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530156 * Returns java import class.
157 *
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530158 * @param yangType YANG type
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530159 * @param isListAttr if the attribute need to be a list
160 * @return java import class
161 */
162 public static String getJavaImportClass(YangType<?> yangType, boolean isListAttr) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530163
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530164 YangDataTypes type = yangType.getDataType();
165
166 if (isListAttr) {
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530167 switch (type) {
168 case INT8:
169 return BYTE_WRAPPER;
170 case INT16:
171 return SHORT_WRAPPER;
172 case INT32:
173 return INTEGER_WRAPPER;
174 case INT64:
175 return LONG_WRAPPER;
176 case UINT8:
177 return SHORT_WRAPPER;
178 case UINT16:
179 return INTEGER_WRAPPER;
180 case UINT32:
181 return LONG_WRAPPER;
182 case UINT64:
183 return BIG_INTEGER;
184 case DECIMAL64:
185 //TODO: DECIMAL64.
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530186 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530187 case STRING:
188 return STRING_DATA_TYPE;
189 case BOOLEAN:
190 return BOOLEAN_WRAPPER;
191 case ENUMERATION:
Bharat saraswald72411a2016-04-19 01:00:16 +0530192 return getCaptialCase(
193 getCamelCase(((YangJavaEnumeration) yangType.getDataTypeExtendedInfo()).getName(), null));
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530194 case BITS:
195 //TODO:BITS
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530196 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530197 case BINARY:
198 //TODO:BINARY
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530199 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530200 case LEAFREF:
201 //TODO:LEAFREF
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530202 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530203 case IDENTITYREF:
204 //TODO:IDENTITYREF
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530205 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530206 case EMPTY:
207 return BOOLEAN_WRAPPER;
208 case UNION:
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530209 return getCaptialCase(getCamelCase(((YangJavaUnion) yangType.getDataTypeExtendedInfo()).getName(),
210 null));
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530211 case INSTANCE_IDENTIFIER:
212 //TODO:INSTANCE_IDENTIFIER
213 case DERIVED:
214 return getCaptialCase(getCamelCase(yangType.getDataTypeName(), null));
215 default:
Bharat saraswald72411a2016-04-19 01:00:16 +0530216 throw new TranslatorException("given data type is not supported.");
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530217 }
218 } else {
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530219 switch (type) {
220 case UINT64:
221 return BIG_INTEGER;
222 case DECIMAL64:
223 //TODO: DECIMAL64.
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530224 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530225 case STRING:
226 return STRING_DATA_TYPE;
227 case ENUMERATION:
Bharat saraswald72411a2016-04-19 01:00:16 +0530228 return getCaptialCase(
229 getCamelCase(((YangJavaEnumeration) yangType.getDataTypeExtendedInfo()).getName(), null));
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530230 case BITS:
231 //TODO:BITS
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530232 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530233 case BINARY:
234 //TODO:BINARY
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530235 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530236 case LEAFREF:
237 //TODO:LEAFREF
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530238 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530239 case IDENTITYREF:
240 //TODO:IDENTITYREF
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530241 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530242 case EMPTY:
243 //TODO:EMPTY
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530244 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530245 case UNION:
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530246 return getCaptialCase(getCamelCase(((YangJavaUnion) yangType.getDataTypeExtendedInfo()).getName(),
247 null));
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530248 case INSTANCE_IDENTIFIER:
249 //TODO:INSTANCE_IDENTIFIER
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530250 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530251 case DERIVED:
252 return getCaptialCase(getCamelCase(yangType.getDataTypeName(), null));
253 default:
254 return null;
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530255 }
256 }
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530257 return null;
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530258 }
259
260 /**
261 * Returns java import package.
262 *
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530263 * @param yangType YANG type
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530264 * @param isListAttr if the attribute is of list type
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530265 * @param classInfo java import class info
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530266 * @return java import package
267 */
Vinod Kumar S38046502016-03-23 15:30:27 +0530268 public static String getJavaImportPackage(YangType<?> yangType, boolean isListAttr, String classInfo) {
Bharat saraswale2d51d62016-03-23 19:40:35 +0530269
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530270 YangDataTypes type = yangType.getDataType();
271
272 if (isListAttr) {
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530273 switch (type) {
274 case INT8:
275 case INT16:
276 case INT32:
277 case INT64:
278 case UINT8:
279 case UINT16:
280 case UINT32:
281 case STRING:
282 case BOOLEAN:
283 return JAVA_LANG;
284 case UINT64:
285 return JAVA_MATH;
286 case DECIMAL64:
287 //TODO: DECIMAL64.
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530288 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530289 case ENUMERATION:
Bharat saraswald72411a2016-04-19 01:00:16 +0530290 return getEnumsPackage(yangType);
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530291 case BITS:
292 //TODO:BITS
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530293 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530294 case BINARY:
295 //TODO:BINARY
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530296 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530297 case LEAFREF:
298 //TODO:LEAFREF
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530299 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530300 case IDENTITYREF:
301 //TODO:IDENTITYREF
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530302 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530303 case EMPTY:
304 //TODO:EMPTY
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530305 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530306 case UNION:
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530307 return getUnionPackage(yangType);
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530308 case INSTANCE_IDENTIFIER:
309 //TODO:INSTANCE_IDENTIFIER
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530310 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530311 case DERIVED:
312 return getTypDefsPackage(yangType);
313 default:
Bharat saraswald72411a2016-04-19 01:00:16 +0530314 throw new TranslatorException("given data type is not supported.");
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530315 }
316 } else {
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530317 switch (type) {
318 case UINT64:
319 //TODO: BIGINTEGER.
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530320 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530321 case DECIMAL64:
322 //TODO: DECIMAL64
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530323 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530324 case STRING:
325 return JAVA_LANG;
326 case ENUMERATION:
Bharat saraswald72411a2016-04-19 01:00:16 +0530327 return getEnumsPackage(yangType);
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530328 case BITS:
329 //TODO:BITS
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530330 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530331 case BINARY:
332 //TODO:BINARY
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530333 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530334 case LEAFREF:
335 //TODO:LEAFREF
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530336 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530337 case IDENTITYREF:
338 //TODO:IDENTITYREF
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530339 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530340 case EMPTY:
341 //TODO:EMPTY
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530342 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530343 case UNION:
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530344 return getUnionPackage(yangType);
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530345 case INSTANCE_IDENTIFIER:
346 //TODO:INSTANCE_IDENTIFIER
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530347 break;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530348 case DERIVED:
349 return getTypDefsPackage(yangType);
350 default:
351 return null;
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530352 }
353 }
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530354 return null;
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530355 }
356
357 /**
358 * Returns java package for typedef node.
359 *
360 * @param type YANG type
361 * @return java package for typedef node
362 */
363 private static String getTypDefsPackage(YangType<?> type) {
364 Object var = type.getDataTypeExtendedInfo();
365 if (!(var instanceof YangDerivedInfo)) {
366 throw new TranslatorException("type should have been derived.");
367 }
368
369 if (!(((YangDerivedInfo<?>) var).getReferredTypeDef() instanceof YangTypeDef)) {
370 throw new TranslatorException("derived info is not an instance of typedef.");
371 }
372
373 YangJavaTypeDef typedef = (YangJavaTypeDef) ((YangDerivedInfo<?>) var).getReferredTypeDef();
374 if (typedef.getJavaFileInfo().getPackage() == null) {
375 return getPackageFromParent(typedef.getParent());
376 }
377 return typedef.getJavaFileInfo().getPackage();
378 }
379
380 /**
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530381 * Returns java package for union node.
382 *
383 * @param type YANG type
384 * @return java package for union node
385 */
386 private static String getUnionPackage(YangType<?> type) {
387
388 if (!(type.getDataTypeExtendedInfo() instanceof YangUnion)) {
389 throw new TranslatorException("type should have been union.");
390 }
391
392 YangJavaUnion union = (YangJavaUnion) type.getDataTypeExtendedInfo();
393 if (union.getJavaFileInfo().getPackage() == null) {
394 return getPackageFromParent(union.getParent());
395 }
396 return union.getJavaFileInfo().getPackage();
397 }
398
399 /**
Bharat saraswald72411a2016-04-19 01:00:16 +0530400 * Returns YANG enumeration's java package.
401 *
402 * @param type YANG type
403 * @return YANG enumeration's java package
404 */
405 private static String getEnumsPackage(YangType<?> type) {
406
407 if (!(type.getDataTypeExtendedInfo() instanceof YangEnumeration)) {
408 throw new TranslatorException("type should have been enumeration.");
409 }
410 YangJavaEnumeration enumeration = (YangJavaEnumeration) type.getDataTypeExtendedInfo();
411 if (enumeration.getJavaFileInfo().getPackage() == null) {
412 return getPackageFromParent(enumeration.getParent());
413 }
414 return enumeration.getJavaFileInfo().getPackage();
415 }
416
417 /**
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530418 * Returns package from parent node.
419 *
420 * @param parent parent YANG node
421 * @return java package from parent node
422 */
423 private static String getPackageFromParent(YangNode parent) {
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530424 if (!(parent instanceof JavaFileInfoContainer)) {
Gaurav Agrawal338735b2016-04-18 18:53:11 +0530425 throw new TranslatorException("invalid child node is being processed.");
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530426 }
Vinod Kumar Se4b9b0c2016-04-30 21:09:15 +0530427 JavaFileInfo parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo();
Bharat saraswalcc1cdab2016-04-16 02:28:25 +0530428 return parentInfo.getPackage() + PERIOD + parentInfo.getJavaName().toLowerCase();
Vinod Kumar Sc4216002016-03-03 19:55:30 +0530429 }
Bharat saraswal4bf8b152016-02-25 02:26:43 +0530430}