Vinod Kumar S
Committed by Gerrit Code Review

multiFileYangTranslator

Change-Id: I2adfef3acaec4bd74ba2c487404d2c655b800988
Showing 108 changed files with 3841 additions and 3253 deletions
...@@ -28,23 +28,25 @@ public interface CollisionDetector { ...@@ -28,23 +28,25 @@ public interface CollisionDetector {
28 * Checks for the colliding child. 28 * Checks for the colliding child.
29 * 29 *
30 * @param identifierName name of identifier for which collision to be 30 * @param identifierName name of identifier for which collision to be
31 - * checked 31 + * checked
32 * @param dataType type of the YANG construct for which collision to be 32 * @param dataType type of the YANG construct for which collision to be
33 - * checked 33 + * checked
34 * @throws DataModelException if there is any collision in YANG rules in 34 * @throws DataModelException if there is any collision in YANG rules in
35 * parsed data, corresponding exception should be thrown 35 * parsed data, corresponding exception should be thrown
36 */ 36 */
37 - void detectCollidingChild(String identifierName, YangConstructType dataType) throws DataModelException; 37 + void detectCollidingChild(String identifierName, YangConstructType dataType)
38 + throws DataModelException;
38 39
39 /** 40 /**
40 * Check for the self collision. 41 * Check for the self collision.
41 * 42 *
42 * @param identifierName name of identifier for which collision to be 43 * @param identifierName name of identifier for which collision to be
43 - * checked 44 + * checked
44 * @param dataType type of the YANG construct for which collision to be 45 * @param dataType type of the YANG construct for which collision to be
45 - * checked 46 + * checked
46 * @throws DataModelException if there is any collision in YANG rules in 47 * @throws DataModelException if there is any collision in YANG rules in
47 - * parsed data, corresponding exception should be thrown 48 + * parsed data, corresponding exception should be thrown
48 */ 49 */
49 - void detectSelfCollision(String identifierName, YangConstructType dataType) throws DataModelException; 50 + void detectSelfCollision(String identifierName, YangConstructType dataType)
51 + throws DataModelException;
50 } 52 }
......
...@@ -19,5 +19,5 @@ package org.onosproject.yangutils.datamodel; ...@@ -19,5 +19,5 @@ package org.onosproject.yangutils.datamodel;
19 /** 19 /**
20 * Represents class having rpc and notification. 20 * Represents class having rpc and notification.
21 */ 21 */
22 -public interface HasRpcNotification { 22 +public interface RpcNotificationContainer {
23 } 23 }
......
...@@ -19,6 +19,8 @@ import org.onosproject.yangutils.datamodel.exceptions.DataModelException; ...@@ -19,6 +19,8 @@ import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
19 19
20 /** 20 /**
21 * Represents information about entity being resolved. 21 * Represents information about entity being resolved.
22 + *
23 + * @param <T> type of entity being resolved, uses / grouping
22 */ 24 */
23 public class YangEntityToResolveInfo<T> { 25 public class YangEntityToResolveInfo<T> {
24 26
...@@ -58,13 +60,19 @@ public class YangEntityToResolveInfo<T> { ...@@ -58,13 +60,19 @@ public class YangEntityToResolveInfo<T> {
58 /** 60 /**
59 * Sets parent node which contains the entity to be resolved. 61 * Sets parent node which contains the entity to be resolved.
60 * 62 *
61 - * @param holderOfEntityToResolve parent node which contains the entity to be resolved 63 + * @param holderOfEntityToResolve parent node which contains the entity to
64 + * be resolved
62 */ 65 */
63 public void setHolderOfEntityToResolve(YangNode holderOfEntityToResolve) { 66 public void setHolderOfEntityToResolve(YangNode holderOfEntityToResolve) {
64 this.holderOfEntityToResolve = holderOfEntityToResolve; 67 this.holderOfEntityToResolve = holderOfEntityToResolve;
65 } 68 }
66 69
67 - 70 + /**
71 + * Retrieves the prefix of the entity.
72 + *
73 + * @return entities prefix
74 + * @throws DataModelException data model error
75 + */
68 public String getEntityPrefix() 76 public String getEntityPrefix()
69 throws DataModelException { 77 throws DataModelException {
70 if (getEntityToResolve() == null) { 78 if (getEntityToResolve() == null) {
...@@ -72,11 +80,11 @@ public class YangEntityToResolveInfo<T> { ...@@ -72,11 +80,11 @@ public class YangEntityToResolveInfo<T> {
72 } 80 }
73 81
74 String prefix; 82 String prefix;
75 - T entityToResolve = getEntityToResolve(); 83 + T entityToBeResolved = getEntityToResolve();
76 - if (entityToResolve instanceof YangType) { 84 + if (entityToBeResolved instanceof YangType) {
77 - prefix = ((YangType<?>) entityToResolve).getPrefix(); 85 + prefix = ((YangType<?>) entityToBeResolved).getPrefix();
78 - } else if (entityToResolve instanceof YangUses) { 86 + } else if (entityToBeResolved instanceof YangUses) {
79 - prefix = ((YangUses) entityToResolve).getPrefix(); 87 + prefix = ((YangUses) entityToBeResolved).getPrefix();
80 } else { 88 } else {
81 throw new DataModelException("Data Model Exception: Entity to resolved is other than type/uses"); 89 throw new DataModelException("Data Model Exception: Entity to resolved is other than type/uses");
82 } 90 }
......
...@@ -53,10 +53,12 @@ import org.onosproject.yangutils.utils.YangConstructType; ...@@ -53,10 +53,12 @@ import org.onosproject.yangutils.utils.YangConstructType;
53 * | when | 7.19.5 | 0..1 | - TODO | 53 * | when | 7.19.5 | 0..1 | - TODO |
54 * +--------------+---------+-------------+------------------+ 54 * +--------------+---------+-------------+------------------+
55 */ 55 */
56 +
56 /** 57 /**
57 * Represents leaf data represented in YANG. 58 * Represents leaf data represented in YANG.
58 */ 59 */
59 -public class YangLeaf implements YangCommonInfo, Parsable { 60 +public class YangLeaf
61 + implements YangCommonInfo, Parsable {
60 62
61 /** 63 /**
62 * Name of leaf. 64 * Name of leaf.
...@@ -109,7 +111,7 @@ public class YangLeaf implements YangCommonInfo, Parsable { ...@@ -109,7 +111,7 @@ public class YangLeaf implements YangCommonInfo, Parsable {
109 * 111 *
110 * @return the leaf name 112 * @return the leaf name
111 */ 113 */
112 - public String getLeafName() { 114 + public String getName() {
113 return name; 115 return name;
114 } 116 }
115 117
...@@ -270,7 +272,8 @@ public class YangLeaf implements YangCommonInfo, Parsable { ...@@ -270,7 +272,8 @@ public class YangLeaf implements YangCommonInfo, Parsable {
270 * @throws DataModelException a violation of data model rules 272 * @throws DataModelException a violation of data model rules
271 */ 273 */
272 @Override 274 @Override
273 - public void validateDataOnEntry() throws DataModelException { 275 + public void validateDataOnEntry()
276 + throws DataModelException {
274 // TODO auto-generated method stub, to be implemented by parser 277 // TODO auto-generated method stub, to be implemented by parser
275 278
276 } 279 }
...@@ -281,7 +284,8 @@ public class YangLeaf implements YangCommonInfo, Parsable { ...@@ -281,7 +284,8 @@ public class YangLeaf implements YangCommonInfo, Parsable {
281 * @throws DataModelException a violation of data model rules 284 * @throws DataModelException a violation of data model rules
282 */ 285 */
283 @Override 286 @Override
284 - public void validateDataOnExit() throws DataModelException { 287 + public void validateDataOnExit()
288 + throws DataModelException {
285 // TODO auto-generated method stub, to be implemented by parser 289 // TODO auto-generated method stub, to be implemented by parser
286 290
287 } 291 }
......
...@@ -49,10 +49,12 @@ import org.onosproject.yangutils.utils.YangConstructType; ...@@ -49,10 +49,12 @@ import org.onosproject.yangutils.utils.YangConstructType;
49 * | when | 7.19.5 | 0..1 | -TODO | 49 * | when | 7.19.5 | 0..1 | -TODO |
50 * +--------------+---------+-------------+------------------+ 50 * +--------------+---------+-------------+------------------+
51 */ 51 */
52 +
52 /** 53 /**
53 * Represents leaf-list data represented in YANG. 54 * Represents leaf-list data represented in YANG.
54 */ 55 */
55 -public class YangLeafList implements YangCommonInfo, Parsable { 56 +public class YangLeafList
57 + implements YangCommonInfo, Parsable {
56 58
57 /** 59 /**
58 * Name of leaf-list. 60 * Name of leaf-list.
...@@ -132,7 +134,7 @@ public class YangLeafList implements YangCommonInfo, Parsable { ...@@ -132,7 +134,7 @@ public class YangLeafList implements YangCommonInfo, Parsable {
132 * 134 *
133 * @return the leaf-list name 135 * @return the leaf-list name
134 */ 136 */
135 - public String getLeafName() { 137 + public String getName() {
136 return name; 138 return name;
137 } 139 }
138 140
...@@ -311,7 +313,8 @@ public class YangLeafList implements YangCommonInfo, Parsable { ...@@ -311,7 +313,8 @@ public class YangLeafList implements YangCommonInfo, Parsable {
311 * @throws DataModelException a violation of data model rules 313 * @throws DataModelException a violation of data model rules
312 */ 314 */
313 @Override 315 @Override
314 - public void validateDataOnEntry() throws DataModelException { 316 + public void validateDataOnEntry()
317 + throws DataModelException {
315 // TODO auto-generated method stub, to be implemented by parser 318 // TODO auto-generated method stub, to be implemented by parser
316 319
317 } 320 }
...@@ -322,7 +325,8 @@ public class YangLeafList implements YangCommonInfo, Parsable { ...@@ -322,7 +325,8 @@ public class YangLeafList implements YangCommonInfo, Parsable {
322 * @throws DataModelException a violation of data model rules 325 * @throws DataModelException a violation of data model rules
323 */ 326 */
324 @Override 327 @Override
325 - public void validateDataOnExit() throws DataModelException { 328 + public void validateDataOnExit()
329 + throws DataModelException {
326 // TODO auto-generated method stub, to be implemented by parser 330 // TODO auto-generated method stub, to be implemented by parser
327 331
328 } 332 }
......
...@@ -541,7 +541,7 @@ public class YangList extends YangNode ...@@ -541,7 +541,7 @@ public class YangList extends YangNode
541 */ 541 */
542 for (String key : keys) { 542 for (String key : keys) {
543 for (YangLeaf leaf : leaves) { 543 for (YangLeaf leaf : leaves) {
544 - if (key.equals(leaf.getLeafName())) { 544 + if (key.equals(leaf.getName())) {
545 if (leaf.getDataType().getDataType() == YangDataTypes.EMPTY) { 545 if (leaf.getDataType().getDataType() == YangDataTypes.EMPTY) {
546 throw new DataModelException(" A leaf that is part of the key must not be the built-in " + 546 throw new DataModelException(" A leaf that is part of the key must not be the built-in " +
547 "type \"empty\"."); 547 "type \"empty\".");
...@@ -586,7 +586,7 @@ public class YangList extends YangNode ...@@ -586,7 +586,7 @@ public class YangList extends YangNode
586 */ 586 */
587 for (String key : keys) { 587 for (String key : keys) {
588 for (YangLeafList leafList : leafLists) { 588 for (YangLeafList leafList : leafLists) {
589 - if (key.equals(leafList.getLeafName())) { 589 + if (key.equals(leafList.getName())) {
590 if (leafList.getDataType().getDataType() == YangDataTypes.EMPTY) { 590 if (leafList.getDataType().getDataType() == YangDataTypes.EMPTY) {
591 throw new DataModelException(" A leaf-list that is part of the key must not be the built-in " + 591 throw new DataModelException(" A leaf-list that is part of the key must not be the built-in " +
592 "type \"empty\"."); 592 "type \"empty\".");
......
...@@ -17,6 +17,7 @@ package org.onosproject.yangutils.datamodel; ...@@ -17,6 +17,7 @@ package org.onosproject.yangutils.datamodel;
17 17
18 import java.util.LinkedList; 18 import java.util.LinkedList;
19 import java.util.List; 19 import java.util.List;
20 +
20 import org.onosproject.yangutils.datamodel.exceptions.DataModelException; 21 import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
21 import org.onosproject.yangutils.parser.Parsable; 22 import org.onosproject.yangutils.parser.Parsable;
22 import org.onosproject.yangutils.utils.YangConstructType; 23 import org.onosproject.yangutils.utils.YangConstructType;
...@@ -68,8 +69,8 @@ import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.resolveLi ...@@ -68,8 +69,8 @@ import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.resolveLi
68 * Represents data model node to maintain information defined in YANG module. 69 * Represents data model node to maintain information defined in YANG module.
69 */ 70 */
70 public class YangModule extends YangNode 71 public class YangModule extends YangNode
71 - implements YangLeavesHolder, YangDesc, YangReference, Parsable, CollisionDetector, HasResolutionInfo, 72 + implements YangLeavesHolder, YangDesc, YangReference, Parsable, CollisionDetector, YangReferenceResolver,
72 - HasRpcNotification { 73 + RpcNotificationContainer {
73 74
74 /** 75 /**
75 * Name of the module. 76 * Name of the module.
......
...@@ -234,8 +234,10 @@ public abstract class YangNode ...@@ -234,8 +234,10 @@ public abstract class YangNode
234 * Clone the current node contents and create a new node. 234 * Clone the current node contents and create a new node.
235 * 235 *
236 * @return cloned node 236 * @return cloned node
237 - * @throws CloneNotSupportedException clone is not supported by the referred node 237 + * @throws CloneNotSupportedException clone is not supported by the referred
238 + * node
238 */ 239 */
240 + @Override
239 public YangNode clone() 241 public YangNode clone()
240 throws CloneNotSupportedException { 242 throws CloneNotSupportedException {
241 YangNode clonedNode = (YangNode) super.clone(); 243 YangNode clonedNode = (YangNode) super.clone();
...@@ -247,8 +249,9 @@ public abstract class YangNode ...@@ -247,8 +249,9 @@ public abstract class YangNode
247 } 249 }
248 250
249 /** 251 /**
250 - * Clone the subtree from the specified source node to the mentioned target node. 252 + * Clone the subtree from the specified source node to the mentioned target
251 - * The source and target root node cloning is carried out by the caller. 253 + * node. The source and target root node cloning is carried out by the
254 + * caller.
252 * 255 *
253 * @param srcRootNode source node for sub tree cloning 256 * @param srcRootNode source node for sub tree cloning
254 * @param dstRootNode destination node where the sub tree needs to be cloned 257 * @param dstRootNode destination node where the sub tree needs to be cloned
...@@ -260,7 +263,6 @@ public abstract class YangNode ...@@ -260,7 +263,6 @@ public abstract class YangNode
260 YangNode nextNodeToClone = srcRootNode; 263 YangNode nextNodeToClone = srcRootNode;
261 TraversalType curTraversal; 264 TraversalType curTraversal;
262 265
263 -
264 YangNode clonedTreeCurNode = dstRootNode; 266 YangNode clonedTreeCurNode = dstRootNode;
265 YangNode newNode = null; 267 YangNode newNode = null;
266 268
...@@ -286,6 +288,7 @@ public abstract class YangNode ...@@ -286,6 +288,7 @@ public abstract class YangNode
286 newNode = nextNodeToClone.clone(); 288 newNode = nextNodeToClone.clone();
287 detectCollisionWhileCloning(clonedTreeCurNode, newNode, curTraversal); 289 detectCollisionWhileCloning(clonedTreeCurNode, newNode, curTraversal);
288 } 290 }
291 +
289 if (curTraversal == CHILD) { 292 if (curTraversal == CHILD) {
290 293
291 /** 294 /**
...@@ -294,7 +297,8 @@ public abstract class YangNode ...@@ -294,7 +297,8 @@ public abstract class YangNode
294 clonedTreeCurNode.addChild(newNode); 297 clonedTreeCurNode.addChild(newNode);
295 298
296 /** 299 /**
297 - * update the cloned tree's travesal current node as the new node. 300 + * update the cloned tree's traversal current node as the
301 + * new node.
298 */ 302 */
299 clonedTreeCurNode = newNode; 303 clonedTreeCurNode = newNode;
300 } else if (curTraversal == SIBILING) { 304 } else if (curTraversal == SIBILING) {
...@@ -339,8 +343,8 @@ public abstract class YangNode ...@@ -339,8 +343,8 @@ public abstract class YangNode
339 */ 343 */
340 private static void detectCollisionWhileCloning(YangNode currentNode, YangNode newNode, TraversalType addAs) 344 private static void detectCollisionWhileCloning(YangNode currentNode, YangNode newNode, TraversalType addAs)
341 throws DataModelException { 345 throws DataModelException {
342 - if ((!(currentNode instanceof CollisionDetector)) 346 + if (!(currentNode instanceof CollisionDetector)
343 - || (!(newNode instanceof Parsable))) { 347 + || !(newNode instanceof Parsable)) {
344 throw new DataModelException("Node in data model tree does not support collision detection"); 348 throw new DataModelException("Node in data model tree does not support collision detection");
345 } 349 }
346 350
...@@ -376,9 +380,10 @@ public abstract class YangNode ...@@ -376,9 +380,10 @@ public abstract class YangNode
376 380
377 if (newSibling.getParent() == null) { 381 if (newSibling.getParent() == null) {
378 /** 382 /**
379 - * Since the siblings needs to have a common parent, set the parent as the current node's parent 383 + * Since the siblings needs to have a common parent, set the parent
384 + * as the current node's parent
380 */ 385 */
381 - newSibling.setParent(this.getParent()); 386 + newSibling.setParent(getParent());
382 387
383 } else { 388 } else {
384 throw new DataModelException("Node is already part of a tree, and cannot be added as a sibling"); 389 throw new DataModelException("Node is already part of a tree, and cannot be added as a sibling");
......
...@@ -23,7 +23,7 @@ import org.onosproject.yangutils.datamodel.exceptions.DataModelException; ...@@ -23,7 +23,7 @@ import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
23 * Abstraction of YANG dependency resolution information. Abstracted to obtain the 23 * Abstraction of YANG dependency resolution information. Abstracted to obtain the
24 * resolution information. 24 * resolution information.
25 */ 25 */
26 -public interface HasResolutionInfo { 26 +public interface YangReferenceResolver {
27 27
28 /** 28 /**
29 * Returns unresolved resolution list. 29 * Returns unresolved resolution list.
......
...@@ -17,6 +17,7 @@ package org.onosproject.yangutils.datamodel; ...@@ -17,6 +17,7 @@ package org.onosproject.yangutils.datamodel;
17 17
18 import java.util.LinkedList; 18 import java.util.LinkedList;
19 import java.util.List; 19 import java.util.List;
20 +
20 import org.onosproject.yangutils.datamodel.exceptions.DataModelException; 21 import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
21 import org.onosproject.yangutils.parser.Parsable; 22 import org.onosproject.yangutils.parser.Parsable;
22 import org.onosproject.yangutils.utils.YangConstructType; 23 import org.onosproject.yangutils.utils.YangConstructType;
...@@ -76,8 +77,8 @@ import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.resolveLi ...@@ -76,8 +77,8 @@ import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.resolveLi
76 * Represents data model node to maintain information defined in YANG sub-module. 77 * Represents data model node to maintain information defined in YANG sub-module.
77 */ 78 */
78 public class YangSubModule extends YangNode 79 public class YangSubModule extends YangNode
79 - implements YangLeavesHolder, YangDesc, YangReference, Parsable, CollisionDetector, HasResolutionInfo, 80 + implements YangLeavesHolder, YangDesc, YangReference, Parsable, CollisionDetector, YangReferenceResolver,
80 - HasRpcNotification { 81 + RpcNotificationContainer {
81 82
82 /** 83 /**
83 * Name of sub module. 84 * Name of sub module.
......
...@@ -21,7 +21,7 @@ import java.util.List; ...@@ -21,7 +21,7 @@ import java.util.List;
21 /** 21 /**
22 * Represents the holder with type(s). 22 * Represents the holder with type(s).
23 */ 23 */
24 -public interface HasType { 24 +public interface YangTypeContainer {
25 25
26 /** 26 /**
27 * Returns type list. 27 * Returns type list.
......
...@@ -54,7 +54,7 @@ import org.onosproject.yangutils.utils.YangConstructType; ...@@ -54,7 +54,7 @@ import org.onosproject.yangutils.utils.YangConstructType;
54 /** 54 /**
55 * Represents data model node to maintain information defined in YANG typedef. 55 * Represents data model node to maintain information defined in YANG typedef.
56 */ 56 */
57 -public class YangTypeDef extends YangNode implements YangCommonInfo, Parsable, HasType { 57 +public class YangTypeDef extends YangNode implements YangCommonInfo, Parsable, YangTypeContainer {
58 58
59 /** 59 /**
60 * Default value in string, needs to be converted to the target object, 60 * Default value in string, needs to be converted to the target object,
......
...@@ -47,7 +47,7 @@ import org.onosproject.yangutils.utils.YangConstructType; ...@@ -47,7 +47,7 @@ import org.onosproject.yangutils.utils.YangConstructType;
47 /** 47 /**
48 * Represents data model node to maintain information defined in YANG union. 48 * Represents data model node to maintain information defined in YANG union.
49 */ 49 */
50 -public class YangUnion extends YangNode implements Parsable, HasType { 50 +public class YangUnion extends YangNode implements Parsable, YangTypeContainer {
51 51
52 // List of YANG type. 52 // List of YANG type.
53 private List<YangType<?>> typeList; 53 private List<YangType<?>> typeList;
......
...@@ -276,14 +276,14 @@ public class YangUses ...@@ -276,14 +276,14 @@ public class YangUses
276 YangLeavesHolder usesParentLeavesHolder = (YangLeavesHolder) usesParentNode; 276 YangLeavesHolder usesParentLeavesHolder = (YangLeavesHolder) usesParentNode;
277 if (referredGrouping.getListOfLeaf() != null) { 277 if (referredGrouping.getListOfLeaf() != null) {
278 for (YangLeaf leaf : referredGrouping.getListOfLeaf()) { 278 for (YangLeaf leaf : referredGrouping.getListOfLeaf()) {
279 - ((CollisionDetector) usesParentLeavesHolder).detectCollidingChild(leaf.getLeafName(), 279 + ((CollisionDetector) usesParentLeavesHolder).detectCollidingChild(leaf.getName(),
280 YangConstructType.LEAF_DATA); 280 YangConstructType.LEAF_DATA);
281 usesParentLeavesHolder.addLeaf(leaf); 281 usesParentLeavesHolder.addLeaf(leaf);
282 } 282 }
283 } 283 }
284 if (referredGrouping.getListOfLeafList() != null) { 284 if (referredGrouping.getListOfLeafList() != null) {
285 for (YangLeafList leafList : referredGrouping.getListOfLeafList()) { 285 for (YangLeafList leafList : referredGrouping.getListOfLeafList()) {
286 - ((CollisionDetector) usesParentLeavesHolder).detectCollidingChild(leafList.getLeafName(), 286 + ((CollisionDetector) usesParentLeavesHolder).detectCollidingChild(leafList.getName(),
287 YangConstructType.LEAF_LIST_DATA); 287 YangConstructType.LEAF_LIST_DATA);
288 usesParentLeavesHolder.addLeafList(leafList); 288 usesParentLeavesHolder.addLeafList(leafList);
289 } 289 }
......
...@@ -19,7 +19,7 @@ package org.onosproject.yangutils.datamodel.utils; ...@@ -19,7 +19,7 @@ package org.onosproject.yangutils.datamodel.utils;
19 import java.util.List; 19 import java.util.List;
20 20
21 import org.onosproject.yangutils.datamodel.CollisionDetector; 21 import org.onosproject.yangutils.datamodel.CollisionDetector;
22 -import org.onosproject.yangutils.datamodel.HasResolutionInfo; 22 +import org.onosproject.yangutils.datamodel.YangReferenceResolver;
23 import org.onosproject.yangutils.datamodel.YangImport; 23 import org.onosproject.yangutils.datamodel.YangImport;
24 import org.onosproject.yangutils.datamodel.YangLeaf; 24 import org.onosproject.yangutils.datamodel.YangLeaf;
25 import org.onosproject.yangutils.datamodel.YangLeafList; 25 import org.onosproject.yangutils.datamodel.YangLeafList;
...@@ -112,9 +112,9 @@ public final class DataModelUtils { ...@@ -112,9 +112,9 @@ public final class DataModelUtils {
112 return; 112 return;
113 } 113 }
114 for (YangLeaf leaf : listOfLeaf) { 114 for (YangLeaf leaf : listOfLeaf) {
115 - if (leaf.getLeafName().equals(identifierName)) { 115 + if (leaf.getName().equals(identifierName)) {
116 throw new DataModelException("YANG file error: Duplicate input identifier detected, same as leaf \"" 116 throw new DataModelException("YANG file error: Duplicate input identifier detected, same as leaf \""
117 - + leaf.getLeafName() + "\""); 117 + + leaf.getName() + "\"");
118 } 118 }
119 } 119 }
120 } 120 }
...@@ -133,10 +133,10 @@ public final class DataModelUtils { ...@@ -133,10 +133,10 @@ public final class DataModelUtils {
133 if (listOfLeafList == null) { 133 if (listOfLeafList == null) {
134 return; 134 return;
135 } 135 }
136 - for (YangLeafList leafList : listOfLeafList) { 136 + for (YangLeafList leafList : listOfLeafList) {
137 - if (leafList.getLeafName().equals(identifierName)) { 137 + if (leafList.getName().equals(identifierName)) {
138 throw new DataModelException("YANG file error: Duplicate input identifier detected, same as leaf " + 138 throw new DataModelException("YANG file error: Duplicate input identifier detected, same as leaf " +
139 - "list \"" + leafList.getLeafName() + "\""); 139 + "list \"" + leafList.getName() + "\"");
140 } 140 }
141 } 141 }
142 } 142 }
...@@ -154,13 +154,13 @@ public final class DataModelUtils { ...@@ -154,13 +154,13 @@ public final class DataModelUtils {
154 /* get the module node to add maintain the list of nested reference */ 154 /* get the module node to add maintain the list of nested reference */
155 YangNode curNode = resolutionInfo.getEntityToResolveInfo() 155 YangNode curNode = resolutionInfo.getEntityToResolveInfo()
156 .getHolderOfEntityToResolve(); 156 .getHolderOfEntityToResolve();
157 - while (!(curNode instanceof HasResolutionInfo)) { 157 + while (!(curNode instanceof YangReferenceResolver)) {
158 curNode = curNode.getParent(); 158 curNode = curNode.getParent();
159 if (curNode == null) { 159 if (curNode == null) {
160 throw new DataModelException("Internal datamodel error: Datamodel tree is not correct"); 160 throw new DataModelException("Internal datamodel error: Datamodel tree is not correct");
161 } 161 }
162 } 162 }
163 - HasResolutionInfo resolutionNode = (HasResolutionInfo) curNode; 163 + YangReferenceResolver resolutionNode = (YangReferenceResolver) curNode;
164 164
165 if (!isPrefixValid(resolutionInfo.getEntityToResolveInfo().getEntityPrefix(), 165 if (!isPrefixValid(resolutionInfo.getEntityToResolveInfo().getEntityPrefix(),
166 resolutionNode)) { 166 resolutionNode)) {
...@@ -176,7 +176,7 @@ public final class DataModelUtils { ...@@ -176,7 +176,7 @@ public final class DataModelUtils {
176 * @param resolutionNode uses/type node which has the prefix with it 176 * @param resolutionNode uses/type node which has the prefix with it
177 * @return whether prefix is valid or not 177 * @return whether prefix is valid or not
178 */ 178 */
179 - private static boolean isPrefixValid(String entityPrefix, HasResolutionInfo resolutionNode) { 179 + private static boolean isPrefixValid(String entityPrefix, YangReferenceResolver resolutionNode) {
180 if (entityPrefix == null) { 180 if (entityPrefix == null) {
181 return true; 181 return true;
182 } 182 }
...@@ -215,7 +215,7 @@ public final class DataModelUtils { ...@@ -215,7 +215,7 @@ public final class DataModelUtils {
215 * @throws DataModelException a violation of data model rules 215 * @throws DataModelException a violation of data model rules
216 */ 216 */
217 public static void resolveLinkingForResolutionList(List<YangResolutionInfo> resolutionList, 217 public static void resolveLinkingForResolutionList(List<YangResolutionInfo> resolutionList,
218 - HasResolutionInfo dataModelRootNode) 218 + YangReferenceResolver dataModelRootNode)
219 throws DataModelException { 219 throws DataModelException {
220 220
221 for (YangResolutionInfo resolutionInfo : resolutionList) { 221 for (YangResolutionInfo resolutionInfo : resolutionList) {
......
...@@ -20,38 +20,42 @@ import org.onosproject.yangutils.datamodel.YangCase; ...@@ -20,38 +20,42 @@ import org.onosproject.yangutils.datamodel.YangCase;
20 import org.onosproject.yangutils.datamodel.YangChoice; 20 import org.onosproject.yangutils.datamodel.YangChoice;
21 import org.onosproject.yangutils.datamodel.YangContainer; 21 import org.onosproject.yangutils.datamodel.YangContainer;
22 import org.onosproject.yangutils.datamodel.YangGrouping; 22 import org.onosproject.yangutils.datamodel.YangGrouping;
23 +import org.onosproject.yangutils.datamodel.YangInput;
23 import org.onosproject.yangutils.datamodel.YangLeaf; 24 import org.onosproject.yangutils.datamodel.YangLeaf;
25 +import org.onosproject.yangutils.datamodel.YangLeafList;
24 import org.onosproject.yangutils.datamodel.YangList; 26 import org.onosproject.yangutils.datamodel.YangList;
25 import org.onosproject.yangutils.datamodel.YangModule; 27 import org.onosproject.yangutils.datamodel.YangModule;
28 +import org.onosproject.yangutils.datamodel.YangNotification;
29 +import org.onosproject.yangutils.datamodel.YangOutput;
30 +import org.onosproject.yangutils.datamodel.YangRpc;
26 import org.onosproject.yangutils.datamodel.YangSubModule; 31 import org.onosproject.yangutils.datamodel.YangSubModule;
32 +import org.onosproject.yangutils.datamodel.YangType;
27 import org.onosproject.yangutils.datamodel.YangTypeDef; 33 import org.onosproject.yangutils.datamodel.YangTypeDef;
28 import org.onosproject.yangutils.datamodel.YangUnion; 34 import org.onosproject.yangutils.datamodel.YangUnion;
29 import org.onosproject.yangutils.datamodel.YangUses; 35 import org.onosproject.yangutils.datamodel.YangUses;
30 -import org.onosproject.yangutils.datamodel.YangNotification; 36 +import org.onosproject.yangutils.translator.exception.TranslatorException;
31 -import org.onosproject.yangutils.datamodel.YangRpc;
32 -import org.onosproject.yangutils.datamodel.YangInput;
33 -import org.onosproject.yangutils.datamodel.YangOutput;
34 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaAugment; 37 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaAugment;
35 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaCase; 38 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaCase;
36 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaChoice; 39 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaChoice;
37 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaContainer; 40 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaContainer;
38 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaEnumeration; 41 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaEnumeration;
39 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaGrouping; 42 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaGrouping;
43 +import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaInput;
40 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaLeaf; 44 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaLeaf;
45 +import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaLeafList;
41 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaList; 46 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaList;
42 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModule; 47 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModule;
48 +import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaNotification;
49 +import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaOutput;
50 +import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaRpc;
43 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaSubModule; 51 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaSubModule;
52 +import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaType;
44 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaTypeDef; 53 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaTypeDef;
45 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaUnion; 54 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaUnion;
46 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaUses; 55 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaUses;
47 -import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaNotification;
48 -import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaRpc;
49 -import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaInput;
50 -import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaOutput;
51 -import org.onosproject.yangutils.translator.exception.TranslatorException;
52 56
53 /** 57 /**
54 - *Represents factory to create data model objects based on the target file type. 58 + * Represents factory to create data model objects based on the target file type.
55 */ 59 */
56 public final class YangDataModelFactory { 60 public final class YangDataModelFactory {
57 61
...@@ -65,7 +69,7 @@ public final class YangDataModelFactory { ...@@ -65,7 +69,7 @@ public final class YangDataModelFactory {
65 * Based on the target language generate the inherited data model node. 69 * Based on the target language generate the inherited data model node.
66 * 70 *
67 * @param targetLanguage target language in which YANG mapping needs to be 71 * @param targetLanguage target language in which YANG mapping needs to be
68 - * generated 72 + * generated
69 * @return the corresponding inherited node based on the target language 73 * @return the corresponding inherited node based on the target language
70 */ 74 */
71 public static YangModule getYangModuleNode(GeneratedLanguage targetLanguage) { 75 public static YangModule getYangModuleNode(GeneratedLanguage targetLanguage) {
...@@ -83,7 +87,7 @@ public final class YangDataModelFactory { ...@@ -83,7 +87,7 @@ public final class YangDataModelFactory {
83 * Returns based on the target language generate the inherited data model node. 87 * Returns based on the target language generate the inherited data model node.
84 * 88 *
85 * @param targetLanguage target language in which YANG mapping needs to be 89 * @param targetLanguage target language in which YANG mapping needs to be
86 - * generated 90 + * generated
87 * @return the corresponding inherited node based on the target language 91 * @return the corresponding inherited node based on the target language
88 */ 92 */
89 public static YangAugment getYangAugmentNode(GeneratedLanguage targetLanguage) { 93 public static YangAugment getYangAugmentNode(GeneratedLanguage targetLanguage) {
...@@ -101,7 +105,7 @@ public final class YangDataModelFactory { ...@@ -101,7 +105,7 @@ public final class YangDataModelFactory {
101 * Returns based on the target language generate the inherited data model node. 105 * Returns based on the target language generate the inherited data model node.
102 * 106 *
103 * @param targetLanguage target language in which YANG mapping needs to be 107 * @param targetLanguage target language in which YANG mapping needs to be
104 - * generated 108 + * generated
105 * @return the corresponding inherited node based on the target language 109 * @return the corresponding inherited node based on the target language
106 */ 110 */
107 public static YangCase getYangCaseNode(GeneratedLanguage targetLanguage) { 111 public static YangCase getYangCaseNode(GeneratedLanguage targetLanguage) {
...@@ -119,7 +123,7 @@ public final class YangDataModelFactory { ...@@ -119,7 +123,7 @@ public final class YangDataModelFactory {
119 * Returns based on the target language generate the inherited data model node. 123 * Returns based on the target language generate the inherited data model node.
120 * 124 *
121 * @param targetLanguage target language in which YANG mapping needs to be 125 * @param targetLanguage target language in which YANG mapping needs to be
122 - * generated 126 + * generated
123 * @return the corresponding inherited node based on the target language 127 * @return the corresponding inherited node based on the target language
124 */ 128 */
125 public static YangChoice getYangChoiceNode(GeneratedLanguage targetLanguage) { 129 public static YangChoice getYangChoiceNode(GeneratedLanguage targetLanguage) {
...@@ -137,7 +141,7 @@ public final class YangDataModelFactory { ...@@ -137,7 +141,7 @@ public final class YangDataModelFactory {
137 * Returns based on the target language generate the inherited data model node. 141 * Returns based on the target language generate the inherited data model node.
138 * 142 *
139 * @param targetLanguage target language in which YANG mapping needs to be 143 * @param targetLanguage target language in which YANG mapping needs to be
140 - * generated 144 + * generated
141 * @return the corresponding inherited node based on the target language 145 * @return the corresponding inherited node based on the target language
142 */ 146 */
143 public static YangContainer getYangContainerNode(GeneratedLanguage targetLanguage) { 147 public static YangContainer getYangContainerNode(GeneratedLanguage targetLanguage) {
...@@ -155,7 +159,7 @@ public final class YangDataModelFactory { ...@@ -155,7 +159,7 @@ public final class YangDataModelFactory {
155 * Returns based on the target language generate the inherited data model node. 159 * Returns based on the target language generate the inherited data model node.
156 * 160 *
157 * @param targetLanguage target language in which YANG mapping needs to be 161 * @param targetLanguage target language in which YANG mapping needs to be
158 - * generated 162 + * generated
159 * @return the corresponding inherited node based on the target language 163 * @return the corresponding inherited node based on the target language
160 */ 164 */
161 public static YangGrouping getYangGroupingNode(GeneratedLanguage targetLanguage) { 165 public static YangGrouping getYangGroupingNode(GeneratedLanguage targetLanguage) {
...@@ -173,7 +177,7 @@ public final class YangDataModelFactory { ...@@ -173,7 +177,7 @@ public final class YangDataModelFactory {
173 * Returns based on the target language generate the inherited data model node. 177 * Returns based on the target language generate the inherited data model node.
174 * 178 *
175 * @param targetLanguage target language in which YANG mapping needs to be 179 * @param targetLanguage target language in which YANG mapping needs to be
176 - * generated 180 + * generated
177 * @return the corresponding inherited node based on the target language 181 * @return the corresponding inherited node based on the target language
178 */ 182 */
179 public static YangList getYangListNode(GeneratedLanguage targetLanguage) { 183 public static YangList getYangListNode(GeneratedLanguage targetLanguage) {
...@@ -191,7 +195,7 @@ public final class YangDataModelFactory { ...@@ -191,7 +195,7 @@ public final class YangDataModelFactory {
191 * Returns based on the target language generate the inherited data model node. 195 * Returns based on the target language generate the inherited data model node.
192 * 196 *
193 * @param targetLanguage target language in which YANG mapping needs to be 197 * @param targetLanguage target language in which YANG mapping needs to be
194 - * generated 198 + * generated
195 * @return the corresponding inherited node based on the target language 199 * @return the corresponding inherited node based on the target language
196 */ 200 */
197 public static YangSubModule getYangSubModuleNode(GeneratedLanguage targetLanguage) { 201 public static YangSubModule getYangSubModuleNode(GeneratedLanguage targetLanguage) {
...@@ -209,7 +213,7 @@ public final class YangDataModelFactory { ...@@ -209,7 +213,7 @@ public final class YangDataModelFactory {
209 * Returns based on the target language generate the inherited data model node. 213 * Returns based on the target language generate the inherited data model node.
210 * 214 *
211 * @param targetLanguage target language in which YANG mapping needs to be 215 * @param targetLanguage target language in which YANG mapping needs to be
212 - * generated 216 + * generated
213 * @return the corresponding inherited node based on the target language 217 * @return the corresponding inherited node based on the target language
214 */ 218 */
215 public static YangTypeDef getYangTypeDefNode(GeneratedLanguage targetLanguage) { 219 public static YangTypeDef getYangTypeDefNode(GeneratedLanguage targetLanguage) {
...@@ -227,7 +231,7 @@ public final class YangDataModelFactory { ...@@ -227,7 +231,7 @@ public final class YangDataModelFactory {
227 * Returns based on the target language generate the inherited data model node. 231 * Returns based on the target language generate the inherited data model node.
228 * 232 *
229 * @param targetLanguage target language in which YANG mapping needs to be 233 * @param targetLanguage target language in which YANG mapping needs to be
230 - * generated 234 + * generated
231 * @return the corresponding inherited node based on the target language 235 * @return the corresponding inherited node based on the target language
232 */ 236 */
233 public static YangUnion getYangUnionNode(GeneratedLanguage targetLanguage) { 237 public static YangUnion getYangUnionNode(GeneratedLanguage targetLanguage) {
...@@ -245,7 +249,7 @@ public final class YangDataModelFactory { ...@@ -245,7 +249,7 @@ public final class YangDataModelFactory {
245 * Returns based on the target language generate the inherited data model node. 249 * Returns based on the target language generate the inherited data model node.
246 * 250 *
247 * @param targetLanguage target language in which YANG mapping needs to be 251 * @param targetLanguage target language in which YANG mapping needs to be
248 - * generated 252 + * generated
249 * @return the corresponding inherited node based on the target language 253 * @return the corresponding inherited node based on the target language
250 */ 254 */
251 public static YangUses getYangUsesNode(GeneratedLanguage targetLanguage) { 255 public static YangUses getYangUsesNode(GeneratedLanguage targetLanguage) {
...@@ -263,7 +267,7 @@ public final class YangDataModelFactory { ...@@ -263,7 +267,7 @@ public final class YangDataModelFactory {
263 * Returns based on the target language generate the inherited data model node. 267 * Returns based on the target language generate the inherited data model node.
264 * 268 *
265 * @param targetLanguage target language in which YANG mapping needs to be 269 * @param targetLanguage target language in which YANG mapping needs to be
266 - * generated 270 + * generated
267 * @return the corresponding inherited node based on the target language 271 * @return the corresponding inherited node based on the target language
268 */ 272 */
269 public static YangNotification getYangNotificationNode(GeneratedLanguage targetLanguage) { 273 public static YangNotification getYangNotificationNode(GeneratedLanguage targetLanguage) {
...@@ -281,7 +285,7 @@ public final class YangDataModelFactory { ...@@ -281,7 +285,7 @@ public final class YangDataModelFactory {
281 * Returns based on the target language generate the inherited data model node. 285 * Returns based on the target language generate the inherited data model node.
282 * 286 *
283 * @param targetLanguage target language in which YANG mapping needs to be 287 * @param targetLanguage target language in which YANG mapping needs to be
284 - * generated 288 + * generated
285 * @return the corresponding inherited node based on the target language 289 * @return the corresponding inherited node based on the target language
286 */ 290 */
287 public static YangLeaf getYangLeaf(GeneratedLanguage targetLanguage) { 291 public static YangLeaf getYangLeaf(GeneratedLanguage targetLanguage) {
...@@ -294,11 +298,30 @@ public final class YangDataModelFactory { ...@@ -294,11 +298,30 @@ public final class YangDataModelFactory {
294 } 298 }
295 } 299 }
296 } 300 }
301 +
302 + /**
303 + * Returns based on the target language generate the inherited data model node.
304 + *
305 + * @param targetLanguage target language in which YANG mapping needs to be
306 + * generated
307 + * @return the corresponding inherited node based on the target language
308 + */
309 + public static YangLeafList getYangLeafList(GeneratedLanguage targetLanguage) {
310 + switch (targetLanguage) {
311 + case JAVA_GENERATION: {
312 + return new YangJavaLeafList();
313 + }
314 + default: {
315 + throw new RuntimeException("Only YANG to Java is supported.");
316 + }
317 + }
318 + }
319 +
297 /** 320 /**
298 * Returns based on the target language generate the inherited data model node. 321 * Returns based on the target language generate the inherited data model node.
299 * 322 *
300 * @param targetLanguage target language in which YANG mapping needs to be 323 * @param targetLanguage target language in which YANG mapping needs to be
301 - * generated 324 + * generated
302 * @return the corresponding inherited node based on the target language 325 * @return the corresponding inherited node based on the target language
303 */ 326 */
304 public static YangRpc getYangRpcNode(GeneratedLanguage targetLanguage) { 327 public static YangRpc getYangRpcNode(GeneratedLanguage targetLanguage) {
...@@ -316,7 +339,7 @@ public final class YangDataModelFactory { ...@@ -316,7 +339,7 @@ public final class YangDataModelFactory {
316 * Returns based on the target language generate the inherited data model node. 339 * Returns based on the target language generate the inherited data model node.
317 * 340 *
318 * @param targetLanguage target language in which YANG mapping needs to be 341 * @param targetLanguage target language in which YANG mapping needs to be
319 - * generated 342 + * generated
320 * @return the corresponding inherited node based on the target language 343 * @return the corresponding inherited node based on the target language
321 */ 344 */
322 public static YangInput getYangInputNode(GeneratedLanguage targetLanguage) { 345 public static YangInput getYangInputNode(GeneratedLanguage targetLanguage) {
...@@ -334,7 +357,7 @@ public final class YangDataModelFactory { ...@@ -334,7 +357,7 @@ public final class YangDataModelFactory {
334 * Returns based on the target language generate the inherited data model node. 357 * Returns based on the target language generate the inherited data model node.
335 * 358 *
336 * @param targetLanguage target language in which YANG mapping needs to be 359 * @param targetLanguage target language in which YANG mapping needs to be
337 - * generated 360 + * generated
338 * @return the corresponding inherited node based on the target language 361 * @return the corresponding inherited node based on the target language
339 */ 362 */
340 public static YangOutput getYangOutputNode(GeneratedLanguage targetLanguage) { 363 public static YangOutput getYangOutputNode(GeneratedLanguage targetLanguage) {
...@@ -352,7 +375,7 @@ public final class YangDataModelFactory { ...@@ -352,7 +375,7 @@ public final class YangDataModelFactory {
352 * Returns based on the target language generate the inherited data model node. 375 * Returns based on the target language generate the inherited data model node.
353 * 376 *
354 * @param targetLanguage target language in which YANG mapping needs to be 377 * @param targetLanguage target language in which YANG mapping needs to be
355 - * generated 378 + * generated
356 * @return the corresponding inherited node based on the target language 379 * @return the corresponding inherited node based on the target language
357 */ 380 */
358 public static YangJavaEnumeration getYangEnumerationNode(GeneratedLanguage targetLanguage) { 381 public static YangJavaEnumeration getYangEnumerationNode(GeneratedLanguage targetLanguage) {
...@@ -365,4 +388,21 @@ public final class YangDataModelFactory { ...@@ -365,4 +388,21 @@ public final class YangDataModelFactory {
365 } 388 }
366 } 389 }
367 } 390 }
391 + /**
392 + * Returns based on the target language generate the inherited data model node.
393 + *
394 + * @param targetLanguage target language in which YANG mapping needs to be
395 + * generated
396 + * @return the corresponding inherited node based on the target language
397 + */
398 + public static YangType getYangType(GeneratedLanguage targetLanguage) {
399 + switch (targetLanguage) {
400 + case JAVA_GENERATION: {
401 + return new YangJavaType();
402 + }
403 + default: {
404 + throw new RuntimeException("Only YANG to Java is supported.");
405 + }
406 + }
407 + }
368 } 408 }
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
17 package org.onosproject.yangutils.linker; 17 package org.onosproject.yangutils.linker;
18 18
19 import java.util.Map; 19 import java.util.Map;
20 -import org.onosproject.yangutils.datamodel.HasResolutionInfo; 20 +import org.onosproject.yangutils.datamodel.YangReferenceResolver;
21 21
22 /** 22 /**
23 * Abstraction of entity which provides linking service of YANG files. 23 * Abstraction of entity which provides linking service of YANG files.
...@@ -30,6 +30,6 @@ public interface YangLinker { ...@@ -30,6 +30,6 @@ public interface YangLinker {
30 * 30 *
31 * @param fileMapEntry map entry for which resolution is to be done 31 * @param fileMapEntry map entry for which resolution is to be done
32 * @param yangFilesMap map of dependent file and resolution information*/ 32 * @param yangFilesMap map of dependent file and resolution information*/
33 - void resolveDependencies(Map.Entry<String, HasResolutionInfo> fileMapEntry, Map<String, 33 + void resolveDependencies(Map.Entry<String, YangReferenceResolver> fileMapEntry, Map<String,
34 - HasResolutionInfo> yangFilesMap); 34 + YangReferenceResolver> yangFilesMap);
35 } 35 }
......
...@@ -52,8 +52,8 @@ import org.onosproject.yangutils.parser.impl.listeners.MandatoryListener; ...@@ -52,8 +52,8 @@ import org.onosproject.yangutils.parser.impl.listeners.MandatoryListener;
52 import org.onosproject.yangutils.parser.impl.listeners.MaxElementsListener; 52 import org.onosproject.yangutils.parser.impl.listeners.MaxElementsListener;
53 import org.onosproject.yangutils.parser.impl.listeners.MinElementsListener; 53 import org.onosproject.yangutils.parser.impl.listeners.MinElementsListener;
54 import org.onosproject.yangutils.parser.impl.listeners.ModuleListener; 54 import org.onosproject.yangutils.parser.impl.listeners.ModuleListener;
55 -import org.onosproject.yangutils.parser.impl.listeners.NamespaceListener;
56 import org.onosproject.yangutils.parser.impl.listeners.NotificationListener; 55 import org.onosproject.yangutils.parser.impl.listeners.NotificationListener;
56 +import org.onosproject.yangutils.parser.impl.listeners.NamespaceListener;
57 import org.onosproject.yangutils.parser.impl.listeners.OrganizationListener; 57 import org.onosproject.yangutils.parser.impl.listeners.OrganizationListener;
58 import org.onosproject.yangutils.parser.impl.listeners.OutputListener; 58 import org.onosproject.yangutils.parser.impl.listeners.OutputListener;
59 import org.onosproject.yangutils.parser.impl.listeners.PatternRestrictionListener; 59 import org.onosproject.yangutils.parser.impl.listeners.PatternRestrictionListener;
......
...@@ -96,10 +96,10 @@ public final class BitsListener { ...@@ -96,10 +96,10 @@ public final class BitsListener {
96 96
97 switch (tmpData.getYangConstructType()) { 97 switch (tmpData.getYangConstructType()) {
98 case LEAF_DATA: 98 case LEAF_DATA:
99 - bitsNode.setBitsName(((YangLeaf) tmpData).getLeafName()); 99 + bitsNode.setBitsName(((YangLeaf) tmpData).getName());
100 break; 100 break;
101 case LEAF_LIST_DATA: 101 case LEAF_LIST_DATA:
102 - bitsNode.setBitsName(((YangLeafList) tmpData).getLeafName()); 102 + bitsNode.setBitsName(((YangLeafList) tmpData).getName());
103 break; 103 break;
104 // TODO typedef, union, deviate. 104 // TODO typedef, union, deviate.
105 default: 105 default:
......
...@@ -112,7 +112,7 @@ public final class EnumerationListener { ...@@ -112,7 +112,7 @@ public final class EnumerationListener {
112 switch (tmpData.getYangConstructType()) { 112 switch (tmpData.getYangConstructType()) {
113 case LEAF_DATA: 113 case LEAF_DATA:
114 // Set the name of enumeration same as leaf. 114 // Set the name of enumeration same as leaf.
115 - enumerationNode.setName(((YangLeaf) tmpData).getLeafName() + ENUMERATION_CLASS_SUFFIX); 115 + enumerationNode.setName(((YangLeaf) tmpData).getName() + ENUMERATION_CLASS_SUFFIX);
116 // Pop the stack entry to obtain the parent YANG node. 116 // Pop the stack entry to obtain the parent YANG node.
117 Parsable leaf = listener.getParsedDataStack().pop(); 117 Parsable leaf = listener.getParsedDataStack().pop();
118 // Add the enumeration node to the parent holder of leaf. 118 // Add the enumeration node to the parent holder of leaf.
...@@ -122,7 +122,7 @@ public final class EnumerationListener { ...@@ -122,7 +122,7 @@ public final class EnumerationListener {
122 break; 122 break;
123 case LEAF_LIST_DATA: 123 case LEAF_LIST_DATA:
124 // Set the name of enumeration same as leaf list. 124 // Set the name of enumeration same as leaf list.
125 - enumerationNode.setName(((YangLeafList) tmpData).getLeafName() + ENUMERATION_CLASS_SUFFIX); 125 + enumerationNode.setName(((YangLeafList) tmpData).getName() + ENUMERATION_CLASS_SUFFIX);
126 // Pop the stack entry to obtain the parent YANG node. 126 // Pop the stack entry to obtain the parent YANG node.
127 Parsable leafList = listener.getParsedDataStack().pop(); 127 Parsable leafList = listener.getParsedDataStack().pop();
128 // Add the enumeration node to the parent holder of leaf. 128 // Add the enumeration node to the parent holder of leaf.
......
...@@ -46,10 +46,12 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorTyp ...@@ -46,10 +46,12 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorTyp
46 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.getValidIdentifier; 46 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.getValidIdentifier;
47 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; 47 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
48 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateCardinalityMaxOne; 48 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateCardinalityMaxOne;
49 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateMutuallyExclusiveChilds;
49 import static org.onosproject.yangutils.utils.YangConstructType.DESCRIPTION_DATA; 50 import static org.onosproject.yangutils.utils.YangConstructType.DESCRIPTION_DATA;
50 import static org.onosproject.yangutils.utils.YangConstructType.GROUPING_DATA; 51 import static org.onosproject.yangutils.utils.YangConstructType.GROUPING_DATA;
51 import static org.onosproject.yangutils.utils.YangConstructType.REFERENCE_DATA; 52 import static org.onosproject.yangutils.utils.YangConstructType.REFERENCE_DATA;
52 import static org.onosproject.yangutils.utils.YangConstructType.STATUS_DATA; 53 import static org.onosproject.yangutils.utils.YangConstructType.STATUS_DATA;
54 +import static org.onosproject.yangutils.utils.YangConstructType.TYPEDEF_DATA;
53 55
54 /* 56 /*
55 * Reference: RFC6020 and YANG ANTLR Grammar 57 * Reference: RFC6020 and YANG ANTLR Grammar
...@@ -166,5 +168,7 @@ public final class GroupingListener { ...@@ -166,5 +168,7 @@ public final class GroupingListener {
166 validateCardinalityMaxOne(ctx.descriptionStatement(), DESCRIPTION_DATA, GROUPING_DATA, 168 validateCardinalityMaxOne(ctx.descriptionStatement(), DESCRIPTION_DATA, GROUPING_DATA,
167 ctx.identifier().getText()); 169 ctx.identifier().getText());
168 validateCardinalityMaxOne(ctx.referenceStatement(), REFERENCE_DATA, GROUPING_DATA, ctx.identifier().getText()); 170 validateCardinalityMaxOne(ctx.referenceStatement(), REFERENCE_DATA, GROUPING_DATA, ctx.identifier().getText());
171 + validateMutuallyExclusiveChilds(ctx.typedefStatement(), TYPEDEF_DATA, ctx.groupingStatement(), GROUPING_DATA,
172 + GROUPING_DATA, ctx.identifier().getText());
169 } 173 }
170 } 174 }
......
...@@ -29,15 +29,15 @@ import static org.onosproject.yangutils.datamodel.utils.GeneratedLanguage.JAVA_G ...@@ -29,15 +29,15 @@ import static org.onosproject.yangutils.datamodel.utils.GeneratedLanguage.JAVA_G
29 import static org.onosproject.yangutils.datamodel.utils.YangDataModelFactory.getYangInputNode; 29 import static org.onosproject.yangutils.datamodel.utils.YangDataModelFactory.getYangInputNode;
30 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; 30 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
31 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT; 31 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT;
32 -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructExtendedListenerErrorMessage; 32 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction
33 -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; 33 + .constructExtendedListenerErrorMessage;
34 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction
35 + .constructListenerErrorMessage;
34 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; 36 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER;
35 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER; 37 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER;
36 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; 38 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
37 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.UNHANDLED_PARSED_DATA; 39 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.UNHANDLED_PARSED_DATA;
38 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; 40 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
39 -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateCardinalityNonZero;
40 -import static org.onosproject.yangutils.utils.YangConstructType.DATA_DEF_DATA;
41 import static org.onosproject.yangutils.utils.YangConstructType.INPUT_DATA; 41 import static org.onosproject.yangutils.utils.YangConstructType.INPUT_DATA;
42 42
43 /* 43 /*
...@@ -80,17 +80,14 @@ public final class InputListener { ...@@ -80,17 +80,14 @@ public final class InputListener {
80 * (input), performs validation and updates the data model tree. 80 * (input), performs validation and updates the data model tree.
81 * 81 *
82 * @param listener listener's object 82 * @param listener listener's object
83 - * @param ctx context object of the grammar rule 83 + * @param ctx context object of the grammar rule
84 */ 84 */
85 public static void processInputEntry(TreeWalkListener listener, 85 public static void processInputEntry(TreeWalkListener listener,
86 - GeneratedYangParser.InputStatementContext ctx) { 86 + GeneratedYangParser.InputStatementContext ctx) {
87 87
88 // Check for stack to be non empty. 88 // Check for stack to be non empty.
89 checkStackIsNotEmpty(listener, MISSING_HOLDER, INPUT_DATA, "", ENTRY); 89 checkStackIsNotEmpty(listener, MISSING_HOLDER, INPUT_DATA, "", ENTRY);
90 90
91 - validateCardinalityNonZero(ctx.dataDefStatement(), DATA_DEF_DATA,
92 - INPUT_DATA, "", ctx);
93 -
94 Parsable curData = listener.getParsedDataStack().peek(); 91 Parsable curData = listener.getParsedDataStack().peek();
95 if (curData instanceof YangRpc) { 92 if (curData instanceof YangRpc) {
96 93
...@@ -115,10 +112,10 @@ public final class InputListener { ...@@ -115,10 +112,10 @@ public final class InputListener {
115 * validations and updates the data model tree. 112 * validations and updates the data model tree.
116 * 113 *
117 * @param listener listener's object 114 * @param listener listener's object
118 - * @param ctx context object of the grammar rule 115 + * @param ctx context object of the grammar rule
119 */ 116 */
120 public static void processInputExit(TreeWalkListener listener, 117 public static void processInputExit(TreeWalkListener listener,
121 - GeneratedYangParser.InputStatementContext ctx) { 118 + GeneratedYangParser.InputStatementContext ctx) {
122 119
123 // Check for stack to be non empty. 120 // Check for stack to be non empty.
124 checkStackIsNotEmpty(listener, MISSING_HOLDER, INPUT_DATA, "", EXIT); 121 checkStackIsNotEmpty(listener, MISSING_HOLDER, INPUT_DATA, "", EXIT);
......
...@@ -23,10 +23,13 @@ import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; ...@@ -23,10 +23,13 @@ import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser;
23 import org.onosproject.yangutils.parser.exceptions.ParserException; 23 import org.onosproject.yangutils.parser.exceptions.ParserException;
24 import org.onosproject.yangutils.parser.impl.TreeWalkListener; 24 import org.onosproject.yangutils.parser.impl.TreeWalkListener;
25 25
26 +import static org.onosproject.yangutils.datamodel.utils.GeneratedLanguage.JAVA_GENERATION;
27 +import static org.onosproject.yangutils.datamodel.utils.YangDataModelFactory.getYangLeafList;
26 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerCollisionDetector.detectCollidingChildUtil; 28 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerCollisionDetector.detectCollidingChildUtil;
27 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; 29 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
28 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT; 30 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT;
29 -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; 31 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction
32 + .constructListenerErrorMessage;
30 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; 33 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER;
31 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER; 34 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER;
32 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; 35 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
...@@ -106,7 +109,7 @@ public final class LeafListListener { ...@@ -106,7 +109,7 @@ public final class LeafListListener {
106 int charPositionInLine = ctx.getStart().getCharPositionInLine(); 109 int charPositionInLine = ctx.getStart().getCharPositionInLine();
107 detectCollidingChildUtil(listener, line, charPositionInLine, identifier, LEAF_LIST_DATA); 110 detectCollidingChildUtil(listener, line, charPositionInLine, identifier, LEAF_LIST_DATA);
108 111
109 - YangLeafList leafList = new YangLeafList(); 112 + YangLeafList leafList = getYangLeafList(JAVA_GENERATION);
110 leafList.setLeafName(identifier); 113 leafList.setLeafName(identifier);
111 114
112 Parsable tmpData = listener.getParsedDataStack().peek(); 115 Parsable tmpData = listener.getParsedDataStack().peek();
...@@ -117,7 +120,7 @@ public final class LeafListListener { ...@@ -117,7 +120,7 @@ public final class LeafListListener {
117 leaves.addLeafList(leafList); 120 leaves.addLeafList(leafList);
118 } else { 121 } else {
119 throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, LEAF_LIST_DATA, 122 throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, LEAF_LIST_DATA,
120 - ctx.identifier().getText(), ENTRY)); 123 + ctx.identifier().getText(), ENTRY));
121 } 124 }
122 listener.getParsedDataStack().push(leafList); 125 listener.getParsedDataStack().push(leafList);
123 } 126 }
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
16 16
17 package org.onosproject.yangutils.parser.impl.listeners; 17 package org.onosproject.yangutils.parser.impl.listeners;
18 18
19 -import org.onosproject.yangutils.datamodel.HasResolutionInfo; 19 +import org.onosproject.yangutils.datamodel.YangReferenceResolver;
20 import org.onosproject.yangutils.datamodel.YangModule; 20 import org.onosproject.yangutils.datamodel.YangModule;
21 import org.onosproject.yangutils.datamodel.YangRevision; 21 import org.onosproject.yangutils.datamodel.YangRevision;
22 import org.onosproject.yangutils.datamodel.exceptions.DataModelException; 22 import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
...@@ -116,7 +116,7 @@ public final class ModuleListener { ...@@ -116,7 +116,7 @@ public final class ModuleListener {
116 ctx.identifier().getText(), EXIT)); 116 ctx.identifier().getText(), EXIT));
117 } 117 }
118 try { 118 try {
119 - ((HasResolutionInfo) listener.getParsedDataStack().peek()).resolveSelfFileLinking(); 119 + ((YangReferenceResolver) listener.getParsedDataStack().peek()).resolveSelfFileLinking();
120 } catch (DataModelException e) { 120 } catch (DataModelException e) {
121 ParserException parserException = new ParserException(e.getMessage()); 121 ParserException parserException = new ParserException(e.getMessage());
122 parserException.setLine(e.getLineNumber()); 122 parserException.setLine(e.getLineNumber());
......
...@@ -40,10 +40,13 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorTyp ...@@ -40,10 +40,13 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorTyp
40 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.getValidIdentifier; 40 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.getValidIdentifier;
41 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; 41 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
42 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateCardinalityMaxOne; 42 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateCardinalityMaxOne;
43 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateMutuallyExclusiveChilds;
43 import static org.onosproject.yangutils.utils.YangConstructType.DESCRIPTION_DATA; 44 import static org.onosproject.yangutils.utils.YangConstructType.DESCRIPTION_DATA;
45 +import static org.onosproject.yangutils.utils.YangConstructType.GROUPING_DATA;
44 import static org.onosproject.yangutils.utils.YangConstructType.NOTIFICATION_DATA; 46 import static org.onosproject.yangutils.utils.YangConstructType.NOTIFICATION_DATA;
45 import static org.onosproject.yangutils.utils.YangConstructType.REFERENCE_DATA; 47 import static org.onosproject.yangutils.utils.YangConstructType.REFERENCE_DATA;
46 import static org.onosproject.yangutils.utils.YangConstructType.STATUS_DATA; 48 import static org.onosproject.yangutils.utils.YangConstructType.STATUS_DATA;
49 +import static org.onosproject.yangutils.utils.YangConstructType.TYPEDEF_DATA;
47 50
48 /* 51 /*
49 * Reference: RFC6020 and YANG ANTLR Grammar 52 * Reference: RFC6020 and YANG ANTLR Grammar
...@@ -156,5 +159,7 @@ public final class NotificationListener { ...@@ -156,5 +159,7 @@ public final class NotificationListener {
156 ctx.identifier().getText()); 159 ctx.identifier().getText());
157 validateCardinalityMaxOne(ctx.referenceStatement(), REFERENCE_DATA, NOTIFICATION_DATA, 160 validateCardinalityMaxOne(ctx.referenceStatement(), REFERENCE_DATA, NOTIFICATION_DATA,
158 ctx.identifier().getText()); 161 ctx.identifier().getText());
162 + validateMutuallyExclusiveChilds(ctx.typedefStatement(), TYPEDEF_DATA, ctx.groupingStatement(), GROUPING_DATA,
163 + NOTIFICATION_DATA, ctx.identifier().getText());
159 } 164 }
160 } 165 }
......
...@@ -29,15 +29,15 @@ import static org.onosproject.yangutils.datamodel.utils.GeneratedLanguage.JAVA_G ...@@ -29,15 +29,15 @@ import static org.onosproject.yangutils.datamodel.utils.GeneratedLanguage.JAVA_G
29 import static org.onosproject.yangutils.datamodel.utils.YangDataModelFactory.getYangOutputNode; 29 import static org.onosproject.yangutils.datamodel.utils.YangDataModelFactory.getYangOutputNode;
30 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; 30 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
31 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT; 31 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT;
32 -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructExtendedListenerErrorMessage; 32 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction
33 -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; 33 + .constructExtendedListenerErrorMessage;
34 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction
35 + .constructListenerErrorMessage;
34 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; 36 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER;
35 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER; 37 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER;
36 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; 38 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
37 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.UNHANDLED_PARSED_DATA; 39 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.UNHANDLED_PARSED_DATA;
38 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; 40 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
39 -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateCardinalityNonZero;
40 -import static org.onosproject.yangutils.utils.YangConstructType.DATA_DEF_DATA;
41 import static org.onosproject.yangutils.utils.YangConstructType.OUTPUT_DATA; 41 import static org.onosproject.yangutils.utils.YangConstructType.OUTPUT_DATA;
42 42
43 /* 43 /*
...@@ -80,17 +80,14 @@ public final class OutputListener { ...@@ -80,17 +80,14 @@ public final class OutputListener {
80 * (output), performs validation and updates the data model tree. 80 * (output), performs validation and updates the data model tree.
81 * 81 *
82 * @param listener listener's object 82 * @param listener listener's object
83 - * @param ctx context object of the grammar rule 83 + * @param ctx context object of the grammar rule
84 */ 84 */
85 public static void processOutputEntry(TreeWalkListener listener, 85 public static void processOutputEntry(TreeWalkListener listener,
86 - GeneratedYangParser.OutputStatementContext ctx) { 86 + GeneratedYangParser.OutputStatementContext ctx) {
87 87
88 // Check for stack to be non empty. 88 // Check for stack to be non empty.
89 checkStackIsNotEmpty(listener, MISSING_HOLDER, OUTPUT_DATA, "", ENTRY); 89 checkStackIsNotEmpty(listener, MISSING_HOLDER, OUTPUT_DATA, "", ENTRY);
90 90
91 - validateCardinalityNonZero(ctx.dataDefStatement(), DATA_DEF_DATA,
92 - OUTPUT_DATA, "", ctx);
93 -
94 Parsable curData = listener.getParsedDataStack().peek(); 91 Parsable curData = listener.getParsedDataStack().peek();
95 if (curData instanceof YangRpc) { 92 if (curData instanceof YangRpc) {
96 93
...@@ -115,10 +112,10 @@ public final class OutputListener { ...@@ -115,10 +112,10 @@ public final class OutputListener {
115 * validations and updates the data model tree. 112 * validations and updates the data model tree.
116 * 113 *
117 * @param listener listener's object 114 * @param listener listener's object
118 - * @param ctx context object of the grammar rule 115 + * @param ctx context object of the grammar rule
119 */ 116 */
120 public static void processOutputExit(TreeWalkListener listener, 117 public static void processOutputExit(TreeWalkListener listener,
121 - GeneratedYangParser.OutputStatementContext ctx) { 118 + GeneratedYangParser.OutputStatementContext ctx) {
122 119
123 // Check for stack to be non empty. 120 // Check for stack to be non empty.
124 checkStackIsNotEmpty(listener, MISSING_HOLDER, OUTPUT_DATA, "", EXIT); 121 checkStackIsNotEmpty(listener, MISSING_HOLDER, OUTPUT_DATA, "", EXIT);
...@@ -129,4 +126,4 @@ public final class OutputListener { ...@@ -129,4 +126,4 @@ public final class OutputListener {
129 } 126 }
130 listener.getParsedDataStack().pop(); 127 listener.getParsedDataStack().pop();
131 } 128 }
132 -}
...\ No newline at end of file ...\ No newline at end of file
129 +}
......
...@@ -37,9 +37,12 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorTyp ...@@ -37,9 +37,12 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorTyp
37 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.getValidIdentifier; 37 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.getValidIdentifier;
38 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; 38 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
39 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateCardinalityMaxOne; 39 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateCardinalityMaxOne;
40 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateMutuallyExclusiveChilds;
40 import static org.onosproject.yangutils.utils.YangConstructType.RPC_DATA; 41 import static org.onosproject.yangutils.utils.YangConstructType.RPC_DATA;
41 import static org.onosproject.yangutils.utils.YangConstructType.INPUT_DATA; 42 import static org.onosproject.yangutils.utils.YangConstructType.INPUT_DATA;
42 import static org.onosproject.yangutils.utils.YangConstructType.OUTPUT_DATA; 43 import static org.onosproject.yangutils.utils.YangConstructType.OUTPUT_DATA;
44 +import static org.onosproject.yangutils.utils.YangConstructType.TYPEDEF_DATA;
45 +import static org.onosproject.yangutils.utils.YangConstructType.GROUPING_DATA;
43 import static org.onosproject.yangutils.utils.YangConstructType.STATUS_DATA; 46 import static org.onosproject.yangutils.utils.YangConstructType.STATUS_DATA;
44 import static org.onosproject.yangutils.utils.YangConstructType.REFERENCE_DATA; 47 import static org.onosproject.yangutils.utils.YangConstructType.REFERENCE_DATA;
45 import static org.onosproject.yangutils.utils.YangConstructType.DESCRIPTION_DATA; 48 import static org.onosproject.yangutils.utils.YangConstructType.DESCRIPTION_DATA;
...@@ -154,6 +157,8 @@ public final class RpcListener { ...@@ -154,6 +157,8 @@ public final class RpcListener {
154 validateCardinalityMaxOne(ctx.referenceStatement(), REFERENCE_DATA, RPC_DATA, ctx.identifier().getText()); 157 validateCardinalityMaxOne(ctx.referenceStatement(), REFERENCE_DATA, RPC_DATA, ctx.identifier().getText());
155 validateCardinalityMaxOne(ctx.inputStatement(), INPUT_DATA, RPC_DATA, ctx.identifier().getText()); 158 validateCardinalityMaxOne(ctx.inputStatement(), INPUT_DATA, RPC_DATA, ctx.identifier().getText());
156 validateCardinalityMaxOne(ctx.outputStatement(), OUTPUT_DATA, RPC_DATA, ctx.identifier().getText()); 159 validateCardinalityMaxOne(ctx.outputStatement(), OUTPUT_DATA, RPC_DATA, ctx.identifier().getText());
160 + validateMutuallyExclusiveChilds(ctx.typedefStatement(), TYPEDEF_DATA, ctx.groupingStatement(), GROUPING_DATA,
161 + RPC_DATA, ctx.identifier().getText());
157 } 162 }
158 163
159 } 164 }
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
16 16
17 package org.onosproject.yangutils.parser.impl.listeners; 17 package org.onosproject.yangutils.parser.impl.listeners;
18 18
19 -import org.onosproject.yangutils.datamodel.HasResolutionInfo; 19 +import org.onosproject.yangutils.datamodel.YangReferenceResolver;
20 import org.onosproject.yangutils.datamodel.YangRevision; 20 import org.onosproject.yangutils.datamodel.YangRevision;
21 import org.onosproject.yangutils.datamodel.YangSubModule; 21 import org.onosproject.yangutils.datamodel.YangSubModule;
22 import org.onosproject.yangutils.datamodel.exceptions.DataModelException; 22 import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
...@@ -121,7 +121,7 @@ public final class SubModuleListener { ...@@ -121,7 +121,7 @@ public final class SubModuleListener {
121 ctx.identifier().getText(), EXIT)); 121 ctx.identifier().getText(), EXIT));
122 } 122 }
123 try { 123 try {
124 - ((HasResolutionInfo) listener.getParsedDataStack().peek()).resolveSelfFileLinking(); 124 + ((YangReferenceResolver) listener.getParsedDataStack().peek()).resolveSelfFileLinking();
125 } catch (DataModelException e) { 125 } catch (DataModelException e) {
126 ParserException parserException = new ParserException(e.getMessage()); 126 ParserException parserException = new ParserException(e.getMessage());
127 parserException.setLine(e.getLineNumber()); 127 parserException.setLine(e.getLineNumber());
......
...@@ -34,6 +34,8 @@ import org.onosproject.yangutils.parser.impl.TreeWalkListener; ...@@ -34,6 +34,8 @@ import org.onosproject.yangutils.parser.impl.TreeWalkListener;
34 34
35 import static org.onosproject.yangutils.datamodel.ResolvableStatus.UNRESOLVED; 35 import static org.onosproject.yangutils.datamodel.ResolvableStatus.UNRESOLVED;
36 import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.addResolutionInfo; 36 import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.addResolutionInfo;
37 +import static org.onosproject.yangutils.datamodel.utils.GeneratedLanguage.JAVA_GENERATION;
38 +import static org.onosproject.yangutils.datamodel.utils.YangDataModelFactory.getYangType;
37 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; 39 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
38 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT; 40 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT;
39 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction 41 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction
...@@ -95,7 +97,7 @@ public final class TypeListener { ...@@ -95,7 +97,7 @@ public final class TypeListener {
95 YangDataTypes yangDataTypes = YangDataTypes.getType(ctx.string().getText()); 97 YangDataTypes yangDataTypes = YangDataTypes.getType(ctx.string().getText());
96 98
97 // Create YANG type object and fill the values. 99 // Create YANG type object and fill the values.
98 - YangType<?> type = new YangType(); 100 + YangType<?> type = getYangType(JAVA_GENERATION);
99 type.setNodeIdentifier(nodeIdentifier); 101 type.setNodeIdentifier(nodeIdentifier);
100 type.setDataType(yangDataTypes); 102 type.setDataType(yangDataTypes);
101 103
...@@ -253,7 +255,7 @@ public final class TypeListener { ...@@ -253,7 +255,7 @@ public final class TypeListener {
253 * @param ctx context object of the grammar rule 255 * @param ctx context object of the grammar rule
254 */ 256 */
255 private static void addToResolutionList(YangResolutionInfo<YangType> resolutionInfo, 257 private static void addToResolutionList(YangResolutionInfo<YangType> resolutionInfo,
256 - GeneratedYangParser.TypeStatementContext ctx) { 258 + GeneratedYangParser.TypeStatementContext ctx) {
257 try { 259 try {
258 addResolutionInfo(resolutionInfo); 260 addResolutionInfo(resolutionInfo);
259 } catch (DataModelException e) { 261 } catch (DataModelException e) {
......
...@@ -108,7 +108,7 @@ public final class UnionListener { ...@@ -108,7 +108,7 @@ public final class UnionListener {
108 switch (tmpData.getYangConstructType()) { 108 switch (tmpData.getYangConstructType()) {
109 case LEAF_DATA: 109 case LEAF_DATA:
110 // Set the name of union same as leaf. 110 // Set the name of union same as leaf.
111 - unionNode.setName(((YangLeaf) tmpData).getLeafName() + UNION_CLASS_SUFFIX); 111 + unionNode.setName(((YangLeaf) tmpData).getName() + UNION_CLASS_SUFFIX);
112 // Pop the stack entry to obtain the parent YANG node. 112 // Pop the stack entry to obtain the parent YANG node.
113 Parsable leaf = listener.getParsedDataStack().pop(); 113 Parsable leaf = listener.getParsedDataStack().pop();
114 // Add the union node to the parent holder of leaf. 114 // Add the union node to the parent holder of leaf.
...@@ -118,7 +118,7 @@ public final class UnionListener { ...@@ -118,7 +118,7 @@ public final class UnionListener {
118 break; 118 break;
119 case LEAF_LIST_DATA: 119 case LEAF_LIST_DATA:
120 // Set the name of union same as leaf list. 120 // Set the name of union same as leaf list.
121 - unionNode.setName(((YangLeafList) tmpData).getLeafName() + UNION_CLASS_SUFFIX); 121 + unionNode.setName(((YangLeafList) tmpData).getName() + UNION_CLASS_SUFFIX);
122 // Pop the stack entry to obtain the parent YANG node. 122 // Pop the stack entry to obtain the parent YANG node.
123 Parsable leafList = listener.getParsedDataStack().pop(); 123 Parsable leafList = listener.getParsedDataStack().pop();
124 // Add the union node to the parent holder of leaf. 124 // Add the union node to the parent holder of leaf.
...@@ -217,4 +217,4 @@ public final class UnionListener { ...@@ -217,4 +217,4 @@ public final class UnionListener {
217 } 217 }
218 } 218 }
219 } 219 }
220 -}
...\ No newline at end of file ...\ No newline at end of file
220 +}
......
...@@ -44,7 +44,8 @@ public final class GeneratedJavaFileType { ...@@ -44,7 +44,8 @@ public final class GeneratedJavaFileType {
44 /** 44 /**
45 * Interface and class file. 45 * Interface and class file.
46 */ 46 */
47 - public static final int GENERATE_INTERFACE_WITH_BUILDER = 15; 47 + public static final int GENERATE_INTERFACE_WITH_BUILDER = INTERFACE_MASK
48 + | BUILDER_INTERFACE_MASK | BUILDER_CLASS_MASK | IMPL_CLASS_MASK;
48 49
49 /** 50 /**
50 * Java interface corresponding to rpc. 51 * Java interface corresponding to rpc.
...@@ -54,24 +55,31 @@ public final class GeneratedJavaFileType { ...@@ -54,24 +55,31 @@ public final class GeneratedJavaFileType {
54 /** 55 /**
55 * Interface, class file and rpc. 56 * Interface, class file and rpc.
56 */ 57 */
57 - public static final int GENERATE_MANAGER_WITH_RPC = 31; 58 + public static final int GENERATE_MANAGER_WITH_RPC = GENERATE_INTERFACE_WITH_BUILDER
59 + | GENERATE_RPC_INTERFACE;
58 60
59 // TODO RPC implementation to be integrated with notification. 61 // TODO RPC implementation to be integrated with notification.
60 62
61 /** 63 /**
62 * Java class corresponding to YANG enumeration. 64 * Java class corresponding to YANG enumeration.
63 */ 65 */
64 - public static final int GENERATE_ENUM_CLASS = 64; 66 + public static final int GENERATE_ENUM_CLASS = 32;
65 67
66 /** 68 /**
67 * Java class corresponding to typedef. 69 * Java class corresponding to typedef.
68 */ 70 */
69 - public static final int GENERATE_TYPEDEF_CLASS = 1024; 71 + public static final int GENERATE_TYPEDEF_CLASS = 64;
70 72
71 /** 73 /**
72 * Java class corresponding to union. 74 * Java class corresponding to union.
73 */ 75 */
74 - public static final int GENERATE_UNION_CLASS = 2048; 76 + public static final int GENERATE_UNION_CLASS = 128;
77 +
78 + /**
79 + * Java class corresponding to typedef.
80 + */
81 + public static final int GENERATE_TYPE_CLASS = GENERATE_TYPEDEF_CLASS
82 + | GENERATE_UNION_CLASS;
75 83
76 /** 84 /**
77 * Creates an instance of generate java file type. 85 * Creates an instance of generate java file type.
......
...@@ -16,16 +16,9 @@ ...@@ -16,16 +16,9 @@
16 16
17 package org.onosproject.yangutils.translator.tojava; 17 package org.onosproject.yangutils.translator.tojava;
18 18
19 -import org.onosproject.yangutils.datamodel.YangNode;
20 import org.onosproject.yangutils.datamodel.YangType; 19 import org.onosproject.yangutils.datamodel.YangType;
21 import org.onosproject.yangutils.translator.exception.TranslatorException; 20 import org.onosproject.yangutils.translator.exception.TranslatorException;
22 21
23 -import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.getIsQualifiedAccessOrAddToImportList;
24 -import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.getQualifiedInfoOfFromString;
25 -import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.getQualifiedTypeInfoOfAttribute;
26 -import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.getQualifiedTypeInfoOfCurNode;
27 -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
28 -
29 /** 22 /**
30 * Represents the attribute info corresponding to class/interface generated. 23 * Represents the attribute info corresponding to class/interface generated.
31 */ 24 */
...@@ -44,12 +37,12 @@ public final class JavaAttributeInfo { ...@@ -44,12 +37,12 @@ public final class JavaAttributeInfo {
44 /** 37 /**
45 * If the added attribute is a list of info. 38 * If the added attribute is a list of info.
46 */ 39 */
47 - private boolean isListAttr = false; 40 + private boolean isListAttr;
48 41
49 /** 42 /**
50 * If the added attribute has to be accessed in a fully qualified manner. 43 * If the added attribute has to be accessed in a fully qualified manner.
51 */ 44 */
52 - private boolean isQualifiedName = false; 45 + private boolean isQualifiedName;
53 46
54 /** 47 /**
55 * The class info will be used to set the attribute type and package info 48 * The class info will be used to set the attribute type and package info
...@@ -66,9 +59,9 @@ public final class JavaAttributeInfo { ...@@ -66,9 +59,9 @@ public final class JavaAttributeInfo {
66 /** 59 /**
67 * Creates object of java attribute info. 60 * Creates object of java attribute info.
68 * 61 *
69 - * @param attrType YANG type 62 + * @param attrType YANG type
70 - * @param name attribute name 63 + * @param name attribute name
71 - * @param isListAttr is list attribute 64 + * @param isListAttr is list attribute
72 * @param isQualifiedName is qualified name 65 * @param isQualifiedName is qualified name
73 */ 66 */
74 public JavaAttributeInfo(YangType<?> attrType, String name, boolean isListAttr, boolean isQualifiedName) { 67 public JavaAttributeInfo(YangType<?> attrType, String name, boolean isListAttr, boolean isQualifiedName) {
...@@ -79,75 +72,6 @@ public final class JavaAttributeInfo { ...@@ -79,75 +72,6 @@ public final class JavaAttributeInfo {
79 } 72 }
80 73
81 /** 74 /**
82 - * Creates an attribute info object corresponding to the passed type's attribute
83 - * information and return it.
84 - *
85 - * @param curNode current data model node for which the java file is being generated
86 - * @param referredTypesAttrInfo attribute of referred type
87 - * @return JavaAttributeInfo attribute details required to add in temporary files
88 - */
89 - public static JavaAttributeInfo getFromStringAttributeInfo(YangNode curNode,
90 - JavaAttributeInfo referredTypesAttrInfo) {
91 -
92 - JavaQualifiedTypeInfo qualifiedInfoOfFromString = getQualifiedInfoOfFromString(referredTypesAttrInfo);
93 - /*
94 - * Create a new java attribute info with qualified information of
95 - * wrapper classes.
96 - */
97 - return getAttributeInfoForTheData(qualifiedInfoOfFromString, referredTypesAttrInfo.getAttributeName(),
98 - referredTypesAttrInfo.getAttributeType(), curNode, false);
99 - }
100 -
101 - /**
102 - * Creates an attribute info object corresponding to the passed type attribute
103 - * information and return it.
104 - *
105 - * @param curNode current data model node for which the java file is being
106 - * generated
107 - * @param attributeType leaf data type
108 - * @param attributeName leaf name
109 - * @param isListAttribute is the current added attribute needs to be a list
110 - * @return AttributeInfo attribute details required to add in temporary
111 - * files
112 - */
113 - public static JavaAttributeInfo getAttributeInfoOfType(YangNode curNode,
114 - YangType<?> attributeType, String attributeName,
115 - boolean isListAttribute) {
116 - /*
117 - * Get the import info corresponding to the attribute for import in
118 - * generated java files or qualified access
119 - */
120 - JavaQualifiedTypeInfo importInfo = getQualifiedTypeInfoOfAttribute(curNode,
121 - attributeType, attributeName, isListAttribute);
122 -
123 - return getAttributeInfoForTheData(importInfo, attributeName, attributeType, curNode, isListAttribute);
124 - }
125 -
126 - /**
127 - * Creates an attribute info object corresponding to the passed enumeration attribute
128 - * information and return it.
129 - *
130 - * @param curNode current data model node for which the java file is being
131 - * generated
132 - * @param attributeName attribute name
133 - * @return AttributeInfo attribute details required to add in temporary
134 - * files
135 - */
136 - public static JavaAttributeInfo getAttributeInfoOfEnumAttribute(YangNode curNode, String attributeName) {
137 -
138 - String curNodeName = ((HasJavaFileInfo) curNode).getJavaFileInfo().getJavaName();
139 -
140 - /*
141 - * Get the import info corresponding to the attribute for import in
142 - * generated java files or qualified access
143 - */
144 - JavaQualifiedTypeInfo qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode,
145 - curNodeName, false);
146 -
147 - return getAttributeInfoForTheData(qualifiedTypeInfo, attributeName, null, curNode, false);
148 - }
149 -
150 - /**
151 * Returns the data type info of attribute. 75 * Returns the data type info of attribute.
152 * 76 *
153 * @return the data type info of attribute 77 * @return the data type info of attribute
...@@ -225,7 +149,7 @@ public final class JavaAttributeInfo { ...@@ -225,7 +149,7 @@ public final class JavaAttributeInfo {
225 * manner. 149 * manner.
226 * 150 *
227 * @param isQualified if the added attribute has to be accessed in a fully 151 * @param isQualified if the added attribute has to be accessed in a fully
228 - * qualified manner 152 + * qualified manner
229 */ 153 */
230 public void setIsQualifiedAccess(boolean isQualified) { 154 public void setIsQualifiedAccess(boolean isQualified) {
231 isQualifiedName = isQualified; 155 isQualifiedName = isQualified;
...@@ -251,102 +175,25 @@ public final class JavaAttributeInfo { ...@@ -251,102 +175,25 @@ public final class JavaAttributeInfo {
251 } 175 }
252 176
253 /** 177 /**
254 - * Creates an attribute info object corresponding to the passed leaf
255 - * information and return it.
256 - *
257 - * @param curNode current data model node for which the java file is being
258 - * generated
259 - * @param attributeType leaf data type
260 - * @param attributeName leaf name
261 - * @param isListAttribute is the current added attribute needs to be a list
262 - * @return AttributeInfo attribute details required to add in temporary
263 - * files
264 - */
265 - public static JavaAttributeInfo getAttributeInfoOfLeaf(YangNode curNode,
266 - YangType<?> attributeType, String attributeName,
267 - boolean isListAttribute) {
268 -
269 - /*
270 - * Get the import info corresponding to the attribute for import in
271 - * generated java files or qualified access
272 - */
273 - JavaQualifiedTypeInfo importInfo = getQualifiedTypeInfoOfAttribute(curNode,
274 - attributeType, attributeName, isListAttribute);
275 -
276 - return getAttributeInfoForTheData(importInfo, attributeName, attributeType, curNode, isListAttribute);
277 - }
278 -
279 - /**
280 - * Creates an attribute info object corresponding to a data model node and
281 - * return it.
282 - *
283 - * @param curNode current data model node for which the java code generation
284 - * is being handled
285 - * @param parentNode parent node in which the current node is an attribute
286 - * @param isListNode is the current added attribute needs to be a list
287 - * @return AttributeInfo attribute details required to add in temporary
288 - * files
289 - */
290 - public static JavaAttributeInfo getCurNodeAsAttributeInParent(
291 - YangNode curNode, YangNode parentNode, boolean isListNode) {
292 -
293 - String curNodeName = ((HasJavaFileInfo) curNode).getJavaFileInfo().getJavaName();
294 -
295 - /*
296 - * Get the import info corresponding to the attribute for import in
297 - * generated java files or qualified access
298 - */
299 - JavaQualifiedTypeInfo qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(parentNode,
300 - curNodeName, isListNode);
301 -
302 - return getAttributeInfoForTheData(qualifiedTypeInfo, curNodeName, null, parentNode, isListNode);
303 - }
304 -
305 - /**
306 - * Creates an attribute info object corresponding to a data model node and
307 - * return it.
308 - *
309 - * @param parentNode parent node in which the current node is an attribute
310 - * @param isListNode is the current added attribute needs to be a list
311 - * @param curNodeName is the current added attribute needs to be a list
312 - * @return AttributeInfo attribute details required to add in temporary
313 - * files
314 - */
315 - public static JavaAttributeInfo getCurNodeAsAttributeInParent(YangNode parentNode, boolean isListNode,
316 - String curNodeName) {
317 -
318 - /*
319 - * Get the import info corresponding to the attribute for import in
320 - * generated java files or qualified access
321 - */
322 - JavaQualifiedTypeInfo qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(parentNode,
323 - curNodeName, isListNode);
324 -
325 - return getAttributeInfoForTheData(qualifiedTypeInfo, curNodeName, null, parentNode, isListNode);
326 - }
327 -
328 -
329 - /**
330 * Returns java attribute info. 178 * Returns java attribute info.
331 * 179 *
332 - * @param importInfo java qualified type info 180 + * @param importInfo java qualified type info
333 - * @param attributeName attribute name 181 + * @param attributeName attribute name
334 - * @param attributeType attribute type 182 + * @param attributeType attribute type
335 - * @param curNode current YANG node 183 + * @param isQualifiedAccess is the attribute a qualified access
336 * @param isListAttribute is list attribute 184 * @param isListAttribute is list attribute
337 * @return java attribute info. 185 * @return java attribute info.
338 */ 186 */
339 - private static JavaAttributeInfo getAttributeInfoForTheData(JavaQualifiedTypeInfo importInfo, String attributeName, 187 + public static JavaAttributeInfo getAttributeInfoForTheData(JavaQualifiedTypeInfo importInfo, String attributeName,
340 - YangType<?> attributeType, YangNode curNode, 188 + YangType<?> attributeType, boolean isQualifiedAccess,
341 - boolean isListAttribute) { 189 + boolean isListAttribute) {
342 190
343 JavaAttributeInfo newAttr = new JavaAttributeInfo(); 191 JavaAttributeInfo newAttr = new JavaAttributeInfo();
344 newAttr.setImportInfo(importInfo); 192 newAttr.setImportInfo(importInfo);
345 - newAttr.setIsQualifiedAccess(getIsQualifiedAccessOrAddToImportList(curNode, importInfo)); 193 + newAttr.setAttributeName(attributeName);
346 - newAttr.setAttributeName(getCamelCase(attributeName, null));
347 - newAttr.setListAttr(isListAttribute);
348 - newAttr.setImportInfo(importInfo);
349 newAttr.setAttributeType(attributeType); 194 newAttr.setAttributeType(attributeType);
195 + newAttr.setIsQualifiedAccess(isQualifiedAccess);
196 + newAttr.setListAttr(isListAttribute);
350 197
351 return newAttr; 198 return newAttr;
352 } 199 }
......
...@@ -39,7 +39,7 @@ public final class JavaCodeGeneratorUtil { ...@@ -39,7 +39,7 @@ public final class JavaCodeGeneratorUtil {
39 private static YangNode curNode; 39 private static YangNode curNode;
40 40
41 /** 41 /**
42 - * Creates a java code generator util object. 42 + * Creates a java code generator utility object.
43 */ 43 */
44 private JavaCodeGeneratorUtil() { 44 private JavaCodeGeneratorUtil() {
45 } 45 }
...@@ -68,29 +68,30 @@ public final class JavaCodeGeneratorUtil { ...@@ -68,29 +68,30 @@ public final class JavaCodeGeneratorUtil {
68 * @param rootNode root node of the data model tree 68 * @param rootNode root node of the data model tree
69 * @param yangPlugin YANG plugin config 69 * @param yangPlugin YANG plugin config
70 * @throws IOException when fails to generate java code file the current 70 * @throws IOException when fails to generate java code file the current
71 - * node 71 + * node
72 */ 72 */
73 - public static void generateJavaCode(YangNode rootNode, YangPluginConfig yangPlugin) throws IOException { 73 + public static void generateJavaCode(YangNode rootNode, YangPluginConfig yangPlugin)
74 + throws IOException {
74 75
75 - YangNode curNode = rootNode; 76 + YangNode codeGenNode = rootNode;
76 TraversalType curTraversal = ROOT; 77 TraversalType curTraversal = ROOT;
77 78
78 - while (curNode != null) { 79 + while (codeGenNode != null) {
79 if (curTraversal != PARENT) { 80 if (curTraversal != PARENT) {
80 - setCurNode(curNode); 81 + setCurNode(codeGenNode);
81 - generateCodeEntry(curNode, yangPlugin); 82 + generateCodeEntry(codeGenNode, yangPlugin);
82 } 83 }
83 - if (curTraversal != PARENT && curNode.getChild() != null) { 84 + if (curTraversal != PARENT && codeGenNode.getChild() != null) {
84 curTraversal = CHILD; 85 curTraversal = CHILD;
85 - curNode = curNode.getChild(); 86 + codeGenNode = codeGenNode.getChild();
86 - } else if (curNode.getNextSibling() != null) { 87 + } else if (codeGenNode.getNextSibling() != null) {
87 - generateCodeExit(curNode); 88 + generateCodeExit(codeGenNode);
88 curTraversal = SIBILING; 89 curTraversal = SIBILING;
89 - curNode = curNode.getNextSibling(); 90 + codeGenNode = codeGenNode.getNextSibling();
90 } else { 91 } else {
91 - generateCodeExit(curNode); 92 + generateCodeExit(codeGenNode);
92 curTraversal = PARENT; 93 curTraversal = PARENT;
93 - curNode = curNode.getParent(); 94 + codeGenNode = codeGenNode.getParent();
94 } 95 }
95 } 96 }
96 } 97 }
...@@ -98,15 +99,16 @@ public final class JavaCodeGeneratorUtil { ...@@ -98,15 +99,16 @@ public final class JavaCodeGeneratorUtil {
98 /** 99 /**
99 * Generates the current nodes code snippet. 100 * Generates the current nodes code snippet.
100 * 101 *
101 - * @param curNode current data model node for which the code needs to be 102 + * @param codeGenNode current data model node for which the code needs to be
102 - * generated 103 + * generated
103 * @param yangPlugin YANG plugin config 104 * @param yangPlugin YANG plugin config
104 * @throws IOException IO operation exception 105 * @throws IOException IO operation exception
105 */ 106 */
106 - private static void generateCodeEntry(YangNode curNode, YangPluginConfig yangPlugin) throws IOException { 107 + private static void generateCodeEntry(YangNode codeGenNode, YangPluginConfig yangPlugin)
108 + throws IOException {
107 109
108 - if (curNode instanceof JavaCodeGenerator) { 110 + if (codeGenNode instanceof JavaCodeGenerator) {
109 - ((JavaCodeGenerator) curNode).generateCodeEntry(yangPlugin); 111 + ((JavaCodeGenerator) codeGenNode).generateCodeEntry(yangPlugin);
110 } else { 112 } else {
111 throw new TranslatorException( 113 throw new TranslatorException(
112 "Generated data model node cannot be translated to target language code"); 114 "Generated data model node cannot be translated to target language code");
...@@ -116,14 +118,15 @@ public final class JavaCodeGeneratorUtil { ...@@ -116,14 +118,15 @@ public final class JavaCodeGeneratorUtil {
116 /** 118 /**
117 * Generates the current nodes code target code from the snippet. 119 * Generates the current nodes code target code from the snippet.
118 * 120 *
119 - * @param curNode current data model node for which the code needs to be 121 + * @param codeGenNode current data model node for which the code needs to be
120 - * generated 122 + * generated
121 * @throws IOException IO operation exception 123 * @throws IOException IO operation exception
122 */ 124 */
123 - private static void generateCodeExit(YangNode curNode) throws IOException { 125 + private static void generateCodeExit(YangNode codeGenNode)
126 + throws IOException {
124 127
125 - if (curNode instanceof JavaCodeGenerator) { 128 + if (codeGenNode instanceof JavaCodeGenerator) {
126 - ((JavaCodeGenerator) curNode).generateCodeExit(); 129 + ((JavaCodeGenerator) codeGenNode).generateCodeExit();
127 } else { 130 } else {
128 throw new TranslatorException( 131 throw new TranslatorException(
129 "Generated data model node cannot be translated to target language code"); 132 "Generated data model node cannot be translated to target language code");
...@@ -131,31 +134,35 @@ public final class JavaCodeGeneratorUtil { ...@@ -131,31 +134,35 @@ public final class JavaCodeGeneratorUtil {
131 } 134 }
132 135
133 /** 136 /**
134 - * Free other YANG nodes of data-model tree when error occurs while file generation of current node. 137 + * Free other YANG nodes of data-model tree when error occurs while file
138 + * generation of current node.
139 + *
140 + * @throws DataModelException when fails to do datamodel operations
135 */ 141 */
136 - public static void freeRestResources() { 142 + private static void freeRestResources()
143 + throws DataModelException {
137 144
138 - YangNode curNode = getCurNode(); 145 + YangNode freedNode = getCurNode();
139 - YangNode tempNode = curNode; 146 + YangNode tempNode = freedNode;
140 TraversalType curTraversal = ROOT; 147 TraversalType curTraversal = ROOT;
141 148
142 - while (curNode != tempNode.getParent()) { 149 + while (freedNode != tempNode.getParent()) {
143 150
144 - if (curTraversal != PARENT && curNode.getChild() != null) { 151 + if (curTraversal != PARENT && freedNode.getChild() != null) {
145 curTraversal = CHILD; 152 curTraversal = CHILD;
146 - curNode = curNode.getChild(); 153 + freedNode = freedNode.getChild();
147 - } else if (curNode.getNextSibling() != null) { 154 + } else if (freedNode.getNextSibling() != null) {
148 curTraversal = SIBILING; 155 curTraversal = SIBILING;
149 - if (curNode != tempNode) { 156 + if (freedNode != tempNode) {
150 - free(curNode); 157 + free(freedNode);
151 } 158 }
152 - curNode = curNode.getNextSibling(); 159 + freedNode = freedNode.getNextSibling();
153 } else { 160 } else {
154 curTraversal = PARENT; 161 curTraversal = PARENT;
155 - if (curNode != tempNode) { 162 + if (freedNode != tempNode) {
156 - free(curNode); 163 + free(freedNode);
157 } 164 }
158 - curNode = curNode.getParent(); 165 + freedNode = freedNode.getParent();
159 } 166 }
160 } 167 }
161 } 168 }
...@@ -182,10 +189,11 @@ public final class JavaCodeGeneratorUtil { ...@@ -182,10 +189,11 @@ public final class JavaCodeGeneratorUtil {
182 * Delete Java code files corresponding to the YANG schema. 189 * Delete Java code files corresponding to the YANG schema.
183 * 190 *
184 * @param rootNode root node of data-model tree 191 * @param rootNode root node of data-model tree
185 - * @throws IOException when fails to delete java code file the current node 192 + * @throws IOException when fails to delete java code file the current node
186 * @throws DataModelException when fails to do datamodel operations 193 * @throws DataModelException when fails to do datamodel operations
187 */ 194 */
188 - public static void translatorErrorHandler(YangNode rootNode) throws IOException, DataModelException { 195 + public static void translatorErrorHandler(YangNode rootNode)
196 + throws IOException, DataModelException {
189 197
190 /** 198 /**
191 * Free other resources where translator has failed. 199 * Free other resources where translator has failed.
...@@ -195,24 +203,24 @@ public final class JavaCodeGeneratorUtil { ...@@ -195,24 +203,24 @@ public final class JavaCodeGeneratorUtil {
195 /** 203 /**
196 * Start removing all open files. 204 * Start removing all open files.
197 */ 205 */
198 - YangNode curNode = rootNode; 206 + YangNode tempNode = rootNode;
199 - setCurNode(curNode.getChild()); 207 + setCurNode(tempNode.getChild());
200 TraversalType curTraversal = ROOT; 208 TraversalType curTraversal = ROOT;
201 209
202 - while (curNode != null) { 210 + while (tempNode != null) {
203 211
204 if (curTraversal != PARENT) { 212 if (curTraversal != PARENT) {
205 - close(curNode); 213 + close(tempNode);
206 } 214 }
207 - if (curTraversal != PARENT && curNode.getChild() != null) { 215 + if (curTraversal != PARENT && tempNode.getChild() != null) {
208 curTraversal = CHILD; 216 curTraversal = CHILD;
209 - curNode = curNode.getChild(); 217 + tempNode = tempNode.getChild();
210 - } else if (curNode.getNextSibling() != null) { 218 + } else if (tempNode.getNextSibling() != null) {
211 curTraversal = SIBILING; 219 curTraversal = SIBILING;
212 - curNode = curNode.getNextSibling(); 220 + tempNode = tempNode.getNextSibling();
213 } else { 221 } else {
214 curTraversal = PARENT; 222 curTraversal = PARENT;
215 - curNode = curNode.getParent(); 223 + tempNode = tempNode.getParent();
216 } 224 }
217 } 225 }
218 226
...@@ -220,15 +228,17 @@ public final class JavaCodeGeneratorUtil { ...@@ -220,15 +228,17 @@ public final class JavaCodeGeneratorUtil {
220 } 228 }
221 229
222 /** 230 /**
223 - * Closes all the current open file handles of node and delete all generated files. 231 + * Closes all the current open file handles of node and delete all generated
232 + * files.
224 * 233 *
225 - * @param curNode current YANG node 234 + * @param node current YANG node
226 * @throws IOException when fails to do IO operations 235 * @throws IOException when fails to do IO operations
227 */ 236 */
228 - private static void close(YangNode curNode) throws IOException { 237 + private static void close(YangNode node)
238 + throws IOException {
229 239
230 - if (((HasTempJavaCodeFragmentFiles) curNode).getTempJavaCodeFragmentFiles() != null) { 240 + if (((TempJavaCodeFragmentFilesContainer) node).getTempJavaCodeFragmentFiles() != null) {
231 - ((HasTempJavaCodeFragmentFiles) curNode).getTempJavaCodeFragmentFiles().close(true); 241 + ((TempJavaCodeFragmentFilesContainer) node).getTempJavaCodeFragmentFiles().close(true);
232 } 242 }
233 } 243 }
234 } 244 }
......
...@@ -19,7 +19,7 @@ package org.onosproject.yangutils.translator.tojava; ...@@ -19,7 +19,7 @@ package org.onosproject.yangutils.translator.tojava;
19 * Represents data model nodes which are required to generate java classes, need to support 19 * Represents data model nodes which are required to generate java classes, need to support
20 * java file info. 20 * java file info.
21 */ 21 */
22 -public interface HasJavaFileInfo { 22 +public interface JavaFileInfoContainer {
23 23
24 /** 24 /**
25 * Returns the generated java file information. 25 * Returns the generated java file information.
......
...@@ -19,10 +19,6 @@ import java.util.ArrayList; ...@@ -19,10 +19,6 @@ import java.util.ArrayList;
19 import java.util.List; 19 import java.util.List;
20 import java.util.SortedSet; 20 import java.util.SortedSet;
21 import java.util.TreeSet; 21 import java.util.TreeSet;
22 -import static java.util.Collections.sort;
23 -
24 -import org.onosproject.yangutils.datamodel.YangNode;
25 -import org.onosproject.yangutils.translator.exception.TranslatorException;
26 22
27 import static org.onosproject.yangutils.utils.UtilConstants.ARRAY_LIST; 23 import static org.onosproject.yangutils.utils.UtilConstants.ARRAY_LIST;
28 import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED_INFO_CLASS_IMPORT_CLASS; 24 import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED_INFO_CLASS_IMPORT_CLASS;
...@@ -42,6 +38,8 @@ import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE; ...@@ -42,6 +38,8 @@ import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
42 import static org.onosproject.yangutils.utils.UtilConstants.PERIOD; 38 import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
43 import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN; 39 import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
44 40
41 +import static java.util.Collections.sort;
42 +
45 /** 43 /**
46 * Represents that generated Java file can contain imports. 44 * Represents that generated Java file can contain imports.
47 */ 45 */
...@@ -112,33 +110,29 @@ public class JavaImportData { ...@@ -112,33 +110,29 @@ public class JavaImportData {
112 * denote, it is not added to import collection and needs to be accessed in 110 * denote, it is not added to import collection and needs to be accessed in
113 * a qualified manner. 111 * a qualified manner.
114 * 112 *
115 - * @param curNode current data model node
116 * @param newImportInfo class/interface info being imported 113 * @param newImportInfo class/interface info being imported
117 * @return status of new addition of class/interface to the import set 114 * @return status of new addition of class/interface to the import set
118 */ 115 */
119 - public boolean addImportInfo(YangNode curNode, JavaQualifiedTypeInfo newImportInfo) { 116 + public boolean addImportInfo(JavaQualifiedTypeInfo newImportInfo) {
120 117
121 - if (!(curNode instanceof HasJavaImportData)) { 118 + for (JavaQualifiedTypeInfo curImportInfo : getImportSet()) {
122 - throw new TranslatorException("missing import info in data model node");
123 - }
124 - for (JavaQualifiedTypeInfo curImportInfo : ((HasJavaImportData) curNode).getJavaImportData().getImportSet()) {
125 if (curImportInfo.getClassInfo() 119 if (curImportInfo.getClassInfo()
126 .contentEquals(newImportInfo.getClassInfo())) { 120 .contentEquals(newImportInfo.getClassInfo())) {
127 return curImportInfo.getPkgInfo() 121 return curImportInfo.getPkgInfo()
128 .contentEquals(newImportInfo.getPkgInfo()); 122 .contentEquals(newImportInfo.getPkgInfo());
129 } 123 }
130 } 124 }
131 - ((HasJavaImportData) curNode).getJavaImportData().getImportSet().add(newImportInfo); 125 +
126 + getImportSet().add(newImportInfo);
132 return true; 127 return true;
133 } 128 }
134 129
135 /** 130 /**
136 * Returns import for class. 131 * Returns import for class.
137 * 132 *
138 - * @param attr java attribute info
139 * @return imports for class 133 * @return imports for class
140 */ 134 */
141 - public List<String> getImports(JavaAttributeInfo attr) { 135 + public List<String> getImports() {
142 136
143 String importString; 137 String importString;
144 List<String> imports = new ArrayList<>(); 138 List<String> imports = new ArrayList<>();
...@@ -153,7 +147,7 @@ public class JavaImportData { ...@@ -153,7 +147,7 @@ public class JavaImportData {
153 } 147 }
154 } 148 }
155 149
156 - if (attr.isListAttr()) { 150 + if (isListToImport) {
157 imports.add(getImportForList()); 151 imports.add(getImportForList());
158 } 152 }
159 153
...@@ -162,29 +156,6 @@ public class JavaImportData { ...@@ -162,29 +156,6 @@ public class JavaImportData {
162 } 156 }
163 157
164 /** 158 /**
165 - * Returns import for class.
166 - *
167 - * @return imports for class
168 - */
169 - public List<String> getImports() {
170 - String importString;
171 - List<String> imports = new ArrayList<>();
172 -
173 - for (JavaQualifiedTypeInfo importInfo : getImportSet()) {
174 - if (!importInfo.getPkgInfo().equals(EMPTY_STRING) && importInfo.getClassInfo() != null
175 - && !importInfo.getPkgInfo().equals(JAVA_LANG)) {
176 - importString = IMPORT + importInfo.getPkgInfo() + PERIOD + importInfo.getClassInfo() + SEMI_COLAN
177 - + NEW_LINE;
178 -
179 - imports.add(importString);
180 - }
181 - }
182 -
183 - sort(imports);
184 - return imports;
185 - }
186 -
187 - /**
188 * Returns import for hash and equals method. 159 * Returns import for hash and equals method.
189 * 160 *
190 * @return import for hash and equals method 161 * @return import for hash and equals method
......
...@@ -18,7 +18,7 @@ package org.onosproject.yangutils.translator.tojava; ...@@ -18,7 +18,7 @@ package org.onosproject.yangutils.translator.tojava;
18 /** 18 /**
19 * Represents the information of the java import data. 19 * Represents the information of the java import data.
20 */ 20 */
21 -public interface HasJavaImportData { 21 +public interface JavaImportDataContainer {
22 22
23 /** 23 /**
24 * Returns the data of java imports to be included in generated file. 24 * Returns the data of java imports to be included in generated file.
......
...@@ -17,10 +17,12 @@ ...@@ -17,10 +17,12 @@
17 package org.onosproject.yangutils.translator.tojava; 17 package org.onosproject.yangutils.translator.tojava;
18 18
19 import java.util.Objects; 19 import java.util.Objects;
20 +
20 import org.onosproject.yangutils.datamodel.YangNode; 21 import org.onosproject.yangutils.datamodel.YangNode;
21 -import org.onosproject.yangutils.datamodel.YangType;
22 import org.onosproject.yangutils.translator.exception.TranslatorException; 22 import org.onosproject.yangutils.translator.exception.TranslatorException;
23 +import org.onosproject.yangutils.translator.tojava.javamodel.JavaLeafInfoContainer;
23 import org.onosproject.yangutils.translator.tojava.utils.AttributesJavaDataType; 24 import org.onosproject.yangutils.translator.tojava.utils.AttributesJavaDataType;
25 +
24 import com.google.common.base.MoreObjects; 26 import com.google.common.base.MoreObjects;
25 27
26 import static org.onosproject.yangutils.translator.tojava.utils.AttributesJavaDataType.getJavaImportClass; 28 import static org.onosproject.yangutils.translator.tojava.utils.AttributesJavaDataType.getJavaImportClass;
...@@ -29,8 +31,8 @@ import static org.onosproject.yangutils.translator.tojava.utils.AttributesJavaDa ...@@ -29,8 +31,8 @@ import static org.onosproject.yangutils.translator.tojava.utils.AttributesJavaDa
29 /** 31 /**
30 * Represents the information about individual imports in the generated file. 32 * Represents the information about individual imports in the generated file.
31 */ 33 */
32 -public class JavaQualifiedTypeInfo implements Comparable<JavaQualifiedTypeInfo> { 34 +public class JavaQualifiedTypeInfo
33 - 35 + implements Comparable<JavaQualifiedTypeInfo> {
34 /** 36 /**
35 * Package location where the imported class/interface is defined. 37 * Package location where the imported class/interface is defined.
36 */ 38 */
...@@ -84,40 +86,31 @@ public class JavaQualifiedTypeInfo implements Comparable<JavaQualifiedTypeInfo> ...@@ -84,40 +86,31 @@ public class JavaQualifiedTypeInfo implements Comparable<JavaQualifiedTypeInfo>
84 } 86 }
85 87
86 /** 88 /**
87 - * Returns the import info for an attribute, which needs to be used for code 89 + * Updates the leaf's java information.
88 - * generation for import or for qualified access.
89 * 90 *
90 - * @param curNode current data model node for which the java file is being 91 + * @param leaf leaf whose jave information is being updated
91 - * generated
92 - * @param attrType type of attribute being added, it will be null, when the
93 - * child class is added as an attribute
94 - * @param attributeName name of the attribute being added, it will used in
95 - * import info for child class
96 - * @param isListAttr is the added attribute going to be used as a list
97 - * @return return the import info for this attribute
98 */ 92 */
99 - public static JavaQualifiedTypeInfo getQualifiedTypeInfoOfAttribute(YangNode curNode, 93 + public static void updateLeavesJavaQualifiedInfo(JavaLeafInfoContainer leaf) {
100 - YangType<?> attrType, String attributeName,
101 - boolean isListAttr) {
102 94
103 - JavaQualifiedTypeInfo importInfo = new JavaQualifiedTypeInfo(); 95 + JavaQualifiedTypeInfo importInfo = leaf.getJavaQualifiedInfo();
104 96
105 - if (attrType == null) { 97 + if (leaf.getDataType() == null) {
106 - throw new TranslatorException("missing data type of leaf " + attributeName); 98 + throw new TranslatorException("missing data type of leaf " + leaf.getName());
107 } 99 }
108 100
109 /* 101 /*
110 * Current leaves holder is adding a leaf info as a attribute to the 102 * Current leaves holder is adding a leaf info as a attribute to the
111 * current class. 103 * current class.
112 */ 104 */
113 - String className = getJavaImportClass(attrType, isListAttr); 105 + String className = AttributesJavaDataType.getJavaImportClass(leaf.getDataType(), leaf.isLeafList());
114 if (className != null) { 106 if (className != null) {
115 /* 107 /*
116 * Corresponding to the attribute type a class needs to be imported, 108 * Corresponding to the attribute type a class needs to be imported,
117 * since it can be a derived type or a usage of wrapper classes. 109 * since it can be a derived type or a usage of wrapper classes.
118 */ 110 */
119 importInfo.setClassInfo(className); 111 importInfo.setClassInfo(className);
120 - String classPkg = getJavaImportPackage(attrType, isListAttr, className); 112 + String classPkg = AttributesJavaDataType.getJavaImportPackage(leaf.getDataType(),
113 + leaf.isLeafList(), className);
121 if (classPkg == null) { 114 if (classPkg == null) {
122 throw new TranslatorException("import package cannot be null when the class is used"); 115 throw new TranslatorException("import package cannot be null when the class is used");
123 } 116 }
...@@ -127,32 +120,30 @@ public class JavaQualifiedTypeInfo implements Comparable<JavaQualifiedTypeInfo> ...@@ -127,32 +120,30 @@ public class JavaQualifiedTypeInfo implements Comparable<JavaQualifiedTypeInfo>
127 * The attribute does not need a class to be imported, for example 120 * The attribute does not need a class to be imported, for example
128 * built in java types. 121 * built in java types.
129 */ 122 */
130 - String dataTypeName = AttributesJavaDataType.getJavaDataType(attrType); 123 + String dataTypeName = AttributesJavaDataType.getJavaDataType(leaf.getDataType());
131 if (dataTypeName == null) { 124 if (dataTypeName == null) {
132 throw new TranslatorException("not supported data type"); 125 throw new TranslatorException("not supported data type");
133 } 126 }
134 importInfo.setClassInfo(dataTypeName); 127 importInfo.setClassInfo(dataTypeName);
135 } 128 }
136 - return importInfo;
137 } 129 }
138 130
139 /** 131 /**
140 * Returns the import info for an attribute, which needs to be used for code 132 * Returns the import info for an attribute, which needs to be used for code
141 * generation for import or for qualified access. 133 * generation for import or for qualified access.
142 * 134 *
143 - * @param curNode current data model node for which the java file is being 135 + * @param curNode current data model node for which the java file is being
144 - * generated 136 + * generated
145 * @param attributeName name of the attribute being added, it will used in 137 * @param attributeName name of the attribute being added, it will used in
146 - * import info for child class 138 + * import info for child class
147 - * @param isListAttr is the added attribute going to be used as a list
148 * @return return the import info for this attribute 139 * @return return the import info for this attribute
149 */ 140 */
150 public static JavaQualifiedTypeInfo getQualifiedTypeInfoOfCurNode(YangNode curNode, 141 public static JavaQualifiedTypeInfo getQualifiedTypeInfoOfCurNode(YangNode curNode,
151 - String attributeName, boolean isListAttr) { 142 + String attributeName) {
152 143
153 JavaQualifiedTypeInfo importInfo = new JavaQualifiedTypeInfo(); 144 JavaQualifiedTypeInfo importInfo = new JavaQualifiedTypeInfo();
154 145
155 - if (!(curNode instanceof HasJavaFileInfo)) { 146 + if (!(curNode instanceof JavaFileInfoContainer)) {
156 throw new TranslatorException("missing java file information to get the package details " 147 throw new TranslatorException("missing java file information to get the package details "
157 + "of attribute corresponding to child node"); 148 + "of attribute corresponding to child node");
158 } 149 }
...@@ -162,8 +153,8 @@ public class JavaQualifiedTypeInfo implements Comparable<JavaQualifiedTypeInfo> ...@@ -162,8 +153,8 @@ public class JavaQualifiedTypeInfo implements Comparable<JavaQualifiedTypeInfo>
162 * classes package with current classes name. 153 * classes package with current classes name.
163 */ 154 */
164 importInfo.setClassInfo(attributeName); 155 importInfo.setClassInfo(attributeName);
165 - importInfo.setPkgInfo((((HasJavaFileInfo) curNode).getJavaFileInfo().getPackage() + "." 156 + importInfo.setPkgInfo((((JavaFileInfoContainer) curNode).getJavaFileInfo().getPackage() + "."
166 - + ((HasJavaFileInfo) curNode).getJavaFileInfo().getJavaName()).toLowerCase()); 157 + + ((JavaFileInfoContainer) curNode).getJavaFileInfo().getJavaName()).toLowerCase());
167 158
168 return importInfo; 159 return importInfo;
169 } 160 }
...@@ -187,82 +178,6 @@ public class JavaQualifiedTypeInfo implements Comparable<JavaQualifiedTypeInfo> ...@@ -187,82 +178,6 @@ public class JavaQualifiedTypeInfo implements Comparable<JavaQualifiedTypeInfo>
187 return qualifiedInfoOfFromString; 178 return qualifiedInfoOfFromString;
188 } 179 }
189 180
190 - /**
191 - * Returns if the attribute needs to be accessed in a qualified manner or not,
192 - * if it needs to be imported, then the same needs to be done.
193 - *
194 - * @param curNode current cache of the data model node for which java file
195 - * is bing generated
196 - * @param importInfo import info for the current attribute being added
197 - * @return status of the qualified access to the attribute
198 - */
199 - public static boolean getIsQualifiedAccessOrAddToImportList(YangNode curNode,
200 - JavaQualifiedTypeInfo importInfo) {
201 -
202 - boolean isImportPkgEqualCurNodePkg;
203 - if (!(curNode instanceof HasJavaFileInfo)) {
204 - throw new TranslatorException("missing java file info for getting the qualified access");
205 - }
206 - if (importInfo.getClassInfo().contentEquals(
207 - ((HasJavaFileInfo) curNode).getJavaFileInfo().getJavaName())) {
208 - /*
209 - * if the current class name is same as the attribute class name,
210 - * then the attribute must be accessed in a qualified manner.
211 - */
212 - return true;
213 - } else if (importInfo.getPkgInfo() != null) {
214 - /*
215 - * If the attribute type is having the package info, it is contender
216 - * for import list and also need to check if it needs to be a
217 - * qualified access.
218 - */
219 - isImportPkgEqualCurNodePkg = isImportPkgEqualCurNodePkg(curNode, importInfo);
220 - if (!isImportPkgEqualCurNodePkg) {
221 - /*
222 - * If the package of the attribute added is not same as the
223 - * current class package, then it must either be imported for
224 - * access or it must be a qualified access.
225 - */
226 - if (!(curNode instanceof HasJavaImportData)) {
227 - /*
228 - * If the current data model node is not supposed to import
229 - * data, then this is a usage issue and needs to be fixed.
230 - */
231 - throw new TranslatorException("Current node needs to support Imports");
232 - }
233 -
234 - boolean isImportAdded = ((HasJavaImportData) curNode).getJavaImportData()
235 - .addImportInfo(curNode, importInfo);
236 - if (!isImportAdded) {
237 - /*
238 - * If the attribute type info is not imported, then it must
239 - * be a qualified access.
240 - */
241 - return true;
242 - }
243 - }
244 - }
245 - return false;
246 - }
247 -
248 - /**
249 - * Checks if the import info is same as the package of the current generated
250 - * java file.
251 - *
252 - * @param curNode Java identifier of the current data model node
253 - * @param importInfo import info for an attribute
254 - * @return true if the import info is same as the current nodes package
255 - * false otherwise
256 - */
257 - public static boolean isImportPkgEqualCurNodePkg(
258 - YangNode curNode, JavaQualifiedTypeInfo importInfo) {
259 -
260 - if (!(curNode instanceof HasJavaFileInfo)) {
261 - throw new TranslatorException("missing java file info for the data model node");
262 - }
263 - return ((HasJavaFileInfo) curNode).getJavaFileInfo().getPackage()
264 - .contentEquals(importInfo.getPkgInfo());
265 - }
266 181
267 @Override 182 @Override
268 public int hashCode() { 183 public int hashCode() {
......
...@@ -18,7 +18,7 @@ package org.onosproject.yangutils.translator.tojava; ...@@ -18,7 +18,7 @@ package org.onosproject.yangutils.translator.tojava;
18 /** 18 /**
19 * Maintain the java qualified access details for an attribute or a class. 19 * Maintain the java qualified access details for an attribute or a class.
20 */ 20 */
21 -public interface HasJavaQualifiedTypeInfo { 21 +public interface JavaQualifiedTypeInfoContainer {
22 22
23 /** 23 /**
24 * Obtain the java qualified details. 24 * Obtain the java qualified details.
......
1 +/*
2 + * Copyright 2016-present Open Networking Laboratory
3 + *
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 +
17 +package org.onosproject.yangutils.translator.tojava;
18 +
19 +import java.io.IOException;
20 +
21 +/**
22 + * Represents implementation of java bean code fragments temporary implementations.
23 + */
24 +public class TempJavaBeanFragmentFiles
25 + extends TempJavaFragmentFiles {
26 +
27 + /**
28 + * Creates an instance of temporary java code fragment.
29 + *
30 + * @param javaFileInfo generated java file info
31 + * @throws IOException when fails to create new file handle
32 + */
33 + public TempJavaBeanFragmentFiles(JavaFileInfo javaFileInfo)
34 + throws IOException {
35 + super(javaFileInfo);
36 + }
37 +}
...@@ -16,1447 +16,194 @@ ...@@ -16,1447 +16,194 @@
16 16
17 package org.onosproject.yangutils.translator.tojava; 17 package org.onosproject.yangutils.translator.tojava;
18 18
19 -import java.io.File;
20 import java.io.IOException; 19 import java.io.IOException;
21 -import java.util.ArrayList; 20 +
22 -import java.util.List; 21 +import org.onosproject.yangutils.datamodel.YangTypeContainer;
23 -import java.util.Set;
24 -import org.onosproject.yangutils.datamodel.HasType;
25 -import org.onosproject.yangutils.datamodel.YangEnum;
26 -import org.onosproject.yangutils.datamodel.YangEnumeration;
27 -import org.onosproject.yangutils.datamodel.YangLeaf;
28 -import org.onosproject.yangutils.datamodel.YangLeafList;
29 -import org.onosproject.yangutils.datamodel.YangLeavesHolder;
30 import org.onosproject.yangutils.datamodel.YangNode; 22 import org.onosproject.yangutils.datamodel.YangNode;
31 -import org.onosproject.yangutils.datamodel.YangType;
32 -import org.onosproject.yangutils.datamodel.YangCase;
33 import org.onosproject.yangutils.translator.exception.TranslatorException; 23 import org.onosproject.yangutils.translator.exception.TranslatorException;
34 24
35 -import static org.onosproject.yangutils.datamodel.YangNodeType.MODULE_NODE; 25 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS;
36 -import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK; 26 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
37 -import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_INTERFACE_MASK; 27 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_RPC_INTERFACE;
38 -import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS; 28 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_TYPE_CLASS;
39 -import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_RPC_INTERFACE; 29 +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.getExtendsList;
40 -import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_TYPEDEF_CLASS;
41 -import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_UNION_CLASS;
42 -import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.IMPL_CLASS_MASK;
43 -import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.INTERFACE_MASK;
44 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ATTRIBUTES_MASK;
45 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_FOR_TYPE_MASK;
46 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_IMPL_MASK;
47 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ENUM_IMPL_MASK;
48 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EQUALS_IMPL_MASK;
49 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.FROM_STRING_IMPL_MASK;
50 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.GETTER_FOR_CLASS_MASK;
51 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.GETTER_FOR_INTERFACE_MASK;
52 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.HASH_CODE_IMPL_MASK;
53 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.OF_STRING_IMPL_MASK;
54 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.RPC_IMPL_MASK;
55 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_CLASS_MASK;
56 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_INTERFACE_MASK;
57 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.TO_STRING_IMPL_MASK;
58 -import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoOfEnumAttribute;
59 -import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoOfLeaf;
60 -import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoOfType;
61 -import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getCurNodeAsAttributeInParent;
62 -import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getFromStringAttributeInfo;
63 -import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.generateEnumAttributeString;
64 -import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaAttributeDefination;
65 -import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaClassDefClose;
66 -import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateBuilderClassFile;
67 -import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateBuilderInterfaceFile;
68 -import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateEnumClassFile;
69 -import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateImplClassFile;
70 -import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateInterfaceFile;
71 -import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateRpcInterfaceFile;
72 -import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateTypeDefClassFile;
73 -import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateUnionClassFile;
74 -import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getFileObject;
75 -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
76 -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCaptialCase;
77 -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPackageDirPathFromJavaJPackage;
78 -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getParentNodeInGenCode;
79 -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getSmallCase;
80 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getBuildString;
81 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getConstructor;
82 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getDefaultConstructorString;
83 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEqualsMethod;
84 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getFromStringMethod;
85 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterForClass;
86 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterString;
87 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethod;
88 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOfMethod;
89 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOfMethodStringAndJavaDoc;
90 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOverRideString;
91 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRpcStringMethod;
92 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForClass;
93 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterString;
94 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethod;
95 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getTypeConstructorStringAndJavaDoc;
96 -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.parseBuilderInterfaceBuildMethodString;
97 -import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.addArrayListImport;
98 -import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.addAugmentedInfoImport;
99 -import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.addHasAugmentationImport;
100 -import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.addImportsToStringAndHasCodeMethods;
101 -import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.closeFile;
102 -import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.isAugmentedInfoExtended;
103 -import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.isHasAugmentationExtended;
104 -import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.prepareJavaFileGeneratorForExtendsList;
105 -import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
106 -import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
107 -import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
108 -import static org.onosproject.yangutils.utils.UtilConstants.IMPL;
109 -import static org.onosproject.yangutils.utils.UtilConstants.INTERFACE;
110 -import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
111 -import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC_OF_CHILD;
112 -import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
113 -import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
114 -import static org.onosproject.yangutils.utils.UtilConstants.IMPORT;
115 -import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
116 -import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.createPackage;
117 -import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.readAppendFile;
118 -import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD;
119 -import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.OF_METHOD;
120 -import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateJavaDocForRpc;
121 -import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
122 -import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.clean;
123 -import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.insertDataIntoJavaFile;
124 -import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.mergeJavaFiles;
125 -
126 -/**
127 - * Represents implementation of java code fragments temporary implementations.
128 - */
129 -public class TempJavaCodeFragmentFiles {
130 -
131 - /**
132 - * The variable which guides the types of temporary files generated using
133 - * the temporary generated file types mask.
134 - */
135 - private int generatedTempFiles;
136 -
137 - /**
138 - * The variable which guides the types of files generated using
139 - * the generated file types mask.
140 - */
141 - private int generatedJavaFiles;
142 -
143 - /**
144 - * Absolute path where the target java file needs to be generated.
145 - */
146 - private String absoluteDirPath;
147 -
148 - /**
149 - * Name of java file that needs to be generated.
150 - */
151 - private String generatedJavaClassName;
152 -
153 - /**
154 - * Contains all the class name which will be extended by generated files.
155 - */
156 - private List<String> extendsList = new ArrayList<>();
157 -
158 - /**
159 - * File type extension for java classes.
160 - */
161 - private static final String JAVA_FILE_EXTENSION = ".java";
162 -
163 - /**
164 - * File type extension for temporary classes.
165 - */
166 - private static final String TEMP_FILE_EXTENSION = ".tmp";
167 -
168 - /**
169 - * Folder suffix for temporary files folder.
170 - */
171 - private static final String TEMP_FOLDER_NAME_SUFIX = "-Temp";
172 -
173 - /**
174 - * File name for getter method.
175 - */
176 - private static final String GETTER_METHOD_FILE_NAME = "GetterMethod";
177 -
178 - /**
179 - * File name for getter method implementation.
180 - */
181 - private static final String GETTER_METHOD_IMPL_FILE_NAME = "GetterMethodImpl";
182 -
183 - /**
184 - * File name for setter method.
185 - */
186 - private static final String SETTER_METHOD_FILE_NAME = "SetterMethod";
187 -
188 - /**
189 - * File name for setter method implementation.
190 - */
191 - private static final String SETTER_METHOD_IMPL_FILE_NAME = "SetterMethodImpl";
192 -
193 - /**
194 - * File name for constructor.
195 - */
196 - private static final String CONSTRUCTOR_FILE_NAME = "Constructor";
197 -
198 - /**
199 - * File name for attributes.
200 - */
201 - private static final String ATTRIBUTE_FILE_NAME = "Attributes";
202 -
203 - /**
204 - * File name for to string method.
205 - */
206 - private static final String TO_STRING_METHOD_FILE_NAME = "ToString";
207 -
208 - /**
209 - * File name for hash code method.
210 - */
211 - private static final String HASH_CODE_METHOD_FILE_NAME = "HashCode";
212 -
213 - /**
214 - * File name for equals method.
215 - */
216 - private static final String EQUALS_METHOD_FILE_NAME = "Equals";
217 -
218 - /**
219 - * File name for of string method.
220 - */
221 - private static final String OF_STRING_METHOD_FILE_NAME = "OfString";
222 -
223 - /**
224 - * File name for temporary enum class.
225 - */
226 - private static final String ENUM_CLASS_TEMP_FILE_NAME = "EnumClass";
227 -
228 - /**
229 - * File name for construction for special type like union, typedef.
230 - */
231 - private static final String CONSTRUCTOR_FOR_TYPE_FILE_NAME = "ConstructorForType";
232 -
233 - /**
234 - * File name for from string method.
235 - */
236 - private static final String FROM_STRING_METHOD_FILE_NAME = "FromString";
237 -
238 - /**
239 - * File name for interface java file name suffix.
240 - */
241 - private static final String INTERFACE_FILE_NAME_SUFFIX = EMPTY_STRING;
242 -
243 - /**
244 - * File name for builder interface file name suffix.
245 - */
246 - private static final String BUILDER_INTERFACE_FILE_NAME_SUFFIX = BUILDER + INTERFACE;
247 -
248 - /**
249 - * File name for builder class file name suffix.
250 - */
251 - private static final String BUILDER_CLASS_FILE_NAME_SUFFIX = BUILDER;
252 -
253 - /**
254 - * File name for impl class file name suffix.
255 - */
256 - private static final String IMPL_CLASS_FILE_NAME_SUFFIX = IMPL;
257 -
258 - /**
259 - * File name for typedef class file name suffix.
260 - */
261 - private static final String TYPEDEF_CLASS_FILE_NAME_SUFFIX = EMPTY_STRING;
262 -
263 - /**
264 - * File name for enum class file name suffix.
265 - */
266 - private static final String ENUM_CLASS_FILE_NAME_SUFFIX = EMPTY_STRING;
267 -
268 - /**
269 - * File name for rpc method.
270 - */
271 - private static final String RPC_FILE_NAME = "Rpc";
272 -
273 - /**
274 - * File name for generated class file for special type like union, typedef suffix.
275 - */
276 - private static final String RPC_INTERFACE_FILE_NAME_SUFFIX = "Service";
277 -
278 - /**
279 - * File name for generated class file for special type like union, typedef suffix.
280 - */
281 - private static final String UNION_TYPE_CLASS_FILE_NAME_SUFFIX = EMPTY_STRING;
282 -
283 - /**
284 - * Java file handle for interface file.
285 - */
286 - private File interfaceJavaFileHandle;
287 -
288 - /**
289 - * Java file handle for builder interface file.
290 - */
291 - private File builderInterfaceJavaFileHandle;
292 -
293 - /**
294 - * Java file handle for builder class file.
295 - */
296 - private File builderClassJavaFileHandle;
297 -
298 - /**
299 - * Java file handle for impl class file.
300 - */
301 - private File implClassJavaFileHandle;
302 -
303 - /**
304 - * Java file handle for typedef class file.
305 - */
306 - private File typedefClassJavaFileHandle;
307 -
308 - /**
309 - * Java file handle for type class like union, typedef file.
310 - */
311 - private File typeClassJavaFileHandle;
312 -
313 - /**
314 - * Temporary file handle for attribute.
315 - */
316 - private File attributesTempFileHandle;
317 -
318 - /**
319 - * Temporary file handle for getter of interface.
320 - */
321 - private File getterInterfaceTempFileHandle;
322 -
323 - /**
324 - * Temporary file handle for getter of class.
325 - */
326 - private File getterImplTempFileHandle;
327 -
328 - /**
329 - * Temporary file handle for setter of interface.
330 - */
331 - private File setterInterfaceTempFileHandle;
332 -
333 - /**
334 - * Temporary file handle for setter of class.
335 - */
336 - private File setterImplTempFileHandle;
337 -
338 - /**
339 - * Temporary file handle for constructor of class.
340 - */
341 - private File constructorImplTempFileHandle;
342 -
343 - /**
344 - * Temporary file handle for hash code method of class.
345 - */
346 - private File hashCodeImplTempFileHandle;
347 -
348 - /**
349 - * Temporary file handle for equals method of class.
350 - */
351 - private File equalsImplTempFileHandle;
352 -
353 - /**
354 - * Temporary file handle for to string method of class.
355 - */
356 - private File toStringImplTempFileHandle;
357 -
358 - /**
359 - * Temporary file handle for enum class file.
360 - */
361 - private File enumClassTempFileHandle;
362 -
363 - /**
364 - * Temporary file handle for of string method of class.
365 - */
366 - private File ofStringImplTempFileHandle;
367 -
368 - /**
369 - * Temporary file handle for constructor for type class.
370 - */
371 - private File constructorForTypeTempFileHandle;
372 -
373 - /**
374 - * Temporary file handle for from string method of class.
375 - */
376 - private File fromStringImplTempFileHandle;
377 -
378 - /**
379 - * Temporary file handle for rpc interface.
380 - */
381 - private File rpcInterfaceImplTempFileHandle;
382 -
383 - /**
384 - * Java file handle for rpc interface file.
385 - */
386 - private File rpcInterfaceJavaFileHandle;
387 -
388 - /**
389 - * Java attribute info.
390 - */
391 - private JavaAttributeInfo newAttrInfo;
392 -
393 - /**
394 - * Current YANG node.
395 - */
396 - private YangNode curYangNode;
397 -
398 - /**
399 - * Import info for case.
400 - */
401 - private JavaQualifiedTypeInfo caseImportInfo;
402 -
403 - /**
404 - * Current enum's value.
405 - */
406 - private int enumValue;
407 -
408 - /**
409 - * Is attribute added.
410 - */
411 - private boolean isAttributePresent = false;
412 -
413 - /*
414 - * Java file handle for enum class.
415 - */
416 - private File enumClassJavaFileHandle;
417 -
418 - /**
419 - * Creates an instance of temporary java code fragment.
420 - *
421 - * @param genFileType file generation type
422 - * @param genDir file generation directory
423 - * @param className class name
424 - * @throws IOException when fails to create new file handle
425 - */
426 - public TempJavaCodeFragmentFiles(int genFileType, String genDir, String className)
427 - throws IOException {
428 -
429 - setExtendsList(new ArrayList<>());
430 - generatedTempFiles = 0;
431 - absoluteDirPath = genDir;
432 - generatedJavaClassName = className;
433 - generatedJavaFiles = genFileType;
434 - /**
435 - * Initialize getter when generation file type matches to interface
436 - * mask.
437 - */
438 - if ((genFileType & INTERFACE_MASK) != 0) {
439 - generatedTempFiles |= GETTER_FOR_INTERFACE_MASK;
440 - }
441 -
442 - /**
443 - * Initialize getter and setter when generation file type matches to
444 - * builder interface mask.
445 - */
446 - if ((genFileType & BUILDER_INTERFACE_MASK) != 0) {
447 - generatedTempFiles |= GETTER_FOR_INTERFACE_MASK;
448 - generatedTempFiles |= SETTER_FOR_INTERFACE_MASK;
449 - }
450 -
451 - /**
452 - * Initialize getterImpl, setterImpl and attributes when generation file
453 - * type matches to builder class mask.
454 - */
455 - if ((genFileType & BUILDER_CLASS_MASK) != 0) {
456 - generatedTempFiles |= ATTRIBUTES_MASK;
457 - generatedTempFiles |= GETTER_FOR_CLASS_MASK;
458 - generatedTempFiles |= SETTER_FOR_CLASS_MASK;
459 - }
460 -
461 - /**
462 - * Initialize getterImpl, attributes, constructor, hash code, equals and
463 - * to strings when generation file type matches to impl class mask.
464 - */
465 - if ((genFileType & IMPL_CLASS_MASK) != 0) {
466 - generatedTempFiles |= ATTRIBUTES_MASK;
467 - generatedTempFiles |= GETTER_FOR_CLASS_MASK;
468 - generatedTempFiles |= CONSTRUCTOR_IMPL_MASK;
469 - generatedTempFiles |= HASH_CODE_IMPL_MASK;
470 - generatedTempFiles |= EQUALS_IMPL_MASK;
471 - generatedTempFiles |= TO_STRING_IMPL_MASK;
472 - }
473 -
474 - if ((genFileType & GENERATE_RPC_INTERFACE) != 0) {
475 - generatedTempFiles |= RPC_IMPL_MASK;
476 - }
477 -
478 - /**
479 - * Initialize getterImpl, attributes, hash code, equals and
480 - * to strings when generation file type matches to typeDef class mask.
481 - */
482 - if ((genFileType & GENERATE_TYPEDEF_CLASS) != 0) {
483 - generatedTempFiles |= ATTRIBUTES_MASK;
484 - generatedTempFiles |= GETTER_FOR_CLASS_MASK;
485 - generatedTempFiles |= HASH_CODE_IMPL_MASK;
486 - generatedTempFiles |= EQUALS_IMPL_MASK;
487 - generatedTempFiles |= TO_STRING_IMPL_MASK;
488 - generatedTempFiles |= OF_STRING_IMPL_MASK;
489 - generatedTempFiles |= CONSTRUCTOR_FOR_TYPE_MASK;
490 - generatedTempFiles |= FROM_STRING_IMPL_MASK;
491 - }
492 -
493 - /**
494 - * Initialize getterImpl, attributes, hash code, equals, of string,
495 - * constructor, union's to string, from string when generation
496 - * file type matches to union class mask.
497 - */
498 - if ((genFileType & GENERATE_UNION_CLASS) != 0) {
499 - generatedTempFiles |= ATTRIBUTES_MASK;
500 - generatedTempFiles |= GETTER_FOR_CLASS_MASK;
501 - generatedTempFiles |= HASH_CODE_IMPL_MASK;
502 - generatedTempFiles |= EQUALS_IMPL_MASK;
503 - generatedTempFiles |= OF_STRING_IMPL_MASK;
504 - generatedTempFiles |= CONSTRUCTOR_FOR_TYPE_MASK;
505 - generatedTempFiles |= TO_STRING_IMPL_MASK;
506 - generatedTempFiles |= FROM_STRING_IMPL_MASK;
507 - }
508 - /**
509 - * Initialize enum when generation file type matches to enum class mask.
510 - */
511 - if ((genFileType & GENERATE_ENUM_CLASS) != 0) {
512 - generatedTempFiles |= ENUM_IMPL_MASK;
513 - }
514 -
515 - /**
516 - * Set temporary file handles.
517 - */
518 - if ((generatedTempFiles & ATTRIBUTES_MASK) != 0) {
519 - setAttributesTempFileHandle(getTemporaryFileHandle(ATTRIBUTE_FILE_NAME));
520 - }
521 -
522 - if ((generatedTempFiles & GETTER_FOR_INTERFACE_MASK) != 0) {
523 - setGetterInterfaceTempFileHandle(getTemporaryFileHandle(GETTER_METHOD_FILE_NAME));
524 - }
525 -
526 - if ((generatedTempFiles & SETTER_FOR_INTERFACE_MASK) != 0) {
527 - setSetterInterfaceTempFileHandle(getTemporaryFileHandle(SETTER_METHOD_FILE_NAME));
528 - }
529 -
530 - if ((generatedTempFiles & GETTER_FOR_CLASS_MASK) != 0) {
531 - setGetterImplTempFileHandle(getTemporaryFileHandle(GETTER_METHOD_IMPL_FILE_NAME));
532 - }
533 -
534 - if ((generatedTempFiles & SETTER_FOR_CLASS_MASK) != 0) {
535 - setSetterImplTempFileHandle(getTemporaryFileHandle(SETTER_METHOD_IMPL_FILE_NAME));
536 - }
537 -
538 - if ((generatedTempFiles & CONSTRUCTOR_IMPL_MASK) != 0) {
539 - setConstructorImplTempFileHandle(getTemporaryFileHandle(CONSTRUCTOR_FILE_NAME));
540 - }
541 -
542 - if ((generatedTempFiles & HASH_CODE_IMPL_MASK) != 0) {
543 - setHashCodeImplTempFileHandle(getTemporaryFileHandle(HASH_CODE_METHOD_FILE_NAME));
544 - }
545 -
546 - if ((generatedTempFiles & EQUALS_IMPL_MASK) != 0) {
547 - setEqualsImplTempFileHandle(getTemporaryFileHandle(EQUALS_METHOD_FILE_NAME));
548 - }
549 - if ((generatedTempFiles & TO_STRING_IMPL_MASK) != 0) {
550 - setToStringImplTempFileHandle(getTemporaryFileHandle(TO_STRING_METHOD_FILE_NAME));
551 - }
552 - if ((generatedTempFiles & ENUM_IMPL_MASK) != 0) {
553 - setEnumClassTempFileHandle(getTemporaryFileHandle(ENUM_CLASS_TEMP_FILE_NAME));
554 - }
555 - if ((generatedTempFiles & OF_STRING_IMPL_MASK) != 0) {
556 - setOfStringImplTempFileHandle(getTemporaryFileHandle(OF_STRING_METHOD_FILE_NAME));
557 - }
558 -
559 - if ((generatedTempFiles & CONSTRUCTOR_FOR_TYPE_MASK) != 0) {
560 - setConstructorForTypeTempFileHandle(getTemporaryFileHandle(CONSTRUCTOR_FOR_TYPE_FILE_NAME));
561 - }
562 -
563 - if ((generatedTempFiles & FROM_STRING_IMPL_MASK) != 0) {
564 - setFromStringImplTempFileHandle(getTemporaryFileHandle(FROM_STRING_METHOD_FILE_NAME));
565 - }
566 -
567 - if ((generatedTempFiles & RPC_IMPL_MASK) != 0) {
568 - setRpcInterfaceImplTempFileHandle(getTemporaryFileHandle(RPC_FILE_NAME));
569 - }
570 - }
571 -
572 - /**
573 - * Returns java file handle for interface file.
574 - *
575 - * @return java file handle for interface file
576 - */
577 - private File getInterfaceJavaFileHandle() {
578 - return interfaceJavaFileHandle;
579 - }
580 -
581 - /**
582 - * Sets the java file handle for interface file.
583 - *
584 - * @param interfaceJavaFileHandle java file handle
585 - */
586 - private void setInterfaceJavaFileHandle(File interfaceJavaFileHandle) {
587 - this.interfaceJavaFileHandle = interfaceJavaFileHandle;
588 - }
589 -
590 - /**
591 - * Returns java file handle for builder interface file.
592 - *
593 - * @return java file handle for builder interface file
594 - */
595 - private File getBuilderInterfaceJavaFileHandle() {
596 - return builderInterfaceJavaFileHandle;
597 - }
598 -
599 - /**
600 - * Sets the java file handle for builder interface file.
601 - *
602 - * @param builderInterfaceJavaFileHandle java file handle
603 - */
604 - private void setBuilderInterfaceJavaFileHandle(File builderInterfaceJavaFileHandle) {
605 - this.builderInterfaceJavaFileHandle = builderInterfaceJavaFileHandle;
606 - }
607 -
608 - /**
609 - * Returns java file handle for builder class file.
610 - *
611 - * @return java file handle for builder class file
612 - */
613 - private File getBuilderClassJavaFileHandle() {
614 - return builderClassJavaFileHandle;
615 - }
616 -
617 - /**
618 - * Sets the java file handle for builder class file.
619 - *
620 - * @param builderClassJavaFileHandle java file handle
621 - */
622 - private void setBuilderClassJavaFileHandle(File builderClassJavaFileHandle) {
623 - this.builderClassJavaFileHandle = builderClassJavaFileHandle;
624 - }
625 -
626 - /**
627 - * Returns java file handle for impl class file.
628 - *
629 - * @return java file handle for impl class file
630 - */
631 - private File getImplClassJavaFileHandle() {
632 - return implClassJavaFileHandle;
633 - }
634 -
635 - /**
636 - * Sets the java file handle for impl class file.
637 - *
638 - * @param implClassJavaFileHandle java file handle
639 - */
640 - private void setImplClassJavaFileHandle(File implClassJavaFileHandle) {
641 - this.implClassJavaFileHandle = implClassJavaFileHandle;
642 - }
643 -
644 - /**
645 - * Returns java file handle for typedef class file.
646 - *
647 - * @return java file handle for typedef class file
648 - */
649 - private File getTypedefClassJavaFileHandle() {
650 - return typedefClassJavaFileHandle;
651 - }
652 -
653 - /**
654 - * Sets the java file handle for typedef class file.
655 - *
656 - * @param typedefClassJavaFileHandle java file handle
657 - */
658 - private void setTypedefClassJavaFileHandle(File typedefClassJavaFileHandle) {
659 - this.typedefClassJavaFileHandle = typedefClassJavaFileHandle;
660 - }
661 -
662 - /**
663 - * Returns enum class java file handle.
664 - *
665 - * @return enum class java file handle
666 - */
667 - private File getEnumClassJavaFileHandle() {
668 - return enumClassJavaFileHandle;
669 - }
670 -
671 - /**
672 - * Sets enum class java file handle.
673 - *
674 - * @param enumClassJavaFileHandle enum class java file handle
675 - */
676 -
677 - private void setEnumClassJavaFileHandle(File enumClassJavaFileHandle) {
678 - this.enumClassJavaFileHandle = enumClassJavaFileHandle;
679 - }
680 -
681 - /**
682 - * Returns java file handle for type class file.
683 - *
684 - * @return java file handle for type class file
685 - */
686 - private File getTypeClassJavaFileHandle() {
687 - return typeClassJavaFileHandle;
688 - }
689 -
690 - /**
691 - * Sets the java file handle for type class file.
692 - *
693 - * @param typeClassJavaFileHandle type file handle
694 - */
695 - private void setTypeClassJavaFileHandle(File typeClassJavaFileHandle) {
696 - this.typeClassJavaFileHandle = typeClassJavaFileHandle;
697 - }
698 -
699 - /**
700 - * Returns attribute's temporary file handle.
701 - *
702 - * @return temporary file handle
703 - */
704 - public File getAttributesTempFileHandle() {
705 - return attributesTempFileHandle;
706 - }
707 -
708 - /**
709 - * Sets attribute's temporary file handle.
710 - *
711 - * @param attributeForClass file handle for attribute
712 - */
713 - private void setAttributesTempFileHandle(File attributeForClass) {
714 - attributesTempFileHandle = attributeForClass;
715 - }
716 -
717 - /**
718 - * Returns getter methods's temporary file handle.
719 - *
720 - * @return temporary file handle
721 - */
722 - public File getGetterInterfaceTempFileHandle() {
723 - return getterInterfaceTempFileHandle;
724 - }
725 -
726 - /**
727 - * Sets to getter method's temporary file handle.
728 - *
729 - * @param getterForInterface file handle for to getter method
730 - */
731 - private void setGetterInterfaceTempFileHandle(File getterForInterface) {
732 - getterInterfaceTempFileHandle = getterForInterface;
733 - }
734 -
735 - /**
736 - * Returns getter method's impl's temporary file handle.
737 - *
738 - * @return temporary file handle
739 - */
740 - public File getGetterImplTempFileHandle() {
741 - return getterImplTempFileHandle;
742 - }
743 -
744 - /**
745 - * Sets to getter method's impl's temporary file handle.
746 - *
747 - * @param getterImpl file handle for to getter method's impl
748 - */
749 - private void setGetterImplTempFileHandle(File getterImpl) {
750 - getterImplTempFileHandle = getterImpl;
751 - }
752 -
753 - /**
754 - * Returns setter method's temporary file handle.
755 - *
756 - * @return temporary file handle
757 - */
758 - public File getSetterInterfaceTempFileHandle() {
759 - return setterInterfaceTempFileHandle;
760 - }
761 -
762 - /**
763 - * Sets to setter method's temporary file handle.
764 - *
765 - * @param setterForInterface file handle for to setter method
766 - */
767 - private void setSetterInterfaceTempFileHandle(File setterForInterface) {
768 - setterInterfaceTempFileHandle = setterForInterface;
769 - }
770 -
771 - /**
772 - * Returns setter method's impl's temporary file handle.
773 - *
774 - * @return temporary file handle
775 - */
776 - public File getSetterImplTempFileHandle() {
777 - return setterImplTempFileHandle;
778 - }
779 -
780 - /**
781 - * Sets to setter method's impl's temporary file handle.
782 - *
783 - * @param setterImpl file handle for to setter method's implementation class
784 - */
785 - private void setSetterImplTempFileHandle(File setterImpl) {
786 - setterImplTempFileHandle = setterImpl;
787 - }
788 -
789 - /**
790 - * Returns constructor's temporary file handle.
791 - *
792 - * @return temporary file handle
793 - */
794 - public File getConstructorImplTempFileHandle() {
795 - return constructorImplTempFileHandle;
796 - }
797 -
798 - /**
799 - * Sets to constructor's temporary file handle.
800 - *
801 - * @param constructor file handle for to constructor
802 - */
803 - private void setConstructorImplTempFileHandle(File constructor) {
804 - constructorImplTempFileHandle = constructor;
805 - }
806 -
807 - /**
808 - * Returns hash code method's temporary file handle.
809 - *
810 - * @return temporary file handle
811 - */
812 - public File getHashCodeImplTempFileHandle() {
813 - return hashCodeImplTempFileHandle;
814 - }
815 -
816 - /**
817 - * Sets hash code method's temporary file handle.
818 - *
819 - * @param hashCodeMethod file handle for hash code method
820 - */
821 - private void setHashCodeImplTempFileHandle(File hashCodeMethod) {
822 - hashCodeImplTempFileHandle = hashCodeMethod;
823 - }
824 -
825 - /**
826 - * Returns equals mehtod's temporary file handle.
827 - *
828 - * @return temporary file handle
829 - */
830 - public File getEqualsImplTempFileHandle() {
831 - return equalsImplTempFileHandle;
832 - }
833 -
834 - /**
835 - * Sets equals method's temporary file handle.
836 - *
837 - * @param equalsMethod file handle for to equals method
838 - */
839 - private void setEqualsImplTempFileHandle(File equalsMethod) {
840 - equalsImplTempFileHandle = equalsMethod;
841 - }
842 -
843 - /**
844 - * Returns rpc method's temporary file handle.
845 - *
846 - * @return temporary file handle
847 - */
848 - public File getRpcInterfaceImplTempFileHandle() {
849 - return rpcInterfaceImplTempFileHandle;
850 - }
851 -
852 - /**
853 - * Sets rpc method's temporary file handle.
854 - *
855 - * @param rpcInterfaceImplTempFileHandle file handle for to rpc method
856 - */
857 - public void setRpcInterfaceImplTempFileHandle(File rpcInterfaceImplTempFileHandle) {
858 - this.rpcInterfaceImplTempFileHandle = rpcInterfaceImplTempFileHandle;
859 - }
860 -
861 - /**
862 - * Returns rpc method's java file handle.
863 - *
864 - * @return java file handle
865 - */
866 - public File getRpcInterfaceJavaFileHandle() {
867 - return rpcInterfaceJavaFileHandle;
868 - }
869 -
870 - /**
871 - * Sets rpc method's java file handle.
872 - *
873 - * @param rpcInterfaceJavaFileHandle file handle for to rpc method
874 - */
875 - public void setRpcInterfaceJavaFileHandle(File rpcInterfaceJavaFileHandle) {
876 - this.rpcInterfaceJavaFileHandle = rpcInterfaceJavaFileHandle;
877 - }
878 -
879 - /**
880 - * Returns to string method's temporary file handle.
881 - *
882 - * @return temporary file handle
883 - */
884 - public File getToStringImplTempFileHandle() {
885 - return toStringImplTempFileHandle;
886 - }
887 -
888 - /**
889 - * Sets to string method's temporary file handle.
890 - *
891 - * @param toStringMethod file handle for to string method
892 - */
893 - private void setToStringImplTempFileHandle(File toStringMethod) {
894 - toStringImplTempFileHandle = toStringMethod;
895 - }
896 -
897 - /**
898 - * Returns temporary file handle for enum class file.
899 - *
900 - * @return temporary file handle for enum class file
901 - */
902 - public File getEnumClassTempFileHandle() {
903 - return enumClassTempFileHandle;
904 - }
905 -
906 - /**
907 - * Sets temporary file handle for enum class file.
908 - *
909 - * @param enumClassTempFileHandle temporary file handle for enum class file
910 - */
911 -
912 - private void setEnumClassTempFileHandle(File enumClassTempFileHandle) {
913 - this.enumClassTempFileHandle = enumClassTempFileHandle;
914 - }
915 -
916 - /**
917 - * Returns of string method's temporary file handle.
918 - *
919 - * @return of string method's temporary file handle
920 - */
921 - public File getOfStringImplTempFileHandle() {
922 - return ofStringImplTempFileHandle;
923 - }
924 -
925 - /**
926 - * Set of string method's temporary file handle.
927 - *
928 - * @param ofStringImplTempFileHandle of string method's temporary file handle
929 - */
930 - private void setOfStringImplTempFileHandle(File ofStringImplTempFileHandle) {
931 - this.ofStringImplTempFileHandle = ofStringImplTempFileHandle;
932 - }
933 -
934 - /**
935 - * Returns type class constructor method's temporary file handle.
936 - *
937 - * @return type class constructor method's temporary file handle
938 - */
939 - public File getConstructorForTypeTempFileHandle() {
940 - return constructorForTypeTempFileHandle;
941 - }
942 -
943 - /**
944 - * Sets type class constructor method's temporary file handle.
945 - *
946 - * @param constructorForTypeTempFileHandle type class constructor method's temporary file handle
947 - */
948 - private void setConstructorForTypeTempFileHandle(File constructorForTypeTempFileHandle) {
949 - this.constructorForTypeTempFileHandle = constructorForTypeTempFileHandle;
950 - }
951 -
952 - /**
953 - * Returns from string method's temporary file handle.
954 - *
955 - * @return from string method's temporary file handle
956 - */
957 - public File getFromStringImplTempFileHandle() {
958 - return fromStringImplTempFileHandle;
959 - }
960 -
961 - /**
962 - * Sets from string method's temporary file handle.
963 - *
964 - * @param fromStringImplTempFileHandle from string method's temporary file handle
965 - */
966 - private void setFromStringImplTempFileHandle(File fromStringImplTempFileHandle) {
967 - this.fromStringImplTempFileHandle = fromStringImplTempFileHandle;
968 - }
969 -
970 - /**
971 - * Returns java attribute info.
972 - *
973 - * @return java attribute info
974 - */
975 - private JavaAttributeInfo getNewAttrInfo() {
976 - return newAttrInfo;
977 - }
978 -
979 - /**
980 - * Sets java attribute info.
981 - *
982 - * @param newAttrInfo java attribute info
983 - */
984 - private void setNewAttrInfo(JavaAttributeInfo newAttrInfo) {
985 -
986 - if (newAttrInfo != null) {
987 - isAttributePresent = true;
988 - }
989 - this.newAttrInfo = newAttrInfo;
990 - }
991 -
992 - /**
993 - * Returns current YANG node.
994 - *
995 - * @return current YANG node
996 - */
997 - private YangNode getCurYangNode() {
998 - return curYangNode;
999 - }
1000 -
1001 - /**
1002 - * Sets current YANG node.
1003 - *
1004 - * @param curYangNode YANG node
1005 - */
1006 - private void setCurYangNode(YangNode curYangNode) {
1007 - this.curYangNode = curYangNode;
1008 - }
1009 -
1010 - /**
1011 - * Returns enum's value.
1012 - *
1013 - * @return enum's value
1014 - */
1015 - public int getEnumValue() {
1016 - return enumValue;
1017 - }
1018 -
1019 - /**
1020 - * Sets enum's value.
1021 - *
1022 - * @param enumValue enum's value
1023 - */
1024 - public void setEnumValue(int enumValue) {
1025 - this.enumValue = enumValue;
1026 - }
1027 -
1028 - /**
1029 - * Returns list of classes to be extended by generated files.
1030 - *
1031 - * @return list of classes to be extended by generated files
1032 - */
1033 - private List<String> getExtendsList() {
1034 - return extendsList;
1035 - }
1036 -
1037 - /**
1038 - * Sets class to be extended by generated file.
1039 - *
1040 - * @param extendsList list of classes to be extended
1041 - */
1042 -
1043 - private void setExtendsList(List<String> extendsList) {
1044 - this.extendsList = extendsList;
1045 - }
1046 -
1047 - /**
1048 - * Adds class to the extends list.
1049 - *
1050 - * @param extend class to be extended
1051 - */
1052 - public void addToExtendsList(String extend) {
1053 - getExtendsList().add(extend);
1054 - }
1055 -
1056 - /**
1057 - * Adds of string for type.
1058 - *
1059 - * @param attr attribute info
1060 - * @throws IOException when fails to append to temporary file
1061 - */
1062 - private void addOfStringMethod(JavaAttributeInfo attr) throws IOException {
1063 - appendToFile(getOfStringImplTempFileHandle(), getOfMethodStringAndJavaDoc(attr, generatedJavaClassName)
1064 - + NEW_LINE);
1065 - }
1066 -
1067 - /**
1068 - * Adds type constructor.
1069 - *
1070 - * @param attr attribute info
1071 - * @throws IOException when fails to append to temporary file
1072 - */
1073 - private void addTypeConstructor(JavaAttributeInfo attr) throws IOException {
1074 - appendToFile(getConstructorForTypeTempFileHandle(), getTypeConstructorStringAndJavaDoc(attr,
1075 - generatedJavaClassName) + NEW_LINE);
1076 - }
1077 -
1078 - /**
1079 - * Adds attribute for class.
1080 - *
1081 - * @param attr attribute info
1082 - * @throws IOException when fails to append to temporary file
1083 - */
1084 - private void addAttribute(JavaAttributeInfo attr) throws IOException {
1085 - appendToFile(getAttributesTempFileHandle(), parseAttribute(attr) + FOUR_SPACE_INDENTATION);
1086 - }
1087 -
1088 - /**
1089 - * Adds getter for interface.
1090 - *
1091 - * @param attr attribute info
1092 - * @throws IOException when fails to append to temporary file
1093 - */
1094 - private void addGetterForInterface(JavaAttributeInfo attr) throws IOException {
1095 - appendToFile(getGetterInterfaceTempFileHandle(), getGetterString(attr) + NEW_LINE);
1096 - }
1097 -
1098 - /**
1099 - * Adds getter method's impl for class.
1100 - *
1101 - * @param attr attribute info
1102 - * @param genFiletype generated file type
1103 - * @throws IOException when fails to append to temporary file
1104 - */
1105 - private void addGetterImpl(JavaAttributeInfo attr, int genFiletype) throws IOException {
1106 -
1107 - if ((genFiletype & BUILDER_CLASS_MASK) != 0) {
1108 - appendToFile(getGetterImplTempFileHandle(), getOverRideString() + getGetterForClass(attr) + NEW_LINE);
1109 - } else {
1110 - appendToFile(getGetterImplTempFileHandle(), getJavaDoc(GETTER_METHOD, attr.getAttributeName(), false)
1111 - + getGetterForClass(attr) + NEW_LINE);
1112 - }
1113 - }
1114 30
1115 - /** 31 +/**
1116 - * Adds setter for interface. 32 + * Represents implementation of java code fragments temporary implementations.
1117 - * 33 + */
1118 - * @param attr attribute info 34 +public class TempJavaCodeFragmentFiles {
1119 - * @throws IOException when fails to append to temporary file
1120 - */
1121 - private void addSetterForInterface(JavaAttributeInfo attr) throws IOException {
1122 - appendToFile(getSetterInterfaceTempFileHandle(),
1123 - getSetterString(attr, generatedJavaClassName) + NEW_LINE);
1124 - }
1125 35
1126 /** 36 /**
1127 - * Adds setter's implementation for class. 37 + * Has the temporary files required for bean generated classes.
1128 - *
1129 - * @param attr attribute info
1130 - * @throws IOException when fails to append to temporary file
1131 */ 38 */
1132 - private void addSetterImpl(JavaAttributeInfo attr) throws IOException { 39 + private TempJavaBeanFragmentFiles beanTempFiles;
1133 - appendToFile(getSetterImplTempFileHandle(),
1134 - getOverRideString() + getSetterForClass(attr, generatedJavaClassName) + NEW_LINE);
1135 - }
1136 40
1137 /** 41 /**
1138 - * Adds build method for interface. 42 + * Has the temporary files required for bean generated classes.
1139 - *
1140 - * @return build method for interface
1141 */ 43 */
1142 - public String addBuildMethodForInterface() { 44 + private TempJavaTypeFragmentFiles typeTempFiles;
1143 - return parseBuilderInterfaceBuildMethodString(generatedJavaClassName);
1144 - }
1145 45
1146 /** 46 /**
1147 - * Adds build method's implementation for class. 47 + * Has the temporary files required for service generated classes.
1148 - *
1149 - * @return build method implementation for class
1150 */ 48 */
1151 - public String addBuildMethodImpl() { 49 + private TempJavaServiceFragmentFiles serviceTempFiles;
1152 - return getBuildString(generatedJavaClassName) + NEW_LINE;
1153 - }
1154 50
1155 /** 51 /**
1156 - * Adds constructor for class. 52 + * Has the temporary files required for enumeration generated classes.
1157 - *
1158 - * @param attr attribute info
1159 - * @throws IOException when fails to append to temporary file
1160 */ 53 */
1161 - private void addConstructor(JavaAttributeInfo attr) throws IOException { 54 + private TempJavaEnumerationFragmentFiles enumerationTempFiles;
1162 - appendToFile(getConstructorImplTempFileHandle(), getConstructor(generatedJavaClassName, attr));
1163 - }
1164 55
1165 /** 56 /**
1166 - * Adds default constructor for class. 57 + * Creates an instance of temporary java code fragment.
1167 * 58 *
1168 - * @param modifier modifier for constructor. 59 + * @param javaFileInfo generated java file info
1169 - * @param toAppend string which need to be appended with the class name 60 + * @throws IOException when fails to create new file handle
1170 - * @return default constructor for class
1171 */ 61 */
1172 - public String addDefaultConstructor(String modifier, String toAppend) { 62 + public TempJavaCodeFragmentFiles(JavaFileInfo javaFileInfo)
1173 - return NEW_LINE + getDefaultConstructorString(generatedJavaClassName + toAppend, modifier); 63 + throws IOException {
1174 - }
1175 64
1176 - /** 65 + if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_INTERFACE_WITH_BUILDER) != 0) {
1177 - * Adds default constructor for class. 66 + setBeanTempFiles(new TempJavaBeanFragmentFiles(javaFileInfo));
1178 - * 67 + }
1179 - * @return default constructor for class
1180 - */
1181 - public String addOfMethod() {
1182 - return getJavaDoc(OF_METHOD, generatedJavaClassName, false)
1183 - + getOfMethod(generatedJavaClassName, newAttrInfo);
1184 - }
1185 68
1186 - /** 69 + /**
1187 - * Adds hash code method for class. 70 + * Creates user defined data type class file.
1188 - * 71 + */
1189 - * @param attr attribute info 72 + if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_TYPE_CLASS) != 0) {
1190 - * @throws IOException when fails to append to temporary file 73 + setTypeTempFiles(new TempJavaTypeFragmentFiles(javaFileInfo));
1191 - */ 74 + }
1192 - private void addHashCodeMethod(JavaAttributeInfo attr) throws IOException {
1193 - appendToFile(getHashCodeImplTempFileHandle(), getHashCodeMethod(attr) + NEW_LINE);
1194 - }
1195 75
1196 - /** 76 + /**
1197 - * Adds equals method for class. 77 + * Creates enumeration class file.
1198 - * 78 + */
1199 - * @param attr attribute info 79 + if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_ENUM_CLASS) != 0) {
1200 - * @throws IOException when fails to append to temporary file 80 + setEnumerationTempFiles(new TempJavaEnumerationFragmentFiles(javaFileInfo));
1201 - */ 81 + }
1202 - private void addEqualsMethod(JavaAttributeInfo attr) throws IOException {
1203 - appendToFile(getEqualsImplTempFileHandle(), getEqualsMethod(attr) + NEW_LINE);
1204 - }
1205 82
1206 - /** 83 + if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_RPC_INTERFACE) != 0) {
1207 - * Adds ToString method for class. 84 + setServiceTempFiles(new TempJavaServiceFragmentFiles(javaFileInfo));
1208 - * 85 + }
1209 - * @param attr attribute info
1210 - * @throws IOException when fails to append to temporary file
1211 - */
1212 - private void addToStringMethod(JavaAttributeInfo attr) throws IOException {
1213 - appendToFile(getToStringImplTempFileHandle(), getToStringMethod(attr) + NEW_LINE);
1214 } 86 }
1215 87
1216 /** 88 /**
1217 - * Adds enum class attributes to temporary file. 89 + * Retrieves the temp file handle for bean file generation.
1218 * 90 *
1219 - * @param curEnum current YANG enum 91 + * @return temp file handle for bean file generation
1220 - * @throws IOException when fails to do IO operations.
1221 */ 92 */
1222 - private void addAttributesForEnumClass(JavaAttributeInfo curEnumInfo) throws IOException { 93 + public TempJavaBeanFragmentFiles getBeanTempFiles() {
1223 - appendToFile(getEnumClassTempFileHandle(), 94 + return beanTempFiles;
1224 - generateEnumAttributeString(curEnumInfo.getAttributeName(), getEnumValue()));
1225 } 95 }
1226 96
1227 /** 97 /**
1228 - * Add from string method for union class. 98 + * Sets temp file handle for bean file generation.
1229 * 99 *
1230 - * @param javaAttributeInfo type attribute info 100 + * @param beanTempFiles temp file handle for bean file generation
1231 - * @param fromStringAttributeInfo from string attribute info
1232 - * @throws IOException when fails to append to temporary file
1233 */ 101 */
1234 - private void addFromStringMethod(JavaAttributeInfo javaAttributeInfo, 102 + public void setBeanTempFiles(TempJavaBeanFragmentFiles beanTempFiles) {
1235 - JavaAttributeInfo fromStringAttributeInfo) throws IOException { 103 + this.beanTempFiles = beanTempFiles;
1236 - appendToFile(getFromStringImplTempFileHandle(), getFromStringMethod(javaAttributeInfo,
1237 - fromStringAttributeInfo) + NEW_LINE);
1238 } 104 }
1239 105
1240 - /**
1241 - * Adds rpc string information to applicable temp file.
1242 - *
1243 - * @param javaAttributeInfoOfInput rpc's input node attribute info
1244 - * @param javaAttributeInfoOfOutput rpc's output node attribute info
1245 - * @param rpcName name of the rpc function
1246 - * @throws IOException IO operation fail
1247 - */
1248 - private void addRpcString(JavaAttributeInfo javaAttributeInfoOfInput, JavaAttributeInfo javaAttributeInfoOfOutput,
1249 - String rpcName) throws IOException {
1250 - String rpcInput = "";
1251 - String rpcOutput = "void";
1252 - if (javaAttributeInfoOfInput != null) {
1253 - rpcInput = javaAttributeInfoOfInput.getAttributeName();
1254 - }
1255 - if (javaAttributeInfoOfOutput != null) {
1256 - rpcOutput = javaAttributeInfoOfOutput.getAttributeName();
1257 - }
1258 - appendToFile(getRpcInterfaceImplTempFileHandle(), generateJavaDocForRpc(rpcName, rpcInput, rpcOutput) +
1259 - getRpcStringMethod(rpcName, rpcInput, rpcOutput) + NEW_LINE);
1260 - }
1261 106
1262 /** 107 /**
1263 - * Returns a temporary file handle for the specific file type. 108 + * Retrieves the temp file handle for data type file generation.
1264 * 109 *
1265 - * @param fileName file name 110 + * @return temp file handle for data type file generation
1266 - * @return temporary file handle
1267 - * @throws IOException when fails to create new file handle
1268 */ 111 */
1269 - private File getTemporaryFileHandle(String fileName) throws IOException { 112 + public TempJavaTypeFragmentFiles getTypeTempFiles() {
1270 - 113 + return typeTempFiles;
1271 - String path = getTempDirPath();
1272 - File dir = new File(path);
1273 - if (!dir.exists()) {
1274 - dir.mkdirs();
1275 - }
1276 -
1277 - File file = new File(path + fileName + TEMP_FILE_EXTENSION);
1278 - if (!file.exists()) {
1279 - file.createNewFile();
1280 - }
1281 - return file;
1282 } 114 }
1283 115
1284 - /**
1285 - * Returns a temporary file handle for the specific file type.
1286 - *
1287 - * @param fileName file name
1288 - * @return temporary file handle
1289 - * @throws IOException when fails to create new file handle
1290 - */
1291 - private File getJavaFileHandle(String fileName) throws IOException {
1292 - return getFileObject(getDirPath(), fileName, JAVA_FILE_EXTENSION, getJavaFileInfo());
1293 - }
1294 116
1295 /** 117 /**
1296 - * Returns data from the temporary files. 118 + * Sets temp file handle for data type file generation.
1297 * 119 *
1298 - * @param file temporary file handle 120 + * @param typeTempFiles temp file handle for data type file generation
1299 - * @return stored data from temporary files
1300 - * @throws IOException when failed to get data from the given file
1301 */ 121 */
1302 - public String getTemporaryDataFromFileHandle(File file) throws IOException { 122 + public void setTypeTempFiles(TempJavaTypeFragmentFiles typeTempFiles) {
1303 - 123 + this.typeTempFiles = typeTempFiles;
1304 - String path = getTempDirPath();
1305 - if (new File(path + file.getName()).exists()) {
1306 - return readAppendFile(path + file.getName(), EMPTY_STRING);
1307 - } else {
1308 - throw new IOException("Unable to get data from the given "
1309 - + file.getName() + " file for " + generatedJavaClassName + PERIOD);
1310 - }
1311 } 124 }
1312 125
1313 /** 126 /**
1314 - * Returns temporary directory path. 127 + * Retrieves the temp file handle for service file generation.
1315 * 128 *
1316 - * @return directory path 129 + * @return temp file handle for service file generation
1317 */ 130 */
1318 - private String getTempDirPath() { 131 + public TempJavaServiceFragmentFiles getServiceTempFiles() {
1319 - return getPackageDirPathFromJavaJPackage(absoluteDirPath) + SLASH + generatedJavaClassName 132 + return serviceTempFiles;
1320 - + TEMP_FOLDER_NAME_SUFIX + SLASH;
1321 } 133 }
1322 134
1323 /** 135 /**
1324 - * Parses attribute to get the attribute string. 136 + * Sets temp file handle for service file generation.
1325 * 137 *
1326 - * @param attr attribute info 138 + * @param serviceTempFiles temp file handle for service file generation
1327 - * @return attribute string
1328 */ 139 */
1329 - private String parseAttribute(JavaAttributeInfo attr) { 140 + public void setServiceTempFiles(TempJavaServiceFragmentFiles serviceTempFiles) {
1330 - 141 + this.serviceTempFiles = serviceTempFiles;
1331 - /*
1332 - * TODO: check if this utility needs to be called or move to the caller
1333 - */
1334 - String attributeName = getCamelCase(getSmallCase(attr.getAttributeName()), null);
1335 - if (attr.isQualifiedName()) {
1336 - return getJavaAttributeDefination(attr.getImportInfo().getPkgInfo(), attr.getImportInfo().getClassInfo(),
1337 - attributeName, attr.isListAttr());
1338 - } else {
1339 - return getJavaAttributeDefination(null, attr.getImportInfo().getClassInfo(), attributeName,
1340 - attr.isListAttr());
1341 - }
1342 } 142 }
1343 143
1344 /** 144 /**
1345 - * Appends content to temporary file. 145 + * Retrieves the temp file handle for enumeration file generation.
1346 * 146 *
1347 - * @param file temporary file 147 + * @return temp file handle for enumeration file generation
1348 - * @param data data to be appended
1349 - * @throws IOException when fails to append to file
1350 */ 148 */
1351 - private void appendToFile(File file, String data) throws IOException { 149 + public TempJavaEnumerationFragmentFiles getEnumerationTempFiles() {
1352 - 150 + return enumerationTempFiles;
1353 - try {
1354 - insertDataIntoJavaFile(file, data);
1355 - } catch (IOException ex) {
1356 - throw new IOException("failed to write in temp file.");
1357 - }
1358 } 151 }
1359 152
1360 /** 153 /**
1361 - * Adds current node info as and attribute to the parent generated file. 154 + * Sets temp file handle for enumeration file generation.
1362 * 155 *
1363 - * @param curNode current node which needs to be added as an attribute in 156 + * @param enumerationTempFiles temp file handle for enumeration file generation
1364 - * the parent generated code
1365 - * @param isList is list construct
1366 - * @throws IOException IO operation exception
1367 */ 157 */
1368 - public void addCurNodeInfoInParentTempFile(YangNode curNode, 158 + public void setEnumerationTempFiles(
1369 - boolean isList) throws IOException { 159 + TempJavaEnumerationFragmentFiles enumerationTempFiles) {
1370 - 160 + this.enumerationTempFiles = enumerationTempFiles;
1371 - YangNode parent = getParentNodeInGenCode(curNode);
1372 - if (!(parent instanceof JavaCodeGenerator)) {
1373 - throw new TranslatorException("missing parent node to contain current node info in generated file");
1374 - }
1375 - JavaAttributeInfo javaAttributeInfo = getCurNodeAsAttributeInParent(curNode,
1376 - parent, isList);
1377 -
1378 - if (!(parent instanceof HasTempJavaCodeFragmentFiles)) {
1379 - throw new TranslatorException("missing parent temp file handle");
1380 - }
1381 - ((HasTempJavaCodeFragmentFiles) parent)
1382 - .getTempJavaCodeFragmentFiles()
1383 - .addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfo);
1384 } 161 }
1385 162
1386 /** 163 /**
1387 - * Adds parent's info to current node import list. 164 + * Constructs java code exit.
1388 * 165 *
1389 - * @param curNode current node for which import list needs to be updated 166 + * @param fileType generated file type
167 + * @param curNode current YANG node
168 + * @throws IOException when fails to generate java files
1390 */ 169 */
1391 - public void addParentInfoInCurNodeTempFile(YangNode curNode) { 170 + public void generateJavaFile(int fileType, YangNode curNode)
1392 - caseImportInfo = new JavaQualifiedTypeInfo(); 171 + throws IOException {
1393 - YangNode parent = getParentNodeInGenCode(curNode); 172 +
1394 - if (!(parent instanceof JavaCodeGenerator)) { 173 + if (getBeanTempFiles() != null) {
1395 - throw new TranslatorException("missing parent node to contain current node info in generated file"); 174 + getBeanTempFiles().generateJavaFile(fileType, curNode);
1396 } 175 }
1397 176
1398 - if (!(curNode instanceof HasJavaFileInfo)) { 177 + /**
1399 - throw new TranslatorException("missing java file information to get the package details " 178 + * Creates user defined data type class file.
1400 - + "of attribute corresponding to child node"); 179 + */
180 + if (getTypeTempFiles() != null) {
181 + getTypeTempFiles().generateJavaFile(fileType, curNode);
1401 } 182 }
1402 183
1403 - caseImportInfo.setClassInfo(getCaptialCase(getCamelCase(parent.getName(), null)));
1404 - caseImportInfo.setPkgInfo(((HasJavaFileInfo) parent).getJavaFileInfo().getPackage());
1405 - ((HasJavaImportData) curNode).getJavaImportData().addImportInfo(curNode, caseImportInfo);
1406 } 184 }
1407 185
1408 /** 186 /**
1409 - * Adds leaf attributes in generated files. 187 + * Adds the new attribute info to the target generated temporary files.
1410 * 188 *
1411 - * @param listOfLeaves list of YANG leaf 189 + * @param newAttrInfo the attribute info that needs to be added to temporary
1412 - * @param curNode current data model node 190 + * files
1413 * @throws IOException IO operation fail 191 * @throws IOException IO operation fail
1414 */ 192 */
1415 - private void addLeavesInfoToTempFiles(List<YangLeaf> listOfLeaves, 193 + public void addJavaSnippetInfoToApplicableTempFiles(JavaAttributeInfo newAttrInfo)
1416 - YangNode curNode) throws IOException { 194 + throws IOException {
1417 195
1418 - if (listOfLeaves != null) { 196 + if (getBeanTempFiles() != null) {
1419 - for (YangLeaf leaf : listOfLeaves) { 197 + getBeanTempFiles()
1420 - JavaAttributeInfo javaAttributeInfo = getAttributeInfoOfLeaf(curNode, 198 + .addJavaSnippetInfoToApplicableTempFiles(newAttrInfo);
1421 - leaf.getDataType(),
1422 - leaf.getLeafName(), false);
1423 - addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfo);
1424 - }
1425 } 199 }
1426 - }
1427 -
1428 - /**
1429 - * Adds leaf list's attributes in generated files.
1430 - *
1431 - * @param listOfLeafList list of YANG leaves
1432 - * @param curNode cached file handle
1433 - * @throws IOException IO operation fail
1434 - */
1435 - private void addLeafListInfoToTempFiles(List<YangLeafList> listOfLeafList,
1436 - YangNode curNode) throws IOException {
1437 -
1438 - if (listOfLeafList != null) {
1439 -
1440 - /*
1441 - * Check if the attribute is of type list, then the java.lang.list
1442 - * needs to be imported.
1443 - */
1444 - if (!listOfLeafList.isEmpty()) {
1445 - if (!(curNode instanceof HasJavaImportData)) {
1446 - throw new TranslatorException("missing import info in current data model node");
1447 200
1448 - } 201 + /**
1449 - ((HasJavaImportData) curNode).getJavaImportData() 202 + * Creates user defined data type class file.
1450 - .setIfListImported(true); 203 + */
1451 - 204 + if (getTypeTempFiles() != null) {
1452 - } 205 + getTypeTempFiles()
1453 - 206 + .addJavaSnippetInfoToApplicableTempFiles(newAttrInfo);
1454 - for (YangLeafList leafList : listOfLeafList) {
1455 - JavaAttributeInfo javaAttributeInfo = getAttributeInfoOfLeaf(
1456 - curNode, leafList.getDataType(), leafList.getLeafName(),
1457 - true);
1458 - addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfo);
1459 - }
1460 } 207 }
1461 } 208 }
1462 209
...@@ -1467,442 +214,131 @@ public class TempJavaCodeFragmentFiles { ...@@ -1467,442 +214,131 @@ public class TempJavaCodeFragmentFiles {
1467 * @param curNode java file info of the generated file 214 * @param curNode java file info of the generated file
1468 * @throws IOException IO operation fail 215 * @throws IOException IO operation fail
1469 */ 216 */
1470 - public void addCurNodeLeavesInfoToTempFiles(YangNode curNode) throws IOException { 217 + public void addCurNodeLeavesInfoToTempFiles(YangNode curNode)
218 + throws IOException {
1471 219
1472 - if (curNode instanceof YangLeavesHolder) { 220 + if (getBeanTempFiles() != null) {
1473 - YangLeavesHolder leavesHolder = (YangLeavesHolder) curNode; 221 + getBeanTempFiles().addCurNodeLeavesInfoToTempFiles(curNode);
1474 - addLeavesInfoToTempFiles(leavesHolder.getListOfLeaf(), curNode);
1475 - addLeafListInfoToTempFiles(leavesHolder.getListOfLeafList(), curNode);
1476 } 222 }
223 +
1477 } 224 }
1478 225
1479 /** 226 /**
1480 * Add all the type in the current data model node as part of the 227 * Add all the type in the current data model node as part of the
1481 * generated temporary file. 228 * generated temporary file.
1482 * 229 *
1483 - * @param hasType YANG java data model node which has type info, eg union / typedef 230 + * @param yangTypeContainer YANG java data model node which has type info, eg union / typedef
1484 * @throws IOException IO operation fail 231 * @throws IOException IO operation fail
1485 */ 232 */
1486 - public void addTypeInfoToTempFiles(HasType hasType) throws IOException { 233 + public void addTypeInfoToTempFiles(YangTypeContainer yangTypeContainer)
234 + throws IOException {
1487 235
1488 - List<YangType<?>> typeList = hasType.getTypeList(); 236 + if (getTypeTempFiles() != null) {
1489 - if (typeList != null) { 237 + getTypeTempFiles()
1490 - for (YangType<?> yangType : typeList) { 238 + .addTypeInfoToTempFiles(yangTypeContainer);
1491 - JavaAttributeInfo javaAttributeInfo = getAttributeInfoOfType((YangNode) hasType,
1492 - yangType, getTypeName(yangType.getDataTypeName()), false);
1493 - addJavaSnippetInfoToApplicableTempFiles((YangNode) hasType, javaAttributeInfo);
1494 - }
1495 } 239 }
1496 } 240 }
1497 241
1498 - private String getTypeName(String dataTypeName) {
1499 - return dataTypeName;
1500 - //TODO: implement the method.
1501 - }
1502 -
1503 /** 242 /**
1504 - * Adds enum attributes to temporary files. 243 + * Adds class to the extends list.
1505 * 244 *
1506 - * @param curNode current YANG node 245 + * @param extend class to be extended
1507 - * @throws IOException when fails to do IO operations
1508 */ 246 */
1509 - public void addEnumAttributeToTempFiles(YangNode curNode) throws IOException { 247 + public void addToExtendsList(String extend) {
1510 - 248 + getExtendsList().add(extend);
1511 - if (curNode instanceof YangEnumeration) {
1512 - Set<YangEnum> enumSet = ((YangEnumeration) curNode).getEnumSet();
1513 - for (YangEnum curEnum : enumSet) {
1514 - JavaAttributeInfo javaAttributeInfo = getAttributeInfoOfEnumAttribute(curNode, curEnum.getNamedValue());
1515 - setEnumValue(curEnum.getValue());
1516 - addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfo);
1517 - }
1518 - } else {
1519 - throw new TranslatorException("curnode should be of type enum.");
1520 - }
1521 } 249 }
1522 250
1523 /** 251 /**
1524 - * Adds the new attribute info to the target generated temporary files for union class. 252 + * Adds build method for interface.
1525 * 253 *
1526 - * @param hasType the node for which the type is being added as an attribute 254 + * @return build method for interface
1527 - * @param javaAttributeInfo the attribute info that needs to be added to temporary 255 + * @throws IOException when fails to append to temporary file
1528 - * files
1529 - * @throws IOException IO operation fail
1530 */ 256 */
1531 - private void addJavaSnippetInfoToApplicableTempFiles(YangNode hasType, JavaAttributeInfo javaAttributeInfo) 257 + public String addBuildMethodForInterface()
1532 throws IOException { 258 throws IOException {
1533 - 259 + if (getBeanTempFiles() != null) {
1534 - JavaAttributeInfo fromStringAttributeInfo = getFromStringAttributeInfo(hasType, javaAttributeInfo); 260 + return getBeanTempFiles().addBuildMethodForInterface();
1535 -
1536 - if ((generatedTempFiles & FROM_STRING_IMPL_MASK) != 0) {
1537 - addFromStringMethod(javaAttributeInfo, fromStringAttributeInfo);
1538 } 261 }
1539 - addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfo); 262 + throw new TranslatorException("build method only supported for bean class");
1540 } 263 }
1541 264
1542 /** 265 /**
1543 - * Adds the JAVA rpc snippet information. 266 + * Adds default constructor for class.
1544 - *
1545 - * @param javaAttributeInfoOfInput rpc's input node attribute info
1546 - * @param javaAttributeInfoOfOutput rpc's output node attribute info
1547 - * @param rpcName name of the rpc function
1548 - * @throws IOException IO operation fail
1549 - */
1550 - public void addJavaSnippetInfoToApplicableTempFiles(JavaAttributeInfo javaAttributeInfoOfInput,
1551 - JavaAttributeInfo javaAttributeInfoOfOutput,
1552 - String rpcName) throws IOException {
1553 - if ((generatedTempFiles & RPC_IMPL_MASK) != 0) {
1554 - addRpcString(javaAttributeInfoOfInput, javaAttributeInfoOfOutput, rpcName);
1555 - }
1556 - }
1557 -
1558 - /**
1559 - * Adds the new attribute info to the target generated temporary files.
1560 * 267 *
1561 - * @param newAttrInfo the attribute info that needs to be added to temporary 268 + * @param modifier modifier for constructor.
1562 - * files 269 + * @param toAppend string which need to be appended with the class name
1563 - * @throws IOException IO operation fail 270 + * @return default constructor for class
271 + * @throws IOException when fails to append to file
1564 */ 272 */
1565 - void addJavaSnippetInfoToApplicableTempFiles(JavaAttributeInfo newAttrInfo) 273 + public String addDefaultConstructor(String modifier, String toAppend)
1566 throws IOException { 274 throws IOException {
275 + if (getTypeTempFiles() != null) {
276 + return getTypeTempFiles()
277 + .addDefaultConstructor(modifier, toAppend);
278 + }
1567 279
1568 - setNewAttrInfo(newAttrInfo); 280 + if (getBeanTempFiles() != null) {
1569 - if (isAttributePresent) { 281 + return getBeanTempFiles().addDefaultConstructor(modifier, toAppend);
1570 - if ((generatedTempFiles & ATTRIBUTES_MASK) != 0) {
1571 - addAttribute(newAttrInfo);
1572 - }
1573 -
1574 - if ((generatedTempFiles & GETTER_FOR_INTERFACE_MASK) != 0) {
1575 - addGetterForInterface(newAttrInfo);
1576 - }
1577 -
1578 - if ((generatedTempFiles & SETTER_FOR_INTERFACE_MASK) != 0) {
1579 - addSetterForInterface(newAttrInfo);
1580 - }
1581 -
1582 - if ((generatedTempFiles & GETTER_FOR_CLASS_MASK) != 0) {
1583 - addGetterImpl(newAttrInfo, generatedJavaFiles);
1584 - }
1585 -
1586 - if ((generatedTempFiles & SETTER_FOR_CLASS_MASK) != 0) {
1587 - addSetterImpl(newAttrInfo);
1588 - }
1589 -
1590 - if ((generatedTempFiles & CONSTRUCTOR_IMPL_MASK) != 0) {
1591 - addConstructor(newAttrInfo);
1592 - }
1593 -
1594 - if ((generatedTempFiles & HASH_CODE_IMPL_MASK) != 0) {
1595 - addHashCodeMethod(newAttrInfo);
1596 - }
1597 -
1598 - if ((generatedTempFiles & EQUALS_IMPL_MASK) != 0) {
1599 - addEqualsMethod(newAttrInfo);
1600 - }
1601 -
1602 - if ((generatedTempFiles & TO_STRING_IMPL_MASK) != 0) {
1603 - addToStringMethod(newAttrInfo);
1604 - }
1605 -
1606 - if ((generatedTempFiles & ENUM_IMPL_MASK) != 0) {
1607 - addAttributesForEnumClass(newAttrInfo);
1608 - }
1609 -
1610 - if ((generatedTempFiles & OF_STRING_IMPL_MASK) != 0) {
1611 - addOfStringMethod(newAttrInfo);
1612 - }
1613 -
1614 - if ((generatedTempFiles & CONSTRUCTOR_FOR_TYPE_MASK) != 0) {
1615 - addTypeConstructor(newAttrInfo);
1616 - }
1617 -
1618 } 282 }
1619 - }
1620 283
1621 - /** 284 + throw new TranslatorException("default constructor should not be added");
1622 - * Returns java file info.
1623 - *
1624 - * @return java file info
1625 - */
1626 - private JavaFileInfo getJavaFileInfo() {
1627 - return ((HasJavaFileInfo) getCurYangNode()).getJavaFileInfo();
1628 } 285 }
1629 286
1630 - /**
1631 - * Returns java class name.
1632 - *
1633 - * @param suffix for the class name based on the file type
1634 - * @return java class name
1635 - */
1636 - private String getJavaClassName(String suffix) {
1637 - return getCaptialCase(getJavaFileInfo().getJavaName()) + suffix;
1638 - }
1639 287
1640 /** 288 /**
1641 - * Returns the directory path. 289 + * Adds build method's implementation for class.
1642 * 290 *
1643 - * @return directory path 291 + * @return build method implementation for class
292 + * @throws IOException when fails to append to temporary file
1644 */ 293 */
1645 - private String getDirPath() { 294 + public String addBuildMethodImpl()
1646 - return getJavaFileInfo().getPackageFilePath(); 295 + throws IOException {
296 + if (getBeanTempFiles() != null) {
297 + return getBeanTempFiles().addBuildMethodImpl();
298 + }
299 +
300 + throw new TranslatorException("build should not be added");
1647 } 301 }
1648 302
1649 /** 303 /**
1650 - * Constructs java code exit. 304 + * Removes all temporary file handles.
1651 * 305 *
1652 - * @param fileType generated file type 306 + * @param isErrorOccurred when translator fails to generate java files we need to close
1653 - * @param curNode current YANG node 307 + * all open file handles include temporary files and java files.
1654 - * @throws IOException when fails to generate java files 308 + * @throws IOException when failed to delete the temporary files
1655 */ 309 */
1656 - public void generateJavaFile(int fileType, YangNode curNode) throws IOException { 310 + public void close(boolean isErrorOccurred)
1657 - 311 + throws IOException {
1658 - setCurYangNode(curNode);
1659 - List<String> imports = new ArrayList<>();
1660 - if (curNode instanceof HasJavaImportData && isAttributePresent) {
1661 - imports = ((HasJavaImportData) curNode).getJavaImportData().getImports(getNewAttrInfo());
1662 - }
1663 -
1664 - /**
1665 - * Prepares java file generator for extends list.
1666 - */
1667 - prepareJavaFileGeneratorForExtendsList(getExtendsList());
1668 - if (curNode.getNodeType().equals(MODULE_NODE)) {
1669 - createPackage(absoluteDirPath, getJavaFileInfo().getJavaName());
1670 - } else {
1671 - createPackage(absoluteDirPath, ((HasJavaFileInfo) curNode.getParent()).getJavaFileInfo().getJavaName()
1672 - + PACKAGE_INFO_JAVADOC_OF_CHILD);
1673 - }
1674 - /**
1675 - * Generate java code.
1676 - */
1677 - if ((fileType & INTERFACE_MASK) != 0 | (fileType & BUILDER_INTERFACE_MASK) != 0) {
1678 -
1679 - /**
1680 - * Adds import for case.
1681 - */
1682 - if (curNode instanceof YangCase) {
1683 - List<String> importData = ((HasJavaImportData) curNode).getJavaImportData().getImports();
1684 - for (String importInfo : importData) {
1685 - if (!imports.contains(importInfo)) {
1686 - imports.add(importInfo);
1687 - }
1688 - }
1689 - }
1690 -
1691 - /**
1692 - * Adds import for HasAugmentation class.
1693 - */
1694 - if (isHasAugmentationExtended(getExtendsList())) {
1695 - addHasAugmentationImport(curNode, imports, true);
1696 - }
1697 -
1698 - if (isAugmentedInfoExtended(getExtendsList())) {
1699 - addAugmentedInfoImport(curNode, imports, true);
1700 - }
1701 -
1702 - /**
1703 - * Create interface file.
1704 - */
1705 - setInterfaceJavaFileHandle(getJavaFileHandle(getJavaClassName(INTERFACE_FILE_NAME_SUFFIX)));
1706 - setInterfaceJavaFileHandle(
1707 - generateInterfaceFile(getInterfaceJavaFileHandle(), imports, curNode, isAttributePresent));
1708 - /**
1709 - * Create builder interface file.
1710 - */
1711 - if ((fileType & BUILDER_INTERFACE_MASK) != 0) {
1712 -
1713 - setBuilderInterfaceJavaFileHandle(
1714 - getJavaFileHandle(getJavaClassName(BUILDER_INTERFACE_FILE_NAME_SUFFIX)));
1715 - setBuilderInterfaceJavaFileHandle(
1716 - generateBuilderInterfaceFile(getBuilderInterfaceJavaFileHandle(), curNode, isAttributePresent));
1717 - /**
1718 - * Append builder interface file to interface file and close it.
1719 - */
1720 - mergeJavaFiles(getBuilderInterfaceJavaFileHandle(), getInterfaceJavaFileHandle());
1721 - }
1722 - insertDataIntoJavaFile(getInterfaceJavaFileHandle(), getJavaClassDefClose());
1723 -
1724 - if (isHasAugmentationExtended(getExtendsList())) {
1725 - addHasAugmentationImport(curNode, imports, false);
1726 - }
1727 - if (isAugmentedInfoExtended(getExtendsList())) {
1728 - addAugmentedInfoImport(curNode, imports, false);
1729 - }
1730 -
1731 - if (curNode instanceof YangCase) {
1732 - removeCaseImport(imports);
1733 - }
1734 - }
1735 -
1736 - if ((fileType & BUILDER_CLASS_MASK) != 0 | (fileType & IMPL_CLASS_MASK) != 0) {
1737 -
1738 - if (isAttributePresent) {
1739 - addImportsToStringAndHasCodeMethods(curNode, imports);
1740 - }
1741 - if (isHasAugmentationExtended(getExtendsList())) {
1742 - addAugmentedInfoImport(curNode, imports, true);
1743 - addArrayListImport(curNode, imports, true);
1744 - }
1745 -
1746 - /**
1747 - * Create builder class file.
1748 - */
1749 - setBuilderClassJavaFileHandle(getJavaFileHandle(getJavaClassName(BUILDER_CLASS_FILE_NAME_SUFFIX)));
1750 - setBuilderClassJavaFileHandle(
1751 - generateBuilderClassFile(getBuilderClassJavaFileHandle(), imports, curNode, isAttributePresent));
1752 - /**
1753 - * Create impl class file.
1754 - */
1755 - if ((fileType & IMPL_CLASS_MASK) != 0) {
1756 - setImplClassJavaFileHandle(getJavaFileHandle(getJavaClassName(IMPL_CLASS_FILE_NAME_SUFFIX)));
1757 - setImplClassJavaFileHandle(
1758 - generateImplClassFile(getImplClassJavaFileHandle(), curNode, isAttributePresent));
1759 - /**
1760 - * Append impl class to builder class and close it.
1761 - */
1762 - mergeJavaFiles(getImplClassJavaFileHandle(), getBuilderClassJavaFileHandle());
1763 - }
1764 - insertDataIntoJavaFile(getBuilderClassJavaFileHandle(), getJavaClassDefClose());
1765 - }
1766 -
1767 - /**
1768 - * Creates type def class file.
1769 - */
1770 - if ((fileType & GENERATE_TYPEDEF_CLASS) != 0) {
1771 - addImportsToStringAndHasCodeMethods(curNode, imports);
1772 - setTypedefClassJavaFileHandle(getJavaFileHandle(getJavaClassName(TYPEDEF_CLASS_FILE_NAME_SUFFIX)));
1773 - setTypedefClassJavaFileHandle(generateTypeDefClassFile(getTypedefClassJavaFileHandle(), curNode, imports));
1774 - }
1775 312
1776 - /** 313 + if (getBeanTempFiles() != null) {
1777 - * Creates type class file. 314 + getBeanTempFiles().close(isErrorOccurred);
1778 - */
1779 - if ((fileType & GENERATE_UNION_CLASS) != 0) {
1780 - addImportsToStringAndHasCodeMethods(curNode, imports);
1781 - setTypeClassJavaFileHandle(getJavaFileHandle(getJavaClassName(UNION_TYPE_CLASS_FILE_NAME_SUFFIX)));
1782 - setTypeClassJavaFileHandle(generateUnionClassFile(getTypeClassJavaFileHandle(), curNode, imports));
1783 } 315 }
1784 316
1785 - /** 317 + if (getTypeTempFiles() != null) {
1786 - * Creates type enum class file. 318 + getTypeTempFiles().close(isErrorOccurred);
1787 - */
1788 - if ((fileType & GENERATE_ENUM_CLASS) != 0) {
1789 - setEnumClassJavaFileHandle(getJavaFileHandle(getJavaClassName(ENUM_CLASS_FILE_NAME_SUFFIX)));
1790 - setEnumClassJavaFileHandle(generateEnumClassFile(getEnumClassJavaFileHandle(), curNode));
1791 } 319 }
1792 320
1793 - /** 321 + if (getEnumerationTempFiles() != null) {
1794 - * Creates rpc interface file. 322 + getEnumerationTempFiles().close(isErrorOccurred);
1795 - */
1796 - if ((fileType & GENERATE_RPC_INTERFACE) != 0) {
1797 - setRpcInterfaceJavaFileHandle(getJavaFileHandle(getJavaClassName(RPC_INTERFACE_FILE_NAME_SUFFIX)));
1798 - setRpcInterfaceJavaFileHandle(generateRpcInterfaceFile(getRpcInterfaceJavaFileHandle(), curNode, imports));
1799 } 323 }
1800 -
1801 - /**
1802 - * Close all the file handles.
1803 - */
1804 - close(false);
1805 } 324 }
1806 325
1807 - /**
1808 - * Removes case import info from import list.
1809 - *
1810 - * @param imports list of imports
1811 - * @return import for class
1812 - */
1813 - private List<String> removeCaseImport(List<String> imports) {
1814 - if (imports != null && caseImportInfo != null) {
1815 - String caseImport = IMPORT + caseImportInfo.getPkgInfo() + PERIOD + caseImportInfo.getClassInfo() +
1816 - SEMI_COLAN + NEW_LINE;
1817 - imports.remove(caseImport);
1818 - }
1819 - return imports;
1820 - }
1821 326
1822 /** 327 /**
1823 - * Removes all temporary file handles. 328 + * Adds enum attributes to temporary files.
1824 * 329 *
1825 - * @param isErrorOccurred when translator fails to generate java files we need to close 330 + * @param curNode current YANG node
1826 - * all open file handles include temporary files and java files. 331 + * @throws IOException when fails to do IO operations
1827 - * @throws IOException when failed to delete the temporary files
1828 */ 332 */
1829 - public void close(boolean isErrorOccurred) throws IOException { 333 + public void addEnumAttributeToTempFiles(YangNode curNode)
334 + throws IOException {
1830 335
1831 - boolean isError = isErrorOccurred; 336 + if (getEnumerationTempFiles() != null) {
1832 - /** 337 + getEnumerationTempFiles().addEnumAttributeToTempFiles(curNode);
1833 - * Close all java file handles and when error occurs delete the files. 338 + return;
1834 - */
1835 - if ((generatedJavaFiles & INTERFACE_MASK) != 0) {
1836 - closeFile(getInterfaceJavaFileHandle(), isError);
1837 - }
1838 - if ((generatedJavaFiles & BUILDER_CLASS_MASK) != 0) {
1839 - closeFile(getBuilderClassJavaFileHandle(), isError);
1840 - }
1841 - if ((generatedJavaFiles & BUILDER_INTERFACE_MASK) != 0) {
1842 - closeFile(getBuilderInterfaceJavaFileHandle(), true);
1843 - }
1844 - if ((generatedJavaFiles & IMPL_CLASS_MASK) != 0) {
1845 - closeFile(getImplClassJavaFileHandle(), true);
1846 - }
1847 - if ((generatedJavaFiles & GENERATE_TYPEDEF_CLASS) != 0) {
1848 - closeFile(getTypedefClassJavaFileHandle(), isError);
1849 - }
1850 - if ((generatedJavaFiles & GENERATE_ENUM_CLASS) != 0) {
1851 - closeFile(getEnumClassJavaFileHandle(), isError);
1852 - }
1853 - if ((generatedJavaFiles & GENERATE_UNION_CLASS) != 0) {
1854 - closeFile(getTypeClassJavaFileHandle(), isError);
1855 - }
1856 - if ((generatedJavaFiles & GENERATE_RPC_INTERFACE) != 0) {
1857 - closeFile(getRpcInterfaceJavaFileHandle(), isError);
1858 } 339 }
1859 340
1860 - /** 341 + throw new TranslatorException("build should not be added");
1861 - * Close all temporary file handles and delete the files.
1862 - */
1863 - if ((generatedTempFiles & GETTER_FOR_INTERFACE_MASK) != 0) {
1864 - closeFile(getGetterInterfaceTempFileHandle(), true);
1865 - }
1866 - if ((generatedTempFiles & GETTER_FOR_CLASS_MASK) != 0) {
1867 - closeFile(getGetterImplTempFileHandle(), true);
1868 - }
1869 - if ((generatedTempFiles & SETTER_FOR_INTERFACE_MASK) != 0) {
1870 - closeFile(getSetterInterfaceTempFileHandle(), true);
1871 - }
1872 - if ((generatedTempFiles & SETTER_FOR_CLASS_MASK) != 0) {
1873 - closeFile(getSetterImplTempFileHandle(), true);
1874 - }
1875 - if ((generatedTempFiles & CONSTRUCTOR_IMPL_MASK) != 0) {
1876 - closeFile(getConstructorImplTempFileHandle(), true);
1877 - }
1878 - if ((generatedTempFiles & ATTRIBUTES_MASK) != 0) {
1879 - closeFile(getAttributesTempFileHandle(), true);
1880 - }
1881 - if ((generatedTempFiles & HASH_CODE_IMPL_MASK) != 0) {
1882 - closeFile(getHashCodeImplTempFileHandle(), true);
1883 - }
1884 - if ((generatedTempFiles & TO_STRING_IMPL_MASK) != 0) {
1885 - closeFile(getToStringImplTempFileHandle(), true);
1886 - }
1887 - if ((generatedTempFiles & EQUALS_IMPL_MASK) != 0) {
1888 - closeFile(getEqualsImplTempFileHandle(), true);
1889 - }
1890 - if ((generatedTempFiles & ENUM_IMPL_MASK) != 0) {
1891 - closeFile(getEnumClassTempFileHandle(), true);
1892 - }
1893 - if ((generatedTempFiles & CONSTRUCTOR_FOR_TYPE_MASK) != 0) {
1894 - closeFile(getConstructorForTypeTempFileHandle(), true);
1895 - }
1896 - if ((generatedTempFiles & OF_STRING_IMPL_MASK) != 0) {
1897 - closeFile(getOfStringImplTempFileHandle(), true);
1898 - }
1899 - if ((generatedTempFiles & FROM_STRING_IMPL_MASK) != 0) {
1900 - closeFile(getFromStringImplTempFileHandle(), true);
1901 - }
1902 - if ((generatedTempFiles & RPC_IMPL_MASK) != 0) {
1903 - closeFile(getRpcInterfaceImplTempFileHandle(), true);
1904 - }
1905 - clean(getTempDirPath());
1906 - generatedTempFiles = 0;
1907 } 342 }
343 +
1908 } 344 }
......
...@@ -18,7 +18,7 @@ package org.onosproject.yangutils.translator.tojava; ...@@ -18,7 +18,7 @@ package org.onosproject.yangutils.translator.tojava;
18 /** 18 /**
19 * Represents Has temporary file handle. 19 * Represents Has temporary file handle.
20 */ 20 */
21 -public interface HasTempJavaCodeFragmentFiles { 21 +public interface TempJavaCodeFragmentFilesContainer {
22 22
23 /** 23 /**
24 * Returns the temporary file handle. 24 * Returns the temporary file handle.
......
1 +/*
2 + * Copyright 2016-present Open Networking Laboratory
3 + *
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 +package org.onosproject.yangutils.translator.tojava;
17 +
18 +import java.io.IOException;
19 +
20 +/**
21 + * Represents implementation of java code fragments temporary implementations.
22 + */
23 +public class TempJavaEnumerationFragmentFiles
24 + extends TempJavaFragmentFiles {
25 +
26 + /**
27 + * Creates an instance of temporary java code fragment.
28 + *
29 + * @param javaFileInfo generated java file info
30 + * @throws IOException when fails to create new file handle
31 + */
32 + public TempJavaEnumerationFragmentFiles(JavaFileInfo javaFileInfo)
33 + throws IOException {
34 + super(javaFileInfo);
35 + }
36 +}
1 +/*
2 + * Copyright 2016-present Open Networking Laboratory
3 + *
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 +package org.onosproject.yangutils.translator.tojava;
17 +
18 +import java.io.File;
19 +import java.io.IOException;
20 +import java.util.ArrayList;
21 +import java.util.List;
22 +import java.util.Set;
23 +
24 +import org.onosproject.yangutils.datamodel.YangTypeContainer;
25 +import org.onosproject.yangutils.datamodel.YangCase;
26 +import org.onosproject.yangutils.datamodel.YangEnum;
27 +import org.onosproject.yangutils.datamodel.YangEnumeration;
28 +import org.onosproject.yangutils.datamodel.YangLeaf;
29 +import org.onosproject.yangutils.datamodel.YangLeafList;
30 +import org.onosproject.yangutils.datamodel.YangLeavesHolder;
31 +import org.onosproject.yangutils.datamodel.YangNode;
32 +import org.onosproject.yangutils.datamodel.YangRpc;
33 +import org.onosproject.yangutils.datamodel.YangType;
34 +import org.onosproject.yangutils.translator.exception.TranslatorException;
35 +import org.onosproject.yangutils.translator.tojava.javamodel.JavaLeafInfoContainer;
36 +import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaType;
37 +
38 +import static org.onosproject.yangutils.datamodel.YangNodeType.MODULE_NODE;
39 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK;
40 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_INTERFACE_MASK;
41 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS;
42 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_RPC_INTERFACE;
43 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_TYPEDEF_CLASS;
44 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_UNION_CLASS;
45 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.IMPL_CLASS_MASK;
46 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.INTERFACE_MASK;
47 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ATTRIBUTES_MASK;
48 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_FOR_TYPE_MASK;
49 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_IMPL_MASK;
50 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ENUM_IMPL_MASK;
51 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EQUALS_IMPL_MASK;
52 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.FROM_STRING_IMPL_MASK;
53 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.GETTER_FOR_CLASS_MASK;
54 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.GETTER_FOR_INTERFACE_MASK;
55 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.HASH_CODE_IMPL_MASK;
56 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.OF_STRING_IMPL_MASK;
57 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.RPC_IMPL_MASK;
58 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_CLASS_MASK;
59 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_INTERFACE_MASK;
60 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.TO_STRING_IMPL_MASK;
61 +import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData;
62 +import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.getQualifiedInfoOfFromString;
63 +import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.getQualifiedTypeInfoOfCurNode;
64 +import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.generateEnumAttributeString;
65 +import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaAttributeDefination;
66 +import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaClassDefClose;
67 +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateBuilderClassFile;
68 +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateBuilderInterfaceFile;
69 +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateEnumClassFile;
70 +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateImplClassFile;
71 +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateInterfaceFile;
72 +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateRpcInterfaceFile;
73 +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateTypeDefClassFile;
74 +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateUnionClassFile;
75 +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getFileObject;
76 +import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
77 +import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCaptialCase;
78 +import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPackageDirPathFromJavaJPackage;
79 +import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getParentNodeInGenCode;
80 +import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getSmallCase;
81 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getBuildString;
82 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getConstructor;
83 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getDefaultConstructorString;
84 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEqualsMethod;
85 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getFromStringMethod;
86 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterForClass;
87 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterString;
88 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethod;
89 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOfMethod;
90 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOfMethodStringAndJavaDoc;
91 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOverRideString;
92 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRpcStringMethod;
93 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForClass;
94 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterString;
95 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethod;
96 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getTypeConstructorStringAndJavaDoc;
97 +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.parseBuilderInterfaceBuildMethodString;
98 +import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.addArrayListImport;
99 +import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.addAugmentedInfoImport;
100 +import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.addHasAugmentationImport;
101 +import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils
102 + .addImportsToStringAndHasCodeMethods;
103 +import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.closeFile;
104 +import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.isAugmentedInfoExtended;
105 +import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils
106 + .isHasAugmentationExtended;
107 +import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils
108 + .prepareJavaFileGeneratorForExtendsList;
109 +import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
110 +import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
111 +import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
112 +import static org.onosproject.yangutils.utils.UtilConstants.IMPL;
113 +import static org.onosproject.yangutils.utils.UtilConstants.IMPORT;
114 +import static org.onosproject.yangutils.utils.UtilConstants.INTERFACE;
115 +import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
116 +import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC_OF_CHILD;
117 +import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
118 +import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
119 +import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
120 +import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.createPackage;
121 +import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.readAppendFile;
122 +import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD;
123 +import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.OF_METHOD;
124 +import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateJavaDocForRpc;
125 +import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
126 +import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.clean;
127 +import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath;
128 +import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.insertDataIntoJavaFile;
129 +import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.mergeJavaFiles;
130 +
131 +/**
132 + * Represents implementation of java code fragments temporary implementations.
133 + */
134 +public class TempJavaFragmentFiles {
135 + /**
136 + * Information about the java files being generated.
137 + */
138 + private JavaFileInfo javaFileInfo;
139 + /**
140 + * Imported class info.
141 + */
142 + private JavaImportData javaImportData;
143 + /**
144 + * The variable which guides the types of temporary files generated using
145 + * the temporary generated file types mask.
146 + */
147 + private int generatedTempFiles;
148 + /**
149 + * Absolute path where the target java file needs to be generated.
150 + */
151 + private String absoluteDirPath;
152 + /**
153 + * Contains all the class name which will be extended by generated files.
154 + */
155 + private List<String> extendsList = new ArrayList<>();
156 + /**
157 + * File type extension for java classes.
158 + */
159 + private static final String JAVA_FILE_EXTENSION = ".java";
160 + /**
161 + * File type extension for temporary classes.
162 + */
163 + private static final String TEMP_FILE_EXTENSION = ".tmp";
164 + /**
165 + * Folder suffix for temporary files folder.
166 + */
167 + private static final String TEMP_FOLDER_NAME_SUFIX = "-Temp";
168 + /**
169 + * File name for getter method.
170 + */
171 + private static final String GETTER_METHOD_FILE_NAME = "GetterMethod";
172 + /**
173 + * File name for getter method implementation.
174 + */
175 + private static final String GETTER_METHOD_IMPL_FILE_NAME = "GetterMethodImpl";
176 + /**
177 + * File name for setter method.
178 + */
179 + private static final String SETTER_METHOD_FILE_NAME = "SetterMethod";
180 + /**
181 + * File name for setter method implementation.
182 + */
183 + private static final String SETTER_METHOD_IMPL_FILE_NAME = "SetterMethodImpl";
184 + /**
185 + * File name for constructor.
186 + */
187 + private static final String CONSTRUCTOR_FILE_NAME = "Constructor";
188 + /**
189 + * File name for attributes.
190 + */
191 + private static final String ATTRIBUTE_FILE_NAME = "Attributes";
192 + /**
193 + * File name for to string method.
194 + */
195 + private static final String TO_STRING_METHOD_FILE_NAME = "ToString";
196 + /**
197 + * File name for hash code method.
198 + */
199 + private static final String HASH_CODE_METHOD_FILE_NAME = "HashCode";
200 + /**
201 + * File name for equals method.
202 + */
203 + private static final String EQUALS_METHOD_FILE_NAME = "Equals";
204 + /**
205 + * File name for of string method.
206 + */
207 + private static final String OF_STRING_METHOD_FILE_NAME = "OfString";
208 + /**
209 + * File name for temporary enum class.
210 + */
211 + private static final String ENUM_CLASS_TEMP_FILE_NAME = "EnumClass";
212 + /**
213 + * File name for construction for special type like union, typedef.
214 + */
215 + private static final String CONSTRUCTOR_FOR_TYPE_FILE_NAME = "ConstructorForType";
216 + /**
217 + * File name for from string method.
218 + */
219 + private static final String FROM_STRING_METHOD_FILE_NAME = "FromString";
220 + /**
221 + * File name for interface java file name suffix.
222 + */
223 + private static final String INTERFACE_FILE_NAME_SUFFIX = EMPTY_STRING;
224 + /**
225 + * File name for builder interface file name suffix.
226 + */
227 + private static final String BUILDER_INTERFACE_FILE_NAME_SUFFIX = BUILDER + INTERFACE;
228 + /**
229 + * File name for builder class file name suffix.
230 + */
231 + private static final String BUILDER_CLASS_FILE_NAME_SUFFIX = BUILDER;
232 + /**
233 + * File name for impl class file name suffix.
234 + */
235 + private static final String IMPL_CLASS_FILE_NAME_SUFFIX = IMPL;
236 + /**
237 + * File name for typedef class file name suffix.
238 + */
239 + private static final String TYPEDEF_CLASS_FILE_NAME_SUFFIX = EMPTY_STRING;
240 + /**
241 + * File name for enum class file name suffix.
242 + */
243 + private static final String ENUM_CLASS_FILE_NAME_SUFFIX = EMPTY_STRING;
244 + /**
245 + * File name for rpc method.
246 + */
247 + private static final String RPC_FILE_NAME = "Rpc";
248 + /**
249 + * File name for generated class file for special type like union, typedef
250 + * suffix.
251 + */
252 + private static final String RPC_INTERFACE_FILE_NAME_SUFFIX = "Service";
253 + /**
254 + * File name for generated class file for special type like union, typedef
255 + * suffix.
256 + */
257 + private static final String UNION_TYPE_CLASS_FILE_NAME_SUFFIX = EMPTY_STRING;
258 + /**
259 + * Java file handle for interface file.
260 + */
261 + private File interfaceJavaFileHandle;
262 + /**
263 + * Java file handle for builder interface file.
264 + */
265 + private File builderInterfaceJavaFileHandle;
266 + /**
267 + * Java file handle for builder class file.
268 + */
269 + private File builderClassJavaFileHandle;
270 + /**
271 + * Java file handle for impl class file.
272 + */
273 + private File implClassJavaFileHandle;
274 + /**
275 + * Java file handle for typedef class file.
276 + */
277 + private File typedefClassJavaFileHandle;
278 + /**
279 + * Java file handle for type class like union, typedef file.
280 + */
281 + private File typeClassJavaFileHandle;
282 + /**
283 + * Temporary file handle for attribute.
284 + */
285 + private File attributesTempFileHandle;
286 + /**
287 + * Temporary file handle for getter of interface.
288 + */
289 + private File getterInterfaceTempFileHandle;
290 + /**
291 + * Temporary file handle for getter of class.
292 + */
293 + private File getterImplTempFileHandle;
294 + /**
295 + * Temporary file handle for setter of interface.
296 + */
297 + private File setterInterfaceTempFileHandle;
298 + /**
299 + * Temporary file handle for setter of class.
300 + */
301 + private File setterImplTempFileHandle;
302 + /**
303 + * Temporary file handle for constructor of class.
304 + */
305 + private File constructorImplTempFileHandle;
306 + /**
307 + * Temporary file handle for hash code method of class.
308 + */
309 + private File hashCodeImplTempFileHandle;
310 + /**
311 + * Temporary file handle for equals method of class.
312 + */
313 + private File equalsImplTempFileHandle;
314 + /**
315 + * Temporary file handle for to string method of class.
316 + */
317 + private File toStringImplTempFileHandle;
318 + /**
319 + * Temporary file handle for enum class file.
320 + */
321 + private File enumClassTempFileHandle;
322 + /**
323 + * Temporary file handle for of string method of class.
324 + */
325 + private File ofStringImplTempFileHandle;
326 + /**
327 + * Temporary file handle for constructor for type class.
328 + */
329 + private File constructorForTypeTempFileHandle;
330 + /**
331 + * Temporary file handle for from string method of class.
332 + */
333 + private File fromStringImplTempFileHandle;
334 + /**
335 + * Temporary file handle for rpc interface.
336 + */
337 + private File rpcInterfaceImplTempFileHandle;
338 + /**
339 + * Java file handle for rpc interface file.
340 + */
341 + private File rpcInterfaceJavaFileHandle;
342 + /**
343 + * Import info for case.
344 + */
345 + private JavaQualifiedTypeInfo caseImportInfo;
346 + /**
347 + * Is attribute added.
348 + */
349 + private boolean isAttributePresent = false;
350 + /**
351 + * Current enum's value.
352 + */
353 + private int enumValue;
354 + /*
355 + * Java file handle for enum class.
356 + */
357 + private File enumClassJavaFileHandle;
358 +
359 + /**
360 + * Returns enum class java file handle.
361 + *
362 + * @return enum class java file handle
363 + */
364 + private File getEnumClassJavaFileHandle() {
365 + return enumClassJavaFileHandle;
366 + }
367 +
368 + /**
369 + * Sets enum class java file handle.
370 + *
371 + * @param enumClassJavaFileHandle enum class java file handle
372 + */
373 + private void setEnumClassJavaFileHandle(File enumClassJavaFileHandle) {
374 + this.enumClassJavaFileHandle = enumClassJavaFileHandle;
375 + }
376 +
377 + /**
378 + * Returns enum's value.
379 + *
380 + * @return enum's value
381 + */
382 + private int getEnumValue() {
383 + return enumValue;
384 + }
385 +
386 + /**
387 + * Sets enum's value.
388 + *
389 + * @param enumValue enum's value
390 + */
391 + private void setEnumValue(int enumValue) {
392 + this.enumValue = enumValue;
393 + }
394 +
395 + /**
396 + * Retrieves the absolute path where the file needs to be generated.
397 + *
398 + * @return absolute path where the file needs to be generated
399 + */
400 + private String getAbsoluteDirPath() {
401 + return absoluteDirPath;
402 + }
403 +
404 + /**
405 + * Sets absolute path where the file needs to be generated.
406 + *
407 + * @param absoluteDirPath absolute path where the file needs to be
408 + * generated.
409 + */
410 + private void setAbsoluteDirPath(String absoluteDirPath) {
411 + this.absoluteDirPath = absoluteDirPath;
412 + }
413 +
414 + /**
415 + * Sets the generated java file information.
416 + *
417 + * @param javaFileInfo generated java file information
418 + */
419 + public void setJavaFileInfo(JavaFileInfo javaFileInfo) {
420 + this.javaFileInfo = javaFileInfo;
421 + }
422 +
423 + /**
424 + * Retrieves the generated java file information.
425 + *
426 + * @return generated java file information
427 + */
428 + public JavaFileInfo getJavaFileInfo() {
429 + return javaFileInfo;
430 + }
431 +
432 + /**
433 + * Retrieves the generated temp files.
434 + *
435 + * @return generated temp files
436 + */
437 + private int getGeneratedTempFiles() {
438 + return generatedTempFiles;
439 + }
440 +
441 + /**
442 + * Sets generated file files.
443 + */
444 + private void clearGeneratedTempFiles() {
445 + generatedTempFiles = 0;
446 + }
447 +
448 + /**
449 + * Sets generated file files.
450 + *
451 + * @param generatedTempFile generated file
452 + */
453 + private void addGeneratedTempFile(int generatedTempFile) {
454 + generatedTempFiles |= generatedTempFile;
455 + }
456 +
457 + /**
458 + * Retrieves the generated Java files.
459 + *
460 + * @return generated Java files
461 + */
462 + private int getGeneratedJavaFiles() {
463 + return getJavaFileInfo().getGeneratedFileTypes();
464 + }
465 +
466 + /**
467 + * Retrieves the mapped Java class name.
468 + *
469 + * @return mapped Java class name
470 + */
471 + private String getGeneratedJavaClassName() {
472 + return getJavaFileInfo().getJavaName();
473 + }
474 +
475 + /**
476 + * Retrieves the import data for the generated Java file.
477 + *
478 + * @return import data for the generated Java file
479 + */
480 + public JavaImportData getJavaImportData() {
481 + return javaImportData;
482 + }
483 +
484 + /**
485 + * Sets import data for the generated Java file.
486 + *
487 + * @param javaImportData import data for the generated Java file
488 + */
489 + private void setJavaImportData(JavaImportData javaImportData) {
490 + this.javaImportData = javaImportData;
491 + }
492 +
493 + /**
494 + * Creates an instance of temporary java code fragment.
495 + *
496 + * @param javaFileInfo generated java file information
497 + * @throws IOException when fails to create new file handle
498 + */
499 + TempJavaFragmentFiles(JavaFileInfo javaFileInfo)
500 + throws IOException {
501 + setExtendsList(new ArrayList<>());
502 + setJavaImportData(new JavaImportData());
503 + setJavaFileInfo(javaFileInfo);
504 + clearGeneratedTempFiles();
505 + setAbsoluteDirPath(getAbsolutePackagePath(getJavaFileInfo().getBaseCodeGenPath(),
506 + getJavaFileInfo().getPackageFilePath()));
507 + /**
508 + * Initialize getter when generation file type matches to interface
509 + * mask.
510 + */
511 + if ((getGeneratedJavaFiles() & INTERFACE_MASK) != 0) {
512 + addGeneratedTempFile(GETTER_FOR_INTERFACE_MASK);
513 + }
514 + /**
515 + * Initialize getter and setter when generation file type matches to
516 + * builder interface mask.
517 + */
518 + if ((getGeneratedJavaFiles() & BUILDER_INTERFACE_MASK) != 0) {
519 + addGeneratedTempFile(GETTER_FOR_INTERFACE_MASK);
520 + addGeneratedTempFile(SETTER_FOR_INTERFACE_MASK);
521 + }
522 + /**
523 + * Initialize getterImpl, setterImpl and attributes when generation file
524 + * type matches to builder class mask.
525 + */
526 + if ((getGeneratedJavaFiles() & BUILDER_CLASS_MASK) != 0) {
527 + addGeneratedTempFile(ATTRIBUTES_MASK);
528 + addGeneratedTempFile(GETTER_FOR_CLASS_MASK);
529 + addGeneratedTempFile(SETTER_FOR_CLASS_MASK);
530 + }
531 + /**
532 + * Initialize getterImpl, attributes, constructor, hash code, equals and
533 + * to strings when generation file type matches to impl class mask.
534 + */
535 + if ((getGeneratedJavaFiles() & IMPL_CLASS_MASK) != 0) {
536 + addGeneratedTempFile(ATTRIBUTES_MASK);
537 + addGeneratedTempFile(GETTER_FOR_CLASS_MASK);
538 + addGeneratedTempFile(CONSTRUCTOR_IMPL_MASK);
539 + addGeneratedTempFile(HASH_CODE_IMPL_MASK);
540 + addGeneratedTempFile(EQUALS_IMPL_MASK);
541 + addGeneratedTempFile(TO_STRING_IMPL_MASK);
542 + }
543 + if ((getGeneratedJavaFiles() & GENERATE_RPC_INTERFACE) != 0) {
544 + addGeneratedTempFile(RPC_IMPL_MASK);
545 + }
546 + /**
547 + * Initialize getterImpl, attributes, hash code, equals and to strings
548 + * when generation file type matches to typeDef class mask.
549 + */
550 + if ((getGeneratedJavaFiles() & GENERATE_TYPEDEF_CLASS) != 0) {
551 + addGeneratedTempFile(ATTRIBUTES_MASK);
552 + addGeneratedTempFile(GETTER_FOR_CLASS_MASK);
553 + addGeneratedTempFile(HASH_CODE_IMPL_MASK);
554 + addGeneratedTempFile(EQUALS_IMPL_MASK);
555 + addGeneratedTempFile(TO_STRING_IMPL_MASK);
556 + addGeneratedTempFile(OF_STRING_IMPL_MASK);
557 + addGeneratedTempFile(CONSTRUCTOR_FOR_TYPE_MASK);
558 + addGeneratedTempFile(FROM_STRING_IMPL_MASK);
559 + }
560 + /**
561 + * Initialize getterImpl, attributes, hash code, equals, of string,
562 + * constructor, union's to string, from string when generation file type
563 + * matches to union class mask.
564 + */
565 + if ((getGeneratedJavaFiles() & GENERATE_UNION_CLASS) != 0) {
566 + addGeneratedTempFile(ATTRIBUTES_MASK);
567 + addGeneratedTempFile(GETTER_FOR_CLASS_MASK);
568 + addGeneratedTempFile(HASH_CODE_IMPL_MASK);
569 + addGeneratedTempFile(EQUALS_IMPL_MASK);
570 + addGeneratedTempFile(OF_STRING_IMPL_MASK);
571 + addGeneratedTempFile(CONSTRUCTOR_FOR_TYPE_MASK);
572 + addGeneratedTempFile(TO_STRING_IMPL_MASK);
573 + addGeneratedTempFile(FROM_STRING_IMPL_MASK);
574 + }
575 + /**
576 + * Initialize enum when generation file type matches to enum class mask.
577 + */
578 + if ((getGeneratedJavaFiles() & GENERATE_ENUM_CLASS) != 0) {
579 + addGeneratedTempFile(ENUM_IMPL_MASK);
580 + }
581 + /**
582 + * Set temporary file handles.
583 + */
584 + if ((getGeneratedTempFiles() & ATTRIBUTES_MASK) != 0) {
585 + setAttributesTempFileHandle(getTemporaryFileHandle(ATTRIBUTE_FILE_NAME));
586 + }
587 + if ((getGeneratedTempFiles() & GETTER_FOR_INTERFACE_MASK) != 0) {
588 + setGetterInterfaceTempFileHandle(getTemporaryFileHandle(GETTER_METHOD_FILE_NAME));
589 + }
590 + if ((getGeneratedTempFiles() & SETTER_FOR_INTERFACE_MASK) != 0) {
591 + setSetterInterfaceTempFileHandle(getTemporaryFileHandle(SETTER_METHOD_FILE_NAME));
592 + }
593 + if ((getGeneratedTempFiles() & GETTER_FOR_CLASS_MASK) != 0) {
594 + setGetterImplTempFileHandle(getTemporaryFileHandle(GETTER_METHOD_IMPL_FILE_NAME));
595 + }
596 + if ((getGeneratedTempFiles() & SETTER_FOR_CLASS_MASK) != 0) {
597 + setSetterImplTempFileHandle(getTemporaryFileHandle(SETTER_METHOD_IMPL_FILE_NAME));
598 + }
599 + if ((getGeneratedTempFiles() & CONSTRUCTOR_IMPL_MASK) != 0) {
600 + setConstructorImplTempFileHandle(getTemporaryFileHandle(CONSTRUCTOR_FILE_NAME));
601 + }
602 + if ((getGeneratedTempFiles() & HASH_CODE_IMPL_MASK) != 0) {
603 + setHashCodeImplTempFileHandle(getTemporaryFileHandle(HASH_CODE_METHOD_FILE_NAME));
604 + }
605 + if ((getGeneratedTempFiles() & EQUALS_IMPL_MASK) != 0) {
606 + setEqualsImplTempFileHandle(getTemporaryFileHandle(EQUALS_METHOD_FILE_NAME));
607 + }
608 + if ((getGeneratedTempFiles() & TO_STRING_IMPL_MASK) != 0) {
609 + setToStringImplTempFileHandle(getTemporaryFileHandle(TO_STRING_METHOD_FILE_NAME));
610 + }
611 + if ((getGeneratedTempFiles() & ENUM_IMPL_MASK) != 0) {
612 + setEnumClassTempFileHandle(getTemporaryFileHandle(ENUM_CLASS_TEMP_FILE_NAME));
613 + }
614 + if ((getGeneratedTempFiles() & OF_STRING_IMPL_MASK) != 0) {
615 + setOfStringImplTempFileHandle(getTemporaryFileHandle(OF_STRING_METHOD_FILE_NAME));
616 + }
617 + if ((getGeneratedTempFiles() & CONSTRUCTOR_FOR_TYPE_MASK) != 0) {
618 + setConstructorForTypeTempFileHandle(getTemporaryFileHandle(CONSTRUCTOR_FOR_TYPE_FILE_NAME));
619 + }
620 + if ((getGeneratedTempFiles() & FROM_STRING_IMPL_MASK) != 0) {
621 + setFromStringImplTempFileHandle(getTemporaryFileHandle(FROM_STRING_METHOD_FILE_NAME));
622 + }
623 + if ((getGeneratedTempFiles() & RPC_IMPL_MASK) != 0) {
624 + setRpcInterfaceImplTempFileHandle(getTemporaryFileHandle(RPC_FILE_NAME));
625 + }
626 + }
627 +
628 + /**
629 + * Returns java file handle for interface file.
630 + *
631 + * @return java file handle for interface file
632 + */
633 + private File getInterfaceJavaFileHandle() {
634 + return interfaceJavaFileHandle;
635 + }
636 +
637 + /**
638 + * Sets the java file handle for interface file.
639 + *
640 + * @param interfaceJavaFileHandle java file handle
641 + */
642 + private void setInterfaceJavaFileHandle(File interfaceJavaFileHandle) {
643 + this.interfaceJavaFileHandle = interfaceJavaFileHandle;
644 + }
645 +
646 + /**
647 + * Returns java file handle for builder interface file.
648 + *
649 + * @return java file handle for builder interface file
650 + */
651 + private File getBuilderInterfaceJavaFileHandle() {
652 + return builderInterfaceJavaFileHandle;
653 + }
654 +
655 + /**
656 + * Sets the java file handle for builder interface file.
657 + *
658 + * @param builderInterfaceJavaFileHandle java file handle
659 + */
660 + private void setBuilderInterfaceJavaFileHandle(File builderInterfaceJavaFileHandle) {
661 + this.builderInterfaceJavaFileHandle = builderInterfaceJavaFileHandle;
662 + }
663 +
664 + /**
665 + * Returns java file handle for builder class file.
666 + *
667 + * @return java file handle for builder class file
668 + */
669 + private File getBuilderClassJavaFileHandle() {
670 + return builderClassJavaFileHandle;
671 + }
672 +
673 + /**
674 + * Sets the java file handle for builder class file.
675 + *
676 + * @param builderClassJavaFileHandle java file handle
677 + */
678 + private void setBuilderClassJavaFileHandle(File builderClassJavaFileHandle) {
679 + this.builderClassJavaFileHandle = builderClassJavaFileHandle;
680 + }
681 +
682 + /**
683 + * Returns java file handle for impl class file.
684 + *
685 + * @return java file handle for impl class file
686 + */
687 + private File getImplClassJavaFileHandle() {
688 + return implClassJavaFileHandle;
689 + }
690 +
691 + /**
692 + * Sets the java file handle for impl class file.
693 + *
694 + * @param implClassJavaFileHandle java file handle
695 + */
696 + private void setImplClassJavaFileHandle(File implClassJavaFileHandle) {
697 + this.implClassJavaFileHandle = implClassJavaFileHandle;
698 + }
699 +
700 + /**
701 + * Returns java file handle for typedef class file.
702 + *
703 + * @return java file handle for typedef class file
704 + */
705 + private File getTypedefClassJavaFileHandle() {
706 + return typedefClassJavaFileHandle;
707 + }
708 +
709 + /**
710 + * Sets the java file handle for typedef class file.
711 + *
712 + * @param typedefClassJavaFileHandle java file handle
713 + */
714 + private void setTypedefClassJavaFileHandle(File typedefClassJavaFileHandle) {
715 + this.typedefClassJavaFileHandle = typedefClassJavaFileHandle;
716 + }
717 +
718 + /**
719 + * Returns java file handle for type class file.
720 + *
721 + * @return java file handle for type class file
722 + */
723 + private File getTypeClassJavaFileHandle() {
724 + return typeClassJavaFileHandle;
725 + }
726 +
727 + /**
728 + * Sets the java file handle for type class file.
729 + *
730 + * @param typeClassJavaFileHandle type file handle
731 + */
732 + private void setTypeClassJavaFileHandle(File typeClassJavaFileHandle) {
733 + this.typeClassJavaFileHandle = typeClassJavaFileHandle;
734 + }
735 +
736 + /**
737 + * Returns attribute's temporary file handle.
738 + *
739 + * @return temporary file handle
740 + */
741 + public File getAttributesTempFileHandle() {
742 + return attributesTempFileHandle;
743 + }
744 +
745 + /**
746 + * Sets attribute's temporary file handle.
747 + *
748 + * @param attributeForClass file handle for attribute
749 + */
750 + private void setAttributesTempFileHandle(File attributeForClass) {
751 + attributesTempFileHandle = attributeForClass;
752 + }
753 +
754 + /**
755 + * Returns getter methods's temporary file handle.
756 + *
757 + * @return temporary file handle
758 + */
759 + public File getGetterInterfaceTempFileHandle() {
760 + return getterInterfaceTempFileHandle;
761 + }
762 +
763 + /**
764 + * Sets to getter method's temporary file handle.
765 + *
766 + * @param getterForInterface file handle for to getter method
767 + */
768 + private void setGetterInterfaceTempFileHandle(File getterForInterface) {
769 + getterInterfaceTempFileHandle = getterForInterface;
770 + }
771 +
772 + /**
773 + * Returns getter method's impl's temporary file handle.
774 + *
775 + * @return temporary file handle
776 + */
777 + public File getGetterImplTempFileHandle() {
778 + return getterImplTempFileHandle;
779 + }
780 +
781 + /**
782 + * Sets to getter method's impl's temporary file handle.
783 + *
784 + * @param getterImpl file handle for to getter method's impl
785 + */
786 + private void setGetterImplTempFileHandle(File getterImpl) {
787 + getterImplTempFileHandle = getterImpl;
788 + }
789 +
790 + /**
791 + * Returns setter method's temporary file handle.
792 + *
793 + * @return temporary file handle
794 + */
795 + public File getSetterInterfaceTempFileHandle() {
796 + return setterInterfaceTempFileHandle;
797 + }
798 +
799 + /**
800 + * Sets to setter method's temporary file handle.
801 + *
802 + * @param setterForInterface file handle for to setter method
803 + */
804 + private void setSetterInterfaceTempFileHandle(File setterForInterface) {
805 + setterInterfaceTempFileHandle = setterForInterface;
806 + }
807 +
808 + /**
809 + * Returns setter method's impl's temporary file handle.
810 + *
811 + * @return temporary file handle
812 + */
813 + public File getSetterImplTempFileHandle() {
814 + return setterImplTempFileHandle;
815 + }
816 +
817 + /**
818 + * Sets to setter method's impl's temporary file handle.
819 + *
820 + * @param setterImpl file handle for to setter method's implementation class
821 + */
822 + private void setSetterImplTempFileHandle(File setterImpl) {
823 + setterImplTempFileHandle = setterImpl;
824 + }
825 +
826 + /**
827 + * Returns constructor's temporary file handle.
828 + *
829 + * @return temporary file handle
830 + */
831 + public File getConstructorImplTempFileHandle() {
832 + return constructorImplTempFileHandle;
833 + }
834 +
835 + /**
836 + * Sets to constructor's temporary file handle.
837 + *
838 + * @param constructor file handle for to constructor
839 + */
840 + private void setConstructorImplTempFileHandle(File constructor) {
841 + constructorImplTempFileHandle = constructor;
842 + }
843 +
844 + /**
845 + * Returns hash code method's temporary file handle.
846 + *
847 + * @return temporary file handle
848 + */
849 + public File getHashCodeImplTempFileHandle() {
850 + return hashCodeImplTempFileHandle;
851 + }
852 +
853 + /**
854 + * Sets hash code method's temporary file handle.
855 + *
856 + * @param hashCodeMethod file handle for hash code method
857 + */
858 + private void setHashCodeImplTempFileHandle(File hashCodeMethod) {
859 + hashCodeImplTempFileHandle = hashCodeMethod;
860 + }
861 +
862 + /**
863 + * Returns equals mehtod's temporary file handle.
864 + *
865 + * @return temporary file handle
866 + */
867 + public File getEqualsImplTempFileHandle() {
868 + return equalsImplTempFileHandle;
869 + }
870 +
871 + /**
872 + * Sets equals method's temporary file handle.
873 + *
874 + * @param equalsMethod file handle for to equals method
875 + */
876 + private void setEqualsImplTempFileHandle(File equalsMethod) {
877 + equalsImplTempFileHandle = equalsMethod;
878 + }
879 +
880 + /**
881 + * Returns rpc method's temporary file handle.
882 + *
883 + * @return temporary file handle
884 + */
885 + public File getRpcInterfaceImplTempFileHandle() {
886 + return rpcInterfaceImplTempFileHandle;
887 + }
888 +
889 + /**
890 + * Sets rpc method's temporary file handle.
891 + *
892 + * @param rpcInterfaceImplTempFileHandle file handle for to rpc method
893 + */
894 + private void setRpcInterfaceImplTempFileHandle(File rpcInterfaceImplTempFileHandle) {
895 + this.rpcInterfaceImplTempFileHandle = rpcInterfaceImplTempFileHandle;
896 + }
897 +
898 + /**
899 + * Returns rpc method's java file handle.
900 + *
901 + * @return java file handle
902 + */
903 + private File getRpcInterfaceJavaFileHandle() {
904 + return rpcInterfaceJavaFileHandle;
905 + }
906 +
907 + /**
908 + * Sets rpc method's java file handle.
909 + *
910 + * @param rpcInterfaceJavaFileHandle file handle for to rpc method
911 + */
912 + private void setRpcInterfaceJavaFileHandle(File rpcInterfaceJavaFileHandle) {
913 + this.rpcInterfaceJavaFileHandle = rpcInterfaceJavaFileHandle;
914 + }
915 +
916 + /**
917 + * Returns to string method's temporary file handle.
918 + *
919 + * @return temporary file handle
920 + */
921 + public File getToStringImplTempFileHandle() {
922 + return toStringImplTempFileHandle;
923 + }
924 +
925 + /**
926 + * Sets to string method's temporary file handle.
927 + *
928 + * @param toStringMethod file handle for to string method
929 + */
930 + private void setToStringImplTempFileHandle(File toStringMethod) {
931 + toStringImplTempFileHandle = toStringMethod;
932 + }
933 +
934 + /**
935 + * Returns temporary file handle for enum class file.
936 + *
937 + * @return temporary file handle for enum class file
938 + */
939 + public File getEnumClassTempFileHandle() {
940 + return enumClassTempFileHandle;
941 + }
942 +
943 + /**
944 + * Sets temporary file handle for enum class file.
945 + *
946 + * @param enumClassTempFileHandle temporary file handle for enum class file
947 + */
948 + private void setEnumClassTempFileHandle(File enumClassTempFileHandle) {
949 + this.enumClassTempFileHandle = enumClassTempFileHandle;
950 + }
951 +
952 + /**
953 + * Returns of string method's temporary file handle.
954 + *
955 + * @return of string method's temporary file handle
956 + */
957 + public File getOfStringImplTempFileHandle() {
958 + return ofStringImplTempFileHandle;
959 + }
960 +
961 + /**
962 + * Set of string method's temporary file handle.
963 + *
964 + * @param ofStringImplTempFileHandle of string method's temporary file
965 + * handle
966 + */
967 + private void setOfStringImplTempFileHandle(File ofStringImplTempFileHandle) {
968 + this.ofStringImplTempFileHandle = ofStringImplTempFileHandle;
969 + }
970 +
971 + /**
972 + * Returns type class constructor method's temporary file handle.
973 + *
974 + * @return type class constructor method's temporary file handle
975 + */
976 + public File getConstructorForTypeTempFileHandle() {
977 + return constructorForTypeTempFileHandle;
978 + }
979 +
980 + /**
981 + * Sets type class constructor method's temporary file handle.
982 + *
983 + * @param constructorForTypeTempFileHandle type class constructor method's
984 + * temporary file handle
985 + */
986 + private void setConstructorForTypeTempFileHandle(File constructorForTypeTempFileHandle) {
987 + this.constructorForTypeTempFileHandle = constructorForTypeTempFileHandle;
988 + }
989 +
990 + /**
991 + * Returns from string method's temporary file handle.
992 + *
993 + * @return from string method's temporary file handle
994 + */
995 + public File getFromStringImplTempFileHandle() {
996 + return fromStringImplTempFileHandle;
997 + }
998 +
999 + /**
1000 + * Sets from string method's temporary file handle.
1001 + *
1002 + * @param fromStringImplTempFileHandle from string method's temporary file
1003 + * handle
1004 + */
1005 + private void setFromStringImplTempFileHandle(File fromStringImplTempFileHandle) {
1006 + this.fromStringImplTempFileHandle = fromStringImplTempFileHandle;
1007 + }
1008 +
1009 + /**
1010 + * Returns list of classes to be extended by generated files.
1011 + *
1012 + * @return list of classes to be extended by generated files
1013 + */
1014 + private List<String> getExtendsList() {
1015 + return extendsList;
1016 + }
1017 +
1018 + /**
1019 + * Sets class to be extended by generated file.
1020 + *
1021 + * @param extendsList list of classes to be extended
1022 + */
1023 + private void setExtendsList(List<String> extendsList) {
1024 + this.extendsList = extendsList;
1025 + }
1026 +
1027 + /**
1028 + * Adds class to the extends list.
1029 + *
1030 + * @param extend class to be extended
1031 + */
1032 + public void addToExtendsList(String extend) {
1033 + getExtendsList().add(extend);
1034 + }
1035 +
1036 + /**
1037 + * Adds of string for type.
1038 + *
1039 + * @param attr attribute info
1040 + * @throws IOException when fails to append to temporary file
1041 + */
1042 + private void addOfStringMethod(JavaAttributeInfo attr)
1043 + throws IOException {
1044 + appendToFile(getOfStringImplTempFileHandle(), getOfMethodStringAndJavaDoc(attr,
1045 + getGeneratedJavaClassName())
1046 + + NEW_LINE);
1047 + }
1048 +
1049 + /**
1050 + * Adds type constructor.
1051 + *
1052 + * @param attr attribute info
1053 + * @throws IOException when fails to append to temporary file
1054 + */
1055 + private void addTypeConstructor(JavaAttributeInfo attr)
1056 + throws IOException {
1057 + appendToFile(getConstructorForTypeTempFileHandle(), getTypeConstructorStringAndJavaDoc(attr,
1058 + getGeneratedJavaClassName()) + NEW_LINE);
1059 + }
1060 +
1061 + /**
1062 + * Adds attribute for class.
1063 + *
1064 + * @param attr attribute info
1065 + * @throws IOException when fails to append to temporary file
1066 + */
1067 + private void addAttribute(JavaAttributeInfo attr)
1068 + throws IOException {
1069 + appendToFile(getAttributesTempFileHandle(), parseAttribute(attr) + FOUR_SPACE_INDENTATION);
1070 + }
1071 +
1072 + /**
1073 + * Adds getter for interface.
1074 + *
1075 + * @param attr attribute info
1076 + * @throws IOException when fails to append to temporary file
1077 + */
1078 + private void addGetterForInterface(JavaAttributeInfo attr)
1079 + throws IOException {
1080 + appendToFile(getGetterInterfaceTempFileHandle(), getGetterString(attr) + NEW_LINE);
1081 + }
1082 +
1083 + /**
1084 + * Adds getter method's impl for class.
1085 + *
1086 + * @param attr attribute info
1087 + * @param genFiletype generated file type
1088 + * @throws IOException when fails to append to temporary file
1089 + */
1090 + private void addGetterImpl(JavaAttributeInfo attr, int genFiletype)
1091 + throws IOException {
1092 + if ((genFiletype & BUILDER_CLASS_MASK) != 0) {
1093 + appendToFile(getGetterImplTempFileHandle(), getOverRideString() + getGetterForClass(attr) + NEW_LINE);
1094 + } else {
1095 + appendToFile(getGetterImplTempFileHandle(), getJavaDoc(GETTER_METHOD, attr.getAttributeName(), false)
1096 + + getGetterForClass(attr) + NEW_LINE);
1097 + }
1098 + }
1099 +
1100 + /**
1101 + * Adds setter for interface.
1102 + *
1103 + * @param attr attribute info
1104 + * @throws IOException when fails to append to temporary file
1105 + */
1106 + private void addSetterForInterface(JavaAttributeInfo attr)
1107 + throws IOException {
1108 + appendToFile(getSetterInterfaceTempFileHandle(),
1109 + getSetterString(attr, getGeneratedJavaClassName()) + NEW_LINE);
1110 + }
1111 +
1112 + /**
1113 + * Adds setter's implementation for class.
1114 + *
1115 + * @param attr attribute info
1116 + * @throws IOException when fails to append to temporary file
1117 + */
1118 + private void addSetterImpl(JavaAttributeInfo attr)
1119 + throws IOException {
1120 + appendToFile(getSetterImplTempFileHandle(),
1121 + getOverRideString() + getSetterForClass(attr, getGeneratedJavaClassName()) + NEW_LINE);
1122 + }
1123 +
1124 + /**
1125 + * Adds build method for interface.
1126 + *
1127 + * @return build method for interface
1128 + * @throws IOException when fails to append to temporary file
1129 + */
1130 + String addBuildMethodForInterface()
1131 + throws IOException {
1132 + return parseBuilderInterfaceBuildMethodString(getGeneratedJavaClassName());
1133 + }
1134 +
1135 + /**
1136 + * Adds build method's implementation for class.
1137 + *
1138 + * @return build method implementation for class
1139 + * @throws IOException when fails to append to temporary file
1140 + */
1141 + String addBuildMethodImpl()
1142 + throws IOException {
1143 + return getBuildString(getGeneratedJavaClassName()) + NEW_LINE;
1144 + }
1145 +
1146 + /**
1147 + * Adds constructor for class.
1148 + *
1149 + * @param attr attribute info
1150 + * @throws IOException when fails to append to temporary file
1151 + */
1152 + private void addConstructor(JavaAttributeInfo attr)
1153 + throws IOException {
1154 + appendToFile(getConstructorImplTempFileHandle(), getConstructor(getGeneratedJavaClassName(), attr));
1155 + }
1156 +
1157 + /**
1158 + * Adds default constructor for class.
1159 + *
1160 + * @param modifier modifier for constructor.
1161 + * @param toAppend string which need to be appended with the class name
1162 + * @return default constructor for class
1163 + * @throws IOException when fails to append to file
1164 + */
1165 + String addDefaultConstructor(String modifier, String toAppend)
1166 + throws IOException {
1167 + return NEW_LINE + getDefaultConstructorString(getGeneratedJavaClassName() + toAppend, modifier);
1168 + }
1169 +
1170 + /**
1171 + * Adds default constructor for class.
1172 + *
1173 + * @return default constructor for class
1174 + * @throws IOException when fails to append to file
1175 + */
1176 + public String addOfMethod()
1177 + throws IOException {
1178 + return getJavaDoc(OF_METHOD, getGeneratedJavaClassName(), false)
1179 + + getOfMethod(getGeneratedJavaClassName(), null);
1180 + }
1181 +
1182 + /**
1183 + * Adds hash code method for class.
1184 + *
1185 + * @param attr attribute info
1186 + * @throws IOException when fails to append to temporary file
1187 + */
1188 + private void addHashCodeMethod(JavaAttributeInfo attr)
1189 + throws IOException {
1190 + appendToFile(getHashCodeImplTempFileHandle(), getHashCodeMethod(attr) + NEW_LINE);
1191 + }
1192 +
1193 + /**
1194 + * Adds equals method for class.
1195 + *
1196 + * @param attr attribute info
1197 + * @throws IOException when fails to append to temporary file
1198 + */
1199 + private void addEqualsMethod(JavaAttributeInfo attr)
1200 + throws IOException {
1201 + appendToFile(getEqualsImplTempFileHandle(), getEqualsMethod(attr) + NEW_LINE);
1202 + }
1203 +
1204 + /**
1205 + * Adds ToString method for class.
1206 + *
1207 + * @param attr attribute info
1208 + * @throws IOException when fails to append to temporary file
1209 + */
1210 + private void addToStringMethod(JavaAttributeInfo attr)
1211 + throws IOException {
1212 + appendToFile(getToStringImplTempFileHandle(), getToStringMethod(attr) + NEW_LINE);
1213 + }
1214 +
1215 + /**
1216 + * Adds enum class attributes to temporary file.
1217 + *
1218 + * @param curEnumInfo current YANG enum
1219 + * @throws IOException when fails to do IO operations.
1220 + */
1221 + private void addAttributesForEnumClass(JavaAttributeInfo curEnumInfo)
1222 + throws IOException {
1223 + appendToFile(getEnumClassTempFileHandle(),
1224 + generateEnumAttributeString(curEnumInfo.getAttributeName(), getEnumValue()));
1225 + }
1226 +
1227 + /**
1228 + * Add from string method for union class.
1229 + *
1230 + * @param javaAttributeInfo type attribute info
1231 + * @param fromStringAttributeInfo from string attribute info
1232 + * @throws IOException when fails to append to temporary file
1233 + */
1234 + private void addFromStringMethod(JavaAttributeInfo javaAttributeInfo,
1235 + JavaAttributeInfo fromStringAttributeInfo)
1236 + throws IOException {
1237 + appendToFile(getFromStringImplTempFileHandle(), getFromStringMethod(javaAttributeInfo,
1238 + fromStringAttributeInfo) + NEW_LINE);
1239 + }
1240 +
1241 + /**
1242 + * Adds rpc string information to applicable temp file.
1243 + *
1244 + * @param javaAttributeInfoOfInput rpc's input node attribute info
1245 + * @param javaAttributeInfoOfOutput rpc's output node attribute info
1246 + * @param rpcName name of the rpc function
1247 + * @throws IOException IO operation fail
1248 + */
1249 + private void addRpcString(JavaAttributeInfo javaAttributeInfoOfInput, JavaAttributeInfo javaAttributeInfoOfOutput,
1250 + String rpcName)
1251 + throws IOException {
1252 + String rpcInput = "";
1253 + String rpcOutput = "void";
1254 + if (javaAttributeInfoOfInput != null) {
1255 + rpcInput = javaAttributeInfoOfInput.getAttributeName();
1256 + }
1257 + if (javaAttributeInfoOfOutput != null) {
1258 + rpcOutput = javaAttributeInfoOfOutput.getAttributeName();
1259 + }
1260 + appendToFile(getRpcInterfaceImplTempFileHandle(), generateJavaDocForRpc(rpcName, rpcInput, rpcOutput) +
1261 + getRpcStringMethod(rpcName, rpcInput, rpcOutput) + NEW_LINE);
1262 + }
1263 +
1264 + /**
1265 + * Returns a temporary file handle for the specific file type.
1266 + *
1267 + * @param fileName file name
1268 + * @return temporary file handle
1269 + * @throws IOException when fails to create new file handle
1270 + */
1271 + private File getTemporaryFileHandle(String fileName)
1272 + throws IOException {
1273 + String path = getTempDirPath();
1274 + File dir = new File(path);
1275 + if (!dir.exists()) {
1276 + dir.mkdirs();
1277 + }
1278 + File file = new File(path + fileName + TEMP_FILE_EXTENSION);
1279 + if (!file.exists()) {
1280 + file.createNewFile();
1281 + }
1282 + return file;
1283 + }
1284 +
1285 + /**
1286 + * Returns a temporary file handle for the specific file type.
1287 + *
1288 + * @param fileName file name
1289 + * @return temporary file handle
1290 + * @throws IOException when fails to create new file handle
1291 + */
1292 + private File getJavaFileHandle(String fileName)
1293 + throws IOException {
1294 + createPackage(getAbsoluteDirPath(), getJavaFileInfo().getJavaName());
1295 + return getFileObject(getDirPath(), fileName, JAVA_FILE_EXTENSION, getJavaFileInfo());
1296 + }
1297 +
1298 + /**
1299 + * Returns data from the temporary files.
1300 + *
1301 + * @param file temporary file handle
1302 + * @return stored data from temporary files
1303 + * @throws IOException when failed to get data from the given file
1304 + */
1305 + public String getTemporaryDataFromFileHandle(File file)
1306 + throws IOException {
1307 + String path = getTempDirPath();
1308 + if (new File(path + file.getName()).exists()) {
1309 + return readAppendFile(path + file.getName(), EMPTY_STRING);
1310 + } else {
1311 + throw new IOException("Unable to get data from the given "
1312 + + file.getName() + " file for " + getGeneratedJavaClassName() + PERIOD);
1313 + }
1314 + }
1315 +
1316 + /**
1317 + * Returns temporary directory path.
1318 + *
1319 + * @return directory path
1320 + */
1321 + private String getTempDirPath() {
1322 + return getPackageDirPathFromJavaJPackage(getAbsoluteDirPath()) + SLASH + getGeneratedJavaClassName()
1323 + + TEMP_FOLDER_NAME_SUFIX + SLASH;
1324 + }
1325 +
1326 + /**
1327 + * Parses attribute to get the attribute string.
1328 + *
1329 + * @param attr attribute info
1330 + * @return attribute string
1331 + */
1332 + private String parseAttribute(JavaAttributeInfo attr) {
1333 + /*
1334 + * TODO: check if this utility needs to be called or move to the caller
1335 + */
1336 + String attributeName = getCamelCase(getSmallCase(attr.getAttributeName()), null);
1337 + if (attr.isQualifiedName()) {
1338 + return getJavaAttributeDefination(attr.getImportInfo().getPkgInfo(), attr.getImportInfo().getClassInfo(),
1339 + attributeName, attr.isListAttr());
1340 + } else {
1341 + return getJavaAttributeDefination(null, attr.getImportInfo().getClassInfo(), attributeName,
1342 + attr.isListAttr());
1343 + }
1344 + }
1345 +
1346 + /**
1347 + * Appends content to temporary file.
1348 + *
1349 + * @param file temporary file
1350 + * @param data data to be appended
1351 + * @throws IOException when fails to append to file
1352 + */
1353 + private void appendToFile(File file, String data)
1354 + throws IOException {
1355 + try {
1356 + insertDataIntoJavaFile(file, data);
1357 + } catch (IOException ex) {
1358 + throw new IOException("failed to write in temp file.");
1359 + }
1360 + }
1361 +
1362 + /**
1363 + * Adds current node info as and attribute to the parent generated file.
1364 + *
1365 + * @param curNode current node which needs to be added as an attribute in
1366 + * the parent generated code
1367 + * @param isList is list construct
1368 + * @throws IOException IO operation exception
1369 + */
1370 + public static void addCurNodeInfoInParentTempFile(YangNode curNode,
1371 + boolean isList)
1372 + throws IOException {
1373 + YangNode parent = getParentNodeInGenCode(curNode);
1374 + if (!(parent instanceof JavaCodeGenerator)) {
1375 + throw new TranslatorException("missing parent node to contain current node info in generated file");
1376 + }
1377 + JavaAttributeInfo javaAttributeInfo = getCurNodeAsAttributeInParent(curNode,
1378 + parent, isList);
1379 + if (!(parent instanceof TempJavaCodeFragmentFilesContainer)) {
1380 + throw new TranslatorException("missing parent temp file handle");
1381 + }
1382 + ((TempJavaCodeFragmentFilesContainer) parent)
1383 + .getTempJavaCodeFragmentFiles().getBeanTempFiles()
1384 + .addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfo);
1385 + }
1386 +
1387 + /**
1388 + * Creates an attribute info object corresponding to a data model node and
1389 + * return it.
1390 + *
1391 + * @param curNode current data model node for which the java code generation
1392 + * is being handled
1393 + * @param parentNode parent node in which the current node is an attribute
1394 + * @param isListNode is the current added attribute needs to be a list
1395 + * @return AttributeInfo attribute details required to add in temporary
1396 + * files
1397 + */
1398 + public static JavaAttributeInfo getCurNodeAsAttributeInParent(
1399 + YangNode curNode, YangNode parentNode, boolean isListNode) {
1400 + String curNodeName = ((JavaFileInfoContainer) curNode).getJavaFileInfo().getJavaName();
1401 + /*
1402 + * Get the import info corresponding to the attribute for import in
1403 + * generated java files or qualified access
1404 + */
1405 + JavaQualifiedTypeInfo qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(parentNode,
1406 + curNodeName);
1407 + if (!(parentNode instanceof TempJavaCodeFragmentFilesContainer)) {
1408 + throw new TranslatorException("Parent node does not have file info");
1409 + }
1410 +
1411 + TempJavaFragmentFiles tempJavaFragmentFiles;
1412 + if (parentNode instanceof YangRpc) {
1413 + tempJavaFragmentFiles = ((TempJavaCodeFragmentFilesContainer) parentNode)
1414 + .getTempJavaCodeFragmentFiles()
1415 + .getServiceTempFiles();
1416 + } else {
1417 + tempJavaFragmentFiles = ((TempJavaCodeFragmentFilesContainer) parentNode)
1418 + .getTempJavaCodeFragmentFiles()
1419 + .getBeanTempFiles();
1420 + }
1421 + JavaImportData parentImportData = tempJavaFragmentFiles.getJavaImportData();
1422 + boolean isQualified = parentImportData.addImportInfo(qualifiedTypeInfo);
1423 + return getAttributeInfoForTheData(qualifiedTypeInfo, curNodeName, null, isQualified, isListNode);
1424 + }
1425 +
1426 + /**
1427 + * Adds parent's info to current node import list.
1428 + *
1429 + * @param curNode current node for which import list needs to be updated
1430 + */
1431 + public void addParentInfoInCurNodeTempFile(YangNode curNode) {
1432 + caseImportInfo = new JavaQualifiedTypeInfo();
1433 + YangNode parent = getParentNodeInGenCode(curNode);
1434 + if (!(parent instanceof JavaCodeGenerator)) {
1435 + throw new TranslatorException("missing parent node to contain current node info in generated file");
1436 + }
1437 + if (!(curNode instanceof JavaFileInfoContainer)) {
1438 + throw new TranslatorException("missing java file information to get the package details "
1439 + + "of attribute corresponding to child node");
1440 + }
1441 + caseImportInfo.setClassInfo(getCaptialCase(getCamelCase(parent.getName(), null)));
1442 + caseImportInfo.setPkgInfo(((JavaFileInfoContainer) parent).getJavaFileInfo().getPackage());
1443 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
1444 + .getBeanTempFiles().getJavaImportData().addImportInfo(caseImportInfo);
1445 + }
1446 +
1447 + /**
1448 + * Adds leaf attributes in generated files.
1449 + *
1450 + * @param listOfLeaves list of YANG leaf
1451 + * @throws IOException IO operation fail
1452 + */
1453 + private void addLeavesInfoToTempFiles(List<YangLeaf> listOfLeaves)
1454 + throws IOException {
1455 + if (listOfLeaves != null) {
1456 + for (YangLeaf leaf : listOfLeaves) {
1457 + if (!(leaf instanceof JavaLeafInfoContainer)) {
1458 + throw new TranslatorException("Leaf does not have java information");
1459 + }
1460 + JavaLeafInfoContainer javaLeaf = (JavaLeafInfoContainer) leaf;
1461 + javaLeaf.updateJavaQualifiedInfo();
1462 + JavaAttributeInfo javaAttributeInfo = getAttributeInfoForTheData(
1463 + javaLeaf.getJavaQualifiedInfo(),
1464 + javaLeaf.getName(), javaLeaf.getDataType(),
1465 + getIsQualifiedAccessOrAddToImportList(javaLeaf.getJavaQualifiedInfo()),
1466 + false);
1467 + addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfo);
1468 + }
1469 + }
1470 + }
1471 +
1472 + /**
1473 + * Adds leaf list's attributes in generated files.
1474 + *
1475 + * @param listOfLeafList list of YANG leaves
1476 + * @throws IOException IO operation fail
1477 + */
1478 + private void addLeafListInfoToTempFiles(List<YangLeafList> listOfLeafList)
1479 + throws IOException {
1480 + if (listOfLeafList != null) {
1481 + for (YangLeafList leafList : listOfLeafList) {
1482 + if (!(leafList instanceof JavaLeafInfoContainer)) {
1483 + throw new TranslatorException("Leaf-list does not have java information");
1484 + }
1485 + JavaLeafInfoContainer javaLeaf = (JavaLeafInfoContainer) leafList;
1486 + javaLeaf.updateJavaQualifiedInfo();
1487 + JavaAttributeInfo javaAttributeInfo = getAttributeInfoForTheData(
1488 + javaLeaf.getJavaQualifiedInfo(),
1489 + javaLeaf.getName(), javaLeaf.getDataType(),
1490 + getIsQualifiedAccessOrAddToImportList(javaLeaf.getJavaQualifiedInfo()),
1491 + true);
1492 + addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfo);
1493 + }
1494 + }
1495 + }
1496 +
1497 + /**
1498 + * Adds all the leaves in the current data model node as part of the
1499 + * generated temporary file.
1500 + *
1501 + * @param curNode java file info of the generated file
1502 + * @throws IOException IO operation fail
1503 + */
1504 + void addCurNodeLeavesInfoToTempFiles(YangNode curNode)
1505 + throws IOException {
1506 + if (!(curNode instanceof YangLeavesHolder)) {
1507 + throw new TranslatorException("Data model node does not have any leaves");
1508 + }
1509 + YangLeavesHolder leavesHolder = (YangLeavesHolder) curNode;
1510 + addLeavesInfoToTempFiles(leavesHolder.getListOfLeaf());
1511 + addLeafListInfoToTempFiles(leavesHolder.getListOfLeafList());
1512 + }
1513 +
1514 + /**
1515 + * Add all the type in the current data model node as part of the generated
1516 + * temporary file.
1517 + *
1518 + * @param yangTypeContainer YANG java data model node which has type info, eg union /
1519 + * typedef
1520 + * @throws IOException IO operation fail
1521 + */
1522 + public void addTypeInfoToTempFiles(YangTypeContainer yangTypeContainer)
1523 + throws IOException {
1524 + List<YangType<?>> typeList = yangTypeContainer.getTypeList();
1525 + if (typeList != null) {
1526 + for (YangType<?> yangType : typeList) {
1527 + if (!(yangType instanceof YangJavaType)) {
1528 + throw new TranslatorException("Type does not have Java info");
1529 + }
1530 + YangJavaType<?> javaType = (YangJavaType<?>) yangType;
1531 + javaType.updateJavaQualifiedInfo();
1532 + JavaAttributeInfo javaAttributeInfo = getAttributeInfoForTheData(
1533 + javaType.getJavaQualifiedInfo(),
1534 + javaType.getDataTypeName(), javaType,
1535 + getIsQualifiedAccessOrAddToImportList(javaType.getJavaQualifiedInfo()),
1536 + false);
1537 + addJavaSnippetInfoToApplicableTempFiles((YangNode) yangTypeContainer, javaAttributeInfo);
1538 + }
1539 + }
1540 + }
1541 +
1542 + /**
1543 + * Adds enum attributes to temporary files.
1544 + *
1545 + * @param curNode current YANG node
1546 + * @throws IOException when fails to do IO operations
1547 + */
1548 + public void addEnumAttributeToTempFiles(YangNode curNode)
1549 + throws IOException {
1550 + if (curNode instanceof YangEnumeration) {
1551 + Set<YangEnum> enumSet = ((YangEnumeration) curNode).getEnumSet();
1552 + /*
1553 + * Get the import info corresponding to the attribute for import in
1554 + * generated java files or qualified access
1555 + */
1556 + JavaQualifiedTypeInfo qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode,
1557 + getJavaFileInfo().getJavaName());
1558 + for (YangEnum curEnum : enumSet) {
1559 + JavaAttributeInfo javaAttributeInfo = getAttributeInfoForTheData(qualifiedTypeInfo,
1560 + curEnum.getNamedValue(), null, false, false);
1561 + setEnumValue(curEnum.getValue());
1562 + addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfo);
1563 + }
1564 + } else {
1565 + throw new TranslatorException("current node should be of type enum.");
1566 + }
1567 + }
1568 +
1569 + /**
1570 + * Adds the new attribute info to the target generated temporary files for
1571 + * union class.
1572 + *
1573 + * @param hasType the node for which the type is being added as an attribute
1574 + * @param javaAttributeInfo the attribute info that needs to be added to
1575 + * temporary files
1576 + * @throws IOException IO operation fail
1577 + */
1578 + private void addJavaSnippetInfoToApplicableTempFiles(YangNode hasType, JavaAttributeInfo javaAttributeInfo)
1579 + throws IOException {
1580 + JavaQualifiedTypeInfo qualifiedInfoOfFromString = getQualifiedInfoOfFromString(javaAttributeInfo);
1581 + /*
1582 + * Create a new java attribute info with qualified information of
1583 + * wrapper classes.
1584 + */
1585 + JavaAttributeInfo fromStringAttributeInfo = getAttributeInfoForTheData(qualifiedInfoOfFromString,
1586 + javaAttributeInfo.getAttributeName(),
1587 + javaAttributeInfo.getAttributeType(),
1588 + getIsQualifiedAccessOrAddToImportList(qualifiedInfoOfFromString), false);
1589 + if ((getGeneratedTempFiles() & FROM_STRING_IMPL_MASK) != 0) {
1590 + addFromStringMethod(javaAttributeInfo, fromStringAttributeInfo);
1591 + }
1592 + addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfo);
1593 + }
1594 +
1595 + /**
1596 + * Adds the JAVA rpc snippet information.
1597 + *
1598 + * @param javaAttributeInfoOfInput rpc's input node attribute info
1599 + * @param javaAttributeInfoOfOutput rpc's output node attribute info
1600 + * @param rpcName name of the rpc function
1601 + * @throws IOException IO operation fail
1602 + */
1603 + public void addJavaSnippetInfoToApplicableTempFiles(JavaAttributeInfo javaAttributeInfoOfInput,
1604 + JavaAttributeInfo javaAttributeInfoOfOutput,
1605 + String rpcName)
1606 + throws IOException {
1607 + if ((getGeneratedTempFiles() & RPC_IMPL_MASK) != 0) {
1608 + addRpcString(javaAttributeInfoOfInput, javaAttributeInfoOfOutput, rpcName);
1609 + }
1610 + }
1611 +
1612 + /**
1613 + * Adds the new attribute info to the target generated temporary files.
1614 + *
1615 + * @param newAttrInfo the attribute info that needs to be added to temporary
1616 + * files
1617 + * @throws IOException IO operation fail
1618 + */
1619 + void addJavaSnippetInfoToApplicableTempFiles(JavaAttributeInfo newAttrInfo)
1620 + throws IOException {
1621 + isAttributePresent = true;
1622 + if ((getGeneratedTempFiles() & ATTRIBUTES_MASK) != 0) {
1623 + addAttribute(newAttrInfo);
1624 + }
1625 + if ((getGeneratedTempFiles() & GETTER_FOR_INTERFACE_MASK) != 0) {
1626 + addGetterForInterface(newAttrInfo);
1627 + }
1628 + if ((getGeneratedTempFiles() & SETTER_FOR_INTERFACE_MASK) != 0) {
1629 + addSetterForInterface(newAttrInfo);
1630 + }
1631 + if ((getGeneratedTempFiles() & GETTER_FOR_CLASS_MASK) != 0) {
1632 + addGetterImpl(newAttrInfo, getGeneratedJavaFiles());
1633 + }
1634 + if ((getGeneratedTempFiles() & SETTER_FOR_CLASS_MASK) != 0) {
1635 + addSetterImpl(newAttrInfo);
1636 + }
1637 + if ((getGeneratedTempFiles() & CONSTRUCTOR_IMPL_MASK) != 0) {
1638 + addConstructor(newAttrInfo);
1639 + }
1640 + if ((getGeneratedTempFiles() & HASH_CODE_IMPL_MASK) != 0) {
1641 + addHashCodeMethod(newAttrInfo);
1642 + }
1643 + if ((getGeneratedTempFiles() & EQUALS_IMPL_MASK) != 0) {
1644 + addEqualsMethod(newAttrInfo);
1645 + }
1646 + if ((getGeneratedTempFiles() & TO_STRING_IMPL_MASK) != 0) {
1647 + addToStringMethod(newAttrInfo);
1648 + }
1649 + if ((getGeneratedTempFiles() & ENUM_IMPL_MASK) != 0) {
1650 + addAttributesForEnumClass(newAttrInfo);
1651 + }
1652 + if ((getGeneratedTempFiles() & OF_STRING_IMPL_MASK) != 0) {
1653 + addOfStringMethod(newAttrInfo);
1654 + }
1655 + if ((getGeneratedTempFiles() & CONSTRUCTOR_FOR_TYPE_MASK) != 0) {
1656 + addTypeConstructor(newAttrInfo);
1657 + }
1658 + }
1659 +
1660 + /**
1661 + * Returns java class name.
1662 + *
1663 + * @param suffix for the class name based on the file type
1664 + * @return java class name
1665 + */
1666 + private String getJavaClassName(String suffix) {
1667 + return getCaptialCase(getJavaFileInfo().getJavaName()) + suffix;
1668 + }
1669 +
1670 + /**
1671 + * Returns the directory path.
1672 + *
1673 + * @return directory path
1674 + */
1675 + private String getDirPath() {
1676 + return getJavaFileInfo().getPackageFilePath();
1677 + }
1678 +
1679 + /**
1680 + * Constructs java code exit.
1681 + *
1682 + * @param fileType generated file type
1683 + * @param curNode current YANG node
1684 + * @throws IOException when fails to generate java files
1685 + */
1686 + public void generateJavaFile(int fileType, YangNode curNode)
1687 + throws IOException {
1688 + List<String> imports = new ArrayList<>();
1689 + if (isAttributePresent) {
1690 + imports = getJavaImportData().getImports();
1691 + }
1692 + /**
1693 + * Prepares java file generator for extends list.
1694 + */
1695 + prepareJavaFileGeneratorForExtendsList(getExtendsList());
1696 + if (curNode.getNodeType().equals(MODULE_NODE)) {
1697 + createPackage(absoluteDirPath, getJavaFileInfo().getJavaName());
1698 + } else {
1699 + createPackage(absoluteDirPath, ((JavaFileInfoContainer) curNode.getParent()).getJavaFileInfo().getJavaName()
1700 + + PACKAGE_INFO_JAVADOC_OF_CHILD);
1701 + }
1702 + /**
1703 + * Generate java code.
1704 + */
1705 + if ((fileType & INTERFACE_MASK) != 0 | (fileType & BUILDER_INTERFACE_MASK) != 0) {
1706 + /**
1707 + * Adds import for case.
1708 + */
1709 + if (curNode instanceof YangCase) {
1710 + List<String> importData = ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
1711 + .getBeanTempFiles().getJavaImportData().getImports();
1712 + for (String importInfo : importData) {
1713 + if (!imports.contains(importInfo)) {
1714 + imports.add(importInfo);
1715 + }
1716 + }
1717 + }
1718 + /**
1719 + * Adds import for HasAugmentation class.
1720 + */
1721 + if (isHasAugmentationExtended(getExtendsList())) {
1722 + addHasAugmentationImport(curNode, imports, true);
1723 + }
1724 + if (isAugmentedInfoExtended(getExtendsList())) {
1725 + addAugmentedInfoImport(curNode, imports, true);
1726 + }
1727 + /**
1728 + * Create interface file.
1729 + */
1730 + setInterfaceJavaFileHandle(getJavaFileHandle(getJavaClassName(INTERFACE_FILE_NAME_SUFFIX)));
1731 + setInterfaceJavaFileHandle(
1732 + generateInterfaceFile(getInterfaceJavaFileHandle(), imports, curNode, isAttributePresent));
1733 + /**
1734 + * Create builder interface file.
1735 + */
1736 + if ((fileType & BUILDER_INTERFACE_MASK) != 0) {
1737 + setBuilderInterfaceJavaFileHandle(
1738 + getJavaFileHandle(getJavaClassName(BUILDER_INTERFACE_FILE_NAME_SUFFIX)));
1739 + setBuilderInterfaceJavaFileHandle(
1740 + generateBuilderInterfaceFile(getBuilderInterfaceJavaFileHandle(), curNode, isAttributePresent));
1741 + /**
1742 + * Append builder interface file to interface file and close it.
1743 + */
1744 + mergeJavaFiles(getBuilderInterfaceJavaFileHandle(), getInterfaceJavaFileHandle());
1745 + }
1746 + insertDataIntoJavaFile(getInterfaceJavaFileHandle(), getJavaClassDefClose());
1747 + if (isHasAugmentationExtended(getExtendsList())) {
1748 + addHasAugmentationImport(curNode, imports, false);
1749 + }
1750 + if (isAugmentedInfoExtended(getExtendsList())) {
1751 + addAugmentedInfoImport(curNode, imports, false);
1752 + }
1753 + if (curNode instanceof YangCase) {
1754 + removeCaseImport(imports);
1755 + }
1756 + }
1757 + if ((fileType & BUILDER_CLASS_MASK) != 0 | (fileType & IMPL_CLASS_MASK) != 0) {
1758 + if (isAttributePresent) {
1759 + addImportsToStringAndHasCodeMethods(curNode, imports);
1760 + }
1761 + if (isHasAugmentationExtended(getExtendsList())) {
1762 + addAugmentedInfoImport(curNode, imports, true);
1763 + addArrayListImport(curNode, imports, true);
1764 + }
1765 + /**
1766 + * Create builder class file.
1767 + */
1768 + setBuilderClassJavaFileHandle(getJavaFileHandle(getJavaClassName(BUILDER_CLASS_FILE_NAME_SUFFIX)));
1769 + setBuilderClassJavaFileHandle(
1770 + generateBuilderClassFile(getBuilderClassJavaFileHandle(), imports, curNode, isAttributePresent));
1771 + /**
1772 + * Create impl class file.
1773 + */
1774 + if ((fileType & IMPL_CLASS_MASK) != 0) {
1775 + setImplClassJavaFileHandle(getJavaFileHandle(getJavaClassName(IMPL_CLASS_FILE_NAME_SUFFIX)));
1776 + setImplClassJavaFileHandle(
1777 + generateImplClassFile(getImplClassJavaFileHandle(), curNode, isAttributePresent));
1778 + /**
1779 + * Append impl class to builder class and close it.
1780 + */
1781 + mergeJavaFiles(getImplClassJavaFileHandle(), getBuilderClassJavaFileHandle());
1782 + }
1783 + insertDataIntoJavaFile(getBuilderClassJavaFileHandle(), getJavaClassDefClose());
1784 + }
1785 + /**
1786 + * Creates type def class file.
1787 + */
1788 + if ((fileType & GENERATE_TYPEDEF_CLASS) != 0) {
1789 + addImportsToStringAndHasCodeMethods(curNode, imports);
1790 + setTypedefClassJavaFileHandle(getJavaFileHandle(getJavaClassName(TYPEDEF_CLASS_FILE_NAME_SUFFIX)));
1791 + setTypedefClassJavaFileHandle(generateTypeDefClassFile(getTypedefClassJavaFileHandle(), curNode, imports));
1792 + }
1793 + /**
1794 + * Creates type class file.
1795 + */
1796 + if ((fileType & GENERATE_UNION_CLASS) != 0) {
1797 + addImportsToStringAndHasCodeMethods(curNode, imports);
1798 + setTypeClassJavaFileHandle(getJavaFileHandle(getJavaClassName(UNION_TYPE_CLASS_FILE_NAME_SUFFIX)));
1799 + setTypeClassJavaFileHandle(generateUnionClassFile(getTypeClassJavaFileHandle(), curNode, imports));
1800 + }
1801 + /**
1802 + * Creates type enum class file.
1803 + */
1804 + if ((fileType & GENERATE_ENUM_CLASS) != 0) {
1805 + setEnumClassJavaFileHandle(getJavaFileHandle(getJavaClassName(ENUM_CLASS_FILE_NAME_SUFFIX)));
1806 + setEnumClassJavaFileHandle(generateEnumClassFile(getEnumClassJavaFileHandle(), curNode));
1807 + }
1808 + /**
1809 + * Creates rpc interface file.
1810 + */
1811 + if ((fileType & GENERATE_RPC_INTERFACE) != 0) {
1812 + setRpcInterfaceJavaFileHandle(getJavaFileHandle(getJavaClassName(RPC_INTERFACE_FILE_NAME_SUFFIX)));
1813 + setRpcInterfaceJavaFileHandle(generateRpcInterfaceFile(getRpcInterfaceJavaFileHandle(), curNode, imports));
1814 + }
1815 + /**
1816 + * Close all the file handles.
1817 + */
1818 + close(false);
1819 + }
1820 +
1821 + /**
1822 + * Removes case import info from import list.
1823 + *
1824 + * @param imports list of imports
1825 + * @return import for class
1826 + */
1827 + private List<String> removeCaseImport(List<String> imports) {
1828 + if (imports != null && caseImportInfo != null) {
1829 + String caseImport = IMPORT + caseImportInfo.getPkgInfo() + PERIOD + caseImportInfo.getClassInfo() +
1830 + SEMI_COLAN + NEW_LINE;
1831 + imports.remove(caseImport);
1832 + }
1833 + return imports;
1834 + }
1835 +
1836 + /**
1837 + * Removes all temporary file handles.
1838 + *
1839 + * @param isErrorOccurred when translator fails to generate java files we
1840 + * need to close all open file handles include temporary files
1841 + * and java files.
1842 + * @throws IOException when failed to delete the temporary files
1843 + */
1844 + public void close(boolean isErrorOccurred)
1845 + throws IOException {
1846 + boolean isError = isErrorOccurred;
1847 + /**
1848 + * Close all java file handles and when error occurs delete the files.
1849 + */
1850 + if ((getGeneratedJavaFiles() & INTERFACE_MASK) != 0) {
1851 + closeFile(getInterfaceJavaFileHandle(), isError);
1852 + }
1853 + if ((getGeneratedJavaFiles() & BUILDER_CLASS_MASK) != 0) {
1854 + closeFile(getBuilderClassJavaFileHandle(), isError);
1855 + }
1856 + if ((getGeneratedJavaFiles() & BUILDER_INTERFACE_MASK) != 0) {
1857 + closeFile(getBuilderInterfaceJavaFileHandle(), true);
1858 + }
1859 + if ((getGeneratedJavaFiles() & IMPL_CLASS_MASK) != 0) {
1860 + closeFile(getImplClassJavaFileHandle(), true);
1861 + }
1862 + if ((getGeneratedJavaFiles() & GENERATE_TYPEDEF_CLASS) != 0) {
1863 + closeFile(getTypedefClassJavaFileHandle(), isError);
1864 + }
1865 + if ((getGeneratedJavaFiles() & GENERATE_ENUM_CLASS) != 0) {
1866 + closeFile(getEnumClassJavaFileHandle(), isError);
1867 + }
1868 + if ((getGeneratedJavaFiles() & GENERATE_UNION_CLASS) != 0) {
1869 + closeFile(getTypeClassJavaFileHandle(), isError);
1870 + }
1871 + if ((getGeneratedJavaFiles() & GENERATE_RPC_INTERFACE) != 0) {
1872 + closeFile(getRpcInterfaceJavaFileHandle(), isError);
1873 + }
1874 + /**
1875 + * Close all temporary file handles and delete the files.
1876 + */
1877 + if ((getGeneratedTempFiles() & GETTER_FOR_INTERFACE_MASK) != 0) {
1878 + closeFile(getGetterInterfaceTempFileHandle(), true);
1879 + }
1880 + if ((getGeneratedTempFiles() & GETTER_FOR_CLASS_MASK) != 0) {
1881 + closeFile(getGetterImplTempFileHandle(), true);
1882 + }
1883 + if ((getGeneratedTempFiles() & SETTER_FOR_INTERFACE_MASK) != 0) {
1884 + closeFile(getSetterInterfaceTempFileHandle(), true);
1885 + }
1886 + if ((getGeneratedTempFiles() & SETTER_FOR_CLASS_MASK) != 0) {
1887 + closeFile(getSetterImplTempFileHandle(), true);
1888 + }
1889 + if ((getGeneratedTempFiles() & CONSTRUCTOR_IMPL_MASK) != 0) {
1890 + closeFile(getConstructorImplTempFileHandle(), true);
1891 + }
1892 + if ((getGeneratedTempFiles() & ATTRIBUTES_MASK) != 0) {
1893 + closeFile(getAttributesTempFileHandle(), true);
1894 + }
1895 + if ((getGeneratedTempFiles() & HASH_CODE_IMPL_MASK) != 0) {
1896 + closeFile(getHashCodeImplTempFileHandle(), true);
1897 + }
1898 + if ((getGeneratedTempFiles() & TO_STRING_IMPL_MASK) != 0) {
1899 + closeFile(getToStringImplTempFileHandle(), true);
1900 + }
1901 + if ((getGeneratedTempFiles() & EQUALS_IMPL_MASK) != 0) {
1902 + closeFile(getEqualsImplTempFileHandle(), true);
1903 + }
1904 + if ((getGeneratedTempFiles() & ENUM_IMPL_MASK) != 0) {
1905 + closeFile(getEnumClassTempFileHandle(), true);
1906 + }
1907 + if ((getGeneratedTempFiles() & CONSTRUCTOR_FOR_TYPE_MASK) != 0) {
1908 + closeFile(getConstructorForTypeTempFileHandle(), true);
1909 + }
1910 + if ((getGeneratedTempFiles() & OF_STRING_IMPL_MASK) != 0) {
1911 + closeFile(getOfStringImplTempFileHandle(), true);
1912 + }
1913 + if ((getGeneratedTempFiles() & FROM_STRING_IMPL_MASK) != 0) {
1914 + closeFile(getFromStringImplTempFileHandle(), true);
1915 + }
1916 + if ((getGeneratedTempFiles() & RPC_IMPL_MASK) != 0) {
1917 + closeFile(getRpcInterfaceImplTempFileHandle(), true);
1918 + }
1919 + clean(getTempDirPath());
1920 + clearGeneratedTempFiles();
1921 + }
1922 +
1923 + /**
1924 + * Returns if the attribute needs to be accessed in a qualified manner or
1925 + * not, if it needs to be imported, then the same needs to be done.
1926 + *
1927 + * @param importInfo import info for the current attribute being added
1928 + * @return status of the qualified access to the attribute
1929 + */
1930 + public boolean getIsQualifiedAccessOrAddToImportList(
1931 + JavaQualifiedTypeInfo importInfo) {
1932 + boolean isImportPkgEqualCurNodePkg;
1933 + if (importInfo.getClassInfo().contentEquals(
1934 + getGeneratedJavaClassName())) {
1935 + /*
1936 + * if the current class name is same as the attribute class name,
1937 + * then the attribute must be accessed in a qualified manner.
1938 + */
1939 + return true;
1940 + } else if (importInfo.getPkgInfo() != null) {
1941 + /*
1942 + * If the attribute type is having the package info, it is contender
1943 + * for import list and also need to check if it needs to be a
1944 + * qualified access.
1945 + */
1946 + isImportPkgEqualCurNodePkg = isImportPkgEqualCurNodePkg(importInfo);
1947 + if (!isImportPkgEqualCurNodePkg) {
1948 + /*
1949 + * If the package of the attribute added is not same as the
1950 + * current class package, then it must either be imported for
1951 + * access or it must be a qualified access.
1952 + */
1953 + boolean isImportAdded = getJavaImportData().addImportInfo(importInfo);
1954 + if (!isImportAdded) {
1955 + /*
1956 + * If the attribute type info is not imported, then it must
1957 + * be a qualified access.
1958 + */
1959 + return true;
1960 + }
1961 + }
1962 + }
1963 + return false;
1964 + }
1965 +
1966 + /**
1967 + * Checks if the import info is same as the package of the current generated
1968 + * java file.
1969 + *
1970 + * @param importInfo import info for an attribute
1971 + * @return true if the import info is same as the current nodes package
1972 + * false otherwise
1973 + */
1974 + public boolean isImportPkgEqualCurNodePkg(JavaQualifiedTypeInfo importInfo) {
1975 + return getJavaFileInfo().getPackage()
1976 + .contentEquals(importInfo.getPkgInfo());
1977 + }
1978 +}
1 +/*
2 + * Copyright 2016-present Open Networking Laboratory
3 + *
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 +
17 +package org.onosproject.yangutils.translator.tojava;
18 +
19 +import java.io.IOException;
20 +
21 +/**
22 + * Represents implementation of java service code fragments temporary implementations.
23 + */
24 +public class TempJavaServiceFragmentFiles
25 + extends TempJavaFragmentFiles {
26 +
27 + /**
28 + * Creates an instance of temporary java code fragment.
29 + *
30 + * @param javaFileInfo generated file information
31 + * @throws IOException when fails to create new file handle
32 + */
33 + public TempJavaServiceFragmentFiles(JavaFileInfo javaFileInfo)
34 + throws IOException {
35 + super(javaFileInfo);
36 + }
37 +}
1 +/*
2 + * Copyright 2016-present Open Networking Laboratory
3 + *
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 +
17 +package org.onosproject.yangutils.translator.tojava;
18 +
19 +import java.io.IOException;
20 +
21 +/**
22 + * Represents implementation of java data type code fragments temporary implementations.
23 + */
24 +public class TempJavaTypeFragmentFiles
25 + extends TempJavaFragmentFiles {
26 +
27 + /**
28 + * Creates an instance of temporary java code fragment.
29 + *
30 + * @param javaFileInfo generated java file info
31 + * @throws IOException when fails to create new file handle
32 + */
33 + public TempJavaTypeFragmentFiles(JavaFileInfo javaFileInfo)
34 + throws IOException {
35 + super(javaFileInfo);
36 + }
37 +
38 +}
...@@ -16,9 +16,8 @@ ...@@ -16,9 +16,8 @@
16 16
17 package org.onosproject.yangutils.translator.tojava.javamodel; 17 package org.onosproject.yangutils.translator.tojava.javamodel;
18 18
19 -import org.onosproject.yangutils.translator.tojava.HasJavaFileInfo; 19 +import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
20 -import org.onosproject.yangutils.translator.tojava.HasJavaImportData; 20 +import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
21 -import org.onosproject.yangutils.translator.tojava.HasTempJavaCodeFragmentFiles;
22 21
23 /** 22 /**
24 * Represents YANG java info containing interface for java code generator, java 23 * Represents YANG java info containing interface for java code generator, java
...@@ -26,5 +25,6 @@ import org.onosproject.yangutils.translator.tojava.HasTempJavaCodeFragmentFiles; ...@@ -26,5 +25,6 @@ import org.onosproject.yangutils.translator.tojava.HasTempJavaCodeFragmentFiles;
26 * interface serves as a generic interface and help to unify the generate code 25 * interface serves as a generic interface and help to unify the generate code
27 * entry function. 26 * entry function.
28 */ 27 */
29 -public interface JavaCodeGeneratorInfo extends HasJavaFileInfo, HasTempJavaCodeFragmentFiles, HasJavaImportData { 28 +public interface JavaCodeGeneratorInfo
29 + extends JavaFileInfoContainer, TempJavaCodeFragmentFilesContainer {
30 } 30 }
......
1 +/*
2 + * Copyright 2016-present Open Networking Laboratory
3 + *
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 +package org.onosproject.yangutils.translator.tojava.javamodel;
17 +
18 +import org.onosproject.yangutils.datamodel.YangType;
19 +import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoContainer;
20 +import org.onosproject.yangutils.translator.tojava.utils.YangToJavaNamingConflictUtil;
21 +
22 +
23 +/**
24 + * Represent java based identification of the YANG leaves.
25 + */
26 +public interface JavaLeafInfoContainer
27 + extends JavaQualifiedTypeInfoContainer {
28 + /**
29 + * Retreives the data type of the leaf.
30 + *
31 + * @return data type of the leaf
32 + */
33 + YangType<?> getDataType();
34 +
35 + /**
36 + * Retreives the name of the leaf.
37 + *
38 + * @return name of the leaf
39 + */
40 + String getName();
41 +
42 + /**
43 + * Retreives the java name of the leaf.
44 + *
45 + * @param conflictResolveConfig user config to resolve conflicts
46 + * @return name of the leaf
47 + */
48 + String getJavaName(YangToJavaNamingConflictUtil conflictResolveConfig);
49 +
50 +
51 + /**
52 + * Identifies if object is a leaf-list.
53 + *
54 + * @return true if leaf-list false otherwise
55 + */
56 + boolean isLeafList();
57 +
58 + /**
59 + * updates the qualified info.
60 + */
61 + void updateJavaQualifiedInfo();
62 +}
1 +/*
2 + * Copyright 2016-present Open Networking Laboratory
3 + *
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 +package org.onosproject.yangutils.translator.tojava.javamodel;
17 +
18 +import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoContainer;
19 +
20 +
21 +/**
22 + * Represent java based identification of the YANG leaves.
23 + */
24 +public interface JavaQualifiedTypeResolver
25 + extends JavaQualifiedTypeInfoContainer {
26 +
27 + /**
28 + * updates the qualified access details of the type.
29 + */
30 + void updateJavaQualifiedInfo();
31 +}
...@@ -21,17 +21,18 @@ import org.onosproject.yangutils.datamodel.YangAugment; ...@@ -21,17 +21,18 @@ import org.onosproject.yangutils.datamodel.YangAugment;
21 import org.onosproject.yangutils.translator.exception.TranslatorException; 21 import org.onosproject.yangutils.translator.exception.TranslatorException;
22 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 22 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
23 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 23 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
24 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
25 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
26 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 25 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
27 26
28 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; 27 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
29 -import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfNode; 28 +import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfAugmentableNode;
30 29
31 /** 30 /**
32 * Represents augment information extended to support java code generation. 31 * Represents augment information extended to support java code generation.
33 */ 32 */
34 -public class YangJavaAugment extends YangAugment implements JavaCodeGeneratorInfo, JavaCodeGenerator { 33 +public class YangJavaAugment
34 + extends YangAugment
35 + implements JavaCodeGeneratorInfo, JavaCodeGenerator {
35 36
36 /** 37 /**
37 * Contains the information of the java file being generated. 38 * Contains the information of the java file being generated.
...@@ -39,12 +40,6 @@ public class YangJavaAugment extends YangAugment implements JavaCodeGeneratorInf ...@@ -39,12 +40,6 @@ public class YangJavaAugment extends YangAugment implements JavaCodeGeneratorInf
39 private JavaFileInfo javaFileInfo; 40 private JavaFileInfo javaFileInfo;
40 41
41 /** 42 /**
42 - * Contains information of the imports to be inserted in the java file
43 - * generated.
44 - */
45 - private JavaImportData javaImportData;
46 -
47 - /**
48 * File handle to maintain temporary java code fragments as per the code 43 * File handle to maintain temporary java code fragments as per the code
49 * snippet types. 44 * snippet types.
50 */ 45 */
...@@ -56,7 +51,6 @@ public class YangJavaAugment extends YangAugment implements JavaCodeGeneratorInf ...@@ -56,7 +51,6 @@ public class YangJavaAugment extends YangAugment implements JavaCodeGeneratorInf
56 public YangJavaAugment() { 51 public YangJavaAugment() {
57 super(); 52 super();
58 setJavaFileInfo(new JavaFileInfo()); 53 setJavaFileInfo(new JavaFileInfo());
59 - setJavaImportData(new JavaImportData());
60 getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER); 54 getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER);
61 } 55 }
62 56
...@@ -85,27 +79,6 @@ public class YangJavaAugment extends YangAugment implements JavaCodeGeneratorInf ...@@ -85,27 +79,6 @@ public class YangJavaAugment extends YangAugment implements JavaCodeGeneratorInf
85 } 79 }
86 80
87 /** 81 /**
88 - * Returns the data of java imports to be included in generated file.
89 - *
90 - * @return data of java imports to be included in generated file
91 - */
92 - @Override
93 - public JavaImportData getJavaImportData() {
94 - return javaImportData;
95 - }
96 -
97 - /**
98 - * Sets the data of java imports to be included in generated file.
99 - *
100 - * @param javaImportData data of java imports to be included in generated
101 - * file
102 - */
103 - @Override
104 - public void setJavaImportData(JavaImportData javaImportData) {
105 - this.javaImportData = javaImportData;
106 - }
107 -
108 - /**
109 * Returns the temporary file handle. 82 * Returns the temporary file handle.
110 * 83 *
111 * @return temporary file handle 84 * @return temporary file handle
...@@ -133,8 +106,9 @@ public class YangJavaAugment extends YangAugment implements JavaCodeGeneratorInf ...@@ -133,8 +106,9 @@ public class YangJavaAugment extends YangAugment implements JavaCodeGeneratorInf
133 * @throws IOException IO operation fail 106 * @throws IOException IO operation fail
134 */ 107 */
135 @Override 108 @Override
136 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 109 + public void generateCodeEntry(YangPluginConfig yangPlugin)
137 - generateCodeOfNode(this, yangPlugin, false); 110 + throws IOException {
111 + generateCodeOfAugmentableNode(this, yangPlugin);
138 } 112 }
139 113
140 /** 114 /**
...@@ -143,7 +117,8 @@ public class YangJavaAugment extends YangAugment implements JavaCodeGeneratorInf ...@@ -143,7 +117,8 @@ public class YangJavaAugment extends YangAugment implements JavaCodeGeneratorInf
143 * @throws IOException when failed to do IO operations 117 * @throws IOException when failed to do IO operations
144 */ 118 */
145 @Override 119 @Override
146 - public void generateCodeExit() throws IOException { 120 + public void generateCodeExit()
121 + throws IOException {
147 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this); 122 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
148 } 123 }
149 } 124 }
......
...@@ -16,21 +16,23 @@ ...@@ -16,21 +16,23 @@
16 package org.onosproject.yangutils.translator.tojava.javamodel; 16 package org.onosproject.yangutils.translator.tojava.javamodel;
17 17
18 import java.io.IOException; 18 import java.io.IOException;
19 +
19 import org.onosproject.yangutils.datamodel.YangCase; 20 import org.onosproject.yangutils.datamodel.YangCase;
20 import org.onosproject.yangutils.translator.exception.TranslatorException; 21 import org.onosproject.yangutils.translator.exception.TranslatorException;
21 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 22 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
22 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 23 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
23 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
25 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 25 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
26 26
27 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; 27 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
28 -import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfNode; 28 +import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfAugmentableNode;
29 29
30 /** 30 /**
31 * Represents case information extended to support java code generation. 31 * Represents case information extended to support java code generation.
32 */ 32 */
33 -public class YangJavaCase extends YangCase implements JavaCodeGeneratorInfo, JavaCodeGenerator { 33 +public class YangJavaCase
34 + extends YangCase
35 + implements JavaCodeGeneratorInfo, JavaCodeGenerator {
34 36
35 /** 37 /**
36 * Contains the information of the java file being generated. 38 * Contains the information of the java file being generated.
...@@ -38,12 +40,6 @@ public class YangJavaCase extends YangCase implements JavaCodeGeneratorInfo, Jav ...@@ -38,12 +40,6 @@ public class YangJavaCase extends YangCase implements JavaCodeGeneratorInfo, Jav
38 private JavaFileInfo javaFileInfo; 40 private JavaFileInfo javaFileInfo;
39 41
40 /** 42 /**
41 - * Contains information of the imports to be inserted in the java file
42 - * generated.
43 - */
44 - private JavaImportData javaImportData;
45 -
46 - /**
47 * File handle to maintain temporary java code fragments as per the code 43 * File handle to maintain temporary java code fragments as per the code
48 * snippet types. 44 * snippet types.
49 */ 45 */
...@@ -55,7 +51,6 @@ public class YangJavaCase extends YangCase implements JavaCodeGeneratorInfo, Jav ...@@ -55,7 +51,6 @@ public class YangJavaCase extends YangCase implements JavaCodeGeneratorInfo, Jav
55 public YangJavaCase() { 51 public YangJavaCase() {
56 super(); 52 super();
57 setJavaFileInfo(new JavaFileInfo()); 53 setJavaFileInfo(new JavaFileInfo());
58 - setJavaImportData(new JavaImportData());
59 getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER); 54 getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER);
60 } 55 }
61 56
...@@ -83,27 +78,6 @@ public class YangJavaCase extends YangCase implements JavaCodeGeneratorInfo, Jav ...@@ -83,27 +78,6 @@ public class YangJavaCase extends YangCase implements JavaCodeGeneratorInfo, Jav
83 } 78 }
84 79
85 /** 80 /**
86 - * Returns the data of java imports to be included in generated file.
87 - *
88 - * @return data of java imports to be included in generated file
89 - */
90 - @Override
91 - public JavaImportData getJavaImportData() {
92 - return javaImportData;
93 - }
94 -
95 - /**
96 - * Sets the data of java imports to be included in generated file.
97 - *
98 - * @param javaImportData data of java imports to be included in generated
99 - * file
100 - */
101 - @Override
102 - public void setJavaImportData(JavaImportData javaImportData) {
103 - this.javaImportData = javaImportData;
104 - }
105 -
106 - /**
107 * Returns the temporary file handle. 81 * Returns the temporary file handle.
108 * 82 *
109 * @return temporary file handle 83 * @return temporary file handle
...@@ -131,15 +105,17 @@ public class YangJavaCase extends YangCase implements JavaCodeGeneratorInfo, Jav ...@@ -131,15 +105,17 @@ public class YangJavaCase extends YangCase implements JavaCodeGeneratorInfo, Jav
131 * @throws IOException IO operation fail 105 * @throws IOException IO operation fail
132 */ 106 */
133 @Override 107 @Override
134 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 108 + public void generateCodeEntry(YangPluginConfig yangPlugin)
135 - generateCodeOfNode(this, yangPlugin, false); 109 + throws IOException {
110 + generateCodeOfAugmentableNode(this, yangPlugin);
136 } 111 }
137 112
138 /** 113 /**
139 * Creates a java file using the YANG case info. 114 * Creates a java file using the YANG case info.
140 */ 115 */
141 @Override 116 @Override
142 - public void generateCodeExit() throws IOException { 117 + public void generateCodeExit()
118 + throws IOException {
143 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this); 119 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
144 } 120 }
145 } 121 }
......
...@@ -16,21 +16,23 @@ ...@@ -16,21 +16,23 @@
16 package org.onosproject.yangutils.translator.tojava.javamodel; 16 package org.onosproject.yangutils.translator.tojava.javamodel;
17 17
18 import java.io.IOException; 18 import java.io.IOException;
19 +
19 import org.onosproject.yangutils.datamodel.YangChoice; 20 import org.onosproject.yangutils.datamodel.YangChoice;
20 import org.onosproject.yangutils.translator.exception.TranslatorException; 21 import org.onosproject.yangutils.translator.exception.TranslatorException;
21 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 22 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
22 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 23 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
23 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
25 +import org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils;
25 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 26 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
26 27
27 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.INTERFACE_MASK; 28 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.INTERFACE_MASK;
28 -import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfNode;
29 29
30 /** 30 /**
31 * Represents choice information extended to support java code generation. 31 * Represents choice information extended to support java code generation.
32 */ 32 */
33 -public class YangJavaChoice extends YangChoice implements JavaCodeGeneratorInfo, JavaCodeGenerator { 33 +public class YangJavaChoice
34 + extends YangChoice
35 + implements JavaCodeGeneratorInfo, JavaCodeGenerator {
34 36
35 /** 37 /**
36 * Contains the information of the java file being generated. 38 * Contains the information of the java file being generated.
...@@ -38,12 +40,6 @@ public class YangJavaChoice extends YangChoice implements JavaCodeGeneratorInfo, ...@@ -38,12 +40,6 @@ public class YangJavaChoice extends YangChoice implements JavaCodeGeneratorInfo,
38 private JavaFileInfo javaFileInfo; 40 private JavaFileInfo javaFileInfo;
39 41
40 /** 42 /**
41 - * Contains information of the imports to be inserted in the java file
42 - * generated.
43 - */
44 - private JavaImportData javaImportData;
45 -
46 - /**
47 * File handle to maintain temporary java code fragments as per the code 43 * File handle to maintain temporary java code fragments as per the code
48 * snippet types. 44 * snippet types.
49 */ 45 */
...@@ -55,7 +51,6 @@ public class YangJavaChoice extends YangChoice implements JavaCodeGeneratorInfo, ...@@ -55,7 +51,6 @@ public class YangJavaChoice extends YangChoice implements JavaCodeGeneratorInfo,
55 public YangJavaChoice() { 51 public YangJavaChoice() {
56 super(); 52 super();
57 setJavaFileInfo(new JavaFileInfo()); 53 setJavaFileInfo(new JavaFileInfo());
58 - setJavaImportData(new JavaImportData());
59 getJavaFileInfo().setGeneratedFileTypes(INTERFACE_MASK); 54 getJavaFileInfo().setGeneratedFileTypes(INTERFACE_MASK);
60 } 55 }
61 56
...@@ -83,27 +78,6 @@ public class YangJavaChoice extends YangChoice implements JavaCodeGeneratorInfo, ...@@ -83,27 +78,6 @@ public class YangJavaChoice extends YangChoice implements JavaCodeGeneratorInfo,
83 } 78 }
84 79
85 /** 80 /**
86 - * Returns the data of java imports to be included in generated file.
87 - *
88 - * @return data of java imports to be included in generated file
89 - */
90 - @Override
91 - public JavaImportData getJavaImportData() {
92 - return javaImportData;
93 - }
94 -
95 - /**
96 - * Sets the data of java imports to be included in generated file.
97 - *
98 - * @param javaImportData data of java imports to be included in generated
99 - * file
100 - */
101 - @Override
102 - public void setJavaImportData(JavaImportData javaImportData) {
103 - this.javaImportData = javaImportData;
104 - }
105 -
106 - /**
107 * Returns the temporary file handle. 81 * Returns the temporary file handle.
108 * 82 *
109 * @return temporary file handle 83 * @return temporary file handle
...@@ -131,15 +105,17 @@ public class YangJavaChoice extends YangChoice implements JavaCodeGeneratorInfo, ...@@ -131,15 +105,17 @@ public class YangJavaChoice extends YangChoice implements JavaCodeGeneratorInfo,
131 * @throws IOException IO operation fail 105 * @throws IOException IO operation fail
132 */ 106 */
133 @Override 107 @Override
134 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 108 + public void generateCodeEntry(YangPluginConfig yangPlugin)
135 - generateCodeOfNode(this, yangPlugin, false); 109 + throws IOException {
110 + YangJavaModelUtils.generateCodeAndUpdateInParent(this, yangPlugin, false);
136 } 111 }
137 112
138 /** 113 /**
139 * Creates a java file using the YANG choice info. 114 * Creates a java file using the YANG choice info.
140 */ 115 */
141 @Override 116 @Override
142 - public void generateCodeExit() throws IOException { 117 + public void generateCodeExit()
118 + throws IOException {
143 getTempJavaCodeFragmentFiles().generateJavaFile(INTERFACE_MASK, this); 119 getTempJavaCodeFragmentFiles().generateJavaFile(INTERFACE_MASK, this);
144 } 120 }
145 } 121 }
......
...@@ -16,21 +16,23 @@ ...@@ -16,21 +16,23 @@
16 package org.onosproject.yangutils.translator.tojava.javamodel; 16 package org.onosproject.yangutils.translator.tojava.javamodel;
17 17
18 import java.io.IOException; 18 import java.io.IOException;
19 +
19 import org.onosproject.yangutils.datamodel.YangContainer; 20 import org.onosproject.yangutils.datamodel.YangContainer;
20 import org.onosproject.yangutils.translator.exception.TranslatorException; 21 import org.onosproject.yangutils.translator.exception.TranslatorException;
21 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 22 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
22 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 23 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
23 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
25 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 25 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
26 26
27 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; 27 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
28 -import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfNode; 28 +import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeAndUpdateInParent;
29 29
30 /** 30 /**
31 * Represents container information extended to support java code generation. 31 * Represents container information extended to support java code generation.
32 */ 32 */
33 -public class YangJavaContainer extends YangContainer implements JavaCodeGeneratorInfo, JavaCodeGenerator { 33 +public class YangJavaContainer
34 + extends YangContainer
35 + implements JavaCodeGeneratorInfo, JavaCodeGenerator {
34 36
35 /** 37 /**
36 * Contains the information of the java file being generated. 38 * Contains the information of the java file being generated.
...@@ -38,12 +40,6 @@ public class YangJavaContainer extends YangContainer implements JavaCodeGenerato ...@@ -38,12 +40,6 @@ public class YangJavaContainer extends YangContainer implements JavaCodeGenerato
38 private JavaFileInfo javaFileInfo; 40 private JavaFileInfo javaFileInfo;
39 41
40 /** 42 /**
41 - * Contains information of the imports to be inserted in the java file
42 - * generated.
43 - */
44 - private JavaImportData javaImportData;
45 -
46 - /**
47 * File handle to maintain temporary java code fragments as per the code 43 * File handle to maintain temporary java code fragments as per the code
48 * snippet types. 44 * snippet types.
49 */ 45 */
...@@ -55,7 +51,6 @@ public class YangJavaContainer extends YangContainer implements JavaCodeGenerato ...@@ -55,7 +51,6 @@ public class YangJavaContainer extends YangContainer implements JavaCodeGenerato
55 public YangJavaContainer() { 51 public YangJavaContainer() {
56 super(); 52 super();
57 setJavaFileInfo(new JavaFileInfo()); 53 setJavaFileInfo(new JavaFileInfo());
58 - setJavaImportData(new JavaImportData());
59 getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER); 54 getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER);
60 } 55 }
61 56
...@@ -83,27 +78,6 @@ public class YangJavaContainer extends YangContainer implements JavaCodeGenerato ...@@ -83,27 +78,6 @@ public class YangJavaContainer extends YangContainer implements JavaCodeGenerato
83 } 78 }
84 79
85 /** 80 /**
86 - * Returns the data of java imports to be included in generated file.
87 - *
88 - * @return data of java imports to be included in generated file
89 - */
90 - @Override
91 - public JavaImportData getJavaImportData() {
92 - return javaImportData;
93 - }
94 -
95 - /**
96 - * Sets the data of java imports to be included in generated file.
97 - *
98 - * @param javaImportData data of java imports to be included in generated
99 - * file
100 - */
101 - @Override
102 - public void setJavaImportData(JavaImportData javaImportData) {
103 - this.javaImportData = javaImportData;
104 - }
105 -
106 - /**
107 * Returns the temporary file handle. 81 * Returns the temporary file handle.
108 * 82 *
109 * @return temporary file handle 83 * @return temporary file handle
...@@ -131,8 +105,9 @@ public class YangJavaContainer extends YangContainer implements JavaCodeGenerato ...@@ -131,8 +105,9 @@ public class YangJavaContainer extends YangContainer implements JavaCodeGenerato
131 * @throws IOException IO operation fail 105 * @throws IOException IO operation fail
132 */ 106 */
133 @Override 107 @Override
134 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 108 + public void generateCodeEntry(YangPluginConfig yangPlugin)
135 - generateCodeOfNode(this, yangPlugin, false); 109 + throws IOException {
110 + generateCodeAndUpdateInParent(this, yangPlugin, false);
136 } 111 }
137 112
138 /** 113 /**
...@@ -141,7 +116,8 @@ public class YangJavaContainer extends YangContainer implements JavaCodeGenerato ...@@ -141,7 +116,8 @@ public class YangJavaContainer extends YangContainer implements JavaCodeGenerato
141 * @throws IOException IO operation fail 116 * @throws IOException IO operation fail
142 */ 117 */
143 @Override 118 @Override
144 - public void generateCodeExit() throws IOException { 119 + public void generateCodeExit()
120 + throws IOException {
145 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this); 121 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
146 } 122 }
147 123
......
...@@ -17,11 +17,11 @@ ...@@ -17,11 +17,11 @@
17 package org.onosproject.yangutils.translator.tojava.javamodel; 17 package org.onosproject.yangutils.translator.tojava.javamodel;
18 18
19 import java.io.IOException; 19 import java.io.IOException;
20 +
20 import org.onosproject.yangutils.datamodel.YangEnumeration; 21 import org.onosproject.yangutils.datamodel.YangEnumeration;
21 import org.onosproject.yangutils.translator.exception.TranslatorException; 22 import org.onosproject.yangutils.translator.exception.TranslatorException;
22 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 23 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
23 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 24 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
24 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
25 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 25 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
26 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 26 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
27 27
...@@ -31,7 +31,9 @@ import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUti ...@@ -31,7 +31,9 @@ import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUti
31 /** 31 /**
32 * Represents YANG java enumeration information extended to support java code generation. 32 * Represents YANG java enumeration information extended to support java code generation.
33 */ 33 */
34 -public class YangJavaEnumeration extends YangEnumeration implements JavaCodeGenerator, JavaCodeGeneratorInfo { 34 +public class YangJavaEnumeration
35 + extends YangEnumeration
36 + implements JavaCodeGenerator, JavaCodeGeneratorInfo {
35 37
36 /** 38 /**
37 * Contains the information of the java file being generated. 39 * Contains the information of the java file being generated.
...@@ -39,12 +41,6 @@ public class YangJavaEnumeration extends YangEnumeration implements JavaCodeGene ...@@ -39,12 +41,6 @@ public class YangJavaEnumeration extends YangEnumeration implements JavaCodeGene
39 private JavaFileInfo javaFileInfo; 41 private JavaFileInfo javaFileInfo;
40 42
41 /** 43 /**
42 - * Contains information of the imports to be inserted in the java file
43 - * generated.
44 - */
45 - private JavaImportData javaImportData;
46 -
47 - /**
48 * File handle to maintain temporary java code fragments as per the code 44 * File handle to maintain temporary java code fragments as per the code
49 * snippet types. 45 * snippet types.
50 */ 46 */
...@@ -56,7 +52,6 @@ public class YangJavaEnumeration extends YangEnumeration implements JavaCodeGene ...@@ -56,7 +52,6 @@ public class YangJavaEnumeration extends YangEnumeration implements JavaCodeGene
56 public YangJavaEnumeration() { 52 public YangJavaEnumeration() {
57 super(); 53 super();
58 setJavaFileInfo(new JavaFileInfo()); 54 setJavaFileInfo(new JavaFileInfo());
59 - setJavaImportData(new JavaImportData());
60 getJavaFileInfo().setGeneratedFileTypes(GENERATE_ENUM_CLASS); 55 getJavaFileInfo().setGeneratedFileTypes(GENERATE_ENUM_CLASS);
61 } 56 }
62 57
...@@ -86,29 +81,6 @@ public class YangJavaEnumeration extends YangEnumeration implements JavaCodeGene ...@@ -86,29 +81,6 @@ public class YangJavaEnumeration extends YangEnumeration implements JavaCodeGene
86 } 81 }
87 82
88 /** 83 /**
89 - * Returns the data of java imports to be included in generated file.
90 - *
91 - * @return data of java imports to be included in generated file
92 - */
93 - @Override
94 - public JavaImportData getJavaImportData() {
95 -
96 - return javaImportData;
97 - }
98 -
99 - /**
100 - * Sets the data of java imports to be included in generated file.
101 - *
102 - * @param javaImportData data of java imports to be included in generated
103 - * file
104 - */
105 - @Override
106 - public void setJavaImportData(JavaImportData javaImportData) {
107 -
108 - this.javaImportData = javaImportData;
109 - }
110 -
111 - /**
112 * Returns the temporary file handle. 84 * Returns the temporary file handle.
113 * 85 *
114 * @return temporary file handle 86 * @return temporary file handle
...@@ -138,7 +110,8 @@ public class YangJavaEnumeration extends YangEnumeration implements JavaCodeGene ...@@ -138,7 +110,8 @@ public class YangJavaEnumeration extends YangEnumeration implements JavaCodeGene
138 * @throws IOException IO operations fails 110 * @throws IOException IO operations fails
139 */ 111 */
140 @Override 112 @Override
141 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 113 + public void generateCodeEntry(YangPluginConfig yangPlugin)
114 + throws IOException {
142 generateCodeOfNode(this, yangPlugin); 115 generateCodeOfNode(this, yangPlugin);
143 } 116 }
144 117
...@@ -148,7 +121,8 @@ public class YangJavaEnumeration extends YangEnumeration implements JavaCodeGene ...@@ -148,7 +121,8 @@ public class YangJavaEnumeration extends YangEnumeration implements JavaCodeGene
148 * @throws IOException IO operation fail 121 * @throws IOException IO operation fail
149 */ 122 */
150 @Override 123 @Override
151 - public void generateCodeExit() throws IOException { 124 + public void generateCodeExit()
125 + throws IOException {
152 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_ENUM_CLASS, this); 126 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_ENUM_CLASS, this);
153 } 127 }
154 128
......
...@@ -16,131 +16,34 @@ ...@@ -16,131 +16,34 @@
16 package org.onosproject.yangutils.translator.tojava.javamodel; 16 package org.onosproject.yangutils.translator.tojava.javamodel;
17 17
18 import java.io.IOException; 18 import java.io.IOException;
19 +
19 import org.onosproject.yangutils.datamodel.YangGrouping; 20 import org.onosproject.yangutils.datamodel.YangGrouping;
20 -import org.onosproject.yangutils.translator.exception.TranslatorException;
21 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 21 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
22 -import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
23 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
24 -import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
25 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 22 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
26 23
27 -import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
28 -import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfNode;
29 -
30 /** 24 /**
31 * Represents grouping information extended to support java code generation. 25 * Represents grouping information extended to support java code generation.
32 */ 26 */
33 -public class YangJavaGrouping extends YangGrouping implements JavaCodeGeneratorInfo, JavaCodeGenerator { 27 +public class YangJavaGrouping
34 - 28 + extends YangGrouping
35 - /** 29 + implements JavaCodeGenerator {
36 - * Contains the information of the java file being generated.
37 - */
38 - private JavaFileInfo javaFileInfo;
39 -
40 - /**
41 - * Contains information of the imports to be inserted in the java file
42 - * generated.
43 - */
44 - private JavaImportData javaImportData;
45 -
46 - /**
47 - * File handle to maintain temporary java code fragments as per the code
48 - * snippet types.
49 - */
50 - private TempJavaCodeFragmentFiles tempFileHandle;
51 30
52 /** 31 /**
53 - * Creates YANG java grouping object. 32 + * Creates YANG Java grouping object.
54 */ 33 */
55 public YangJavaGrouping() { 34 public YangJavaGrouping() {
56 super(); 35 super();
57 - setJavaFileInfo(new JavaFileInfo());
58 - setJavaImportData(new JavaImportData());
59 - getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER);
60 - }
61 -
62 - /**
63 - * Returns the generated java file information.
64 - *
65 - * @return generated java file information
66 - */
67 - @Override
68 - public JavaFileInfo getJavaFileInfo() {
69 - if (javaFileInfo == null) {
70 - throw new TranslatorException("Missing java info in java datamodel node");
71 - }
72 - return javaFileInfo;
73 - }
74 -
75 - /**
76 - * Sets the java file info object.
77 - *
78 - * @param javaInfo java file info object
79 - */
80 - @Override
81 - public void setJavaFileInfo(JavaFileInfo javaInfo) {
82 - javaFileInfo = javaInfo;
83 - }
84 -
85 - /**
86 - * Returns the data of java imports to be included in generated file.
87 - *
88 - * @return data of java imports to be included in generated file
89 - */
90 - @Override
91 - public JavaImportData getJavaImportData() {
92 - return javaImportData;
93 - }
94 -
95 - /**
96 - * Sets the data of java imports to be included in generated file.
97 - *
98 - * @param javaImportData data of java imports to be included in generated
99 - * file
100 - */
101 - @Override
102 - public void setJavaImportData(JavaImportData javaImportData) {
103 - this.javaImportData = javaImportData;
104 } 36 }
105 37
106 - /**
107 - * Returns the temporary file handle.
108 - *
109 - * @return temporary file handle
110 - */
111 @Override 38 @Override
112 - public TempJavaCodeFragmentFiles getTempJavaCodeFragmentFiles() { 39 + public void generateCodeEntry(YangPluginConfig yangPlugin)
113 - return tempFileHandle; 40 + throws IOException {
41 + /*Do nothing, the uses will copy the contents to the used location*/
114 } 42 }
115 43
116 - /**
117 - * Sets temporary file handle.
118 - *
119 - * @param fileHandle temporary file handle
120 - */
121 @Override 44 @Override
122 - public void setTempJavaCodeFragmentFiles(TempJavaCodeFragmentFiles fileHandle) { 45 + public void generateCodeExit()
123 - tempFileHandle = fileHandle; 46 + throws IOException {
124 - } 47 + /*Do nothing, the uses will copy the contents to the used location*/
125 -
126 - /**
127 - * Prepare the information for java code generation corresponding to YANG
128 - * grouping info.
129 - *
130 - * @param yangPlugin YANG plugin config
131 - * @throws IOException IO operation fail
132 - */
133 - @Override
134 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException {
135 - generateCodeOfNode(this, yangPlugin, false);
136 - }
137 -
138 - /**
139 - * Creates a java file using the YANG grouping info.
140 - */
141 - @Override
142 - public void generateCodeExit() {
143 - // TODO Auto-generated method stub
144 -
145 } 48 }
146 } 49 }
......
...@@ -17,11 +17,11 @@ ...@@ -17,11 +17,11 @@
17 package org.onosproject.yangutils.translator.tojava.javamodel; 17 package org.onosproject.yangutils.translator.tojava.javamodel;
18 18
19 import java.io.IOException; 19 import java.io.IOException;
20 +
20 import org.onosproject.yangutils.datamodel.YangInput; 21 import org.onosproject.yangutils.datamodel.YangInput;
21 import org.onosproject.yangutils.translator.exception.TranslatorException; 22 import org.onosproject.yangutils.translator.exception.TranslatorException;
22 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 23 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
23 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 24 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
24 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
25 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 25 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
26 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 26 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
27 27
...@@ -31,7 +31,9 @@ import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUti ...@@ -31,7 +31,9 @@ import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUti
31 /** 31 /**
32 * Represents input information extended to support java code generation. 32 * Represents input information extended to support java code generation.
33 */ 33 */
34 -public class YangJavaInput extends YangInput implements JavaCodeGeneratorInfo, JavaCodeGenerator { 34 +public class YangJavaInput
35 + extends YangInput
36 + implements JavaCodeGeneratorInfo, JavaCodeGenerator {
35 37
36 /** 38 /**
37 * Contains information of the java file being generated. 39 * Contains information of the java file being generated.
...@@ -39,12 +41,6 @@ public class YangJavaInput extends YangInput implements JavaCodeGeneratorInfo, J ...@@ -39,12 +41,6 @@ public class YangJavaInput extends YangInput implements JavaCodeGeneratorInfo, J
39 private JavaFileInfo javaFileInfo; 41 private JavaFileInfo javaFileInfo;
40 42
41 /** 43 /**
42 - * Contains information of the imports to be inserted in the java file
43 - * generated.
44 - */
45 - private JavaImportData javaImportData;
46 -
47 - /**
48 * File handle to maintain temporary java code fragments as per the code 44 * File handle to maintain temporary java code fragments as per the code
49 * snippet types. 45 * snippet types.
50 */ 46 */
...@@ -56,7 +52,6 @@ public class YangJavaInput extends YangInput implements JavaCodeGeneratorInfo, J ...@@ -56,7 +52,6 @@ public class YangJavaInput extends YangInput implements JavaCodeGeneratorInfo, J
56 public YangJavaInput() { 52 public YangJavaInput() {
57 super(); 53 super();
58 setJavaFileInfo(new JavaFileInfo()); 54 setJavaFileInfo(new JavaFileInfo());
59 - setJavaImportData(new JavaImportData());
60 getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER); 55 getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER);
61 } 56 }
62 57
...@@ -84,27 +79,6 @@ public class YangJavaInput extends YangInput implements JavaCodeGeneratorInfo, J ...@@ -84,27 +79,6 @@ public class YangJavaInput extends YangInput implements JavaCodeGeneratorInfo, J
84 } 79 }
85 80
86 /** 81 /**
87 - * Returns the data of java imports to be included in generated file.
88 - *
89 - * @return data of java imports to be included in generated file
90 - */
91 - @Override
92 - public JavaImportData getJavaImportData() {
93 - return javaImportData;
94 - }
95 -
96 - /**
97 - * Sets the data of java imports to be included in generated file.
98 - *
99 - * @param javaImportData data of java imports to be included in generated
100 - * file
101 - */
102 - @Override
103 - public void setJavaImportData(JavaImportData javaImportData) {
104 - this.javaImportData = javaImportData;
105 - }
106 -
107 - /**
108 * Returns the temporary file handle. 82 * Returns the temporary file handle.
109 * 83 *
110 * @return temporary file handle 84 * @return temporary file handle
...@@ -132,7 +106,8 @@ public class YangJavaInput extends YangInput implements JavaCodeGeneratorInfo, J ...@@ -132,7 +106,8 @@ public class YangJavaInput extends YangInput implements JavaCodeGeneratorInfo, J
132 * @throws IOException IO operation fail 106 * @throws IOException IO operation fail
133 */ 107 */
134 @Override 108 @Override
135 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 109 + public void generateCodeEntry(YangPluginConfig yangPlugin)
110 + throws IOException {
136 generateCodeOfNode(this, yangPlugin); 111 generateCodeOfNode(this, yangPlugin);
137 } 112 }
138 113
...@@ -142,7 +117,8 @@ public class YangJavaInput extends YangInput implements JavaCodeGeneratorInfo, J ...@@ -142,7 +117,8 @@ public class YangJavaInput extends YangInput implements JavaCodeGeneratorInfo, J
142 * @throws IOException IO operation fail 117 * @throws IOException IO operation fail
143 */ 118 */
144 @Override 119 @Override
145 - public void generateCodeExit() throws IOException { 120 + public void generateCodeExit()
121 + throws IOException {
146 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this); 122 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
147 } 123 }
148 } 124 }
......
1 /* 1 /*
2 - * Copyright 2016 Open Networking Laboratory 2 + * Copyright 2016-present Open Networking Laboratory
3 * 3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License. 5 * you may not use this file except in compliance with the License.
...@@ -16,19 +16,23 @@ ...@@ -16,19 +16,23 @@
16 package org.onosproject.yangutils.translator.tojava.javamodel; 16 package org.onosproject.yangutils.translator.tojava.javamodel;
17 17
18 import org.onosproject.yangutils.datamodel.YangLeaf; 18 import org.onosproject.yangutils.datamodel.YangLeaf;
19 -import org.onosproject.yangutils.translator.tojava.HasJavaQualifiedTypeInfo;
20 import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo; 19 import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo;
20 +import org.onosproject.yangutils.translator.tojava.utils.YangToJavaNamingConflictUtil;
21 +
22 +import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.updateLeavesJavaQualifiedInfo;
23 +import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
21 24
22 /** 25 /**
23 - * Maintains java information corresponding to the YANG leaf. 26 + * Represents java information corresponding to the YANG leaf.
24 */ 27 */
25 -public class YangJavaLeaf extends YangLeaf 28 +public class YangJavaLeaf
26 - implements HasJavaQualifiedTypeInfo { 29 + extends YangLeaf
30 + implements JavaLeafInfoContainer {
27 31
28 private JavaQualifiedTypeInfo javaQualifiedAccess; 32 private JavaQualifiedTypeInfo javaQualifiedAccess;
29 33
30 /** 34 /**
31 - * Create a YANG leaf object with java qualified access details. 35 + * Returns a new YANG leaf object with java qualified access details.
32 */ 36 */
33 public YangJavaLeaf() { 37 public YangJavaLeaf() {
34 super(); 38 super();
...@@ -46,4 +50,17 @@ public class YangJavaLeaf extends YangLeaf ...@@ -46,4 +50,17 @@ public class YangJavaLeaf extends YangLeaf
46 50
47 } 51 }
48 52
53 + public String getJavaName(YangToJavaNamingConflictUtil conflictResolveConfig) {
54 + return getCamelCase(getName(), conflictResolveConfig);
55 + }
56 +
57 + @Override
58 + public boolean isLeafList() {
59 + return false;
60 + }
61 +
62 + @Override
63 + public void updateJavaQualifiedInfo() {
64 + updateLeavesJavaQualifiedInfo(this);
65 + }
49 } 66 }
......
1 +/*
2 + * Copyright 2016-present Open Networking Laboratory
3 + *
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 +package org.onosproject.yangutils.translator.tojava.javamodel;
17 +
18 +import org.onosproject.yangutils.datamodel.YangLeafList;
19 +import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo;
20 +import org.onosproject.yangutils.translator.tojava.utils.YangToJavaNamingConflictUtil;
21 +
22 +import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.updateLeavesJavaQualifiedInfo;
23 +import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
24 +
25 +/**
26 + * Represents java information corresponding to the YANG leaf-list.
27 + */
28 +public class YangJavaLeafList
29 + extends YangLeafList
30 + implements JavaLeafInfoContainer {
31 + private JavaQualifiedTypeInfo javaQualifiedAccess;
32 +
33 + /**
34 + * Returns a new YANG leaf object with java qualified access details.
35 + */
36 + public YangJavaLeafList() {
37 + super();
38 + setJavaQualifiedInfo(new JavaQualifiedTypeInfo());
39 + }
40 +
41 + @Override
42 + public String getJavaName(YangToJavaNamingConflictUtil conflictResolveConfig) {
43 + return getCamelCase(getName(), conflictResolveConfig);
44 + }
45 +
46 + @Override
47 + public boolean isLeafList() {
48 + return true;
49 + }
50 +
51 + @Override
52 + public void updateJavaQualifiedInfo() {
53 + updateLeavesJavaQualifiedInfo(this);
54 + }
55 +
56 + @Override
57 + public JavaQualifiedTypeInfo getJavaQualifiedInfo() {
58 + return javaQualifiedAccess;
59 + }
60 +
61 + @Override
62 + public void setJavaQualifiedInfo(JavaQualifiedTypeInfo typeInfo) {
63 + javaQualifiedAccess = typeInfo;
64 + }
65 +}
...@@ -16,21 +16,23 @@ ...@@ -16,21 +16,23 @@
16 package org.onosproject.yangutils.translator.tojava.javamodel; 16 package org.onosproject.yangutils.translator.tojava.javamodel;
17 17
18 import java.io.IOException; 18 import java.io.IOException;
19 +
19 import org.onosproject.yangutils.datamodel.YangList; 20 import org.onosproject.yangutils.datamodel.YangList;
20 import org.onosproject.yangutils.translator.exception.TranslatorException; 21 import org.onosproject.yangutils.translator.exception.TranslatorException;
21 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 22 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
22 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 23 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
23 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
25 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 25 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
26 26
27 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; 27 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
28 -import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfNode; 28 +import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeAndUpdateInParent;
29 29
30 /** 30 /**
31 * Represents YANG list information extended to support java code generation. 31 * Represents YANG list information extended to support java code generation.
32 */ 32 */
33 -public class YangJavaList extends YangList implements JavaCodeGeneratorInfo, JavaCodeGenerator { 33 +public class YangJavaList
34 + extends YangList
35 + implements JavaCodeGeneratorInfo, JavaCodeGenerator {
34 36
35 /** 37 /**
36 * Contains the information of the java file being generated. 38 * Contains the information of the java file being generated.
...@@ -38,12 +40,6 @@ public class YangJavaList extends YangList implements JavaCodeGeneratorInfo, Jav ...@@ -38,12 +40,6 @@ public class YangJavaList extends YangList implements JavaCodeGeneratorInfo, Jav
38 private JavaFileInfo javaFileInfo; 40 private JavaFileInfo javaFileInfo;
39 41
40 /** 42 /**
41 - * Contains information of the imports to be inserted in the java file
42 - * generated.
43 - */
44 - private JavaImportData javaImportData;
45 -
46 - /**
47 * File handle to maintain temporary java code fragments as per the code 43 * File handle to maintain temporary java code fragments as per the code
48 * snippet types. 44 * snippet types.
49 */ 45 */
...@@ -55,7 +51,6 @@ public class YangJavaList extends YangList implements JavaCodeGeneratorInfo, Jav ...@@ -55,7 +51,6 @@ public class YangJavaList extends YangList implements JavaCodeGeneratorInfo, Jav
55 public YangJavaList() { 51 public YangJavaList() {
56 super(); 52 super();
57 setJavaFileInfo(new JavaFileInfo()); 53 setJavaFileInfo(new JavaFileInfo());
58 - setJavaImportData(new JavaImportData());
59 getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER); 54 getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER);
60 } 55 }
61 56
...@@ -83,27 +78,6 @@ public class YangJavaList extends YangList implements JavaCodeGeneratorInfo, Jav ...@@ -83,27 +78,6 @@ public class YangJavaList extends YangList implements JavaCodeGeneratorInfo, Jav
83 } 78 }
84 79
85 /** 80 /**
86 - * Returns the data of java imports to be included in generated file.
87 - *
88 - * @return data of java imports to be included in generated file
89 - */
90 - @Override
91 - public JavaImportData getJavaImportData() {
92 - return javaImportData;
93 - }
94 -
95 - /**
96 - * Sets the data of java imports to be included in generated file.
97 - *
98 - * @param javaImportData data of java imports to be included in generated
99 - * file
100 - */
101 - @Override
102 - public void setJavaImportData(JavaImportData javaImportData) {
103 - this.javaImportData = javaImportData;
104 - }
105 -
106 - /**
107 * Returns the temporary file handle. 81 * Returns the temporary file handle.
108 * 82 *
109 * @return temporary file handle 83 * @return temporary file handle
...@@ -131,8 +105,9 @@ public class YangJavaList extends YangList implements JavaCodeGeneratorInfo, Jav ...@@ -131,8 +105,9 @@ public class YangJavaList extends YangList implements JavaCodeGeneratorInfo, Jav
131 * @throws IOException IO operation fail 105 * @throws IOException IO operation fail
132 */ 106 */
133 @Override 107 @Override
134 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 108 + public void generateCodeEntry(YangPluginConfig yangPlugin)
135 - generateCodeOfNode(this, yangPlugin, true); 109 + throws IOException {
110 + generateCodeAndUpdateInParent(this, yangPlugin, true);
136 } 111 }
137 112
138 /** 113 /**
...@@ -141,7 +116,8 @@ public class YangJavaList extends YangList implements JavaCodeGeneratorInfo, Jav ...@@ -141,7 +116,8 @@ public class YangJavaList extends YangList implements JavaCodeGeneratorInfo, Jav
141 * @throws IOException IO operation fail 116 * @throws IOException IO operation fail
142 */ 117 */
143 @Override 118 @Override
144 - public void generateCodeExit() throws IOException { 119 + public void generateCodeExit()
120 + throws IOException {
145 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this); 121 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
146 } 122 }
147 } 123 }
......
...@@ -16,22 +16,25 @@ ...@@ -16,22 +16,25 @@
16 package org.onosproject.yangutils.translator.tojava.javamodel; 16 package org.onosproject.yangutils.translator.tojava.javamodel;
17 17
18 import java.io.IOException; 18 import java.io.IOException;
19 +
19 import org.onosproject.yangutils.datamodel.YangModule; 20 import org.onosproject.yangutils.datamodel.YangModule;
20 import org.onosproject.yangutils.translator.exception.TranslatorException; 21 import org.onosproject.yangutils.translator.exception.TranslatorException;
21 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 22 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
22 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 23 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
23 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
25 import org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils; 25 import org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils;
26 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 26 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
27 27
28 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
28 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_MANAGER_WITH_RPC; 29 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_MANAGER_WITH_RPC;
29 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage; 30 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage;
30 31
31 /** 32 /**
32 * Represents module information extended to support java code generation. 33 * Represents module information extended to support java code generation.
33 */ 34 */
34 -public class YangJavaModule extends YangModule implements JavaCodeGeneratorInfo, JavaCodeGenerator { 35 +public class YangJavaModule
36 + extends YangModule
37 + implements JavaCodeGeneratorInfo, JavaCodeGenerator {
35 38
36 /** 39 /**
37 * Contains the information of the java file being generated. 40 * Contains the information of the java file being generated.
...@@ -39,12 +42,6 @@ public class YangJavaModule extends YangModule implements JavaCodeGeneratorInfo, ...@@ -39,12 +42,6 @@ public class YangJavaModule extends YangModule implements JavaCodeGeneratorInfo,
39 private JavaFileInfo javaFileInfo; 42 private JavaFileInfo javaFileInfo;
40 43
41 /** 44 /**
42 - * Contains information of the imports to be inserted in the java file
43 - * generated.
44 - */
45 - private JavaImportData javaImportData;
46 -
47 - /**
48 * File handle to maintain temporary java code fragments as per the code 45 * File handle to maintain temporary java code fragments as per the code
49 * snippet types. 46 * snippet types.
50 */ 47 */
...@@ -56,7 +53,6 @@ public class YangJavaModule extends YangModule implements JavaCodeGeneratorInfo, ...@@ -56,7 +53,6 @@ public class YangJavaModule extends YangModule implements JavaCodeGeneratorInfo,
56 public YangJavaModule() { 53 public YangJavaModule() {
57 super(); 54 super();
58 setJavaFileInfo(new JavaFileInfo()); 55 setJavaFileInfo(new JavaFileInfo());
59 - setJavaImportData(new JavaImportData());
60 getJavaFileInfo().setGeneratedFileTypes(GENERATE_MANAGER_WITH_RPC); 56 getJavaFileInfo().setGeneratedFileTypes(GENERATE_MANAGER_WITH_RPC);
61 } 57 }
62 58
...@@ -84,27 +80,6 @@ public class YangJavaModule extends YangModule implements JavaCodeGeneratorInfo, ...@@ -84,27 +80,6 @@ public class YangJavaModule extends YangModule implements JavaCodeGeneratorInfo,
84 } 80 }
85 81
86 /** 82 /**
87 - * Returns the data of java imports to be included in generated file.
88 - *
89 - * @return data of java imports to be included in generated file
90 - */
91 - @Override
92 - public JavaImportData getJavaImportData() {
93 - return javaImportData;
94 - }
95 -
96 - /**
97 - * Sets the data of java imports to be included in generated file.
98 - *
99 - * @param javaImportData data of java imports to be included in generated
100 - * file
101 - */
102 - @Override
103 - public void setJavaImportData(JavaImportData javaImportData) {
104 - this.javaImportData = javaImportData;
105 - }
106 -
107 - /**
108 * Returns the temporary file handle. 83 * Returns the temporary file handle.
109 * 84 *
110 * @return temporary file handle 85 * @return temporary file handle
...@@ -131,7 +106,8 @@ public class YangJavaModule extends YangModule implements JavaCodeGeneratorInfo, ...@@ -131,7 +106,8 @@ public class YangJavaModule extends YangModule implements JavaCodeGeneratorInfo,
131 * @throws IOException when fails to generate the source files 106 * @throws IOException when fails to generate the source files
132 */ 107 */
133 @Override 108 @Override
134 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 109 + public void generateCodeEntry(YangPluginConfig yangPlugin)
110 + throws IOException {
135 String modulePkg = getRootPackage(getVersion(), getNameSpace().getUri(), getRevision().getRevDate()); 111 String modulePkg = getRootPackage(getVersion(), getNameSpace().getUri(), getRevision().getRevDate());
136 YangJavaModelUtils.generateCodeOfRootNode(this, yangPlugin, modulePkg); 112 YangJavaModelUtils.generateCodeOfRootNode(this, yangPlugin, modulePkg);
137 } 113 }
...@@ -140,7 +116,8 @@ public class YangJavaModule extends YangModule implements JavaCodeGeneratorInfo, ...@@ -140,7 +116,8 @@ public class YangJavaModule extends YangModule implements JavaCodeGeneratorInfo,
140 * Creates a java file using the YANG module info. 116 * Creates a java file using the YANG module info.
141 */ 117 */
142 @Override 118 @Override
143 - public void generateCodeExit() throws IOException { 119 + public void generateCodeExit()
144 - getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_MANAGER_WITH_RPC, this); 120 + throws IOException {
121 + getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
145 } 122 }
146 } 123 }
......
...@@ -20,28 +20,19 @@ import java.io.IOException; ...@@ -20,28 +20,19 @@ import java.io.IOException;
20 20
21 import org.onosproject.yangutils.datamodel.YangNotification; 21 import org.onosproject.yangutils.datamodel.YangNotification;
22 import org.onosproject.yangutils.translator.exception.TranslatorException; 22 import org.onosproject.yangutils.translator.exception.TranslatorException;
23 -import org.onosproject.yangutils.translator.tojava.HasJavaFileInfo;
24 -import org.onosproject.yangutils.translator.tojava.HasJavaImportData;
25 -import org.onosproject.yangutils.translator.tojava.HasTempJavaCodeFragmentFiles;
26 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 23 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
27 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 24 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
28 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
29 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 25 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
30 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 26 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
31 27
32 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; 28 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
33 -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
34 -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCaptialCase;
35 -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCurNodePackage;
36 -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPackageDirPathFromJavaJPackage;
37 -import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath;
38 29
39 /** 30 /**
40 * Represents notification information extended to support java code generation. 31 * Represents notification information extended to support java code generation.
41 */ 32 */
42 -public class YangJavaNotification extends YangNotification 33 +public class YangJavaNotification
43 - implements JavaCodeGenerator, HasJavaFileInfo, 34 + extends YangNotification
44 - HasJavaImportData, HasTempJavaCodeFragmentFiles { 35 + implements JavaCodeGenerator, JavaCodeGeneratorInfo {
45 36
46 /** 37 /**
47 * Contains information of the java file being generated. 38 * Contains information of the java file being generated.
...@@ -49,12 +40,6 @@ public class YangJavaNotification extends YangNotification ...@@ -49,12 +40,6 @@ public class YangJavaNotification extends YangNotification
49 private JavaFileInfo javaFileInfo; 40 private JavaFileInfo javaFileInfo;
50 41
51 /** 42 /**
52 - * Contains information of the imports to be inserted in the java file
53 - * generated.
54 - */
55 - private JavaImportData javaImportData;
56 -
57 - /**
58 * File handle to maintain temporary java code fragments as per the code 43 * File handle to maintain temporary java code fragments as per the code
59 * snippet types. 44 * snippet types.
60 */ 45 */
...@@ -66,7 +51,6 @@ public class YangJavaNotification extends YangNotification ...@@ -66,7 +51,6 @@ public class YangJavaNotification extends YangNotification
66 public YangJavaNotification() { 51 public YangJavaNotification() {
67 super(); 52 super();
68 setJavaFileInfo(new JavaFileInfo()); 53 setJavaFileInfo(new JavaFileInfo());
69 - setJavaImportData(new JavaImportData());
70 getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER); 54 getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER);
71 } 55 }
72 56
...@@ -95,27 +79,6 @@ public class YangJavaNotification extends YangNotification ...@@ -95,27 +79,6 @@ public class YangJavaNotification extends YangNotification
95 } 79 }
96 80
97 /** 81 /**
98 - * Returns the data of java imports to be included in generated file.
99 - *
100 - * @return data of java imports to be included in generated file
101 - */
102 - @Override
103 - public JavaImportData getJavaImportData() {
104 - return javaImportData;
105 - }
106 -
107 - /**
108 - * Sets the data of java imports to be included in generated file.
109 - *
110 - * @param javaImportData data of java imports to be included in generated
111 - * file
112 - */
113 - @Override
114 - public void setJavaImportData(JavaImportData javaImportData) {
115 - this.javaImportData = javaImportData;
116 - }
117 -
118 - /**
119 * Returns the temporary file handle. 82 * Returns the temporary file handle.
120 * 83 *
121 * @return temporary file handle 84 * @return temporary file handle
...@@ -143,25 +106,10 @@ public class YangJavaNotification extends YangNotification ...@@ -143,25 +106,10 @@ public class YangJavaNotification extends YangNotification
143 * @throws IOException IO operation fail 106 * @throws IOException IO operation fail
144 */ 107 */
145 @Override 108 @Override
146 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 109 + public void generateCodeEntry(YangPluginConfig yangPlugin)
147 - 110 + throws IOException {
148 - getJavaFileInfo().setJavaName(getCaptialCase(getCamelCase(getName(), yangPlugin.getConflictResolver())));
149 - getJavaFileInfo().setPackage(getCurNodePackage(this));
150 - getJavaFileInfo().setPackageFilePath(
151 - getPackageDirPathFromJavaJPackage(getJavaFileInfo().getPackage()));
152 - getJavaFileInfo().setBaseCodeGenPath(yangPlugin.getCodeGenDir());
153 -
154 - String absolutePath = getAbsolutePackagePath(
155 - getJavaFileInfo().getBaseCodeGenPath(),
156 - getJavaFileInfo().getPackageFilePath());
157 -
158 - setTempJavaCodeFragmentFiles(new TempJavaCodeFragmentFiles(
159 - getJavaFileInfo().getGeneratedFileTypes(), absolutePath,
160 - getJavaFileInfo().getJavaName()));
161 -
162 - getTempJavaCodeFragmentFiles().addCurNodeLeavesInfoToTempFiles(this);
163 111
164 - getTempJavaCodeFragmentFiles().addCurNodeInfoInParentTempFile(this, false); 112 + //TODO: implement the event listener for notifications.
165 } 113 }
166 114
167 /** 115 /**
......
...@@ -17,11 +17,11 @@ ...@@ -17,11 +17,11 @@
17 package org.onosproject.yangutils.translator.tojava.javamodel; 17 package org.onosproject.yangutils.translator.tojava.javamodel;
18 18
19 import java.io.IOException; 19 import java.io.IOException;
20 +
20 import org.onosproject.yangutils.datamodel.YangOutput; 21 import org.onosproject.yangutils.datamodel.YangOutput;
21 import org.onosproject.yangutils.translator.exception.TranslatorException; 22 import org.onosproject.yangutils.translator.exception.TranslatorException;
22 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 23 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
23 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 24 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
24 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
25 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 25 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
26 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 26 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
27 27
...@@ -31,7 +31,9 @@ import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUti ...@@ -31,7 +31,9 @@ import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUti
31 /** 31 /**
32 * Represents output information extended to support java code generation. 32 * Represents output information extended to support java code generation.
33 */ 33 */
34 -public class YangJavaOutput extends YangOutput implements JavaCodeGeneratorInfo, JavaCodeGenerator { 34 +public class YangJavaOutput
35 + extends YangOutput
36 + implements JavaCodeGeneratorInfo, JavaCodeGenerator {
35 37
36 /** 38 /**
37 * Contains information of the java file being generated. 39 * Contains information of the java file being generated.
...@@ -39,12 +41,6 @@ public class YangJavaOutput extends YangOutput implements JavaCodeGeneratorInfo, ...@@ -39,12 +41,6 @@ public class YangJavaOutput extends YangOutput implements JavaCodeGeneratorInfo,
39 private JavaFileInfo javaFileInfo; 41 private JavaFileInfo javaFileInfo;
40 42
41 /** 43 /**
42 - * Contains information of the imports to be inserted in the java file
43 - * generated.
44 - */
45 - private JavaImportData javaImportData;
46 -
47 - /**
48 * File handle to maintain temporary java code fragments as per the code 44 * File handle to maintain temporary java code fragments as per the code
49 * snippet types. 45 * snippet types.
50 */ 46 */
...@@ -56,7 +52,6 @@ public class YangJavaOutput extends YangOutput implements JavaCodeGeneratorInfo, ...@@ -56,7 +52,6 @@ public class YangJavaOutput extends YangOutput implements JavaCodeGeneratorInfo,
56 public YangJavaOutput() { 52 public YangJavaOutput() {
57 super(); 53 super();
58 setJavaFileInfo(new JavaFileInfo()); 54 setJavaFileInfo(new JavaFileInfo());
59 - setJavaImportData(new JavaImportData());
60 getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER); 55 getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER);
61 } 56 }
62 57
...@@ -84,27 +79,6 @@ public class YangJavaOutput extends YangOutput implements JavaCodeGeneratorInfo, ...@@ -84,27 +79,6 @@ public class YangJavaOutput extends YangOutput implements JavaCodeGeneratorInfo,
84 } 79 }
85 80
86 /** 81 /**
87 - * Returns the data of java imports to be included in generated file.
88 - *
89 - * @return data of java imports to be included in generated file
90 - */
91 - @Override
92 - public JavaImportData getJavaImportData() {
93 - return javaImportData;
94 - }
95 -
96 - /**
97 - * Sets the data of java imports to be included in generated file.
98 - *
99 - * @param javaImportData data of java imports to be included in generated
100 - * file
101 - */
102 - @Override
103 - public void setJavaImportData(JavaImportData javaImportData) {
104 - this.javaImportData = javaImportData;
105 - }
106 -
107 - /**
108 * Returns the temporary file handle. 82 * Returns the temporary file handle.
109 * 83 *
110 * @return temporary file handle 84 * @return temporary file handle
...@@ -132,8 +106,10 @@ public class YangJavaOutput extends YangOutput implements JavaCodeGeneratorInfo, ...@@ -132,8 +106,10 @@ public class YangJavaOutput extends YangOutput implements JavaCodeGeneratorInfo,
132 * @throws IOException IO operation fail 106 * @throws IOException IO operation fail
133 */ 107 */
134 @Override 108 @Override
135 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 109 + public void generateCodeEntry(YangPluginConfig yangPlugin)
110 + throws IOException {
136 generateCodeOfNode(this, yangPlugin); 111 generateCodeOfNode(this, yangPlugin);
112 +
137 } 113 }
138 114
139 /** 115 /**
...@@ -142,7 +118,8 @@ public class YangJavaOutput extends YangOutput implements JavaCodeGeneratorInfo, ...@@ -142,7 +118,8 @@ public class YangJavaOutput extends YangOutput implements JavaCodeGeneratorInfo,
142 * @throws IOException IO operation fail 118 * @throws IOException IO operation fail
143 */ 119 */
144 @Override 120 @Override
145 - public void generateCodeExit() throws IOException { 121 + public void generateCodeExit()
122 + throws IOException {
146 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this); 123 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
147 } 124 }
148 } 125 }
......
...@@ -17,27 +17,31 @@ ...@@ -17,27 +17,31 @@
17 package org.onosproject.yangutils.translator.tojava.javamodel; 17 package org.onosproject.yangutils.translator.tojava.javamodel;
18 18
19 import java.io.IOException; 19 import java.io.IOException;
20 -import org.onosproject.yangutils.datamodel.HasRpcNotification; 20 +
21 +import org.onosproject.yangutils.datamodel.RpcNotificationContainer;
21 import org.onosproject.yangutils.datamodel.YangInput; 22 import org.onosproject.yangutils.datamodel.YangInput;
22 import org.onosproject.yangutils.datamodel.YangNode; 23 import org.onosproject.yangutils.datamodel.YangNode;
23 import org.onosproject.yangutils.datamodel.YangOutput; 24 import org.onosproject.yangutils.datamodel.YangOutput;
24 import org.onosproject.yangutils.datamodel.YangRpc; 25 import org.onosproject.yangutils.datamodel.YangRpc;
25 import org.onosproject.yangutils.translator.exception.TranslatorException; 26 import org.onosproject.yangutils.translator.exception.TranslatorException;
26 -import org.onosproject.yangutils.translator.tojava.HasJavaFileInfo; 27 +import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
27 -import org.onosproject.yangutils.translator.tojava.HasTempJavaCodeFragmentFiles;
28 import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo; 28 import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo;
29 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 29 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
30 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 30 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
31 +import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
31 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 32 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
32 33
33 -import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getCurNodeAsAttributeInParent; 34 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_RPC_INTERFACE;
35 +import static org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles.getCurNodeAsAttributeInParent;
34 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getParentNodeInGenCode; 36 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getParentNodeInGenCode;
35 import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.updatePackageInfo; 37 import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.updatePackageInfo;
36 38
37 /** 39 /**
38 * Represents rpc information extended to support java code generation. 40 * Represents rpc information extended to support java code generation.
39 */ 41 */
40 -public class YangJavaRpc extends YangRpc implements JavaCodeGenerator, HasJavaFileInfo { 42 +public class YangJavaRpc
43 + extends YangRpc
44 + implements JavaCodeGenerator, JavaCodeGeneratorInfo {
41 45
42 /** 46 /**
43 * Contains the information of the java file being generated. 47 * Contains the information of the java file being generated.
...@@ -45,35 +49,57 @@ public class YangJavaRpc extends YangRpc implements JavaCodeGenerator, HasJavaFi ...@@ -45,35 +49,57 @@ public class YangJavaRpc extends YangRpc implements JavaCodeGenerator, HasJavaFi
45 private JavaFileInfo javaFileInfo; 49 private JavaFileInfo javaFileInfo;
46 50
47 /** 51 /**
52 + * Temproary file for code generation.
53 + */
54 + private TempJavaCodeFragmentFiles tempJavaCodeFragmentFiles;
55 +
56 + /**
48 * Creates an instance of YANG java rpc. 57 * Creates an instance of YANG java rpc.
49 */ 58 */
50 public YangJavaRpc() { 59 public YangJavaRpc() {
51 super(); 60 super();
52 setJavaFileInfo(new JavaFileInfo()); 61 setJavaFileInfo(new JavaFileInfo());
62 + getJavaFileInfo().setGeneratedFileTypes(GENERATE_RPC_INTERFACE);
63 + try {
64 + setTempJavaCodeFragmentFiles(new TempJavaCodeFragmentFiles(getJavaFileInfo()));
65 + } catch (IOException e) {
66 + throw new RuntimeException("Failed to create temporary RPC file handle");
67 + }
53 } 68 }
54 69
55 /** 70 /**
56 * Prepares the information for java code generation corresponding to YANG 71 * Prepares the information for java code generation corresponding to YANG
57 - * rpc info. 72 + * RPC info.
58 * 73 *
59 * @param yangPlugin YANG plugin config 74 * @param yangPlugin YANG plugin config
60 * @throws IOException IO operations fails 75 * @throws IOException IO operations fails
61 */ 76 */
62 @Override 77 @Override
63 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 78 + public void generateCodeEntry(YangPluginConfig yangPlugin)
79 + throws IOException {
64 80
65 - if (!(this instanceof YangNode)) { 81 + if (!(this instanceof JavaCodeGeneratorInfo)) {
66 // TODO:throw exception 82 // TODO:throw exception
67 } 83 }
68 84
69 // Add package information for rpc and create corresponding folder. 85 // Add package information for rpc and create corresponding folder.
70 - updatePackageInfo(this, yangPlugin); 86 + updatePackageInfo((JavaCodeGeneratorInfo) this, yangPlugin);
87 +
88 + }
71 89
90 + /**
91 + * Creates a java file using the YANG RPC info.
92 + *
93 + * @throws IOException IO operations fails
94 + */
95 + @Override
96 + public void generateCodeExit()
97 + throws IOException {
72 // Get the parent module/sub-module. 98 // Get the parent module/sub-module.
73 YangNode parent = getParentNodeInGenCode((YangNode) this); 99 YangNode parent = getParentNodeInGenCode((YangNode) this);
74 100
75 // Parent should be holder of rpc or notification. 101 // Parent should be holder of rpc or notification.
76 - if (!(parent instanceof HasRpcNotification)) { 102 + if (!(parent instanceof RpcNotificationContainer)) {
77 throw new TranslatorException("parent node of rpc can only be module or sub-module"); 103 throw new TranslatorException("parent node of rpc can only be module or sub-module");
78 } 104 }
79 105
...@@ -89,35 +115,26 @@ public class YangJavaRpc extends YangRpc implements JavaCodeGenerator, HasJavaFi ...@@ -89,35 +115,26 @@ public class YangJavaRpc extends YangRpc implements JavaCodeGenerator, HasJavaFi
89 YangNode yangNode = this.getChild(); 115 YangNode yangNode = this.getChild();
90 while (yangNode != null) { 116 while (yangNode != null) {
91 if (yangNode instanceof YangInput) { 117 if (yangNode instanceof YangInput) {
92 - javaAttributeInfoOfInput = getCurNodeAsAttributeInParent(parent, false, yangNode.getName()); 118 + javaAttributeInfoOfInput = getCurNodeAsAttributeInParent(yangNode, this, false);
93 } else if (yangNode instanceof YangOutput) { 119 } else if (yangNode instanceof YangOutput) {
94 - javaAttributeInfoOfOutput = getCurNodeAsAttributeInParent(parent, false, yangNode.getName()); 120 + javaAttributeInfoOfOutput = getCurNodeAsAttributeInParent(yangNode, this, false);
95 } else { 121 } else {
96 // TODO throw exception 122 // TODO throw exception
97 } 123 }
98 yangNode = yangNode.getNextSibling(); 124 yangNode = yangNode.getNextSibling();
99 } 125 }
100 126
101 - if (!(parent instanceof HasTempJavaCodeFragmentFiles)) { 127 + if (!(parent instanceof TempJavaCodeFragmentFilesContainer)) {
102 throw new TranslatorException("missing parent temp file handle"); 128 throw new TranslatorException("missing parent temp file handle");
103 } 129 }
104 130
105 /* 131 /*
106 * Add the rpc information to the parent's service temp file. 132 * Add the rpc information to the parent's service temp file.
107 */ 133 */
108 - ((HasTempJavaCodeFragmentFiles) parent) 134 + ((TempJavaCodeFragmentFilesContainer) parent)
109 - .getTempJavaCodeFragmentFiles() 135 + .getTempJavaCodeFragmentFiles().getServiceTempFiles()
110 .addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfoOfInput, javaAttributeInfoOfOutput, 136 .addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfoOfInput, javaAttributeInfoOfOutput,
111 ((YangNode) this).getName()); 137 ((YangNode) this).getName());
112 - }
113 -
114 - /**
115 - * Creates a java file using the YANG rpc info.
116 - *
117 - * @throws IOException IO operations fails
118 - */
119 - @Override
120 - public void generateCodeExit() throws IOException {
121 // No file will be generated during RPC exit. 138 // No file will be generated during RPC exit.
122 } 139 }
123 140
...@@ -144,5 +161,15 @@ public class YangJavaRpc extends YangRpc implements JavaCodeGenerator, HasJavaFi ...@@ -144,5 +161,15 @@ public class YangJavaRpc extends YangRpc implements JavaCodeGenerator, HasJavaFi
144 public void setJavaFileInfo(JavaFileInfo javaInfo) { 161 public void setJavaFileInfo(JavaFileInfo javaInfo) {
145 javaFileInfo = javaInfo; 162 javaFileInfo = javaInfo;
146 } 163 }
164 +
165 + @Override
166 + public TempJavaCodeFragmentFiles getTempJavaCodeFragmentFiles() {
167 + return tempJavaCodeFragmentFiles;
168 + }
169 +
170 + @Override
171 + public void setTempJavaCodeFragmentFiles(TempJavaCodeFragmentFiles fileHandle) {
172 + tempJavaCodeFragmentFiles = fileHandle;
173 + }
147 } 174 }
148 175
......
...@@ -16,12 +16,12 @@ ...@@ -16,12 +16,12 @@
16 package org.onosproject.yangutils.translator.tojava.javamodel; 16 package org.onosproject.yangutils.translator.tojava.javamodel;
17 17
18 import java.io.IOException; 18 import java.io.IOException;
19 +
19 import org.onosproject.yangutils.datamodel.YangBelongsTo; 20 import org.onosproject.yangutils.datamodel.YangBelongsTo;
20 import org.onosproject.yangutils.datamodel.YangSubModule; 21 import org.onosproject.yangutils.datamodel.YangSubModule;
21 import org.onosproject.yangutils.translator.exception.TranslatorException; 22 import org.onosproject.yangutils.translator.exception.TranslatorException;
22 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 23 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
23 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 24 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
24 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
25 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 25 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
26 import org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils; 26 import org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils;
27 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 27 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
...@@ -32,7 +32,9 @@ import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSy ...@@ -32,7 +32,9 @@ import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSy
32 /** 32 /**
33 * Represents sub module information extended to support java code generation. 33 * Represents sub module information extended to support java code generation.
34 */ 34 */
35 -public class YangJavaSubModule extends YangSubModule implements JavaCodeGeneratorInfo, JavaCodeGenerator { 35 +public class YangJavaSubModule
36 + extends YangSubModule
37 + implements JavaCodeGeneratorInfo, JavaCodeGenerator {
36 38
37 /** 39 /**
38 * Contains the information of the java file being generated. 40 * Contains the information of the java file being generated.
...@@ -40,12 +42,6 @@ public class YangJavaSubModule extends YangSubModule implements JavaCodeGenerato ...@@ -40,12 +42,6 @@ public class YangJavaSubModule extends YangSubModule implements JavaCodeGenerato
40 private JavaFileInfo javaFileInfo; 42 private JavaFileInfo javaFileInfo;
41 43
42 /** 44 /**
43 - * Contains information of the imports to be inserted in the java file
44 - * generated.
45 - */
46 - private JavaImportData javaImportData;
47 -
48 - /**
49 * File handle to maintain temporary java code fragments as per the code 45 * File handle to maintain temporary java code fragments as per the code
50 * snippet types. 46 * snippet types.
51 */ 47 */
...@@ -57,7 +53,6 @@ public class YangJavaSubModule extends YangSubModule implements JavaCodeGenerato ...@@ -57,7 +53,6 @@ public class YangJavaSubModule extends YangSubModule implements JavaCodeGenerato
57 public YangJavaSubModule() { 53 public YangJavaSubModule() {
58 super(); 54 super();
59 setJavaFileInfo(new JavaFileInfo()); 55 setJavaFileInfo(new JavaFileInfo());
60 - setJavaImportData(new JavaImportData());
61 getJavaFileInfo().setGeneratedFileTypes(GENERATE_MANAGER_WITH_RPC); 56 getJavaFileInfo().setGeneratedFileTypes(GENERATE_MANAGER_WITH_RPC);
62 } 57 }
63 58
...@@ -85,27 +80,6 @@ public class YangJavaSubModule extends YangSubModule implements JavaCodeGenerato ...@@ -85,27 +80,6 @@ public class YangJavaSubModule extends YangSubModule implements JavaCodeGenerato
85 } 80 }
86 81
87 /** 82 /**
88 - * Returns the data of java imports to be included in generated file.
89 - *
90 - * @return data of java imports to be included in generated file
91 - */
92 - @Override
93 - public JavaImportData getJavaImportData() {
94 - return javaImportData;
95 - }
96 -
97 - /**
98 - * Sets the data of java imports to be included in generated file.
99 - *
100 - * @param javaImportData data of java imports to be included in generated
101 - * file
102 - */
103 - @Override
104 - public void setJavaImportData(JavaImportData javaImportData) {
105 - this.javaImportData = javaImportData;
106 - }
107 -
108 - /**
109 * Returns the temporary file handle. 83 * Returns the temporary file handle.
110 * 84 *
111 * @return temporary file handle 85 * @return temporary file handle
...@@ -129,7 +103,7 @@ public class YangJavaSubModule extends YangSubModule implements JavaCodeGenerato ...@@ -129,7 +103,7 @@ public class YangJavaSubModule extends YangSubModule implements JavaCodeGenerato
129 * Returns the name space of the module to which the sub module belongs to. 103 * Returns the name space of the module to which the sub module belongs to.
130 * 104 *
131 * @param belongsToInfo Information of the module to which the sub module 105 * @param belongsToInfo Information of the module to which the sub module
132 - * belongs 106 + * belongs
133 * @return the name space string of the module. 107 * @return the name space string of the module.
134 */ 108 */
135 private String getNameSpaceFromModule(YangBelongsTo belongsToInfo) { 109 private String getNameSpaceFromModule(YangBelongsTo belongsToInfo) {
...@@ -145,7 +119,8 @@ public class YangJavaSubModule extends YangSubModule implements JavaCodeGenerato ...@@ -145,7 +119,8 @@ public class YangJavaSubModule extends YangSubModule implements JavaCodeGenerato
145 * @throws IOException IO operation fail 119 * @throws IOException IO operation fail
146 */ 120 */
147 @Override 121 @Override
148 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 122 + public void generateCodeEntry(YangPluginConfig yangPlugin)
123 + throws IOException {
149 String subModulePkg = getRootPackage(getVersion(), getNameSpaceFromModule(getBelongsTo()), 124 String subModulePkg = getRootPackage(getVersion(), getNameSpaceFromModule(getBelongsTo()),
150 getRevision().getRevDate()); 125 getRevision().getRevDate());
151 YangJavaModelUtils.generateCodeOfRootNode(this, yangPlugin, subModulePkg); 126 YangJavaModelUtils.generateCodeOfRootNode(this, yangPlugin, subModulePkg);
......
1 +/*
2 + * Copyright 2016-present Open Networking Laboratory
3 + *
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 +package org.onosproject.yangutils.translator.tojava.javamodel;
17 +
18 +import org.onosproject.yangutils.datamodel.YangType;
19 +import org.onosproject.yangutils.translator.exception.TranslatorException;
20 +import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo;
21 +import org.onosproject.yangutils.translator.tojava.utils.AttributesJavaDataType;
22 +
23 +/**
24 + * Represents java information corresponding to the YANG type.
25 + */
26 +public class YangJavaType<T>
27 + extends YangType<T>
28 + implements JavaQualifiedTypeResolver {
29 +
30 + private JavaQualifiedTypeInfo javaQualifiedAccess;
31 +
32 + /**
33 + * Create a YANG leaf object with java qualified access details.
34 + */
35 + public YangJavaType() {
36 + super();
37 + setJavaQualifiedInfo(new JavaQualifiedTypeInfo());
38 + }
39 +
40 + @Override
41 + public void updateJavaQualifiedInfo() {
42 + JavaQualifiedTypeInfo importInfo = getJavaQualifiedInfo();
43 +
44 + /*
45 + * Type is added as an attribute in the class.
46 + */
47 + String className = AttributesJavaDataType.getJavaImportClass(this, false);
48 + if (className != null) {
49 + /*
50 + * Corresponding to the attribute type a class needs to be imported,
51 + * since it can be a derived type or a usage of wrapper classes.
52 + */
53 + importInfo.setClassInfo(className);
54 + String classPkg = AttributesJavaDataType.getJavaImportPackage(this,
55 + false, className);
56 + if (classPkg == null) {
57 + throw new TranslatorException("import package cannot be null when the class is used");
58 + }
59 + importInfo.setPkgInfo(classPkg);
60 + } else {
61 + /*
62 + * The attribute does not need a class to be imported, for example
63 + * built in java types.
64 + */
65 + String dataTypeName = AttributesJavaDataType.getJavaDataType(this);
66 + if (dataTypeName == null) {
67 + throw new TranslatorException("not supported data type");
68 + }
69 + importInfo.setClassInfo(dataTypeName);
70 + }
71 + }
72 +
73 + @Override
74 + public JavaQualifiedTypeInfo getJavaQualifiedInfo() {
75 + return javaQualifiedAccess;
76 + }
77 +
78 + @Override
79 + public void setJavaQualifiedInfo(JavaQualifiedTypeInfo typeInfo) {
80 + javaQualifiedAccess = typeInfo;
81 + }
82 +}
...@@ -16,11 +16,11 @@ ...@@ -16,11 +16,11 @@
16 package org.onosproject.yangutils.translator.tojava.javamodel; 16 package org.onosproject.yangutils.translator.tojava.javamodel;
17 17
18 import java.io.IOException; 18 import java.io.IOException;
19 +
19 import org.onosproject.yangutils.datamodel.YangTypeDef; 20 import org.onosproject.yangutils.datamodel.YangTypeDef;
20 import org.onosproject.yangutils.translator.exception.TranslatorException; 21 import org.onosproject.yangutils.translator.exception.TranslatorException;
21 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 22 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
22 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 23 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
23 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
25 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 25 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
26 26
...@@ -30,7 +30,9 @@ import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUti ...@@ -30,7 +30,9 @@ import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUti
30 /** 30 /**
31 * Represents type define information extended to support java code generation. 31 * Represents type define information extended to support java code generation.
32 */ 32 */
33 -public class YangJavaTypeDef extends YangTypeDef implements JavaCodeGeneratorInfo, JavaCodeGenerator { 33 +public class YangJavaTypeDef
34 + extends YangTypeDef
35 + implements JavaCodeGeneratorInfo, JavaCodeGenerator {
34 36
35 /** 37 /**
36 * Contains the information of the java file being generated. 38 * Contains the information of the java file being generated.
...@@ -38,12 +40,6 @@ public class YangJavaTypeDef extends YangTypeDef implements JavaCodeGeneratorInf ...@@ -38,12 +40,6 @@ public class YangJavaTypeDef extends YangTypeDef implements JavaCodeGeneratorInf
38 private JavaFileInfo javaFileInfo; 40 private JavaFileInfo javaFileInfo;
39 41
40 /** 42 /**
41 - * Contains information of the imports to be inserted in the java file
42 - * generated.
43 - */
44 - private JavaImportData javaImportData;
45 -
46 - /**
47 * File handle to maintain temporary java code fragments as per the code 43 * File handle to maintain temporary java code fragments as per the code
48 * snippet types. 44 * snippet types.
49 */ 45 */
...@@ -55,7 +51,6 @@ public class YangJavaTypeDef extends YangTypeDef implements JavaCodeGeneratorInf ...@@ -55,7 +51,6 @@ public class YangJavaTypeDef extends YangTypeDef implements JavaCodeGeneratorInf
55 public YangJavaTypeDef() { 51 public YangJavaTypeDef() {
56 super(); 52 super();
57 setJavaFileInfo(new JavaFileInfo()); 53 setJavaFileInfo(new JavaFileInfo());
58 - setJavaImportData(new JavaImportData());
59 getJavaFileInfo().setGeneratedFileTypes(GENERATE_TYPEDEF_CLASS); 54 getJavaFileInfo().setGeneratedFileTypes(GENERATE_TYPEDEF_CLASS);
60 } 55 }
61 56
...@@ -84,27 +79,6 @@ public class YangJavaTypeDef extends YangTypeDef implements JavaCodeGeneratorInf ...@@ -84,27 +79,6 @@ public class YangJavaTypeDef extends YangTypeDef implements JavaCodeGeneratorInf
84 } 79 }
85 80
86 /** 81 /**
87 - * Returns the data of java imports to be included in generated file.
88 - *
89 - * @return data of java imports to be included in generated file
90 - */
91 - @Override
92 - public JavaImportData getJavaImportData() {
93 - return javaImportData;
94 - }
95 -
96 - /**
97 - * Sets the data of java imports to be included in generated file.
98 - *
99 - * @param javaImportData data of java imports to be included in generated
100 - * file
101 - */
102 - @Override
103 - public void setJavaImportData(JavaImportData javaImportData) {
104 - this.javaImportData = javaImportData;
105 - }
106 -
107 - /**
108 * Returns the temporary file handle. 82 * Returns the temporary file handle.
109 * 83 *
110 * @return temporary file handle 84 * @return temporary file handle
...@@ -132,8 +106,9 @@ public class YangJavaTypeDef extends YangTypeDef implements JavaCodeGeneratorInf ...@@ -132,8 +106,9 @@ public class YangJavaTypeDef extends YangTypeDef implements JavaCodeGeneratorInf
132 * @throws IOException IO operations fails 106 * @throws IOException IO operations fails
133 */ 107 */
134 @Override 108 @Override
135 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 109 + public void generateCodeEntry(YangPluginConfig yangPlugin)
136 - generateCodeOfNode(this, yangPlugin, false); 110 + throws IOException {
111 + generateCodeOfNode(this, yangPlugin);
137 } 112 }
138 113
139 /** 114 /**
...@@ -142,7 +117,8 @@ public class YangJavaTypeDef extends YangTypeDef implements JavaCodeGeneratorInf ...@@ -142,7 +117,8 @@ public class YangJavaTypeDef extends YangTypeDef implements JavaCodeGeneratorInf
142 * @throws IOException IO operations fails 117 * @throws IOException IO operations fails
143 */ 118 */
144 @Override 119 @Override
145 - public void generateCodeExit() throws IOException { 120 + public void generateCodeExit()
121 + throws IOException {
146 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_TYPEDEF_CLASS, this); 122 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_TYPEDEF_CLASS, this);
147 } 123 }
148 124
......
...@@ -16,10 +16,10 @@ ...@@ -16,10 +16,10 @@
16 package org.onosproject.yangutils.translator.tojava.javamodel; 16 package org.onosproject.yangutils.translator.tojava.javamodel;
17 17
18 import java.io.IOException; 18 import java.io.IOException;
19 +
19 import org.onosproject.yangutils.datamodel.YangUnion; 20 import org.onosproject.yangutils.datamodel.YangUnion;
20 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 21 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
21 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 22 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
22 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
23 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 23 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
24 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 24 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
25 25
...@@ -29,7 +29,9 @@ import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUti ...@@ -29,7 +29,9 @@ import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUti
29 /** 29 /**
30 * Represents union information extended to support java code generation. 30 * Represents union information extended to support java code generation.
31 */ 31 */
32 -public class YangJavaUnion extends YangUnion implements JavaCodeGeneratorInfo, JavaCodeGenerator { 32 +public class YangJavaUnion
33 + extends YangUnion
34 + implements JavaCodeGeneratorInfo, JavaCodeGenerator {
33 35
34 /** 36 /**
35 * Contains the information of the java file being generated. 37 * Contains the information of the java file being generated.
...@@ -37,12 +39,6 @@ public class YangJavaUnion extends YangUnion implements JavaCodeGeneratorInfo, J ...@@ -37,12 +39,6 @@ public class YangJavaUnion extends YangUnion implements JavaCodeGeneratorInfo, J
37 private JavaFileInfo javaFileInfo; 39 private JavaFileInfo javaFileInfo;
38 40
39 /** 41 /**
40 - * Contains information of the imports to be inserted in the java file
41 - * generated.
42 - */
43 - private JavaImportData javaImportData;
44 -
45 - /**
46 * File handle to maintain temporary java code fragments as per the code 42 * File handle to maintain temporary java code fragments as per the code
47 * snippet types. 43 * snippet types.
48 */ 44 */
...@@ -54,7 +50,6 @@ public class YangJavaUnion extends YangUnion implements JavaCodeGeneratorInfo, J ...@@ -54,7 +50,6 @@ public class YangJavaUnion extends YangUnion implements JavaCodeGeneratorInfo, J
54 public YangJavaUnion() { 50 public YangJavaUnion() {
55 super(); 51 super();
56 setJavaFileInfo(new JavaFileInfo()); 52 setJavaFileInfo(new JavaFileInfo());
57 - setJavaImportData(new JavaImportData());
58 getJavaFileInfo().setGeneratedFileTypes(GENERATE_UNION_CLASS); 53 getJavaFileInfo().setGeneratedFileTypes(GENERATE_UNION_CLASS);
59 } 54 }
60 55
...@@ -82,27 +77,6 @@ public class YangJavaUnion extends YangUnion implements JavaCodeGeneratorInfo, J ...@@ -82,27 +77,6 @@ public class YangJavaUnion extends YangUnion implements JavaCodeGeneratorInfo, J
82 } 77 }
83 78
84 /** 79 /**
85 - * Returns the data of java imports to be included in generated file.
86 - *
87 - * @return data of java imports to be included in generated file
88 - */
89 - @Override
90 - public JavaImportData getJavaImportData() {
91 - return javaImportData;
92 - }
93 -
94 - /**
95 - * Sets the data of java imports to be included in generated file.
96 - *
97 - * @param javaImportData data of java imports to be included in generated
98 - * file
99 - */
100 - @Override
101 - public void setJavaImportData(JavaImportData javaImportData) {
102 - this.javaImportData = javaImportData;
103 - }
104 -
105 - /**
106 * Returns the temporary file handle. 80 * Returns the temporary file handle.
107 * 81 *
108 * @return temporary file handle 82 * @return temporary file handle
...@@ -134,7 +108,8 @@ public class YangJavaUnion extends YangUnion implements JavaCodeGeneratorInfo, J ...@@ -134,7 +108,8 @@ public class YangJavaUnion extends YangUnion implements JavaCodeGeneratorInfo, J
134 * @throws IOException IO operations fails 108 * @throws IOException IO operations fails
135 */ 109 */
136 @Override 110 @Override
137 - public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 111 + public void generateCodeEntry(YangPluginConfig yangPlugin)
112 + throws IOException {
138 generateCodeOfNode(this, yangPlugin); 113 generateCodeOfNode(this, yangPlugin);
139 } 114 }
140 115
...@@ -144,7 +119,8 @@ public class YangJavaUnion extends YangUnion implements JavaCodeGeneratorInfo, J ...@@ -144,7 +119,8 @@ public class YangJavaUnion extends YangUnion implements JavaCodeGeneratorInfo, J
144 * @throws IOException IO operations fails 119 * @throws IOException IO operations fails
145 */ 120 */
146 @Override 121 @Override
147 - public void generateCodeExit() throws IOException { 122 + public void generateCodeExit()
123 + throws IOException {
148 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_UNION_CLASS, this); 124 getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_UNION_CLASS, this);
149 } 125 }
150 } 126 }
......
...@@ -16,89 +16,21 @@ ...@@ -16,89 +16,21 @@
16 package org.onosproject.yangutils.translator.tojava.javamodel; 16 package org.onosproject.yangutils.translator.tojava.javamodel;
17 17
18 import org.onosproject.yangutils.datamodel.YangUses; 18 import org.onosproject.yangutils.datamodel.YangUses;
19 -import org.onosproject.yangutils.translator.exception.TranslatorException;
20 -import org.onosproject.yangutils.translator.tojava.HasJavaFileInfo;
21 -import org.onosproject.yangutils.translator.tojava.HasJavaImportData;
22 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; 19 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
23 -import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
24 -import org.onosproject.yangutils.translator.tojava.JavaImportData;
25 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 20 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
26 21
27 -import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
28 -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
29 -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCaptialCase;
30 -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCurNodePackage;
31 -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPackageDirPathFromJavaJPackage;
32 -
33 /** 22 /**
34 * Represents uses information extended to support java code generation. 23 * Represents uses information extended to support java code generation.
35 */ 24 */
36 -public class YangJavaUses extends YangUses implements JavaCodeGenerator, HasJavaFileInfo, HasJavaImportData { 25 +public class YangJavaUses
37 - 26 + extends YangUses
38 - /** 27 + implements JavaCodeGenerator {
39 - * Contains the information of the java file being generated.
40 - */
41 - private JavaFileInfo javaFileInfo;
42 -
43 - /**
44 - * Contains information of the imports to be inserted in the java file
45 - * generated.
46 - */
47 - private JavaImportData javaImportData;
48 28
49 /** 29 /**
50 * Creates YANG java uses object. 30 * Creates YANG java uses object.
51 */ 31 */
52 public YangJavaUses() { 32 public YangJavaUses() {
53 super(); 33 super();
54 - setJavaFileInfo(new JavaFileInfo());
55 - setJavaImportData(new JavaImportData());
56 - getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER);
57 - }
58 -
59 - /**
60 - * Returns the generated java file information.
61 - *
62 - * @return generated java file information
63 - */
64 - @Override
65 - public JavaFileInfo getJavaFileInfo() {
66 -
67 - if (javaFileInfo == null) {
68 - throw new TranslatorException("Missing java info in java datamodel node");
69 - }
70 - return javaFileInfo;
71 - }
72 -
73 - /**
74 - * Sets the java file info object.
75 - *
76 - * @param javaInfo java file info object
77 - */
78 - @Override
79 - public void setJavaFileInfo(JavaFileInfo javaInfo) {
80 - javaFileInfo = javaInfo;
81 - }
82 -
83 - /**
84 - * Returns the data of java imports to be included in generated file.
85 - *
86 - * @return data of java imports to be included in generated file
87 - */
88 - @Override
89 - public JavaImportData getJavaImportData() {
90 - return javaImportData;
91 - }
92 -
93 - /**
94 - * Sets the data of java imports to be included in generated file.
95 - *
96 - * @param javaImportData data of java imports to be included in generated
97 - * file
98 - */
99 - @Override
100 - public void setJavaImportData(JavaImportData javaImportData) {
101 - this.javaImportData = javaImportData;
102 } 34 }
103 35
104 /** 36 /**
...@@ -109,14 +41,7 @@ public class YangJavaUses extends YangUses implements JavaCodeGenerator, HasJava ...@@ -109,14 +41,7 @@ public class YangJavaUses extends YangUses implements JavaCodeGenerator, HasJava
109 */ 41 */
110 @Override 42 @Override
111 public void generateCodeEntry(YangPluginConfig yangPlugin) { 43 public void generateCodeEntry(YangPluginConfig yangPlugin) {
112 - 44 + /*Do nothing, the uses will copy the contents to the used location*/
113 - getJavaFileInfo().setJavaName(getCaptialCase(getCamelCase(getName(), yangPlugin.getConflictResolver())));
114 - getJavaFileInfo().setPackage(getCurNodePackage(this));
115 - getJavaFileInfo().setPackageFilePath(
116 - getPackageDirPathFromJavaJPackage(getJavaFileInfo().getPackage()));
117 - getJavaFileInfo().setBaseCodeGenPath(yangPlugin.getCodeGenDir());
118 - //TODO:addCurNodeLeavesInfoToTempFiles(this);
119 - //TODO:addCurNodeInfoInParentTempFile(this, false);
120 } 45 }
121 46
122 /** 47 /**
...@@ -124,7 +49,6 @@ public class YangJavaUses extends YangUses implements JavaCodeGenerator, HasJava ...@@ -124,7 +49,6 @@ public class YangJavaUses extends YangUses implements JavaCodeGenerator, HasJava
124 */ 49 */
125 @Override 50 @Override
126 public void generateCodeExit() { 51 public void generateCodeExit() {
127 - // TODO Auto-generated method stub 52 + /*Do nothing, the uses will copy the contents to the used location*/
128 -
129 } 53 }
130 } 54 }
......
...@@ -24,7 +24,7 @@ import org.onosproject.yangutils.datamodel.YangType; ...@@ -24,7 +24,7 @@ import org.onosproject.yangutils.datamodel.YangType;
24 import org.onosproject.yangutils.datamodel.YangTypeDef; 24 import org.onosproject.yangutils.datamodel.YangTypeDef;
25 import org.onosproject.yangutils.datamodel.YangUnion; 25 import org.onosproject.yangutils.datamodel.YangUnion;
26 import org.onosproject.yangutils.translator.exception.TranslatorException; 26 import org.onosproject.yangutils.translator.exception.TranslatorException;
27 -import org.onosproject.yangutils.translator.tojava.HasJavaFileInfo; 27 +import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
28 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 28 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
29 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaEnumeration; 29 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaEnumeration;
30 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaTypeDef; 30 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaTypeDef;
...@@ -109,7 +109,7 @@ public final class AttributesJavaDataType { ...@@ -109,7 +109,7 @@ public final class AttributesJavaDataType {
109 * Returns from string method parsed string. 109 * Returns from string method parsed string.
110 * 110 *
111 * @param targetDataType target data type 111 * @param targetDataType target data type
112 - * @param yangType YANG type 112 + * @param yangType YANG type
113 * @return parsed string 113 * @return parsed string
114 */ 114 */
115 public static String getParseFromStringMethod(String targetDataType, YangType<?> yangType) { 115 public static String getParseFromStringMethod(String targetDataType, YangType<?> yangType) {
...@@ -155,7 +155,7 @@ public final class AttributesJavaDataType { ...@@ -155,7 +155,7 @@ public final class AttributesJavaDataType {
155 /** 155 /**
156 * Returns java import class. 156 * Returns java import class.
157 * 157 *
158 - * @param yangType YANG type 158 + * @param yangType YANG type
159 * @param isListAttr if the attribute need to be a list 159 * @param isListAttr if the attribute need to be a list
160 * @return java import class 160 * @return java import class
161 */ 161 */
...@@ -183,6 +183,7 @@ public final class AttributesJavaDataType { ...@@ -183,6 +183,7 @@ public final class AttributesJavaDataType {
183 return BIG_INTEGER; 183 return BIG_INTEGER;
184 case DECIMAL64: 184 case DECIMAL64:
185 //TODO: DECIMAL64. 185 //TODO: DECIMAL64.
186 + break;
186 case STRING: 187 case STRING:
187 return STRING_DATA_TYPE; 188 return STRING_DATA_TYPE;
188 case BOOLEAN: 189 case BOOLEAN:
...@@ -192,12 +193,16 @@ public final class AttributesJavaDataType { ...@@ -192,12 +193,16 @@ public final class AttributesJavaDataType {
192 getCamelCase(((YangJavaEnumeration) yangType.getDataTypeExtendedInfo()).getName(), null)); 193 getCamelCase(((YangJavaEnumeration) yangType.getDataTypeExtendedInfo()).getName(), null));
193 case BITS: 194 case BITS:
194 //TODO:BITS 195 //TODO:BITS
196 + break;
195 case BINARY: 197 case BINARY:
196 //TODO:BINARY 198 //TODO:BINARY
199 + break;
197 case LEAFREF: 200 case LEAFREF:
198 //TODO:LEAFREF 201 //TODO:LEAFREF
202 + break;
199 case IDENTITYREF: 203 case IDENTITYREF:
200 //TODO:IDENTITYREF 204 //TODO:IDENTITYREF
205 + break;
201 case EMPTY: 206 case EMPTY:
202 return BOOLEAN_WRAPPER; 207 return BOOLEAN_WRAPPER;
203 case UNION: 208 case UNION:
...@@ -216,6 +221,7 @@ public final class AttributesJavaDataType { ...@@ -216,6 +221,7 @@ public final class AttributesJavaDataType {
216 return BIG_INTEGER; 221 return BIG_INTEGER;
217 case DECIMAL64: 222 case DECIMAL64:
218 //TODO: DECIMAL64. 223 //TODO: DECIMAL64.
224 + break;
219 case STRING: 225 case STRING:
220 return STRING_DATA_TYPE; 226 return STRING_DATA_TYPE;
221 case ENUMERATION: 227 case ENUMERATION:
...@@ -223,33 +229,40 @@ public final class AttributesJavaDataType { ...@@ -223,33 +229,40 @@ public final class AttributesJavaDataType {
223 getCamelCase(((YangJavaEnumeration) yangType.getDataTypeExtendedInfo()).getName(), null)); 229 getCamelCase(((YangJavaEnumeration) yangType.getDataTypeExtendedInfo()).getName(), null));
224 case BITS: 230 case BITS:
225 //TODO:BITS 231 //TODO:BITS
232 + break;
226 case BINARY: 233 case BINARY:
227 //TODO:BINARY 234 //TODO:BINARY
235 + break;
228 case LEAFREF: 236 case LEAFREF:
229 //TODO:LEAFREF 237 //TODO:LEAFREF
238 + break;
230 case IDENTITYREF: 239 case IDENTITYREF:
231 //TODO:IDENTITYREF 240 //TODO:IDENTITYREF
241 + break;
232 case EMPTY: 242 case EMPTY:
233 //TODO:EMPTY 243 //TODO:EMPTY
244 + break;
234 case UNION: 245 case UNION:
235 return getCaptialCase(getCamelCase(((YangJavaUnion) yangType.getDataTypeExtendedInfo()).getName(), 246 return getCaptialCase(getCamelCase(((YangJavaUnion) yangType.getDataTypeExtendedInfo()).getName(),
236 null)); 247 null));
237 case INSTANCE_IDENTIFIER: 248 case INSTANCE_IDENTIFIER:
238 //TODO:INSTANCE_IDENTIFIER 249 //TODO:INSTANCE_IDENTIFIER
250 + break;
239 case DERIVED: 251 case DERIVED:
240 return getCaptialCase(getCamelCase(yangType.getDataTypeName(), null)); 252 return getCaptialCase(getCamelCase(yangType.getDataTypeName(), null));
241 default: 253 default:
242 return null; 254 return null;
243 } 255 }
244 } 256 }
257 + return null;
245 } 258 }
246 259
247 /** 260 /**
248 * Returns java import package. 261 * Returns java import package.
249 * 262 *
250 - * @param yangType YANG type 263 + * @param yangType YANG type
251 * @param isListAttr if the attribute is of list type 264 * @param isListAttr if the attribute is of list type
252 - * @param classInfo java import class info 265 + * @param classInfo java import class info
253 * @return java import package 266 * @return java import package
254 */ 267 */
255 public static String getJavaImportPackage(YangType<?> yangType, boolean isListAttr, String classInfo) { 268 public static String getJavaImportPackage(YangType<?> yangType, boolean isListAttr, String classInfo) {
...@@ -272,22 +285,29 @@ public final class AttributesJavaDataType { ...@@ -272,22 +285,29 @@ public final class AttributesJavaDataType {
272 return JAVA_MATH; 285 return JAVA_MATH;
273 case DECIMAL64: 286 case DECIMAL64:
274 //TODO: DECIMAL64. 287 //TODO: DECIMAL64.
288 + break;
275 case ENUMERATION: 289 case ENUMERATION:
276 return getEnumsPackage(yangType); 290 return getEnumsPackage(yangType);
277 case BITS: 291 case BITS:
278 //TODO:BITS 292 //TODO:BITS
293 + break;
279 case BINARY: 294 case BINARY:
280 //TODO:BINARY 295 //TODO:BINARY
296 + break;
281 case LEAFREF: 297 case LEAFREF:
282 //TODO:LEAFREF 298 //TODO:LEAFREF
299 + break;
283 case IDENTITYREF: 300 case IDENTITYREF:
284 //TODO:IDENTITYREF 301 //TODO:IDENTITYREF
302 + break;
285 case EMPTY: 303 case EMPTY:
286 //TODO:EMPTY 304 //TODO:EMPTY
305 + break;
287 case UNION: 306 case UNION:
288 return getUnionPackage(yangType); 307 return getUnionPackage(yangType);
289 case INSTANCE_IDENTIFIER: 308 case INSTANCE_IDENTIFIER:
290 //TODO:INSTANCE_IDENTIFIER 309 //TODO:INSTANCE_IDENTIFIER
310 + break;
291 case DERIVED: 311 case DERIVED:
292 return getTypDefsPackage(yangType); 312 return getTypDefsPackage(yangType);
293 default: 313 default:
...@@ -297,32 +317,41 @@ public final class AttributesJavaDataType { ...@@ -297,32 +317,41 @@ public final class AttributesJavaDataType {
297 switch (type) { 317 switch (type) {
298 case UINT64: 318 case UINT64:
299 //TODO: BIGINTEGER. 319 //TODO: BIGINTEGER.
320 + break;
300 case DECIMAL64: 321 case DECIMAL64:
301 //TODO: DECIMAL64 322 //TODO: DECIMAL64
323 + break;
302 case STRING: 324 case STRING:
303 return JAVA_LANG; 325 return JAVA_LANG;
304 case ENUMERATION: 326 case ENUMERATION:
305 return getEnumsPackage(yangType); 327 return getEnumsPackage(yangType);
306 case BITS: 328 case BITS:
307 //TODO:BITS 329 //TODO:BITS
330 + break;
308 case BINARY: 331 case BINARY:
309 //TODO:BINARY 332 //TODO:BINARY
333 + break;
310 case LEAFREF: 334 case LEAFREF:
311 //TODO:LEAFREF 335 //TODO:LEAFREF
336 + break;
312 case IDENTITYREF: 337 case IDENTITYREF:
313 //TODO:IDENTITYREF 338 //TODO:IDENTITYREF
339 + break;
314 case EMPTY: 340 case EMPTY:
315 //TODO:EMPTY 341 //TODO:EMPTY
342 + break;
316 case UNION: 343 case UNION:
317 return getUnionPackage(yangType); 344 return getUnionPackage(yangType);
318 case INSTANCE_IDENTIFIER: 345 case INSTANCE_IDENTIFIER:
319 //TODO:INSTANCE_IDENTIFIER 346 //TODO:INSTANCE_IDENTIFIER
347 + break;
320 case DERIVED: 348 case DERIVED:
321 return getTypDefsPackage(yangType); 349 return getTypDefsPackage(yangType);
322 default: 350 default:
323 return null; 351 return null;
324 } 352 }
325 } 353 }
354 + return null;
326 } 355 }
327 356
328 /** 357 /**
...@@ -392,10 +421,10 @@ public final class AttributesJavaDataType { ...@@ -392,10 +421,10 @@ public final class AttributesJavaDataType {
392 * @return java package from parent node 421 * @return java package from parent node
393 */ 422 */
394 private static String getPackageFromParent(YangNode parent) { 423 private static String getPackageFromParent(YangNode parent) {
395 - if (!(parent instanceof HasJavaFileInfo)) { 424 + if (!(parent instanceof JavaFileInfoContainer)) {
396 throw new TranslatorException("invalid child node is being processed."); 425 throw new TranslatorException("invalid child node is being processed.");
397 } 426 }
398 - JavaFileInfo parentInfo = ((HasJavaFileInfo) parent).getJavaFileInfo(); 427 + JavaFileInfo parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo();
399 return parentInfo.getPackage() + PERIOD + parentInfo.getJavaName().toLowerCase(); 428 return parentInfo.getPackage() + PERIOD + parentInfo.getJavaName().toLowerCase();
400 } 429 }
401 } 430 }
......
...@@ -20,10 +20,12 @@ import java.io.File; ...@@ -20,10 +20,12 @@ import java.io.File;
20 import java.io.IOException; 20 import java.io.IOException;
21 import java.util.ArrayList; 21 import java.util.ArrayList;
22 import java.util.List; 22 import java.util.List;
23 +
23 import org.onosproject.yangutils.datamodel.YangNode; 24 import org.onosproject.yangutils.datamodel.YangNode;
24 -import org.onosproject.yangutils.translator.tojava.HasJavaFileInfo;
25 -import org.onosproject.yangutils.translator.tojava.HasTempJavaCodeFragmentFiles;
26 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 25 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
26 +import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
27 +import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
28 +import org.onosproject.yangutils.translator.tojava.javamodel.JavaCodeGeneratorInfo;
27 29
28 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK; 30 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK;
29 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_INTERFACE_MASK; 31 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_INTERFACE_MASK;
...@@ -68,7 +70,8 @@ import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator ...@@ -68,7 +70,8 @@ import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator
68 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRemoveAugmentationImpl; 70 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRemoveAugmentationImpl;
69 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethodClose; 71 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethodClose;
70 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethodOpen; 72 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethodOpen;
71 -import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.isHasAugmentationExtended; 73 +import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils
74 + .isHasAugmentationExtended;
72 import static org.onosproject.yangutils.utils.UtilConstants.BUILDER; 75 import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
73 import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET; 76 import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET;
74 import static org.onosproject.yangutils.utils.UtilConstants.COMMA; 77 import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
...@@ -148,9 +151,9 @@ public final class JavaFileGenerator { ...@@ -148,9 +151,9 @@ public final class JavaFileGenerator {
148 /** 151 /**
149 * Returns generated interface file for current node. 152 * Returns generated interface file for current node.
150 * 153 *
151 - * @param file file 154 + * @param file file
152 - * @param imports imports for the file 155 + * @param imports imports for the file
153 - * @param curNode current YANG node 156 + * @param curNode current YANG node
154 * @param isAttrPresent if any attribute is present or not 157 * @param isAttrPresent if any attribute is present or not
155 * @return interface file 158 * @return interface file
156 * @throws IOException when fails to write in file 159 * @throws IOException when fails to write in file
...@@ -158,7 +161,7 @@ public final class JavaFileGenerator { ...@@ -158,7 +161,7 @@ public final class JavaFileGenerator {
158 public static File generateInterfaceFile(File file, List<String> imports, YangNode curNode, boolean isAttrPresent) 161 public static File generateInterfaceFile(File file, List<String> imports, YangNode curNode, boolean isAttrPresent)
159 throws IOException { 162 throws IOException {
160 163
161 - JavaFileInfo javaFileInfo = ((HasJavaFileInfo) curNode).getJavaFileInfo(); 164 + JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
162 165
163 String className = getCaptialCase(javaFileInfo.getJavaName()); 166 String className = getCaptialCase(javaFileInfo.getJavaName());
164 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath(); 167 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
...@@ -173,7 +176,9 @@ public final class JavaFileGenerator { ...@@ -173,7 +176,9 @@ public final class JavaFileGenerator {
173 /** 176 /**
174 * Getter methods. 177 * Getter methods.
175 */ 178 */
176 - insertDataIntoJavaFile(file, getDataFromTempFileHandle(GETTER_FOR_INTERFACE_MASK, curNode)); 179 + insertDataIntoJavaFile(file, getDataFromTempFileHandle(GETTER_FOR_INTERFACE_MASK,
180 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
181 + .getBeanTempFiles()));
177 } catch (IOException e) { 182 } catch (IOException e) {
178 throw new IOException("No data found in temporary java code fragment files for " + className 183 throw new IOException("No data found in temporary java code fragment files for " + className
179 + " while interface file generation"); 184 + " while interface file generation");
...@@ -185,8 +190,8 @@ public final class JavaFileGenerator { ...@@ -185,8 +190,8 @@ public final class JavaFileGenerator {
185 /** 190 /**
186 * Returns generated builder interface file for current node. 191 * Returns generated builder interface file for current node.
187 * 192 *
188 - * @param file file 193 + * @param file file
189 - * @param curNode current YANG node 194 + * @param curNode current YANG node
190 * @param isAttrPresent if any attribute is present or not 195 * @param isAttrPresent if any attribute is present or not
191 * @return builder interface file 196 * @return builder interface file
192 * @throws IOException when fails to write in file 197 * @throws IOException when fails to write in file
...@@ -194,7 +199,7 @@ public final class JavaFileGenerator { ...@@ -194,7 +199,7 @@ public final class JavaFileGenerator {
194 public static File generateBuilderInterfaceFile(File file, YangNode curNode, boolean isAttrPresent) 199 public static File generateBuilderInterfaceFile(File file, YangNode curNode, boolean isAttrPresent)
195 throws IOException { 200 throws IOException {
196 201
197 - JavaFileInfo javaFileInfo = ((HasJavaFileInfo) curNode).getJavaFileInfo(); 202 + JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
198 203
199 String className = getCaptialCase(javaFileInfo.getJavaName()); 204 String className = getCaptialCase(javaFileInfo.getJavaName());
200 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath(); 205 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
...@@ -206,12 +211,16 @@ public final class JavaFileGenerator { ...@@ -206,12 +211,16 @@ public final class JavaFileGenerator {
206 /** 211 /**
207 * Getter methods. 212 * Getter methods.
208 */ 213 */
209 - methods.add(FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(GETTER_FOR_INTERFACE_MASK, curNode)); 214 + methods.add(FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(GETTER_FOR_INTERFACE_MASK,
215 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
216 + .getBeanTempFiles()));
210 /** 217 /**
211 * Setter methods. 218 * Setter methods.
212 */ 219 */
213 methods.add(NEW_LINE); 220 methods.add(NEW_LINE);
214 - methods.add(FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(SETTER_FOR_INTERFACE_MASK, curNode)); 221 + methods.add(FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(SETTER_FOR_INTERFACE_MASK,
222 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
223 + .getBeanTempFiles()));
215 } catch (IOException e) { 224 } catch (IOException e) {
216 throw new IOException("No data found in temporary java code fragment files for " + className 225 throw new IOException("No data found in temporary java code fragment files for " + className
217 + " while builder interface file generation"); 226 + " while builder interface file generation");
...@@ -221,7 +230,8 @@ public final class JavaFileGenerator { ...@@ -221,7 +230,8 @@ public final class JavaFileGenerator {
221 * Add build method to builder interface file. 230 * Add build method to builder interface file.
222 */ 231 */
223 methods.add( 232 methods.add(
224 - ((HasTempJavaCodeFragmentFiles) curNode).getTempJavaCodeFragmentFiles().addBuildMethodForInterface()); 233 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
234 + .addBuildMethodForInterface());
225 235
226 /** 236 /**
227 * Add getters and setters in builder interface. 237 * Add getters and setters in builder interface.
...@@ -237,17 +247,18 @@ public final class JavaFileGenerator { ...@@ -237,17 +247,18 @@ public final class JavaFileGenerator {
237 /** 247 /**
238 * Returns generated builder class file for current node. 248 * Returns generated builder class file for current node.
239 * 249 *
240 - * @param file file 250 + * @param file file
241 - * @param imports imports for the file 251 + * @param imports imports for the file
242 - * @param curNode current YANG node 252 + * @param curNode current YANG node
243 * @param isAttrPresent if any attribute is present or not 253 * @param isAttrPresent if any attribute is present or not
244 * @return builder class file 254 * @return builder class file
245 * @throws IOException when fails to write in file 255 * @throws IOException when fails to write in file
246 */ 256 */
247 public static File generateBuilderClassFile(File file, List<String> imports, YangNode curNode, 257 public static File generateBuilderClassFile(File file, List<String> imports, YangNode curNode,
248 - boolean isAttrPresent) throws IOException { 258 + boolean isAttrPresent)
259 + throws IOException {
249 260
250 - JavaFileInfo javaFileInfo = ((HasJavaFileInfo) curNode).getJavaFileInfo(); 261 + JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
251 262
252 String className = getCaptialCase(javaFileInfo.getJavaName()); 263 String className = getCaptialCase(javaFileInfo.getJavaName());
253 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath(); 264 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
...@@ -262,7 +273,9 @@ public final class JavaFileGenerator { ...@@ -262,7 +273,9 @@ public final class JavaFileGenerator {
262 */ 273 */
263 try { 274 try {
264 insertDataIntoJavaFile(file, 275 insertDataIntoJavaFile(file,
265 - NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK, curNode)); 276 + NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK,
277 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
278 + .getBeanTempFiles()));
266 } catch (IOException e) { 279 } catch (IOException e) {
267 throw new IOException("No data found in temporary java code fragment files for " + className 280 throw new IOException("No data found in temporary java code fragment files for " + className
268 + " while builder class file generation"); 281 + " while builder class file generation");
...@@ -272,11 +285,16 @@ public final class JavaFileGenerator { ...@@ -272,11 +285,16 @@ public final class JavaFileGenerator {
272 /** 285 /**
273 * Getter methods. 286 * Getter methods.
274 */ 287 */
275 - methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK, curNode)); 288 + methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK,
289 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
290 + .getBeanTempFiles()));
276 /** 291 /**
277 * Setter methods. 292 * Setter methods.
278 */ 293 */
279 - methods.add(getDataFromTempFileHandle(SETTER_FOR_CLASS_MASK, curNode) + NEW_LINE); 294 + methods.add(getDataFromTempFileHandle(SETTER_FOR_CLASS_MASK,
295 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
296 + .getBeanTempFiles()) +
297 + NEW_LINE);
280 } catch (IOException e) { 298 } catch (IOException e) {
281 throw new IOException("No data found in temporary java code fragment files for " + className 299 throw new IOException("No data found in temporary java code fragment files for " + className
282 + " while builder class file generation"); 300 + " while builder class file generation");
...@@ -287,8 +305,8 @@ public final class JavaFileGenerator { ...@@ -287,8 +305,8 @@ public final class JavaFileGenerator {
287 /** 305 /**
288 * Add default constructor and build method impl. 306 * Add default constructor and build method impl.
289 */ 307 */
290 - methods.add(((HasTempJavaCodeFragmentFiles) curNode).getTempJavaCodeFragmentFiles().addBuildMethodImpl()); 308 + methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().addBuildMethodImpl());
291 - methods.add(((HasTempJavaCodeFragmentFiles) curNode).getTempJavaCodeFragmentFiles() 309 + methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
292 .addDefaultConstructor(PUBLIC, BUILDER)); 310 .addDefaultConstructor(PUBLIC, BUILDER));
293 311
294 /** 312 /**
...@@ -303,8 +321,8 @@ public final class JavaFileGenerator { ...@@ -303,8 +321,8 @@ public final class JavaFileGenerator {
303 /** 321 /**
304 * Returns generated impl class file for current node. 322 * Returns generated impl class file for current node.
305 * 323 *
306 - * @param file file 324 + * @param file file
307 - * @param curNode current YANG node 325 + * @param curNode current YANG node
308 * @param isAttrPresent if any attribute is present or not 326 * @param isAttrPresent if any attribute is present or not
309 * @return impl class file 327 * @return impl class file
310 * @throws IOException when fails to write in file 328 * @throws IOException when fails to write in file
...@@ -312,7 +330,7 @@ public final class JavaFileGenerator { ...@@ -312,7 +330,7 @@ public final class JavaFileGenerator {
312 public static File generateImplClassFile(File file, YangNode curNode, boolean isAttrPresent) 330 public static File generateImplClassFile(File file, YangNode curNode, boolean isAttrPresent)
313 throws IOException { 331 throws IOException {
314 332
315 - JavaFileInfo javaFileInfo = ((HasJavaFileInfo) curNode).getJavaFileInfo(); 333 + JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
316 334
317 String className = getCaptialCase(javaFileInfo.getJavaName()); 335 String className = getCaptialCase(javaFileInfo.getJavaName());
318 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath(); 336 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
...@@ -326,7 +344,9 @@ public final class JavaFileGenerator { ...@@ -326,7 +344,9 @@ public final class JavaFileGenerator {
326 */ 344 */
327 try { 345 try {
328 insertDataIntoJavaFile(file, 346 insertDataIntoJavaFile(file,
329 - NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK, curNode)); 347 + NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK,
348 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
349 + .getBeanTempFiles()));
330 } catch (IOException e) { 350 } catch (IOException e) {
331 throw new IOException("No data found in temporary java code fragment files for " + className 351 throw new IOException("No data found in temporary java code fragment files for " + className
332 + " while impl class file generation"); 352 + " while impl class file generation");
...@@ -343,22 +363,30 @@ public final class JavaFileGenerator { ...@@ -343,22 +363,30 @@ public final class JavaFileGenerator {
343 /** 363 /**
344 * Getter methods. 364 * Getter methods.
345 */ 365 */
346 - methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK, curNode)); 366 + methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK,
367 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
368 + .getBeanTempFiles()));
347 369
348 /** 370 /**
349 * Hash code method. 371 * Hash code method.
350 */ 372 */
351 methods.add(getHashCodeMethodClose(getHashCodeMethodOpen() + partString( 373 methods.add(getHashCodeMethodClose(getHashCodeMethodOpen() + partString(
352 - getDataFromTempFileHandle(HASH_CODE_IMPL_MASK, curNode).replace(NEW_LINE, EMPTY_STRING)))); 374 + getDataFromTempFileHandle(HASH_CODE_IMPL_MASK,
375 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
376 + .getBeanTempFiles()).replace(NEW_LINE, EMPTY_STRING))));
353 /** 377 /**
354 * Equals method. 378 * Equals method.
355 */ 379 */
356 methods.add(getEqualsMethodClose( 380 methods.add(getEqualsMethodClose(
357 - getEqualsMethodOpen(className + IMPL) + getDataFromTempFileHandle(EQUALS_IMPL_MASK, curNode))); 381 + getEqualsMethodOpen(className + IMPL) + getDataFromTempFileHandle(EQUALS_IMPL_MASK,
382 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
383 + .getBeanTempFiles())));
358 /** 384 /**
359 * To string method. 385 * To string method.
360 */ 386 */
361 - methods.add(getToStringMethodOpen() + getDataFromTempFileHandle(TO_STRING_IMPL_MASK, curNode) 387 + methods.add(getToStringMethodOpen() + getDataFromTempFileHandle(TO_STRING_IMPL_MASK,
388 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
389 + .getBeanTempFiles())
362 + getToStringMethodClose()); 390 + getToStringMethodClose());
363 391
364 } catch (IOException e) { 392 } catch (IOException e) {
...@@ -372,7 +400,8 @@ public final class JavaFileGenerator { ...@@ -372,7 +400,8 @@ public final class JavaFileGenerator {
372 /** 400 /**
373 * Constructor. 401 * Constructor.
374 */ 402 */
375 - methods.add(getConstructorStart(className) + getDataFromTempFileHandle(CONSTRUCTOR_IMPL_MASK, curNode) 403 + methods.add(getConstructorStart(className) + getDataFromTempFileHandle(CONSTRUCTOR_IMPL_MASK,
404 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getBeanTempFiles())
376 + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET); 405 + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET);
377 } catch (IOException e) { 406 } catch (IOException e) {
378 throw new IOException("No data found in temporary java code fragment files for " + className 407 throw new IOException("No data found in temporary java code fragment files for " + className
...@@ -402,15 +431,16 @@ public final class JavaFileGenerator { ...@@ -402,15 +431,16 @@ public final class JavaFileGenerator {
402 /** 431 /**
403 * Generates class file for type def. 432 * Generates class file for type def.
404 * 433 *
405 - * @param file generated file 434 + * @param file generated file
406 * @param curNode current YANG node 435 * @param curNode current YANG node
407 * @param imports imports for file 436 * @param imports imports for file
408 * @return type def class file 437 * @return type def class file
409 * @throws IOException when fails to generate class file 438 * @throws IOException when fails to generate class file
410 */ 439 */
411 - public static File generateTypeDefClassFile(File file, YangNode curNode, List<String> imports) throws IOException { 440 + public static File generateTypeDefClassFile(File file, YangNode curNode, List<String> imports)
441 + throws IOException {
412 442
413 - JavaFileInfo javaFileInfo = ((HasJavaFileInfo) curNode).getJavaFileInfo(); 443 + JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
414 444
415 String className = getCaptialCase(javaFileInfo.getJavaName()); 445 String className = getCaptialCase(javaFileInfo.getJavaName());
416 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath(); 446 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
...@@ -424,7 +454,9 @@ public final class JavaFileGenerator { ...@@ -424,7 +454,9 @@ public final class JavaFileGenerator {
424 */ 454 */
425 try { 455 try {
426 insertDataIntoJavaFile(file, 456 insertDataIntoJavaFile(file,
427 - NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK, curNode)); 457 + NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK,
458 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
459 + .getTypeTempFiles()));
428 } catch (IOException e) { 460 } catch (IOException e) {
429 throw new IOException("No data found in temporary java code fragment files for " + className 461 throw new IOException("No data found in temporary java code fragment files for " + className
430 + " while type def class file generation"); 462 + " while type def class file generation");
...@@ -433,7 +465,7 @@ public final class JavaFileGenerator { ...@@ -433,7 +465,7 @@ public final class JavaFileGenerator {
433 /** 465 /**
434 * Default constructor. 466 * Default constructor.
435 */ 467 */
436 - methods.add(((HasTempJavaCodeFragmentFiles) curNode).getTempJavaCodeFragmentFiles() 468 + methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
437 .addDefaultConstructor(PRIVATE, EMPTY_STRING)); 469 .addDefaultConstructor(PRIVATE, EMPTY_STRING));
438 470
439 try { 471 try {
...@@ -441,42 +473,51 @@ public final class JavaFileGenerator { ...@@ -441,42 +473,51 @@ public final class JavaFileGenerator {
441 /** 473 /**
442 * Type constructor. 474 * Type constructor.
443 */ 475 */
444 - methods.add(getDataFromTempFileHandle(CONSTRUCTOR_FOR_TYPE_MASK, curNode)); 476 + methods.add(getDataFromTempFileHandle(CONSTRUCTOR_FOR_TYPE_MASK,
477 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles()));
445 478
446 /** 479 /**
447 * Of method. 480 * Of method.
448 */ 481 */
449 - methods.add(getDataFromTempFileHandle(OF_STRING_IMPL_MASK, curNode)); 482 + methods.add(getDataFromTempFileHandle(OF_STRING_IMPL_MASK,
483 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles()));
450 484
451 /** 485 /**
452 * Getter method. 486 * Getter method.
453 */ 487 */
454 - methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK, curNode)); 488 + methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK,
489 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles()));
455 490
456 /** 491 /**
457 * Hash code method. 492 * Hash code method.
458 */ 493 */
459 methods.add(getHashCodeMethodClose(getHashCodeMethodOpen() + partString( 494 methods.add(getHashCodeMethodClose(getHashCodeMethodOpen() + partString(
460 - getDataFromTempFileHandle(HASH_CODE_IMPL_MASK, curNode).replace(NEW_LINE, EMPTY_STRING)))); 495 + getDataFromTempFileHandle(HASH_CODE_IMPL_MASK,
496 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
497 + .getTypeTempFiles())
498 + .replace(NEW_LINE, EMPTY_STRING))));
461 499
462 /** 500 /**
463 * Equals method. 501 * Equals method.
464 */ 502 */
465 methods.add(getEqualsMethodClose(getEqualsMethodOpen(className + EMPTY_STRING) 503 methods.add(getEqualsMethodClose(getEqualsMethodOpen(className + EMPTY_STRING)
466 - + getDataFromTempFileHandle(EQUALS_IMPL_MASK, curNode))); 504 + + getDataFromTempFileHandle(EQUALS_IMPL_MASK,
505 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles())));
467 506
468 /** 507 /**
469 * To string method. 508 * To string method.
470 */ 509 */
471 - methods.add(getToStringMethodOpen() + getDataFromTempFileHandle(TO_STRING_IMPL_MASK, curNode) 510 + methods.add(getToStringMethodOpen() + getDataFromTempFileHandle(TO_STRING_IMPL_MASK,
511 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles())
472 + getToStringMethodClose()); 512 + getToStringMethodClose());
473 513
514 + JavaCodeGeneratorInfo javaGeninfo = (JavaCodeGeneratorInfo) curNode;
474 /** 515 /**
475 * From string method. 516 * From string method.
476 */ 517 */
477 methods.add(getFromStringMethodSignature(className) 518 methods.add(getFromStringMethodSignature(className)
478 - + getDataFromTempFileHandle(FROM_STRING_IMPL_MASK, curNode) 519 + + getDataFromTempFileHandle(FROM_STRING_IMPL_MASK, javaGeninfo.getTempJavaCodeFragmentFiles()
479 - + getFromStringMethodClose()); 520 + .getTypeTempFiles()) + getFromStringMethodClose());
480 521
481 } catch (IOException e) { 522 } catch (IOException e) {
482 throw new IOException("No data found in temporary java code fragment files for " + className 523 throw new IOException("No data found in temporary java code fragment files for " + className
...@@ -494,15 +535,16 @@ public final class JavaFileGenerator { ...@@ -494,15 +535,16 @@ public final class JavaFileGenerator {
494 /** 535 /**
495 * Generates class file for union type. 536 * Generates class file for union type.
496 * 537 *
497 - * @param file generated file 538 + * @param file generated file
498 * @param curNode current YANG node 539 * @param curNode current YANG node
499 * @param imports imports for file 540 * @param imports imports for file
500 * @return type def class file 541 * @return type def class file
501 * @throws IOException when fails to generate class file 542 * @throws IOException when fails to generate class file
502 */ 543 */
503 - public static File generateUnionClassFile(File file, YangNode curNode, List<String> imports) throws IOException { 544 + public static File generateUnionClassFile(File file, YangNode curNode, List<String> imports)
545 + throws IOException {
504 546
505 - JavaFileInfo javaFileInfo = ((HasJavaFileInfo) curNode).getJavaFileInfo(); 547 + JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
506 548
507 String className = getCaptialCase(javaFileInfo.getJavaName()); 549 String className = getCaptialCase(javaFileInfo.getJavaName());
508 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath(); 550 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
...@@ -516,7 +558,9 @@ public final class JavaFileGenerator { ...@@ -516,7 +558,9 @@ public final class JavaFileGenerator {
516 */ 558 */
517 try { 559 try {
518 insertDataIntoJavaFile(file, 560 insertDataIntoJavaFile(file,
519 - NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK, curNode)); 561 + NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK,
562 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
563 + .getTypeTempFiles()));
520 } catch (IOException e) { 564 } catch (IOException e) {
521 throw new IOException("No data found in temporary java code fragment files for " + className 565 throw new IOException("No data found in temporary java code fragment files for " + className
522 + " while union class file generation"); 566 + " while union class file generation");
...@@ -525,7 +569,7 @@ public final class JavaFileGenerator { ...@@ -525,7 +569,7 @@ public final class JavaFileGenerator {
525 /** 569 /**
526 * Default constructor. 570 * Default constructor.
527 */ 571 */
528 - methods.add(((HasTempJavaCodeFragmentFiles) curNode).getTempJavaCodeFragmentFiles() 572 + methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
529 .addDefaultConstructor(PRIVATE, EMPTY_STRING)); 573 .addDefaultConstructor(PRIVATE, EMPTY_STRING));
530 574
531 try { 575 try {
...@@ -533,41 +577,51 @@ public final class JavaFileGenerator { ...@@ -533,41 +577,51 @@ public final class JavaFileGenerator {
533 /** 577 /**
534 * Type constructor. 578 * Type constructor.
535 */ 579 */
536 - methods.add(getDataFromTempFileHandle(CONSTRUCTOR_FOR_TYPE_MASK, curNode)); 580 + methods.add(getDataFromTempFileHandle(CONSTRUCTOR_FOR_TYPE_MASK,
581 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles()));
537 582
538 /** 583 /**
539 * Of string method. 584 * Of string method.
540 */ 585 */
541 - methods.add(getDataFromTempFileHandle(OF_STRING_IMPL_MASK, curNode)); 586 + methods.add(getDataFromTempFileHandle(OF_STRING_IMPL_MASK,
587 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles()));
542 588
543 /** 589 /**
544 * Getter method. 590 * Getter method.
545 */ 591 */
546 - methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK, curNode)); 592 + methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK,
593 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles()));
547 594
548 /** 595 /**
549 * Hash code method. 596 * Hash code method.
550 */ 597 */
551 methods.add(getHashCodeMethodClose(getHashCodeMethodOpen() + partString( 598 methods.add(getHashCodeMethodClose(getHashCodeMethodOpen() + partString(
552 - getDataFromTempFileHandle(HASH_CODE_IMPL_MASK, curNode).replace(NEW_LINE, EMPTY_STRING)))); 599 + getDataFromTempFileHandle(HASH_CODE_IMPL_MASK,
600 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
601 + .getTypeTempFiles())
602 + .replace(NEW_LINE, EMPTY_STRING))));
553 603
554 /** 604 /**
555 * Equals method. 605 * Equals method.
556 */ 606 */
557 methods.add(getEqualsMethodClose(getEqualsMethodOpen(className + EMPTY_STRING) 607 methods.add(getEqualsMethodClose(getEqualsMethodOpen(className + EMPTY_STRING)
558 - + getDataFromTempFileHandle(EQUALS_IMPL_MASK, curNode))); 608 + + getDataFromTempFileHandle(EQUALS_IMPL_MASK,
609 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles())));
559 610
560 /** 611 /**
561 * To string method. 612 * To string method.
562 */ 613 */
563 methods.add(getToStringMethodOpen() + getOmitNullValueString() + 614 methods.add(getToStringMethodOpen() + getOmitNullValueString() +
564 - getDataFromTempFileHandle(TO_STRING_IMPL_MASK, curNode) + getToStringMethodClose()); 615 + getDataFromTempFileHandle(TO_STRING_IMPL_MASK,
616 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
617 + .getTypeTempFiles()) + getToStringMethodClose());
565 618
566 /** 619 /**
567 * From string method. 620 * From string method.
568 */ 621 */
569 methods.add(getFromStringMethodSignature(className) 622 methods.add(getFromStringMethodSignature(className)
570 - + getDataFromTempFileHandle(FROM_STRING_IMPL_MASK, curNode) 623 + + getDataFromTempFileHandle(FROM_STRING_IMPL_MASK,
624 + ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles())
571 + getFromStringMethodClose()); 625 + getFromStringMethodClose());
572 626
573 } catch (IOException e) { 627 } catch (IOException e) {
...@@ -586,14 +640,15 @@ public final class JavaFileGenerator { ...@@ -586,14 +640,15 @@ public final class JavaFileGenerator {
586 /** 640 /**
587 * Generates class file for type enum. 641 * Generates class file for type enum.
588 * 642 *
589 - * @param file generated file 643 + * @param file generated file
590 * @param curNode current YANG node 644 * @param curNode current YANG node
591 * @return class file for type enum 645 * @return class file for type enum
592 * @throws IOException when fails to generate class file 646 * @throws IOException when fails to generate class file
593 */ 647 */
594 - public static File generateEnumClassFile(File file, YangNode curNode) throws IOException { 648 + public static File generateEnumClassFile(File file, YangNode curNode)
649 + throws IOException {
595 650
596 - JavaFileInfo javaFileInfo = ((HasJavaFileInfo) curNode).getJavaFileInfo(); 651 + JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
597 652
598 String className = getCaptialCase(javaFileInfo.getJavaName()); 653 String className = getCaptialCase(javaFileInfo.getJavaName());
599 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath(); 654 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
...@@ -603,8 +658,10 @@ public final class JavaFileGenerator { ...@@ -603,8 +658,10 @@ public final class JavaFileGenerator {
603 * Add attribute strings. 658 * Add attribute strings.
604 */ 659 */
605 try { 660 try {
661 + JavaCodeGeneratorInfo javaGeninfo = (JavaCodeGeneratorInfo) curNode;
606 insertDataIntoJavaFile(file, 662 insertDataIntoJavaFile(file,
607 - trimAtLast(trimAtLast(getDataFromTempFileHandle(ENUM_IMPL_MASK, curNode), COMMA), NEW_LINE) 663 + trimAtLast(trimAtLast(getDataFromTempFileHandle(ENUM_IMPL_MASK, javaGeninfo
664 + .getTempJavaCodeFragmentFiles().getEnumerationTempFiles()), COMMA), NEW_LINE)
608 + SEMI_COLAN + NEW_LINE); 665 + SEMI_COLAN + NEW_LINE);
609 } catch (IOException e) { 666 } catch (IOException e) {
610 throw new IOException("No data found in temporary java code fragment files for " + className 667 throw new IOException("No data found in temporary java code fragment files for " + className
...@@ -612,7 +669,8 @@ public final class JavaFileGenerator { ...@@ -612,7 +669,8 @@ public final class JavaFileGenerator {
612 } 669 }
613 670
614 /** 671 /**
615 - * Add an attribute to get the enum's values. 672 + * Add an
673 + * attribute to get the enum's values.
616 */ 674 */
617 insertDataIntoJavaFile(file, getEnumsValueAttribute(className)); 675 insertDataIntoJavaFile(file, getEnumsValueAttribute(className));
618 676
...@@ -638,15 +696,16 @@ public final class JavaFileGenerator { ...@@ -638,15 +696,16 @@ public final class JavaFileGenerator {
638 /** 696 /**
639 * Generates interface file for rpc. 697 * Generates interface file for rpc.
640 * 698 *
641 - * @param file generated file 699 + * @param file generated file
642 * @param curNode current YANG node 700 * @param curNode current YANG node
643 * @param imports imports for file 701 * @param imports imports for file
644 * @return type def class file 702 * @return type def class file
645 * @throws IOException when fails to generate class file 703 * @throws IOException when fails to generate class file
646 */ 704 */
647 - public static File generateRpcInterfaceFile(File file, YangNode curNode, List<String> imports) throws IOException { 705 + public static File generateRpcInterfaceFile(File file, YangNode curNode, List<String> imports)
706 + throws IOException {
648 707
649 - JavaFileInfo javaFileInfo = ((HasJavaFileInfo) curNode).getJavaFileInfo(); 708 + JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
650 709
651 String className = getCaptialCase(javaFileInfo.getJavaName()) + SERVICE_METHOD_STRING; 710 String className = getCaptialCase(javaFileInfo.getJavaName()) + SERVICE_METHOD_STRING;
652 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath(); 711 String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
...@@ -657,10 +716,12 @@ public final class JavaFileGenerator { ...@@ -657,10 +716,12 @@ public final class JavaFileGenerator {
657 716
658 try { 717 try {
659 718
719 + JavaCodeGeneratorInfo javaGeninfo = (JavaCodeGeneratorInfo) curNode;
660 /** 720 /**
661 * Rpc methods 721 * Rpc methods
662 */ 722 */
663 - methods.add(getDataFromTempFileHandle(RPC_IMPL_MASK, curNode)); 723 + methods.add(getDataFromTempFileHandle(RPC_IMPL_MASK, javaGeninfo.getTempJavaCodeFragmentFiles()
724 + .getServiceTempFiles()));
664 725
665 } catch (IOException e) { 726 } catch (IOException e) {
666 throw new IOException("No data found in temporary java code fragment files for " + className 727 throw new IOException("No data found in temporary java code fragment files for " + className
......
...@@ -19,10 +19,9 @@ package org.onosproject.yangutils.translator.tojava.utils; ...@@ -19,10 +19,9 @@ package org.onosproject.yangutils.translator.tojava.utils;
19 import java.io.File; 19 import java.io.File;
20 import java.io.IOException; 20 import java.io.IOException;
21 import java.util.List; 21 import java.util.List;
22 -import org.onosproject.yangutils.datamodel.YangNode; 22 +
23 -import org.onosproject.yangutils.translator.tojava.HasTempJavaCodeFragmentFiles;
24 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 23 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
25 -import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 24 +import org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles;
26 import org.onosproject.yangutils.utils.io.impl.CopyrightHeader; 25 import org.onosproject.yangutils.utils.io.impl.CopyrightHeader;
27 import org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType; 26 import org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType;
28 27
...@@ -39,6 +38,7 @@ import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType. ...@@ -39,6 +38,7 @@ import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.
39 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_IMPL_MASK; 38 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_IMPL_MASK;
40 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ENUM_IMPL_MASK; 39 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ENUM_IMPL_MASK;
41 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EQUALS_IMPL_MASK; 40 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EQUALS_IMPL_MASK;
41 +import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.FROM_STRING_IMPL_MASK;
42 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.GETTER_FOR_CLASS_MASK; 42 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.GETTER_FOR_CLASS_MASK;
43 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.GETTER_FOR_INTERFACE_MASK; 43 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.GETTER_FOR_INTERFACE_MASK;
44 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.HASH_CODE_IMPL_MASK; 44 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.HASH_CODE_IMPL_MASK;
...@@ -47,7 +47,6 @@ import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType. ...@@ -47,7 +47,6 @@ import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.
47 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_CLASS_MASK; 47 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_CLASS_MASK;
48 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_INTERFACE_MASK; 48 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_INTERFACE_MASK;
49 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.TO_STRING_IMPL_MASK; 49 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.TO_STRING_IMPL_MASK;
50 -import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.FROM_STRING_IMPL_MASK;
51 import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaClassDefStart; 50 import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaClassDefStart;
52 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getJavaPackageFromPackagePath; 51 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getJavaPackageFromPackagePath;
53 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getSmallCase; 52 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getSmallCase;
...@@ -83,10 +82,10 @@ public final class JavaFileGeneratorUtils { ...@@ -83,10 +82,10 @@ public final class JavaFileGeneratorUtils {
83 /** 82 /**
84 * Returns a file object for generated file. 83 * Returns a file object for generated file.
85 * 84 *
86 - * @param fileName file name 85 + * @param fileName file name
87 - * @param filePath file package path 86 + * @param filePath file package path
88 * @param extension file extension 87 * @param extension file extension
89 - * @param handle cached file handle 88 + * @param handle cached file handle
90 * @return file object 89 * @return file object
91 */ 90 */
92 public static File getFileObject(String filePath, String fileName, String extension, JavaFileInfo handle) { 91 public static File getFileObject(String filePath, String fileName, String extension, JavaFileInfo handle) {
...@@ -98,58 +97,59 @@ public final class JavaFileGeneratorUtils { ...@@ -98,58 +97,59 @@ public final class JavaFileGeneratorUtils {
98 * Returns data stored in temporary files. 97 * Returns data stored in temporary files.
99 * 98 *
100 * @param generatedTempFiles temporary file types 99 * @param generatedTempFiles temporary file types
101 - * @param curNode current YANG node 100 + * @param generatedTempFiles temporary file types
101 + * @param tempJavaFragmentFiles temp java fragment files
102 * @return data stored in temporary files 102 * @return data stored in temporary files
103 * @throws IOException when failed to get the data from temporary file handle 103 * @throws IOException when failed to get the data from temporary file handle
104 */ 104 */
105 - public static String getDataFromTempFileHandle(int generatedTempFiles, YangNode curNode) throws IOException { 105 + public static String getDataFromTempFileHandle(int generatedTempFiles,
106 + TempJavaFragmentFiles tempJavaFragmentFiles)
107 + throws IOException {
106 108
107 - TempJavaCodeFragmentFiles tempJavaCodeFragmentFiles = ((HasTempJavaCodeFragmentFiles) curNode)
108 - .getTempJavaCodeFragmentFiles();
109 109
110 if ((generatedTempFiles & ATTRIBUTES_MASK) != 0) { 110 if ((generatedTempFiles & ATTRIBUTES_MASK) != 0) {
111 - return tempJavaCodeFragmentFiles 111 + return tempJavaFragmentFiles
112 - .getTemporaryDataFromFileHandle(tempJavaCodeFragmentFiles.getAttributesTempFileHandle()); 112 + .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getAttributesTempFileHandle());
113 } else if ((generatedTempFiles & GETTER_FOR_INTERFACE_MASK) != 0) { 113 } else if ((generatedTempFiles & GETTER_FOR_INTERFACE_MASK) != 0) {
114 - return tempJavaCodeFragmentFiles 114 + return tempJavaFragmentFiles
115 - .getTemporaryDataFromFileHandle(tempJavaCodeFragmentFiles.getGetterInterfaceTempFileHandle()); 115 + .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getGetterInterfaceTempFileHandle());
116 } else if ((generatedTempFiles & SETTER_FOR_INTERFACE_MASK) != 0) { 116 } else if ((generatedTempFiles & SETTER_FOR_INTERFACE_MASK) != 0) {
117 - return tempJavaCodeFragmentFiles 117 + return tempJavaFragmentFiles
118 - .getTemporaryDataFromFileHandle(tempJavaCodeFragmentFiles.getSetterInterfaceTempFileHandle()); 118 + .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getSetterInterfaceTempFileHandle());
119 } else if ((generatedTempFiles & GETTER_FOR_CLASS_MASK) != 0) { 119 } else if ((generatedTempFiles & GETTER_FOR_CLASS_MASK) != 0) {
120 - return tempJavaCodeFragmentFiles 120 + return tempJavaFragmentFiles
121 - .getTemporaryDataFromFileHandle(tempJavaCodeFragmentFiles.getGetterImplTempFileHandle()); 121 + .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getGetterImplTempFileHandle());
122 } else if ((generatedTempFiles & SETTER_FOR_CLASS_MASK) != 0) { 122 } else if ((generatedTempFiles & SETTER_FOR_CLASS_MASK) != 0) {
123 - return tempJavaCodeFragmentFiles 123 + return tempJavaFragmentFiles
124 - .getTemporaryDataFromFileHandle(tempJavaCodeFragmentFiles.getSetterImplTempFileHandle()); 124 + .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getSetterImplTempFileHandle());
125 } else if ((generatedTempFiles & CONSTRUCTOR_IMPL_MASK) != 0) { 125 } else if ((generatedTempFiles & CONSTRUCTOR_IMPL_MASK) != 0) {
126 - return tempJavaCodeFragmentFiles 126 + return tempJavaFragmentFiles
127 - .getTemporaryDataFromFileHandle(tempJavaCodeFragmentFiles.getConstructorImplTempFileHandle()); 127 + .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getConstructorImplTempFileHandle());
128 } else if ((generatedTempFiles & HASH_CODE_IMPL_MASK) != 0) { 128 } else if ((generatedTempFiles & HASH_CODE_IMPL_MASK) != 0) {
129 - return tempJavaCodeFragmentFiles 129 + return tempJavaFragmentFiles
130 - .getTemporaryDataFromFileHandle(tempJavaCodeFragmentFiles.getHashCodeImplTempFileHandle()); 130 + .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getHashCodeImplTempFileHandle());
131 } else if ((generatedTempFiles & EQUALS_IMPL_MASK) != 0) { 131 } else if ((generatedTempFiles & EQUALS_IMPL_MASK) != 0) {
132 - return tempJavaCodeFragmentFiles 132 + return tempJavaFragmentFiles
133 - .getTemporaryDataFromFileHandle(tempJavaCodeFragmentFiles.getEqualsImplTempFileHandle()); 133 + .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getEqualsImplTempFileHandle());
134 } else if ((generatedTempFiles & TO_STRING_IMPL_MASK) != 0) { 134 } else if ((generatedTempFiles & TO_STRING_IMPL_MASK) != 0) {
135 - return tempJavaCodeFragmentFiles 135 + return tempJavaFragmentFiles
136 - .getTemporaryDataFromFileHandle(tempJavaCodeFragmentFiles.getToStringImplTempFileHandle()); 136 + .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getToStringImplTempFileHandle());
137 } else if ((generatedTempFiles & CONSTRUCTOR_FOR_TYPE_MASK) != 0) { 137 } else if ((generatedTempFiles & CONSTRUCTOR_FOR_TYPE_MASK) != 0) {
138 - return tempJavaCodeFragmentFiles 138 + return tempJavaFragmentFiles
139 - .getTemporaryDataFromFileHandle(tempJavaCodeFragmentFiles 139 + .getTemporaryDataFromFileHandle(tempJavaFragmentFiles
140 .getConstructorForTypeTempFileHandle()); 140 .getConstructorForTypeTempFileHandle());
141 } else if ((generatedTempFiles & OF_STRING_IMPL_MASK) != 0) { 141 } else if ((generatedTempFiles & OF_STRING_IMPL_MASK) != 0) {
142 - return tempJavaCodeFragmentFiles 142 + return tempJavaFragmentFiles
143 - .getTemporaryDataFromFileHandle(tempJavaCodeFragmentFiles.getOfStringImplTempFileHandle()); 143 + .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getOfStringImplTempFileHandle());
144 } else if ((generatedTempFiles & FROM_STRING_IMPL_MASK) != 0) { 144 } else if ((generatedTempFiles & FROM_STRING_IMPL_MASK) != 0) {
145 - return tempJavaCodeFragmentFiles 145 + return tempJavaFragmentFiles
146 - .getTemporaryDataFromFileHandle(tempJavaCodeFragmentFiles.getFromStringImplTempFileHandle()); 146 + .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getFromStringImplTempFileHandle());
147 } else if ((generatedTempFiles & ENUM_IMPL_MASK) != 0) { 147 } else if ((generatedTempFiles & ENUM_IMPL_MASK) != 0) {
148 - return tempJavaCodeFragmentFiles 148 + return tempJavaFragmentFiles
149 - .getTemporaryDataFromFileHandle(tempJavaCodeFragmentFiles.getEnumClassTempFileHandle()); 149 + .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getEnumClassTempFileHandle());
150 } else if ((generatedTempFiles & RPC_IMPL_MASK) != 0) { 150 } else if ((generatedTempFiles & RPC_IMPL_MASK) != 0) {
151 - return tempJavaCodeFragmentFiles 151 + return tempJavaFragmentFiles
152 - .getTemporaryDataFromFileHandle(tempJavaCodeFragmentFiles.getRpcInterfaceImplTempFileHandle()); 152 + .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getRpcInterfaceImplTempFileHandle());
153 } 153 }
154 return null; 154 return null;
155 } 155 }
...@@ -157,15 +157,16 @@ public final class JavaFileGeneratorUtils { ...@@ -157,15 +157,16 @@ public final class JavaFileGeneratorUtils {
157 /** 157 /**
158 * Initiates generation of file based on generated file type. 158 * Initiates generation of file based on generated file type.
159 * 159 *
160 - * @param file generated file 160 + * @param file generated file
161 * @param className generated file class name 161 * @param className generated file class name
162 - * @param type generated file type 162 + * @param type generated file type
163 - * @param imports imports for the file 163 + * @param imports imports for the file
164 - * @param pkg generated file package 164 + * @param pkg generated file package
165 * @throws IOException when fails to generate a file 165 * @throws IOException when fails to generate a file
166 */ 166 */
167 public static void initiateJavaFileGeneration(File file, String className, int type, List<String> imports, 167 public static void initiateJavaFileGeneration(File file, String className, int type, List<String> imports,
168 - String pkg) throws IOException { 168 + String pkg)
169 + throws IOException {
169 170
170 try { 171 try {
171 file.createNewFile(); 172 file.createNewFile();
...@@ -178,15 +179,16 @@ public final class JavaFileGeneratorUtils { ...@@ -178,15 +179,16 @@ public final class JavaFileGeneratorUtils {
178 /** 179 /**
179 * Appends all the contents into a generated java file. 180 * Appends all the contents into a generated java file.
180 * 181 *
181 - * @param file generated file 182 + * @param file generated file
182 - * @param fileName generated file name 183 + * @param fileName generated file name
183 - * @param type generated file type 184 + * @param type generated file type
184 - * @param pkg generated file package 185 + * @param pkg generated file package
185 * @param importsList list of java imports. 186 * @param importsList list of java imports.
186 * @throws IOException when fails to append contents 187 * @throws IOException when fails to append contents
187 */ 188 */
188 private static void appendContents(File file, String fileName, int type, List<String> importsList, 189 private static void appendContents(File file, String fileName, int type, List<String> importsList,
189 - String pkg) throws IOException { 190 + String pkg)
191 + throws IOException {
190 192
191 String pkgString = parsePackageString(pkg, importsList); 193 String pkgString = parsePackageString(pkg, importsList);
192 194
...@@ -218,7 +220,7 @@ public final class JavaFileGeneratorUtils { ...@@ -218,7 +220,7 @@ public final class JavaFileGeneratorUtils {
218 /** 220 /**
219 * Removes base directory path from package and generates package string for file. 221 * Removes base directory path from package and generates package string for file.
220 * 222 *
221 - * @param javaPkg generated java package 223 + * @param javaPkg generated java package
222 * @param importsList list of imports 224 * @param importsList list of imports
223 * @return package string 225 * @return package string
224 */ 226 */
...@@ -243,12 +245,13 @@ public final class JavaFileGeneratorUtils { ...@@ -243,12 +245,13 @@ public final class JavaFileGeneratorUtils {
243 * Appends other contents to interface, builder and typedef classes. 245 * Appends other contents to interface, builder and typedef classes.
244 * for example : ONOS copyright, imports and package. 246 * for example : ONOS copyright, imports and package.
245 * 247 *
246 - * @param file generated file 248 + * @param file generated file
247 - * @param pkg generated package 249 + * @param pkg generated package
248 * @param importsList list of imports 250 * @param importsList list of imports
249 * @throws IOException when fails to append contents 251 * @throws IOException when fails to append contents
250 */ 252 */
251 - private static void appendHeaderContents(File file, String pkg, List<String> importsList) throws IOException { 253 + private static void appendHeaderContents(File file, String pkg, List<String> importsList)
254 + throws IOException {
252 255
253 insertDataIntoJavaFile(file, CopyrightHeader.getCopyrightHeader()); 256 insertDataIntoJavaFile(file, CopyrightHeader.getCopyrightHeader());
254 insertDataIntoJavaFile(file, pkg); 257 insertDataIntoJavaFile(file, pkg);
...@@ -269,9 +272,9 @@ public final class JavaFileGeneratorUtils { ...@@ -269,9 +272,9 @@ public final class JavaFileGeneratorUtils {
269 /** 272 /**
270 * Writes data to the specific generated file. 273 * Writes data to the specific generated file.
271 * 274 *
272 - * @param file generated file 275 + * @param file generated file
273 - * @param fileName file name 276 + * @param fileName file name
274 - * @param genType generated file type 277 + * @param genType generated file type
275 * @param javaDocType java doc type 278 * @param javaDocType java doc type
276 * @throws IOException when fails to write into a file 279 * @throws IOException when fails to write into a file
277 */ 280 */
......
...@@ -21,7 +21,7 @@ import java.util.List; ...@@ -21,7 +21,7 @@ import java.util.List;
21 21
22 import org.onosproject.yangutils.datamodel.YangNode; 22 import org.onosproject.yangutils.datamodel.YangNode;
23 import org.onosproject.yangutils.translator.exception.TranslatorException; 23 import org.onosproject.yangutils.translator.exception.TranslatorException;
24 -import org.onosproject.yangutils.translator.tojava.HasJavaFileInfo; 24 +import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
25 import org.onosproject.yangutils.translator.tojava.JavaFileInfo; 25 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
26 26
27 import static org.onosproject.yangutils.utils.UtilConstants.COLAN; 27 import static org.onosproject.yangutils.utils.UtilConstants.COLAN;
...@@ -111,16 +111,16 @@ public final class JavaIdentifierSyntax { ...@@ -111,16 +111,16 @@ public final class JavaIdentifierSyntax {
111 public static String getCurNodePackage(YangNode curNode) { 111 public static String getCurNodePackage(YangNode curNode) {
112 112
113 String pkg; 113 String pkg;
114 - if (!(curNode instanceof HasJavaFileInfo) 114 + if (!(curNode instanceof JavaFileInfoContainer)
115 || curNode.getParent() == null) { 115 || curNode.getParent() == null) {
116 throw new TranslatorException("missing parent node to get current node's package"); 116 throw new TranslatorException("missing parent node to get current node's package");
117 } 117 }
118 118
119 YangNode parentNode = getParentNodeInGenCode(curNode); 119 YangNode parentNode = getParentNodeInGenCode(curNode);
120 - if (!(parentNode instanceof HasJavaFileInfo)) { 120 + if (!(parentNode instanceof JavaFileInfoContainer)) {
121 throw new TranslatorException("missing parent java node to get current node's package"); 121 throw new TranslatorException("missing parent java node to get current node's package");
122 } 122 }
123 - JavaFileInfo parentJavaFileHandle = ((HasJavaFileInfo) parentNode).getJavaFileInfo(); 123 + JavaFileInfo parentJavaFileHandle = ((JavaFileInfoContainer) parentNode).getJavaFileInfo();
124 pkg = parentJavaFileHandle.getPackage() + PERIOD + parentJavaFileHandle.getJavaName(); 124 pkg = parentJavaFileHandle.getPackage() + PERIOD + parentJavaFileHandle.getJavaName();
125 return pkg.toLowerCase(); 125 return pkg.toLowerCase();
126 } 126 }
......
...@@ -138,7 +138,7 @@ public final class MethodsGenerator { ...@@ -138,7 +138,7 @@ public final class MethodsGenerator {
138 /** 138 /**
139 * Returns setter string. 139 * Returns setter string.
140 * 140 *
141 - * @param attr attribute info 141 + * @param attr attribute info
142 * @param className java class name 142 * @param className java class name
143 * @return setter string 143 * @return setter string
144 */ 144 */
...@@ -164,7 +164,7 @@ public final class MethodsGenerator { ...@@ -164,7 +164,7 @@ public final class MethodsGenerator {
164 /** 164 /**
165 * Returns default constructor method string. 165 * Returns default constructor method string.
166 * 166 *
167 - * @param name class name 167 + * @param name class name
168 * @param modifierType modifier type 168 * @param modifierType modifier type
169 * @return default constructor string 169 * @return default constructor string
170 */ 170 */
...@@ -228,7 +228,7 @@ public final class MethodsGenerator { ...@@ -228,7 +228,7 @@ public final class MethodsGenerator {
228 /** 228 /**
229 * Returns the setter method strings for class file. 229 * Returns the setter method strings for class file.
230 * 230 *
231 - * @param attr attribute info 231 + * @param attr attribute info
232 * @param className name of the class 232 * @param className name of the class
233 * @return setter method for class 233 * @return setter method for class
234 */ 234 */
...@@ -247,8 +247,8 @@ public final class MethodsGenerator { ...@@ -247,8 +247,8 @@ public final class MethodsGenerator {
247 * Returns setter for attribute. 247 * Returns setter for attribute.
248 * 248 *
249 * @param className class name 249 * @param className class name
250 - * @param name attribute name 250 + * @param name attribute name
251 - * @param type return type 251 + * @param type return type
252 * @return setter for attribute 252 * @return setter for attribute
253 */ 253 */
254 private static String getSetter(String className, String name, String type) { 254 private static String getSetter(String className, String name, String type) {
...@@ -298,9 +298,9 @@ public final class MethodsGenerator { ...@@ -298,9 +298,9 @@ public final class MethodsGenerator {
298 /** 298 /**
299 * Returns the getter method strings for interface file. 299 * Returns the getter method strings for interface file.
300 * 300 *
301 - * @param yangName name of the attribute 301 + * @param yangName name of the attribute
302 * @param returnType return type of attribute 302 * @param returnType return type of attribute
303 - * @param isList is list attribute 303 + * @param isList is list attribute
304 * @return getter method for interface 304 * @return getter method for interface
305 */ 305 */
306 public static String getGetterForInterface(String yangName, String returnType, boolean isList) { 306 public static String getGetterForInterface(String yangName, String returnType, boolean isList) {
...@@ -316,7 +316,7 @@ public final class MethodsGenerator { ...@@ -316,7 +316,7 @@ public final class MethodsGenerator {
316 * Returns getter for attribute in interface. 316 * Returns getter for attribute in interface.
317 * 317 *
318 * @param returnType return type 318 * @param returnType return type
319 - * @param yangName attribute name 319 + * @param yangName attribute name
320 * @return getter for interface 320 * @return getter for interface
321 */ 321 */
322 private static String getGetterInterfaceString(String returnType, String yangName) { 322 private static String getGetterInterfaceString(String returnType, String yangName) {
...@@ -327,10 +327,10 @@ public final class MethodsGenerator { ...@@ -327,10 +327,10 @@ public final class MethodsGenerator {
327 /** 327 /**
328 * Returns the setter method strings for interface file. 328 * Returns the setter method strings for interface file.
329 * 329 *
330 - * @param attrName name of the attribute 330 + * @param attrName name of the attribute
331 - * @param attrType return type of attribute 331 + * @param attrType return type of attribute
332 * @param className name of the java class being generated 332 * @param className name of the java class being generated
333 - * @param isList is list attribute 333 + * @param isList is list attribute
334 * @return setter method for interface 334 * @return setter method for interface
335 */ 335 */
336 public static String getSetterForInterface(String attrName, String attrType, String className, boolean isList) { 336 public static String getSetterForInterface(String attrName, String attrType, String className, boolean isList) {
...@@ -346,8 +346,8 @@ public final class MethodsGenerator { ...@@ -346,8 +346,8 @@ public final class MethodsGenerator {
346 * Returns setter string for interface. 346 * Returns setter string for interface.
347 * 347 *
348 * @param className class name 348 * @param className class name
349 - * @param attrName attribute name 349 + * @param attrName attribute name
350 - * @param attrType attribute type 350 + * @param attrType attribute type
351 * @return setter string 351 * @return setter string
352 */ 352 */
353 private static String getSetterInterfaceString(String className, String attrName, String attrType) { 353 private static String getSetterInterfaceString(String className, String attrName, String attrType) {
...@@ -410,7 +410,7 @@ public final class MethodsGenerator { ...@@ -410,7 +410,7 @@ public final class MethodsGenerator {
410 * Returns the constructor strings for class file. 410 * Returns the constructor strings for class file.
411 * 411 *
412 * @param yangName name of the class 412 * @param yangName name of the class
413 - * @param attr attribute info 413 + * @param attr attribute info
414 * @return constructor for class 414 * @return constructor for class
415 */ 415 */
416 public static String getConstructor(String yangName, JavaAttributeInfo attr) { 416 public static String getConstructor(String yangName, JavaAttributeInfo attr) {
...@@ -428,8 +428,8 @@ public final class MethodsGenerator { ...@@ -428,8 +428,8 @@ public final class MethodsGenerator {
428 /** 428 /**
429 * Returns the rpc strings for service interface. 429 * Returns the rpc strings for service interface.
430 * 430 *
431 - * @param rpcName name of the rpc 431 + * @param rpcName name of the rpc
432 - * @param inputName name of input 432 + * @param inputName name of input
433 * @param outputName name of output 433 * @param outputName name of output
434 * @return rpc method string 434 * @return rpc method string
435 */ 435 */
...@@ -459,7 +459,7 @@ public final class MethodsGenerator { ...@@ -459,7 +459,7 @@ public final class MethodsGenerator {
459 /** 459 /**
460 * Returns the Default constructor strings for class file. 460 * Returns the Default constructor strings for class file.
461 * 461 *
462 - * @param name name of the class 462 + * @param name name of the class
463 * @param modifierType modifier type for default constructor 463 * @param modifierType modifier type for default constructor
464 * @return Default constructor for class 464 * @return Default constructor for class
465 */ 465 */
...@@ -536,13 +536,13 @@ public final class MethodsGenerator { ...@@ -536,13 +536,13 @@ public final class MethodsGenerator {
536 /** 536 /**
537 * Return from string method's body string. 537 * Return from string method's body string.
538 * 538 *
539 - * @param attr attribute info 539 + * @param attr attribute info
540 * @param fromStringAttributeInfo attribute info for the from string 540 * @param fromStringAttributeInfo attribute info for the from string
541 - * wrapper type 541 + * wrapper type
542 * @return from string method's body string 542 * @return from string method's body string
543 */ 543 */
544 public static String getFromStringMethod(JavaAttributeInfo attr, 544 public static String getFromStringMethod(JavaAttributeInfo attr,
545 - JavaAttributeInfo fromStringAttributeInfo) { 545 + JavaAttributeInfo fromStringAttributeInfo) {
546 546
547 return EIGHT_SPACE_INDENTATION + getTrySubString() + NEW_LINE + TWELVE_SPACE_INDENTATION 547 return EIGHT_SPACE_INDENTATION + getTrySubString() + NEW_LINE + TWELVE_SPACE_INDENTATION
548 + getParsedSubString(attr, fromStringAttributeInfo) + SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION 548 + getParsedSubString(attr, fromStringAttributeInfo) + SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION
...@@ -585,7 +585,7 @@ public final class MethodsGenerator { ...@@ -585,7 +585,7 @@ public final class MethodsGenerator {
585 * @return sub string with parsed statement for union's from string method 585 * @return sub string with parsed statement for union's from string method
586 */ 586 */
587 private static String getParsedSubString(JavaAttributeInfo attr, 587 private static String getParsedSubString(JavaAttributeInfo attr,
588 - JavaAttributeInfo fromStringAttributeInfo) { 588 + JavaAttributeInfo fromStringAttributeInfo) {
589 589
590 String targetDataType = getReturnType(attr); 590 String targetDataType = getReturnType(attr);
591 String parseFromStringMethod = getParseFromStringMethod(targetDataType, 591 String parseFromStringMethod = getParseFromStringMethod(targetDataType,
...@@ -731,7 +731,7 @@ public final class MethodsGenerator { ...@@ -731,7 +731,7 @@ public final class MethodsGenerator {
731 /** 731 /**
732 * Returns of method's string and java doc for special type. 732 * Returns of method's string and java doc for special type.
733 * 733 *
734 - * @param attr attribute info 734 + * @param attr attribute info
735 * @param generatedJavaClassName class name 735 * @param generatedJavaClassName class name
736 * @return of method's string and java doc for special type 736 * @return of method's string and java doc for special type
737 */ 737 */
...@@ -747,7 +747,7 @@ public final class MethodsGenerator { ...@@ -747,7 +747,7 @@ public final class MethodsGenerator {
747 /** 747 /**
748 * Returns of method's string. 748 * Returns of method's string.
749 * 749 *
750 - * @param type data type 750 + * @param type data type
751 * @param className class name 751 * @param className class name
752 * @return of method's string 752 * @return of method's string
753 */ 753 */
...@@ -762,7 +762,7 @@ public final class MethodsGenerator { ...@@ -762,7 +762,7 @@ public final class MethodsGenerator {
762 /** 762 /**
763 * Returns string and java doc for constructor of type class. 763 * Returns string and java doc for constructor of type class.
764 * 764 *
765 - * @param attr attribute info 765 + * @param attr attribute info
766 * @param generatedJavaClassName class name 766 * @param generatedJavaClassName class name
767 * @return string and java doc for constructor of type class 767 * @return string and java doc for constructor of type class
768 */ 768 */
...@@ -778,8 +778,8 @@ public final class MethodsGenerator { ...@@ -778,8 +778,8 @@ public final class MethodsGenerator {
778 /** 778 /**
779 * Returns type constructor string. 779 * Returns type constructor string.
780 * 780 *
781 - * @param type data type 781 + * @param type data type
782 - * @param name attribute name 782 + * @param name attribute name
783 * @param className class name 783 * @param className class name
784 * @return type constructor string 784 * @return type constructor string
785 */ 785 */
......
...@@ -21,7 +21,7 @@ import java.io.IOException; ...@@ -21,7 +21,7 @@ import java.io.IOException;
21 import java.util.List; 21 import java.util.List;
22 22
23 import org.onosproject.yangutils.datamodel.YangNode; 23 import org.onosproject.yangutils.datamodel.YangNode;
24 -import org.onosproject.yangutils.translator.tojava.HasJavaImportData; 24 +import org.onosproject.yangutils.translator.tojava.JavaImportDataContainer;
25 25
26 import static org.onosproject.yangutils.translator.tojava.JavaImportData.getAugmentedInfoImport; 26 import static org.onosproject.yangutils.translator.tojava.JavaImportData.getAugmentedInfoImport;
27 import static org.onosproject.yangutils.translator.tojava.JavaImportData.getHasAugmentationImport; 27 import static org.onosproject.yangutils.translator.tojava.JavaImportData.getHasAugmentationImport;
...@@ -52,9 +52,9 @@ public final class TempJavaCodeFragmentFilesUtils { ...@@ -52,9 +52,9 @@ public final class TempJavaCodeFragmentFilesUtils {
52 * @return import list 52 * @return import list
53 */ 53 */
54 public static List<String> addImportsToStringAndHasCodeMethods(YangNode curNode, List<String> imports) { 54 public static List<String> addImportsToStringAndHasCodeMethods(YangNode curNode, List<String> imports) {
55 - if (curNode instanceof HasJavaImportData) { 55 + if (curNode instanceof JavaImportDataContainer) {
56 - imports.add(((HasJavaImportData) curNode).getJavaImportData().getImportForHashAndEquals()); 56 + imports.add(((JavaImportDataContainer) curNode).getJavaImportData().getImportForHashAndEquals());
57 - imports.add(((HasJavaImportData) curNode).getJavaImportData().getImportForToString()); 57 + imports.add(((JavaImportDataContainer) curNode).getJavaImportData().getImportForToString());
58 } 58 }
59 return imports; 59 return imports;
60 } 60 }
...@@ -68,7 +68,7 @@ public final class TempJavaCodeFragmentFilesUtils { ...@@ -68,7 +68,7 @@ public final class TempJavaCodeFragmentFilesUtils {
68 * @return import for HasAugmentation class 68 * @return import for HasAugmentation class
69 */ 69 */
70 public static List<String> addHasAugmentationImport(YangNode curNode, List<String> imports, boolean operation) { 70 public static List<String> addHasAugmentationImport(YangNode curNode, List<String> imports, boolean operation) {
71 - if (curNode instanceof HasJavaImportData) { 71 + if (curNode instanceof JavaImportDataContainer) {
72 String thisImport = getHasAugmentationImport(); 72 String thisImport = getHasAugmentationImport();
73 performOperationOnImports(imports, thisImport, operation); 73 performOperationOnImports(imports, thisImport, operation);
74 } 74 }
...@@ -84,7 +84,7 @@ public final class TempJavaCodeFragmentFilesUtils { ...@@ -84,7 +84,7 @@ public final class TempJavaCodeFragmentFilesUtils {
84 * @return import for AugmentedInfo class 84 * @return import for AugmentedInfo class
85 */ 85 */
86 public static List<String> addAugmentedInfoImport(YangNode curNode, List<String> imports, boolean operation) { 86 public static List<String> addAugmentedInfoImport(YangNode curNode, List<String> imports, boolean operation) {
87 - if (curNode instanceof HasJavaImportData) { 87 + if (curNode instanceof JavaImportDataContainer) {
88 String thisImport = getAugmentedInfoImport(); 88 String thisImport = getAugmentedInfoImport();
89 performOperationOnImports(imports, thisImport, operation); 89 performOperationOnImports(imports, thisImport, operation);
90 } 90 }
...@@ -100,7 +100,7 @@ public final class TempJavaCodeFragmentFilesUtils { ...@@ -100,7 +100,7 @@ public final class TempJavaCodeFragmentFilesUtils {
100 * @return import for HasAugmentation class 100 * @return import for HasAugmentation class
101 */ 101 */
102 public static List<String> addArrayListImport(YangNode curNode, List<String> imports, boolean operation) { 102 public static List<String> addArrayListImport(YangNode curNode, List<String> imports, boolean operation) {
103 - if (curNode instanceof HasJavaImportData) { 103 + if (curNode instanceof JavaImportDataContainer) {
104 String arrayListImport = getImportForArrayList(); 104 String arrayListImport = getImportForArrayList();
105 String listImport = getImportForList(); 105 String listImport = getImportForList();
106 performOperationOnImports(imports, arrayListImport, operation); 106 performOperationOnImports(imports, arrayListImport, operation);
......
...@@ -17,7 +17,8 @@ ...@@ -17,7 +17,8 @@
17 package org.onosproject.yangutils.translator.tojava.utils; 17 package org.onosproject.yangutils.translator.tojava.utils;
18 18
19 import java.io.IOException; 19 import java.io.IOException;
20 -import org.onosproject.yangutils.datamodel.HasType; 20 +
21 +import org.onosproject.yangutils.datamodel.YangTypeContainer;
21 import org.onosproject.yangutils.datamodel.YangAugment; 22 import org.onosproject.yangutils.datamodel.YangAugment;
22 import org.onosproject.yangutils.datamodel.YangCase; 23 import org.onosproject.yangutils.datamodel.YangCase;
23 import org.onosproject.yangutils.datamodel.YangChoice; 24 import org.onosproject.yangutils.datamodel.YangChoice;
...@@ -28,11 +29,13 @@ import org.onosproject.yangutils.datamodel.YangList; ...@@ -28,11 +29,13 @@ import org.onosproject.yangutils.datamodel.YangList;
28 import org.onosproject.yangutils.datamodel.YangNode; 29 import org.onosproject.yangutils.datamodel.YangNode;
29 import org.onosproject.yangutils.datamodel.YangNotification; 30 import org.onosproject.yangutils.datamodel.YangNotification;
30 import org.onosproject.yangutils.datamodel.YangOutput; 31 import org.onosproject.yangutils.datamodel.YangOutput;
31 -import org.onosproject.yangutils.translator.tojava.HasJavaFileInfo; 32 +import org.onosproject.yangutils.translator.exception.TranslatorException;
33 +import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
32 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 34 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
33 import org.onosproject.yangutils.translator.tojava.javamodel.JavaCodeGeneratorInfo; 35 import org.onosproject.yangutils.translator.tojava.javamodel.JavaCodeGeneratorInfo;
34 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaEnumeration; 36 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaEnumeration;
35 37
38 +import static org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles.addCurNodeInfoInParentTempFile;
36 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase; 39 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
37 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCaptialCase; 40 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCaptialCase;
38 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCurNodePackage; 41 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCurNodePackage;
...@@ -40,7 +43,6 @@ import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSy ...@@ -40,7 +43,6 @@ import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSy
40 import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED_INFO; 43 import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED_INFO;
41 import static org.onosproject.yangutils.utils.UtilConstants.HAS_AUGMENTATION; 44 import static org.onosproject.yangutils.utils.UtilConstants.HAS_AUGMENTATION;
42 import static org.onosproject.yangutils.utils.UtilConstants.PERIOD; 45 import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
43 -import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath;
44 46
45 /** 47 /**
46 * Represents utility class for YANG java model. 48 * Represents utility class for YANG java model.
...@@ -56,30 +58,30 @@ public final class YangJavaModelUtils { ...@@ -56,30 +58,30 @@ public final class YangJavaModelUtils {
56 /** 58 /**
57 * Updates YANG java file package information. 59 * Updates YANG java file package information.
58 * 60 *
59 - * @param hasJavaFileInfo YANG java file info node 61 + * @param javaCodeGeneratorInfo YANG java file info node
60 - * @param yangPlugin YANG plugin config 62 + * @param yangPlugin YANG plugin config
61 * @throws IOException IO operations fails 63 * @throws IOException IO operations fails
62 */ 64 */
63 - public static void updatePackageInfo(HasJavaFileInfo hasJavaFileInfo, YangPluginConfig yangPlugin) 65 + public static void updatePackageInfo(JavaCodeGeneratorInfo javaCodeGeneratorInfo, YangPluginConfig yangPlugin)
64 throws IOException { 66 throws IOException {
65 - hasJavaFileInfo.getJavaFileInfo() 67 + javaCodeGeneratorInfo.getJavaFileInfo()
66 .setJavaName(getCaptialCase( 68 .setJavaName(getCaptialCase(
67 - getCamelCase(((YangNode) hasJavaFileInfo).getName(), yangPlugin.getConflictResolver()))); 69 + getCamelCase(((YangNode) javaCodeGeneratorInfo).getName(), yangPlugin.getConflictResolver())));
68 - hasJavaFileInfo.getJavaFileInfo().setPackage(getCurNodePackage((YangNode) hasJavaFileInfo)); 70 + javaCodeGeneratorInfo.getJavaFileInfo().setPackage(getCurNodePackage((YangNode) javaCodeGeneratorInfo));
69 - hasJavaFileInfo.getJavaFileInfo().setPackageFilePath( 71 + javaCodeGeneratorInfo.getJavaFileInfo().setPackageFilePath(
70 - getPackageDirPathFromJavaJPackage(hasJavaFileInfo.getJavaFileInfo().getPackage())); 72 + getPackageDirPathFromJavaJPackage(javaCodeGeneratorInfo.getJavaFileInfo().getPackage()));
71 - hasJavaFileInfo.getJavaFileInfo().setBaseCodeGenPath(yangPlugin.getCodeGenDir()); 73 + javaCodeGeneratorInfo.getJavaFileInfo().setBaseCodeGenPath(yangPlugin.getCodeGenDir());
72 } 74 }
73 75
74 /** 76 /**
75 * Updates YANG java file package information for specified package. 77 * Updates YANG java file package information for specified package.
76 * 78 *
77 * @param javaCodeGeneratorInfo YANG java file info node 79 * @param javaCodeGeneratorInfo YANG java file info node
78 - * @param yangPlugin YANG plugin config 80 + * @param yangPlugin YANG plugin config
79 * @throws IOException IO operations fails 81 * @throws IOException IO operations fails
80 */ 82 */
81 private static void updatePackageInfo(JavaCodeGeneratorInfo javaCodeGeneratorInfo, YangPluginConfig yangPlugin, 83 private static void updatePackageInfo(JavaCodeGeneratorInfo javaCodeGeneratorInfo, YangPluginConfig yangPlugin,
82 - String pkg) 84 + String pkg)
83 throws IOException { 85 throws IOException {
84 javaCodeGeneratorInfo.getJavaFileInfo() 86 javaCodeGeneratorInfo.getJavaFileInfo()
85 .setJavaName(getCaptialCase( 87 .setJavaName(getCaptialCase(
...@@ -96,13 +98,10 @@ public final class YangJavaModelUtils { ...@@ -96,13 +98,10 @@ public final class YangJavaModelUtils {
96 * @param javaCodeGeneratorInfo YANG java file info node 98 * @param javaCodeGeneratorInfo YANG java file info node
97 * @throws IOException IO operations fails 99 * @throws IOException IO operations fails
98 */ 100 */
99 - private static void createTempFragmentFile(JavaCodeGeneratorInfo javaCodeGeneratorInfo) throws IOException { 101 + private static void createTempFragmentFile(JavaCodeGeneratorInfo javaCodeGeneratorInfo)
100 - String absolutePath = getAbsolutePackagePath(javaCodeGeneratorInfo.getJavaFileInfo().getBaseCodeGenPath(), 102 + throws IOException {
101 - javaCodeGeneratorInfo.getJavaFileInfo().getPackageFilePath());
102 -
103 javaCodeGeneratorInfo.setTempJavaCodeFragmentFiles( 103 javaCodeGeneratorInfo.setTempJavaCodeFragmentFiles(
104 - new TempJavaCodeFragmentFiles(javaCodeGeneratorInfo.getJavaFileInfo().getGeneratedFileTypes(), 104 + new TempJavaCodeFragmentFiles(javaCodeGeneratorInfo.getJavaFileInfo()));
105 - absolutePath, javaCodeGeneratorInfo.getJavaFileInfo().getJavaName()));
106 } 105 }
107 106
108 /** 107 /**
...@@ -111,19 +110,21 @@ public final class YangJavaModelUtils { ...@@ -111,19 +110,21 @@ public final class YangJavaModelUtils {
111 * @param javaCodeGeneratorInfo YANG java file info node 110 * @param javaCodeGeneratorInfo YANG java file info node
112 * @throws IOException IO operations fails 111 * @throws IOException IO operations fails
113 */ 112 */
114 - private static void updateLeafInfoInTempFragmentFiles(JavaCodeGeneratorInfo javaCodeGeneratorInfo) 113 + private static void updateTempFragmentFiles(JavaCodeGeneratorInfo javaCodeGeneratorInfo)
115 throws IOException { 114 throws IOException {
116 if (javaCodeGeneratorInfo instanceof YangLeavesHolder) { 115 if (javaCodeGeneratorInfo instanceof YangLeavesHolder) {
117 javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles() 116 javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles()
118 .addCurNodeLeavesInfoToTempFiles((YangNode) javaCodeGeneratorInfo); 117 .addCurNodeLeavesInfoToTempFiles((YangNode) javaCodeGeneratorInfo);
119 - } else if (javaCodeGeneratorInfo instanceof HasType) { 118 + } else if (javaCodeGeneratorInfo instanceof YangTypeContainer) {
120 javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles() 119 javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles()
121 - .addTypeInfoToTempFiles((HasType) javaCodeGeneratorInfo); 120 + .addTypeInfoToTempFiles((YangTypeContainer) javaCodeGeneratorInfo);
122 } else if (javaCodeGeneratorInfo instanceof YangJavaEnumeration) { 121 } else if (javaCodeGeneratorInfo instanceof YangJavaEnumeration) {
123 javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles() 122 javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles()
124 .addEnumAttributeToTempFiles((YangNode) javaCodeGeneratorInfo); 123 .addEnumAttributeToTempFiles((YangNode) javaCodeGeneratorInfo);
124 + } else if (javaCodeGeneratorInfo instanceof YangChoice) {
125 + /*Do nothing, only the interface needs to be generated*/
125 } else { 126 } else {
126 - //TODO throw exception 127 + throw new TranslatorException("Unsupported Node Translation");
127 } 128 }
128 } 129 }
129 130
...@@ -131,16 +132,15 @@ public final class YangJavaModelUtils { ...@@ -131,16 +132,15 @@ public final class YangJavaModelUtils {
131 * Process generate code entry of YANG node. 132 * Process generate code entry of YANG node.
132 * 133 *
133 * @param javaCodeGeneratorInfo YANG java file info node 134 * @param javaCodeGeneratorInfo YANG java file info node
134 - * @param codeGenDir code generation directory
135 * @throws IOException IO operations fails 135 * @throws IOException IO operations fails
136 */ 136 */
137 private static void generateTempFiles(JavaCodeGeneratorInfo javaCodeGeneratorInfo, String codeGenDir) 137 private static void generateTempFiles(JavaCodeGeneratorInfo javaCodeGeneratorInfo, String codeGenDir)
138 throws IOException { 138 throws IOException {
139 if (!(javaCodeGeneratorInfo instanceof YangNode)) { 139 if (!(javaCodeGeneratorInfo instanceof YangNode)) {
140 - // TODO:throw exception 140 + throw new TranslatorException("translation is not supported for the node");
141 } 141 }
142 createTempFragmentFile(javaCodeGeneratorInfo); 142 createTempFragmentFile(javaCodeGeneratorInfo);
143 - updateLeafInfoInTempFragmentFiles(javaCodeGeneratorInfo); 143 + updateTempFragmentFiles(javaCodeGeneratorInfo);
144 144
145 } 145 }
146 146
...@@ -148,23 +148,44 @@ public final class YangJavaModelUtils { ...@@ -148,23 +148,44 @@ public final class YangJavaModelUtils {
148 * Process generate code entry of YANG node. 148 * Process generate code entry of YANG node.
149 * 149 *
150 * @param javaCodeGeneratorInfo YANG java file info node 150 * @param javaCodeGeneratorInfo YANG java file info node
151 - * @param yangPlugin YANG plugin config 151 + * @param yangPlugin YANG plugin config
152 - * @param isMultiInstance flag to indicate whether it's a list 152 + * @param isMultiInstance flag to indicate whether it's a list
153 * @throws IOException IO operations fails 153 * @throws IOException IO operations fails
154 */ 154 */
155 - public static void generateCodeOfNode(JavaCodeGeneratorInfo javaCodeGeneratorInfo, YangPluginConfig yangPlugin, 155 + public static void generateCodeAndUpdateInParent(JavaCodeGeneratorInfo javaCodeGeneratorInfo,
156 - boolean isMultiInstance) throws IOException { 156 + YangPluginConfig yangPlugin, boolean isMultiInstance)
157 + throws IOException {
157 if (!(javaCodeGeneratorInfo instanceof YangNode)) { 158 if (!(javaCodeGeneratorInfo instanceof YangNode)) {
158 - // TODO:throw exception 159 + throw new TranslatorException("Invalid node for translation");
159 } 160 }
160 - updatePackageInfo((HasJavaFileInfo) javaCodeGeneratorInfo, yangPlugin);
161 - generateTempFiles(javaCodeGeneratorInfo, yangPlugin.getCodeGenDir());
162 161
163 - if (!(javaCodeGeneratorInfo instanceof YangCase)) { 162 + /**
164 - javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles() 163 + * Generate the Java files corresponding to the current node.
165 - .addCurNodeInfoInParentTempFile((YangNode) javaCodeGeneratorInfo, isMultiInstance); 164 + */
165 + generateCodeOfAugmentableNode(javaCodeGeneratorInfo, yangPlugin);
166 +
167 + /**
168 + * Update the current nodes info in its parent nodes generated files.
169 + */
170 + addCurNodeInfoInParentTempFile((YangNode) javaCodeGeneratorInfo, isMultiInstance);
171 + }
172 +
173 + /**
174 + * Process generate code entry of YANG type.
175 + *
176 + * @param javaCodeGeneratorInfo YANG java file info node
177 + * @param yangPlugin YANG plugin config
178 + * @throws IOException IO operations fails
179 + */
180 + public static void generateCodeOfAugmentableNode(JavaCodeGeneratorInfo javaCodeGeneratorInfo,
181 + YangPluginConfig yangPlugin)
182 + throws IOException {
183 + if (!(javaCodeGeneratorInfo instanceof YangNode)) {
184 + throw new TranslatorException("invalid node for translation");
166 } 185 }
167 186
187 + generateCodeOfNode(javaCodeGeneratorInfo, yangPlugin);
188 +
168 /** 189 /**
169 * For augmentation of nodes. 190 * For augmentation of nodes.
170 */ 191 */
...@@ -185,11 +206,11 @@ public final class YangJavaModelUtils { ...@@ -185,11 +206,11 @@ public final class YangJavaModelUtils {
185 String curNodeName = ((YangCase) javaCodeGeneratorInfo).getName(); 206 String curNodeName = ((YangCase) javaCodeGeneratorInfo).getName();
186 if (!parent.getName().equals(curNodeName)) { 207 if (!parent.getName().equals(curNodeName)) {
187 javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().addToExtendsList(getCaptialCase(getCamelCase( 208 javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().addToExtendsList(getCaptialCase(getCamelCase(
188 - parent.getName(), null))); 209 + parent.getName(), null)));
189 - javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().addParentInfoInCurNodeTempFile((YangNode) 210 + javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().getBeanTempFiles()
190 - javaCodeGeneratorInfo); 211 + .addParentInfoInCurNodeTempFile((YangNode) javaCodeGeneratorInfo);
191 } else { 212 } else {
192 - String parentPackage = ((HasJavaFileInfo) parent).getJavaFileInfo().getPackage(); 213 + String parentPackage = ((JavaFileInfoContainer) parent).getJavaFileInfo().getPackage();
193 String caseExtendInfo = parentPackage + PERIOD + parent.getName(); 214 String caseExtendInfo = parentPackage + PERIOD + parent.getName();
194 javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().addToExtendsList(caseExtendInfo); 215 javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().addToExtendsList(caseExtendInfo);
195 } 216 }
...@@ -200,7 +221,7 @@ public final class YangJavaModelUtils { ...@@ -200,7 +221,7 @@ public final class YangJavaModelUtils {
200 * Process generate code entry of YANG type. 221 * Process generate code entry of YANG type.
201 * 222 *
202 * @param javaCodeGeneratorInfo YANG java file info node 223 * @param javaCodeGeneratorInfo YANG java file info node
203 - * @param yangPlugin YANG plugin config 224 + * @param yangPlugin YANG plugin config
204 * @throws IOException IO operations fails 225 * @throws IOException IO operations fails
205 */ 226 */
206 public static void generateCodeOfNode(JavaCodeGeneratorInfo javaCodeGeneratorInfo, YangPluginConfig yangPlugin) 227 public static void generateCodeOfNode(JavaCodeGeneratorInfo javaCodeGeneratorInfo, YangPluginConfig yangPlugin)
...@@ -208,7 +229,7 @@ public final class YangJavaModelUtils { ...@@ -208,7 +229,7 @@ public final class YangJavaModelUtils {
208 if (!(javaCodeGeneratorInfo instanceof YangNode)) { 229 if (!(javaCodeGeneratorInfo instanceof YangNode)) {
209 // TODO:throw exception 230 // TODO:throw exception
210 } 231 }
211 - updatePackageInfo((HasJavaFileInfo) javaCodeGeneratorInfo, yangPlugin); 232 + updatePackageInfo(javaCodeGeneratorInfo, yangPlugin);
212 generateTempFiles(javaCodeGeneratorInfo, yangPlugin.getCodeGenDir()); 233 generateTempFiles(javaCodeGeneratorInfo, yangPlugin.getCodeGenDir());
213 } 234 }
214 235
...@@ -216,12 +237,13 @@ public final class YangJavaModelUtils { ...@@ -216,12 +237,13 @@ public final class YangJavaModelUtils {
216 * Process generate code entry of root node. 237 * Process generate code entry of root node.
217 * 238 *
218 * @param javaCodeGeneratorInfo YANG java file info node 239 * @param javaCodeGeneratorInfo YANG java file info node
219 - * @param yangPlugin YANG plugin config 240 + * @param yangPlugin YANG plugin config
220 - * @param rootPkg package of the root node 241 + * @param rootPkg package of the root node
221 * @throws IOException IO operations fails 242 * @throws IOException IO operations fails
222 */ 243 */
223 public static void generateCodeOfRootNode(JavaCodeGeneratorInfo javaCodeGeneratorInfo, YangPluginConfig yangPlugin, 244 public static void generateCodeOfRootNode(JavaCodeGeneratorInfo javaCodeGeneratorInfo, YangPluginConfig yangPlugin,
224 - String rootPkg) throws IOException { 245 + String rootPkg)
246 + throws IOException {
225 if (!(javaCodeGeneratorInfo instanceof YangNode)) { 247 if (!(javaCodeGeneratorInfo instanceof YangNode)) {
226 // TODO:throw exception 248 // TODO:throw exception
227 } 249 }
......
...@@ -65,7 +65,7 @@ public class IntraFileTypeLinkingTest { ...@@ -65,7 +65,7 @@ public class IntraFileTypeLinkingTest {
65 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 65 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
66 YangLeaf leafInfo = leafIterator.next(); 66 YangLeaf leafInfo = leafIterator.next();
67 67
68 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 68 + assertThat(leafInfo.getName(), is("invalid-interval"));
69 assertThat(leafInfo.getDataType().getDataTypeName(), is("hello")); 69 assertThat(leafInfo.getDataType().getDataTypeName(), is("hello"));
70 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED)); 70 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED));
71 71
...@@ -104,7 +104,7 @@ public class IntraFileTypeLinkingTest { ...@@ -104,7 +104,7 @@ public class IntraFileTypeLinkingTest {
104 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); 104 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator();
105 YangLeaf leafInfo = leafIterator.next(); 105 YangLeaf leafInfo = leafIterator.next();
106 106
107 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 107 + assertThat(leafInfo.getName(), is("invalid-interval"));
108 assertThat(leafInfo.getDataType().getDataTypeName(), is("hello")); 108 assertThat(leafInfo.getDataType().getDataTypeName(), is("hello"));
109 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED)); 109 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED));
110 110
...@@ -144,7 +144,7 @@ public class IntraFileTypeLinkingTest { ...@@ -144,7 +144,7 @@ public class IntraFileTypeLinkingTest {
144 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); 144 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator();
145 YangLeaf leafInfo = leafIterator.next(); 145 YangLeaf leafInfo = leafIterator.next();
146 146
147 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 147 + assertThat(leafInfo.getName(), is("invalid-interval"));
148 assertThat(leafInfo.getDataType().getDataTypeName(), is("hello")); 148 assertThat(leafInfo.getDataType().getDataTypeName(), is("hello"));
149 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED)); 149 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED));
150 150
...@@ -184,7 +184,7 @@ public class IntraFileTypeLinkingTest { ...@@ -184,7 +184,7 @@ public class IntraFileTypeLinkingTest {
184 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); 184 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator();
185 YangLeaf leafInfo = leafIterator.next(); 185 YangLeaf leafInfo = leafIterator.next();
186 186
187 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 187 + assertThat(leafInfo.getName(), is("invalid-interval"));
188 assertThat(leafInfo.getDataType().getDataTypeName(), is("hello")); 188 assertThat(leafInfo.getDataType().getDataTypeName(), is("hello"));
189 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED)); 189 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED));
190 190
...@@ -222,7 +222,7 @@ public class IntraFileTypeLinkingTest { ...@@ -222,7 +222,7 @@ public class IntraFileTypeLinkingTest {
222 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); 222 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator();
223 YangLeaf leafInfo = leafIterator.next(); 223 YangLeaf leafInfo = leafIterator.next();
224 224
225 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 225 + assertThat(leafInfo.getName(), is("invalid-interval"));
226 assertThat(leafInfo.getDataType().getDataTypeName(), is("FirstClass")); 226 assertThat(leafInfo.getDataType().getDataTypeName(), is("FirstClass"));
227 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED)); 227 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED));
228 228
...@@ -274,7 +274,7 @@ public class IntraFileTypeLinkingTest { ...@@ -274,7 +274,7 @@ public class IntraFileTypeLinkingTest {
274 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); 274 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator();
275 YangLeaf leafInfo = leafIterator.next(); 275 YangLeaf leafInfo = leafIterator.next();
276 276
277 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 277 + assertThat(leafInfo.getName(), is("invalid-interval"));
278 assertThat(leafInfo.getDataType().getDataTypeName(), is("FirstClass")); 278 assertThat(leafInfo.getDataType().getDataTypeName(), is("FirstClass"));
279 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED)); 279 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED));
280 280
...@@ -325,7 +325,7 @@ public class IntraFileTypeLinkingTest { ...@@ -325,7 +325,7 @@ public class IntraFileTypeLinkingTest {
325 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); 325 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator();
326 YangLeaf leafInfo = leafIterator.next(); 326 YangLeaf leafInfo = leafIterator.next();
327 327
328 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 328 + assertThat(leafInfo.getName(), is("invalid-interval"));
329 assertThat(leafInfo.getDataType().getDataTypeName(), is("FirstClass")); 329 assertThat(leafInfo.getDataType().getDataTypeName(), is("FirstClass"));
330 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED)); 330 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED));
331 331
...@@ -377,7 +377,7 @@ public class IntraFileTypeLinkingTest { ...@@ -377,7 +377,7 @@ public class IntraFileTypeLinkingTest {
377 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); 377 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator();
378 YangLeaf leafInfo = leafIterator.next(); 378 YangLeaf leafInfo = leafIterator.next();
379 379
380 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 380 + assertThat(leafInfo.getName(), is("invalid-interval"));
381 assertThat(leafInfo.getDataType().getDataTypeName(), is("FirstClass")); 381 assertThat(leafInfo.getDataType().getDataTypeName(), is("FirstClass"));
382 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED)); 382 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED));
383 383
......
...@@ -80,7 +80,7 @@ public class IntraFileUsesLinkingTest { ...@@ -80,7 +80,7 @@ public class IntraFileUsesLinkingTest {
80 leafInfo = leafIterator.next(); 80 leafInfo = leafIterator.next();
81 81
82 // Check whether the information in the leaf is correct under grouping. 82 // Check whether the information in the leaf is correct under grouping.
83 - assertThat(leafInfo.getLeafName(), is("hello")); 83 + assertThat(leafInfo.getName(), is("hello"));
84 assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); 84 assertThat(leafInfo.getDataType().getDataTypeName(), is("String"));
85 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 85 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
86 86
...@@ -96,7 +96,7 @@ public class IntraFileUsesLinkingTest { ...@@ -96,7 +96,7 @@ public class IntraFileUsesLinkingTest {
96 leafInfo = leafIterator.next(); 96 leafInfo = leafIterator.next();
97 97
98 // Check whether the information in the leaf is correct under module. 98 // Check whether the information in the leaf is correct under module.
99 - assertThat(leafInfo.getLeafName(), is("hello")); 99 + assertThat(leafInfo.getName(), is("hello"));
100 assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); 100 assertThat(leafInfo.getDataType().getDataTypeName(), is("String"));
101 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 101 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
102 102
...@@ -134,7 +134,7 @@ public class IntraFileUsesLinkingTest { ...@@ -134,7 +134,7 @@ public class IntraFileUsesLinkingTest {
134 leafInfo = leafIterator.next(); 134 leafInfo = leafIterator.next();
135 135
136 // Check whether the information in the leaf is correct under grouping. 136 // Check whether the information in the leaf is correct under grouping.
137 - assertThat(leafInfo.getLeafName(), is("treat")); 137 + assertThat(leafInfo.getName(), is("treat"));
138 assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); 138 assertThat(leafInfo.getDataType().getDataTypeName(), is("String"));
139 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 139 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
140 140
...@@ -149,7 +149,7 @@ public class IntraFileUsesLinkingTest { ...@@ -149,7 +149,7 @@ public class IntraFileUsesLinkingTest {
149 leafInfo = leafIterator.next(); 149 leafInfo = leafIterator.next();
150 150
151 // Check whether the information in the leaf is correct under container which is under grouping. 151 // Check whether the information in the leaf is correct under container which is under grouping.
152 - assertThat(leafInfo.getLeafName(), is("leaf2")); 152 + assertThat(leafInfo.getName(), is("leaf2"));
153 assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); 153 assertThat(leafInfo.getDataType().getDataTypeName(), is("String"));
154 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 154 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
155 155
...@@ -165,7 +165,7 @@ public class IntraFileUsesLinkingTest { ...@@ -165,7 +165,7 @@ public class IntraFileUsesLinkingTest {
165 leafInfo = leafIterator.next(); 165 leafInfo = leafIterator.next();
166 166
167 // Check whether the information in the leaf is correct under module. 167 // Check whether the information in the leaf is correct under module.
168 - assertThat(leafInfo.getLeafName(), is("treat")); 168 + assertThat(leafInfo.getName(), is("treat"));
169 assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); 169 assertThat(leafInfo.getDataType().getDataTypeName(), is("String"));
170 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 170 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
171 171
...@@ -180,7 +180,7 @@ public class IntraFileUsesLinkingTest { ...@@ -180,7 +180,7 @@ public class IntraFileUsesLinkingTest {
180 leafInfo = leafIterator.next(); 180 leafInfo = leafIterator.next();
181 181
182 // Check whether the information in the leaf is correct under container which is under module. 182 // Check whether the information in the leaf is correct under container which is under module.
183 - assertThat(leafInfo.getLeafName(), is("leaf2")); 183 + assertThat(leafInfo.getName(), is("leaf2"));
184 assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); 184 assertThat(leafInfo.getDataType().getDataTypeName(), is("String"));
185 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 185 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
186 } 186 }
...@@ -227,7 +227,7 @@ public class IntraFileUsesLinkingTest { ...@@ -227,7 +227,7 @@ public class IntraFileUsesLinkingTest {
227 leafInfo = leafIterator.next(); 227 leafInfo = leafIterator.next();
228 228
229 // Check whether the information in the leaf is correct under list which is under grouping. 229 // Check whether the information in the leaf is correct under list which is under grouping.
230 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 230 + assertThat(leafInfo.getName(), is("invalid-interval"));
231 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 231 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
232 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 232 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
233 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 233 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -253,7 +253,7 @@ public class IntraFileUsesLinkingTest { ...@@ -253,7 +253,7 @@ public class IntraFileUsesLinkingTest {
253 leafInfo = leafIterator.next(); 253 leafInfo = leafIterator.next();
254 254
255 // Check whether the information in the leaf is correct under list which is deep copied. 255 // Check whether the information in the leaf is correct under list which is deep copied.
256 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 256 + assertThat(leafInfo.getName(), is("invalid-interval"));
257 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 257 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
258 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 258 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
259 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 259 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -282,7 +282,7 @@ public class IntraFileUsesLinkingTest { ...@@ -282,7 +282,7 @@ public class IntraFileUsesLinkingTest {
282 leafInfo = leafIterator.next(); 282 leafInfo = leafIterator.next();
283 283
284 // Check whether the information in the leaf is correct under list which is deep copied. 284 // Check whether the information in the leaf is correct under list which is deep copied.
285 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 285 + assertThat(leafInfo.getName(), is("invalid-interval"));
286 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 286 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
287 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 287 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
288 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 288 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -353,7 +353,7 @@ public class IntraFileUsesLinkingTest { ...@@ -353,7 +353,7 @@ public class IntraFileUsesLinkingTest {
353 leafInfo = leafIterator.next(); 353 leafInfo = leafIterator.next();
354 354
355 // Check whether the information in the leaf is correct under design-container. 355 // Check whether the information in the leaf is correct under design-container.
356 - assertThat(leafInfo.getLeafName(), is("ink")); 356 + assertThat(leafInfo.getName(), is("ink"));
357 assertThat(leafInfo.getDataType().getDataTypeName(), is("int32")); 357 assertThat(leafInfo.getDataType().getDataTypeName(), is("int32"));
358 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.INT32)); 358 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.INT32));
359 359
...@@ -374,7 +374,7 @@ public class IntraFileUsesLinkingTest { ...@@ -374,7 +374,7 @@ public class IntraFileUsesLinkingTest {
374 leafInfo = leafIterator.next(); 374 leafInfo = leafIterator.next();
375 375
376 // Check whether the information in the leaf is correct under correct-container. 376 // Check whether the information in the leaf is correct under correct-container.
377 - assertThat(leafInfo.getLeafName(), is("newone")); 377 + assertThat(leafInfo.getName(), is("newone"));
378 assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); 378 assertThat(leafInfo.getDataType().getDataTypeName(), is("string"));
379 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 379 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
380 380
...@@ -397,7 +397,7 @@ public class IntraFileUsesLinkingTest { ...@@ -397,7 +397,7 @@ public class IntraFileUsesLinkingTest {
397 397
398 // Check whether the information in the leaf is correct under container 398 // Check whether the information in the leaf is correct under container
399 // which has been deep copied from grouping. 399 // which has been deep copied from grouping.
400 - assertThat(leafInfo.getLeafName(), is("zip-code")); 400 + assertThat(leafInfo.getName(), is("zip-code"));
401 assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); 401 assertThat(leafInfo.getDataType().getDataTypeName(), is("string"));
402 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 402 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
403 403
...@@ -426,7 +426,7 @@ public class IntraFileUsesLinkingTest { ...@@ -426,7 +426,7 @@ public class IntraFileUsesLinkingTest {
426 leafInfo = leafIterator.next(); 426 leafInfo = leafIterator.next();
427 427
428 // Check whether the information in the leaf is correct under list which has been deep copied from grouping. 428 // Check whether the information in the leaf is correct under list which has been deep copied from grouping.
429 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 429 + assertThat(leafInfo.getName(), is("invalid-interval"));
430 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 430 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
431 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 431 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
432 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 432 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -441,7 +441,7 @@ public class IntraFileUsesLinkingTest { ...@@ -441,7 +441,7 @@ public class IntraFileUsesLinkingTest {
441 leafInfo = leafIterator.next(); 441 leafInfo = leafIterator.next();
442 442
443 // Check whether the information in the leaf is correct under grouping. 443 // Check whether the information in the leaf is correct under grouping.
444 - assertThat(leafInfo.getLeafName(), is("zip-code")); 444 + assertThat(leafInfo.getName(), is("zip-code"));
445 assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); 445 assertThat(leafInfo.getDataType().getDataTypeName(), is("string"));
446 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 446 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
447 447
...@@ -517,7 +517,7 @@ public class IntraFileUsesLinkingTest { ...@@ -517,7 +517,7 @@ public class IntraFileUsesLinkingTest {
517 leafInfo = leafIterator.next(); 517 leafInfo = leafIterator.next();
518 518
519 // Check whether the information in the leaf is correct under grouping. 519 // Check whether the information in the leaf is correct under grouping.
520 - assertThat(leafInfo.getLeafName(), is("carry")); 520 + assertThat(leafInfo.getName(), is("carry"));
521 assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); 521 assertThat(leafInfo.getDataType().getDataTypeName(), is("string"));
522 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 522 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
523 523
...@@ -550,7 +550,7 @@ public class IntraFileUsesLinkingTest { ...@@ -550,7 +550,7 @@ public class IntraFileUsesLinkingTest {
550 leafInfo = leafIterator.next(); 550 leafInfo = leafIterator.next();
551 551
552 // Check whether the information in the leaf is correct under list. 552 // Check whether the information in the leaf is correct under list.
553 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 553 + assertThat(leafInfo.getName(), is("invalid-interval"));
554 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 554 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
555 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 555 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
556 } 556 }
...@@ -687,7 +687,7 @@ public class IntraFileUsesLinkingTest { ...@@ -687,7 +687,7 @@ public class IntraFileUsesLinkingTest {
687 leafInfo = leafIterator.next(); 687 leafInfo = leafIterator.next();
688 688
689 // Check whether the information in the leaf is correct under grouping. 689 // Check whether the information in the leaf is correct under grouping.
690 - assertThat(leafInfo.getLeafName(), is("hello")); 690 + assertThat(leafInfo.getName(), is("hello"));
691 assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); 691 assertThat(leafInfo.getDataType().getDataTypeName(), is("String"));
692 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 692 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
693 693
...@@ -761,7 +761,7 @@ public class IntraFileUsesLinkingTest { ...@@ -761,7 +761,7 @@ public class IntraFileUsesLinkingTest {
761 leafInfo = leafIterator.next(); 761 leafInfo = leafIterator.next();
762 762
763 // Check whether the information in the leaf is correct under grouping. 763 // Check whether the information in the leaf is correct under grouping.
764 - assertThat(leafInfo.getLeafName(), is("hello")); 764 + assertThat(leafInfo.getName(), is("hello"));
765 assertThat(leafInfo.getDataType().getDataTypeName(), is("String")); 765 assertThat(leafInfo.getDataType().getDataTypeName(), is("String"));
766 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 766 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
767 } 767 }
......
...@@ -62,7 +62,7 @@ public class AugmentListenerTest { ...@@ -62,7 +62,7 @@ public class AugmentListenerTest {
62 ListIterator<YangLeaf> leafIterator = yangAugment.getListOfLeaf().listIterator(); 62 ListIterator<YangLeaf> leafIterator = yangAugment.getListOfLeaf().listIterator();
63 YangLeaf leafInfo = leafIterator.next(); 63 YangLeaf leafInfo = leafIterator.next();
64 64
65 - assertThat(leafInfo.getLeafName(), is("ds0ChannelNumber")); 65 + assertThat(leafInfo.getName(), is("ds0ChannelNumber"));
66 assertThat(leafInfo.getDataType().getDataTypeName(), is("ChannelNumber")); 66 assertThat(leafInfo.getDataType().getDataTypeName(), is("ChannelNumber"));
67 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED)); 67 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED));
68 } 68 }
......
...@@ -61,7 +61,7 @@ public class BitListenerTest { ...@@ -61,7 +61,7 @@ public class BitListenerTest {
61 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 61 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
62 YangLeaf leafInfo = leafIterator.next(); 62 YangLeaf leafInfo = leafIterator.next();
63 63
64 - assertThat(leafInfo.getLeafName(), is("mybits")); 64 + assertThat(leafInfo.getName(), is("mybits"));
65 assertThat(leafInfo.getDataType().getDataTypeName(), is("bits")); 65 assertThat(leafInfo.getDataType().getDataTypeName(), is("bits"));
66 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.BITS)); 66 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.BITS));
67 assertThat(((YangBits) leafInfo.getDataType().getDataTypeExtendedInfo()).getBitsName(), 67 assertThat(((YangBits) leafInfo.getDataType().getDataTypeExtendedInfo()).getBitsName(),
......
...@@ -70,7 +70,7 @@ public class CaseListenerTest { ...@@ -70,7 +70,7 @@ public class CaseListenerTest {
70 ListIterator<YangLeaf> leafIterator1 = yangCase1.getListOfLeaf().listIterator(); 70 ListIterator<YangLeaf> leafIterator1 = yangCase1.getListOfLeaf().listIterator();
71 YangLeaf leafInfo1 = leafIterator1.next(); 71 YangLeaf leafInfo1 = leafIterator1.next();
72 72
73 - assertThat(leafInfo1.getLeafName(), is("pretzel")); 73 + assertThat(leafInfo1.getName(), is("pretzel"));
74 74
75 YangCase yangCase2 = (YangCase) yangCase1.getNextSibling(); 75 YangCase yangCase2 = (YangCase) yangCase1.getNextSibling();
76 assertThat(yangCase2.getName(), is("late-night")); 76 assertThat(yangCase2.getName(), is("late-night"));
...@@ -79,7 +79,7 @@ public class CaseListenerTest { ...@@ -79,7 +79,7 @@ public class CaseListenerTest {
79 ListIterator<YangLeaf> leafIterator2 = yangCase2.getListOfLeaf().listIterator(); 79 ListIterator<YangLeaf> leafIterator2 = yangCase2.getListOfLeaf().listIterator();
80 YangLeaf leafInfo2 = leafIterator2.next(); 80 YangLeaf leafInfo2 = leafIterator2.next();
81 81
82 - assertThat(leafInfo2.getLeafName(), is("chocolate")); 82 + assertThat(leafInfo2.getName(), is("chocolate"));
83 } 83 }
84 84
85 /** 85 /**
...@@ -140,7 +140,7 @@ public class CaseListenerTest { ...@@ -140,7 +140,7 @@ public class CaseListenerTest {
140 ListIterator<YangLeaf> leafIterator1 = yangCase1.getListOfLeaf().listIterator(); 140 ListIterator<YangLeaf> leafIterator1 = yangCase1.getListOfLeaf().listIterator();
141 YangLeaf leafInfo1 = leafIterator1.next(); 141 YangLeaf leafInfo1 = leafIterator1.next();
142 142
143 - assertThat(leafInfo1.getLeafName(), is("pretzel")); 143 + assertThat(leafInfo1.getName(), is("pretzel"));
144 144
145 YangChoice yangChoice2 = (YangChoice) yangChoice.getNextSibling(); 145 YangChoice yangChoice2 = (YangChoice) yangChoice.getNextSibling();
146 assertThat(yangChoice2.getName(), is("lunch")); 146 assertThat(yangChoice2.getName(), is("lunch"));
...@@ -152,7 +152,7 @@ public class CaseListenerTest { ...@@ -152,7 +152,7 @@ public class CaseListenerTest {
152 ListIterator<YangLeaf> leafIterator2 = yangCase2.getListOfLeaf().listIterator(); 152 ListIterator<YangLeaf> leafIterator2 = yangCase2.getListOfLeaf().listIterator();
153 YangLeaf leafInfo2 = leafIterator2.next(); 153 YangLeaf leafInfo2 = leafIterator2.next();
154 154
155 - assertThat(leafInfo2.getLeafName(), is("chocolate")); 155 + assertThat(leafInfo2.getName(), is("chocolate"));
156 } 156 }
157 157
158 /** 158 /**
...@@ -186,7 +186,7 @@ public class CaseListenerTest { ...@@ -186,7 +186,7 @@ public class CaseListenerTest {
186 ListIterator<YangLeaf> leafIterator1 = yangCase1.getListOfLeaf().listIterator(); 186 ListIterator<YangLeaf> leafIterator1 = yangCase1.getListOfLeaf().listIterator();
187 YangLeaf leafInfo1 = leafIterator1.next(); 187 YangLeaf leafInfo1 = leafIterator1.next();
188 188
189 - assertThat(leafInfo1.getLeafName(), is("pretzel")); 189 + assertThat(leafInfo1.getName(), is("pretzel"));
190 190
191 YangCase yangCase2 = (YangCase) yangCase1.getNextSibling(); 191 YangCase yangCase2 = (YangCase) yangCase1.getNextSibling();
192 assertThat(yangCase2.getName(), is("late-night")); 192 assertThat(yangCase2.getName(), is("late-night"));
...@@ -200,6 +200,6 @@ public class CaseListenerTest { ...@@ -200,6 +200,6 @@ public class CaseListenerTest {
200 // Check whether leaf properties as set correctly. 200 // Check whether leaf properties as set correctly.
201 ListIterator<YangLeaf> leafIterator2 = yangCase3.getListOfLeaf().listIterator(); 201 ListIterator<YangLeaf> leafIterator2 = yangCase3.getListOfLeaf().listIterator();
202 YangLeaf leafInfo2 = leafIterator2.next(); 202 YangLeaf leafInfo2 = leafIterator2.next();
203 - assertThat(leafInfo2.getLeafName(), is("beer")); 203 + assertThat(leafInfo2.getName(), is("beer"));
204 } 204 }
205 } 205 }
......
...@@ -68,7 +68,7 @@ public class ConfigListenerTest { ...@@ -68,7 +68,7 @@ public class ConfigListenerTest {
68 YangLeaf leafInfo = leafIterator.next(); 68 YangLeaf leafInfo = leafIterator.next();
69 69
70 // Check whether the Config value is set correctly. 70 // Check whether the Config value is set correctly.
71 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 71 + assertThat(leafInfo.getName(), is("invalid-interval"));
72 assertThat(leafInfo.isConfig(), is(true)); 72 assertThat(leafInfo.isConfig(), is(true));
73 } 73 }
74 74
...@@ -94,7 +94,7 @@ public class ConfigListenerTest { ...@@ -94,7 +94,7 @@ public class ConfigListenerTest {
94 YangLeaf leafInfo = leafIterator.next(); 94 YangLeaf leafInfo = leafIterator.next();
95 95
96 // Check whether the Config value is set correctly. 96 // Check whether the Config value is set correctly.
97 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 97 + assertThat(leafInfo.getName(), is("invalid-interval"));
98 assertThat(leafInfo.isConfig(), is(false)); 98 assertThat(leafInfo.isConfig(), is(false));
99 } 99 }
100 100
...@@ -168,7 +168,7 @@ public class ConfigListenerTest { ...@@ -168,7 +168,7 @@ public class ConfigListenerTest {
168 ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator(); 168 ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator();
169 YangLeaf leafInfo = leafIterator.next(); 169 YangLeaf leafInfo = leafIterator.next();
170 170
171 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 171 + assertThat(leafInfo.getName(), is("invalid-interval"));
172 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 172 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
173 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 173 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
174 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 174 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -204,7 +204,7 @@ public class ConfigListenerTest { ...@@ -204,7 +204,7 @@ public class ConfigListenerTest {
204 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); 204 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator();
205 YangLeaf leafInfo = leafIterator.next(); 205 YangLeaf leafInfo = leafIterator.next();
206 206
207 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 207 + assertThat(leafInfo.getName(), is("invalid-interval"));
208 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 208 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
209 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 209 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
210 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 210 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -236,7 +236,7 @@ public class ConfigListenerTest { ...@@ -236,7 +236,7 @@ public class ConfigListenerTest {
236 YangLeafList leafListInfo = leafListIterator.next(); 236 YangLeafList leafListInfo = leafListIterator.next();
237 237
238 // Check whether config value is set correctly. 238 // Check whether config value is set correctly.
239 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 239 + assertThat(leafListInfo.getName(), is("invalid-interval"));
240 assertThat(leafListInfo.isConfig(), is(true)); 240 assertThat(leafListInfo.isConfig(), is(true));
241 } 241 }
242 242
...@@ -262,7 +262,7 @@ public class ConfigListenerTest { ...@@ -262,7 +262,7 @@ public class ConfigListenerTest {
262 ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator(); 262 ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator();
263 YangLeaf leafInfo = leafIterator.next(); 263 YangLeaf leafInfo = leafIterator.next();
264 264
265 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 265 + assertThat(leafInfo.getName(), is("invalid-interval"));
266 assertThat(leafInfo.isConfig(), is(true)); 266 assertThat(leafInfo.isConfig(), is(true));
267 } 267 }
268 268
...@@ -367,7 +367,7 @@ public class ConfigListenerTest { ...@@ -367,7 +367,7 @@ public class ConfigListenerTest {
367 YangLeafList leafListInfo = leafListIterator.next(); 367 YangLeafList leafListInfo = leafListIterator.next();
368 368
369 // Check whether config value is set correctly. 369 // Check whether config value is set correctly.
370 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 370 + assertThat(leafListInfo.getName(), is("invalid-interval"));
371 assertThat(leafListInfo.isConfig(), is(true)); 371 assertThat(leafListInfo.isConfig(), is(true));
372 372
373 } 373 }
...@@ -395,7 +395,7 @@ public class ConfigListenerTest { ...@@ -395,7 +395,7 @@ public class ConfigListenerTest {
395 ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator(); 395 ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator();
396 YangLeaf leafInfo = leafIterator.next(); 396 YangLeaf leafInfo = leafIterator.next();
397 397
398 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 398 + assertThat(leafInfo.getName(), is("invalid-interval"));
399 assertThat(leafInfo.isConfig(), is(true)); 399 assertThat(leafInfo.isConfig(), is(true));
400 } 400 }
401 401
...@@ -475,7 +475,7 @@ public class ConfigListenerTest { ...@@ -475,7 +475,7 @@ public class ConfigListenerTest {
475 YangLeafList leafListInfo = leafListIterator.next(); 475 YangLeafList leafListInfo = leafListIterator.next();
476 476
477 // Check whether config value is set correctly. 477 // Check whether config value is set correctly.
478 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 478 + assertThat(leafListInfo.getName(), is("invalid-interval"));
479 assertThat(leafListInfo.isConfig(), is(true)); 479 assertThat(leafListInfo.isConfig(), is(true));
480 } 480 }
481 481
...@@ -502,7 +502,7 @@ public class ConfigListenerTest { ...@@ -502,7 +502,7 @@ public class ConfigListenerTest {
502 ListIterator<YangLeaf> leafIterator = list1.getListOfLeaf().listIterator(); 502 ListIterator<YangLeaf> leafIterator = list1.getListOfLeaf().listIterator();
503 YangLeaf leafInfo = leafIterator.next(); 503 YangLeaf leafInfo = leafIterator.next();
504 504
505 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 505 + assertThat(leafInfo.getName(), is("invalid-interval"));
506 assertThat(leafInfo.isConfig(), is(true)); 506 assertThat(leafInfo.isConfig(), is(true));
507 } 507 }
508 508
...@@ -531,4 +531,4 @@ public class ConfigListenerTest { ...@@ -531,4 +531,4 @@ public class ConfigListenerTest {
531 assertThat(childList.getName(), is("list1")); 531 assertThat(childList.getName(), is("list1"));
532 assertThat(childList.isConfig(), is(true)); 532 assertThat(childList.isConfig(), is(true));
533 } 533 }
534 -}
...\ No newline at end of file ...\ No newline at end of file
534 +}
......
...@@ -192,7 +192,7 @@ public class ContainerListenerTest { ...@@ -192,7 +192,7 @@ public class ContainerListenerTest {
192 ListIterator<YangLeaf> leafIterator = yangContainer.getListOfLeaf().listIterator(); 192 ListIterator<YangLeaf> leafIterator = yangContainer.getListOfLeaf().listIterator();
193 YangLeaf leafInfo = leafIterator.next(); 193 YangLeaf leafInfo = leafIterator.next();
194 194
195 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 195 + assertThat(leafInfo.getName(), is("invalid-interval"));
196 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 196 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
197 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 197 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
198 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 198 assertThat(leafInfo.getUnits(), is("\"seconds\""));
......
...@@ -68,7 +68,7 @@ public class DescriptionListenerTest { ...@@ -68,7 +68,7 @@ public class DescriptionListenerTest {
68 YangLeaf leafInfo = leafIterator.next(); 68 YangLeaf leafInfo = leafIterator.next();
69 69
70 // Check whether the description is set correctly. 70 // Check whether the description is set correctly.
71 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 71 + assertThat(leafInfo.getName(), is("invalid-interval"));
72 assertThat(leafInfo.getDescription(), is("\"Interval before a route is declared invalid\"")); 72 assertThat(leafInfo.getDescription(), is("\"Interval before a route is declared invalid\""));
73 } 73 }
74 74
...@@ -176,7 +176,7 @@ public class DescriptionListenerTest { ...@@ -176,7 +176,7 @@ public class DescriptionListenerTest {
176 ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator(); 176 ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator();
177 YangLeaf leafInfo = leafIterator.next(); 177 YangLeaf leafInfo = leafIterator.next();
178 178
179 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 179 + assertThat(leafInfo.getName(), is("invalid-interval"));
180 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 180 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
181 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 181 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
182 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 182 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -213,7 +213,7 @@ public class DescriptionListenerTest { ...@@ -213,7 +213,7 @@ public class DescriptionListenerTest {
213 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); 213 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator();
214 YangLeaf leafInfo = leafIterator.next(); 214 YangLeaf leafInfo = leafIterator.next();
215 215
216 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 216 + assertThat(leafInfo.getName(), is("invalid-interval"));
217 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 217 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
218 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 218 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
219 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 219 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -245,7 +245,7 @@ public class DescriptionListenerTest { ...@@ -245,7 +245,7 @@ public class DescriptionListenerTest {
245 YangLeafList leafListInfo = leafListIterator.next(); 245 YangLeafList leafListInfo = leafListIterator.next();
246 246
247 // Check whether description value is set correctly. 247 // Check whether description value is set correctly.
248 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 248 + assertThat(leafListInfo.getName(), is("invalid-interval"));
249 assertThat(leafListInfo.getDescription(), is("\"Interval before a route is declared invalid\"")); 249 assertThat(leafListInfo.getDescription(), is("\"Interval before a route is declared invalid\""));
250 } 250 }
251 -}
...\ No newline at end of file ...\ No newline at end of file
251 +}
......
...@@ -61,7 +61,7 @@ public class EnumListenerTest { ...@@ -61,7 +61,7 @@ public class EnumListenerTest {
61 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 61 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
62 YangLeaf leafInfo = leafIterator.next(); 62 YangLeaf leafInfo = leafIterator.next();
63 63
64 - assertThat(leafInfo.getLeafName(), is("speed")); 64 + assertThat(leafInfo.getName(), is("speed"));
65 assertThat(leafInfo.getDataType().getDataTypeName(), is("enumeration")); 65 assertThat(leafInfo.getDataType().getDataTypeName(), is("enumeration"));
66 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.ENUMERATION)); 66 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.ENUMERATION));
67 assertThat(((YangEnumeration) leafInfo.getDataType().getDataTypeExtendedInfo()).getName(), 67 assertThat(((YangEnumeration) leafInfo.getDataType().getDataTypeExtendedInfo()).getName(),
......
...@@ -64,7 +64,7 @@ public class GroupingListenerTest { ...@@ -64,7 +64,7 @@ public class GroupingListenerTest {
64 ListIterator<YangLeaf> leafIterator = yangGrouping.getListOfLeaf().listIterator(); 64 ListIterator<YangLeaf> leafIterator = yangGrouping.getListOfLeaf().listIterator();
65 YangLeaf leafInfo = leafIterator.next(); 65 YangLeaf leafInfo = leafIterator.next();
66 66
67 - assertThat(leafInfo.getLeafName(), is("address")); 67 + assertThat(leafInfo.getName(), is("address"));
68 } 68 }
69 69
70 /** 70 /**
...@@ -94,7 +94,7 @@ public class GroupingListenerTest { ...@@ -94,7 +94,7 @@ public class GroupingListenerTest {
94 ListIterator<YangLeaf> leafIterator = yangGrouping.getListOfLeaf().listIterator(); 94 ListIterator<YangLeaf> leafIterator = yangGrouping.getListOfLeaf().listIterator();
95 YangLeaf leafInfo = leafIterator.next(); 95 YangLeaf leafInfo = leafIterator.next();
96 96
97 - assertThat(leafInfo.getLeafName(), is("address")); 97 + assertThat(leafInfo.getName(), is("address"));
98 } 98 }
99 99
100 /** 100 /**
...@@ -124,7 +124,7 @@ public class GroupingListenerTest { ...@@ -124,7 +124,7 @@ public class GroupingListenerTest {
124 ListIterator<YangLeaf> leafIterator = yangGrouping.getListOfLeaf().listIterator(); 124 ListIterator<YangLeaf> leafIterator = yangGrouping.getListOfLeaf().listIterator();
125 YangLeaf leafInfo = leafIterator.next(); 125 YangLeaf leafInfo = leafIterator.next();
126 126
127 - assertThat(leafInfo.getLeafName(), is("address")); 127 + assertThat(leafInfo.getName(), is("address"));
128 } 128 }
129 129
130 /** 130 /**
...@@ -157,7 +157,7 @@ public class GroupingListenerTest { ...@@ -157,7 +157,7 @@ public class GroupingListenerTest {
157 ListIterator<YangLeaf> leafIterator = yangGrouping.getListOfLeaf().listIterator(); 157 ListIterator<YangLeaf> leafIterator = yangGrouping.getListOfLeaf().listIterator();
158 YangLeaf leafInfo = leafIterator.next(); 158 YangLeaf leafInfo = leafIterator.next();
159 159
160 - assertThat(leafInfo.getLeafName(), is("address")); 160 + assertThat(leafInfo.getName(), is("address"));
161 } 161 }
162 162
163 /** 163 /**
......
...@@ -65,7 +65,7 @@ public class InputListenerTest { ...@@ -65,7 +65,7 @@ public class InputListenerTest {
65 ListIterator<YangLeaf> leafIterator = yangInput.getListOfLeaf().listIterator(); 65 ListIterator<YangLeaf> leafIterator = yangInput.getListOfLeaf().listIterator();
66 YangLeaf leafInfo = leafIterator.next(); 66 YangLeaf leafInfo = leafIterator.next();
67 67
68 - assertThat(leafInfo.getLeafName(), is("image-name")); 68 + assertThat(leafInfo.getName(), is("image-name"));
69 assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); 69 assertThat(leafInfo.getDataType().getDataTypeName(), is("string"));
70 70
71 YangList yangList = (YangList) yangInput.getChild(); 71 YangList yangList = (YangList) yangInput.getChild();
...@@ -76,7 +76,7 @@ public class InputListenerTest { ...@@ -76,7 +76,7 @@ public class InputListenerTest {
76 assertThat(yangList.getMinElements(), is(3)); 76 assertThat(yangList.getMinElements(), is(3));
77 leafIterator = yangList.getListOfLeaf().listIterator(); 77 leafIterator = yangList.getListOfLeaf().listIterator();
78 leafInfo = leafIterator.next(); 78 leafInfo = leafIterator.next();
79 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 79 + assertThat(leafInfo.getName(), is("invalid-interval"));
80 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 80 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
81 81
82 YangContainer yangContainer = (YangContainer) yangList.getNextSibling(); 82 YangContainer yangContainer = (YangContainer) yangList.getNextSibling();
...@@ -84,7 +84,7 @@ public class InputListenerTest { ...@@ -84,7 +84,7 @@ public class InputListenerTest {
84 84
85 leafIterator = yangContainer.getListOfLeaf().listIterator(); 85 leafIterator = yangContainer.getListOfLeaf().listIterator();
86 leafInfo = leafIterator.next(); 86 leafInfo = leafIterator.next();
87 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 87 + assertThat(leafInfo.getName(), is("invalid-interval"));
88 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 88 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
89 } 89 }
90 90
......
...@@ -66,7 +66,7 @@ public class LeafListListenerTest { ...@@ -66,7 +66,7 @@ public class LeafListListenerTest {
66 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 66 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
67 YangLeafList leafListInfo = leafListIterator.next(); 67 YangLeafList leafListInfo = leafListIterator.next();
68 68
69 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 69 + assertThat(leafListInfo.getName(), is("invalid-interval"));
70 assertThat(leafListInfo.getDataType().getDataTypeName(), is("uint16")); 70 assertThat(leafListInfo.getDataType().getDataTypeName(), is("uint16"));
71 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 71 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
72 assertThat(leafListInfo.getUnits(), is("\"seconds\"")); 72 assertThat(leafListInfo.getUnits(), is("\"seconds\""));
...@@ -161,7 +161,7 @@ public class LeafListListenerTest { ...@@ -161,7 +161,7 @@ public class LeafListListenerTest {
161 ListIterator<YangLeafList> leafListIterator = container.getListOfLeafList().listIterator(); 161 ListIterator<YangLeafList> leafListIterator = container.getListOfLeafList().listIterator();
162 YangLeafList leafListInfo = leafListIterator.next(); 162 YangLeafList leafListInfo = leafListIterator.next();
163 163
164 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 164 + assertThat(leafListInfo.getName(), is("invalid-interval"));
165 assertThat(leafListInfo.getDataType().getDataTypeName(), is("uint16")); 165 assertThat(leafListInfo.getDataType().getDataTypeName(), is("uint16"));
166 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 166 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
167 assertThat(leafListInfo.getUnits(), is("\"seconds\"")); 167 assertThat(leafListInfo.getUnits(), is("\"seconds\""));
...@@ -198,7 +198,7 @@ public class LeafListListenerTest { ...@@ -198,7 +198,7 @@ public class LeafListListenerTest {
198 ListIterator<YangLeafList> leafListIterator = yangList.getListOfLeafList().listIterator(); 198 ListIterator<YangLeafList> leafListIterator = yangList.getListOfLeafList().listIterator();
199 YangLeafList leafListInfo = leafListIterator.next(); 199 YangLeafList leafListInfo = leafListIterator.next();
200 200
201 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 201 + assertThat(leafListInfo.getName(), is("invalid-interval"));
202 assertThat(leafListInfo.getDataType().getDataTypeName(), is("uint16")); 202 assertThat(leafListInfo.getDataType().getDataTypeName(), is("uint16"));
203 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 203 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
204 assertThat(leafListInfo.getUnits(), is("\"seconds\"")); 204 assertThat(leafListInfo.getUnits(), is("\"seconds\""));
...@@ -208,4 +208,4 @@ public class LeafListListenerTest { ...@@ -208,4 +208,4 @@ public class LeafListListenerTest {
208 assertThat(leafListInfo.getStatus(), is(YangStatusType.CURRENT)); 208 assertThat(leafListInfo.getStatus(), is(YangStatusType.CURRENT));
209 assertThat(leafListInfo.getReference(), is("\"RFC 6020\"")); 209 assertThat(leafListInfo.getReference(), is("\"RFC 6020\""));
210 } 210 }
211 -}
...\ No newline at end of file ...\ No newline at end of file
211 +}
......
...@@ -67,7 +67,7 @@ public class LeafListenerTest { ...@@ -67,7 +67,7 @@ public class LeafListenerTest {
67 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 67 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
68 YangLeaf leafInfo = leafIterator.next(); 68 YangLeaf leafInfo = leafIterator.next();
69 69
70 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 70 + assertThat(leafInfo.getName(), is("invalid-interval"));
71 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 71 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
72 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 72 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
73 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 73 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -161,7 +161,7 @@ public class LeafListenerTest { ...@@ -161,7 +161,7 @@ public class LeafListenerTest {
161 ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator(); 161 ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator();
162 YangLeaf leafInfo = leafIterator.next(); 162 YangLeaf leafInfo = leafIterator.next();
163 163
164 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 164 + assertThat(leafInfo.getName(), is("invalid-interval"));
165 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 165 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
166 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 166 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
167 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 167 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -224,7 +224,7 @@ public class LeafListenerTest { ...@@ -224,7 +224,7 @@ public class LeafListenerTest {
224 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); 224 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator();
225 YangLeaf leafInfo = leafIterator.next(); 225 YangLeaf leafInfo = leafIterator.next();
226 226
227 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 227 + assertThat(leafInfo.getName(), is("invalid-interval"));
228 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 228 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
229 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 229 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
230 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 230 assertThat(leafInfo.getUnits(), is("\"seconds\""));
......
...@@ -67,7 +67,7 @@ public class LengthRestrictionListenerTest { ...@@ -67,7 +67,7 @@ public class LengthRestrictionListenerTest {
67 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 67 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
68 YangLeaf leafInfo = leafIterator.next(); 68 YangLeaf leafInfo = leafIterator.next();
69 69
70 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 70 + assertThat(leafInfo.getName(), is("invalid-interval"));
71 assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); 71 assertThat(leafInfo.getDataType().getDataTypeName(), is("string"));
72 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 72 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
73 YangStringRestriction stringRestriction = (YangStringRestriction) leafInfo 73 YangStringRestriction stringRestriction = (YangStringRestriction) leafInfo
...@@ -99,7 +99,7 @@ public class LengthRestrictionListenerTest { ...@@ -99,7 +99,7 @@ public class LengthRestrictionListenerTest {
99 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 99 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
100 YangLeafList leafListInfo = leafListIterator.next(); 100 YangLeafList leafListInfo = leafListIterator.next();
101 101
102 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 102 + assertThat(leafListInfo.getName(), is("invalid-interval"));
103 assertThat(leafListInfo.getDataType().getDataTypeName(), is("string")); 103 assertThat(leafListInfo.getDataType().getDataTypeName(), is("string"));
104 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 104 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
105 YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo 105 YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo
...@@ -167,7 +167,7 @@ public class LengthRestrictionListenerTest { ...@@ -167,7 +167,7 @@ public class LengthRestrictionListenerTest {
167 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 167 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
168 YangLeafList leafListInfo = leafListIterator.next(); 168 YangLeafList leafListInfo = leafListIterator.next();
169 169
170 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 170 + assertThat(leafListInfo.getName(), is("invalid-interval"));
171 assertThat(leafListInfo.getDataType().getDataTypeName(), is("string")); 171 assertThat(leafListInfo.getDataType().getDataTypeName(), is("string"));
172 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 172 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
173 YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo 173 YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo
...@@ -199,7 +199,7 @@ public class LengthRestrictionListenerTest { ...@@ -199,7 +199,7 @@ public class LengthRestrictionListenerTest {
199 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 199 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
200 YangLeafList leafListInfo = leafListIterator.next(); 200 YangLeafList leafListInfo = leafListIterator.next();
201 201
202 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 202 + assertThat(leafListInfo.getName(), is("invalid-interval"));
203 assertThat(leafListInfo.getDataType().getDataTypeName(), is("string")); 203 assertThat(leafListInfo.getDataType().getDataTypeName(), is("string"));
204 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 204 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
205 YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo 205 YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo
......
...@@ -161,7 +161,7 @@ public class ListListenerTest { ...@@ -161,7 +161,7 @@ public class ListListenerTest {
161 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); 161 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator();
162 YangLeaf leafInfo = leafIterator.next(); 162 YangLeaf leafInfo = leafIterator.next();
163 163
164 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 164 + assertThat(leafInfo.getName(), is("invalid-interval"));
165 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 165 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
166 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 166 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
167 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 167 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -208,4 +208,4 @@ public class ListListenerTest { ...@@ -208,4 +208,4 @@ public class ListListenerTest {
208 thrown.expectMessage("YANG file error : list name 1valid is not valid."); 208 thrown.expectMessage("YANG file error : list name 1valid is not valid.");
209 YangNode node = manager.getDataModel("src/test/resources/ListInvalidIdentifier.yang"); 209 YangNode node = manager.getDataModel("src/test/resources/ListInvalidIdentifier.yang");
210 } 210 }
211 -}
...\ No newline at end of file ...\ No newline at end of file
211 +}
......
...@@ -64,7 +64,7 @@ public class MandatoryListenerTest { ...@@ -64,7 +64,7 @@ public class MandatoryListenerTest {
64 YangLeaf leafInfo = leafIterator.next(); 64 YangLeaf leafInfo = leafIterator.next();
65 65
66 // Check whether the mandatory value is set correctly. 66 // Check whether the mandatory value is set correctly.
67 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 67 + assertThat(leafInfo.getName(), is("invalid-interval"));
68 assertThat(leafInfo.isMandatory(), is(true)); 68 assertThat(leafInfo.isMandatory(), is(true));
69 } 69 }
70 70
...@@ -90,7 +90,7 @@ public class MandatoryListenerTest { ...@@ -90,7 +90,7 @@ public class MandatoryListenerTest {
90 YangLeaf leafInfo = leafIterator.next(); 90 YangLeaf leafInfo = leafIterator.next();
91 91
92 // Check whether the mandatory value is set correctly. 92 // Check whether the mandatory value is set correctly.
93 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 93 + assertThat(leafInfo.getName(), is("invalid-interval"));
94 assertThat(leafInfo.isMandatory(), is(false)); 94 assertThat(leafInfo.isMandatory(), is(false));
95 } 95 }
96 96
...@@ -116,7 +116,7 @@ public class MandatoryListenerTest { ...@@ -116,7 +116,7 @@ public class MandatoryListenerTest {
116 YangLeaf leafInfo = leafIterator.next(); 116 YangLeaf leafInfo = leafIterator.next();
117 117
118 // Check whether the mandatory value is set correctly. 118 // Check whether the mandatory value is set correctly.
119 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 119 + assertThat(leafInfo.getName(), is("invalid-interval"));
120 assertThat(leafInfo.isMandatory(), is(false)); 120 assertThat(leafInfo.isMandatory(), is(false));
121 } 121 }
122 122
...@@ -154,4 +154,4 @@ public class MandatoryListenerTest { ...@@ -154,4 +154,4 @@ public class MandatoryListenerTest {
154 + " 'revision', 'rpc', 'typedef', 'uses', '}'}"); 154 + " 'revision', 'rpc', 'typedef', 'uses', '}'}");
155 YangNode node = manager.getDataModel("src/test/resources/ModuleSubStatementMandatory.yang"); 155 YangNode node = manager.getDataModel("src/test/resources/ModuleSubStatementMandatory.yang");
156 } 156 }
157 -}
...\ No newline at end of file ...\ No newline at end of file
157 +}
......
...@@ -64,7 +64,7 @@ public class MaxElementsListenerTest { ...@@ -64,7 +64,7 @@ public class MaxElementsListenerTest {
64 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 64 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
65 YangLeafList leafListInfo = leafListIterator.next(); 65 YangLeafList leafListInfo = leafListIterator.next();
66 66
67 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 67 + assertThat(leafListInfo.getName(), is("invalid-interval"));
68 assertThat(leafListInfo.getMaxElelements(), is(3)); 68 assertThat(leafListInfo.getMaxElelements(), is(3));
69 } 69 }
70 70
...@@ -148,7 +148,7 @@ public class MaxElementsListenerTest { ...@@ -148,7 +148,7 @@ public class MaxElementsListenerTest {
148 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 148 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
149 YangLeafList leafListInfo = leafListIterator.next(); 149 YangLeafList leafListInfo = leafListIterator.next();
150 150
151 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 151 + assertThat(leafListInfo.getName(), is("invalid-interval"));
152 assertThat(leafListInfo.getMaxElelements(), is(2147483647)); 152 assertThat(leafListInfo.getMaxElelements(), is(2147483647));
153 } 153 }
154 154
...@@ -173,7 +173,7 @@ public class MaxElementsListenerTest { ...@@ -173,7 +173,7 @@ public class MaxElementsListenerTest {
173 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 173 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
174 YangLeafList leafListInfo = leafListIterator.next(); 174 YangLeafList leafListInfo = leafListIterator.next();
175 175
176 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 176 + assertThat(leafListInfo.getName(), is("invalid-interval"));
177 assertThat(leafListInfo.getMaxElelements(), is(2147483647)); 177 assertThat(leafListInfo.getMaxElelements(), is(2147483647));
178 } 178 }
179 -}
...\ No newline at end of file ...\ No newline at end of file
179 +}
......
...@@ -64,7 +64,7 @@ public class MinElementsListenerTest { ...@@ -64,7 +64,7 @@ public class MinElementsListenerTest {
64 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 64 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
65 YangLeafList leafListInfo = leafListIterator.next(); 65 YangLeafList leafListInfo = leafListIterator.next();
66 66
67 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 67 + assertThat(leafListInfo.getName(), is("invalid-interval"));
68 assertThat(leafListInfo.getMinElements(), is(3)); 68 assertThat(leafListInfo.getMinElements(), is(3));
69 } 69 }
70 70
...@@ -159,7 +159,7 @@ public class MinElementsListenerTest { ...@@ -159,7 +159,7 @@ public class MinElementsListenerTest {
159 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 159 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
160 YangLeafList leafListInfo = leafListIterator.next(); 160 YangLeafList leafListInfo = leafListIterator.next();
161 161
162 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 162 + assertThat(leafListInfo.getName(), is("invalid-interval"));
163 assertThat(leafListInfo.getMinElements(), is(0)); 163 assertThat(leafListInfo.getMinElements(), is(0));
164 } 164 }
165 -}
...\ No newline at end of file ...\ No newline at end of file
165 +}
......
...@@ -65,7 +65,7 @@ public class NotificationListenerTest { ...@@ -65,7 +65,7 @@ public class NotificationListenerTest {
65 ListIterator<YangLeaf> leafIterator = yangNotification.getListOfLeaf().listIterator(); 65 ListIterator<YangLeaf> leafIterator = yangNotification.getListOfLeaf().listIterator();
66 YangLeaf leafInfo = leafIterator.next(); 66 YangLeaf leafInfo = leafIterator.next();
67 67
68 - assertThat(leafInfo.getLeafName(), is("if-name")); 68 + assertThat(leafInfo.getName(), is("if-name"));
69 assertThat(leafInfo.getDataType().getDataTypeName(), is("leafref")); 69 assertThat(leafInfo.getDataType().getDataTypeName(), is("leafref"));
70 } 70 }
71 } 71 }
......
...@@ -64,7 +64,7 @@ public class OutputListenerTest { ...@@ -64,7 +64,7 @@ public class OutputListenerTest {
64 ListIterator<YangLeaf> leafIterator = yangOutput.getListOfLeaf().listIterator(); 64 ListIterator<YangLeaf> leafIterator = yangOutput.getListOfLeaf().listIterator();
65 YangLeaf leafInfo = leafIterator.next(); 65 YangLeaf leafInfo = leafIterator.next();
66 66
67 - assertThat(leafInfo.getLeafName(), is("image-name")); 67 + assertThat(leafInfo.getName(), is("image-name"));
68 assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); 68 assertThat(leafInfo.getDataType().getDataTypeName(), is("string"));
69 69
70 YangList yangList = (YangList) yangOutput.getChild(); 70 YangList yangList = (YangList) yangOutput.getChild();
...@@ -75,7 +75,7 @@ public class OutputListenerTest { ...@@ -75,7 +75,7 @@ public class OutputListenerTest {
75 assertThat(yangList.getMinElements(), is(3)); 75 assertThat(yangList.getMinElements(), is(3));
76 leafIterator = yangList.getListOfLeaf().listIterator(); 76 leafIterator = yangList.getListOfLeaf().listIterator();
77 leafInfo = leafIterator.next(); 77 leafInfo = leafIterator.next();
78 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 78 + assertThat(leafInfo.getName(), is("invalid-interval"));
79 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 79 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
80 80
81 YangContainer yangContainer = (YangContainer) yangList.getNextSibling(); 81 YangContainer yangContainer = (YangContainer) yangList.getNextSibling();
...@@ -83,7 +83,7 @@ public class OutputListenerTest { ...@@ -83,7 +83,7 @@ public class OutputListenerTest {
83 83
84 leafIterator = yangContainer.getListOfLeaf().listIterator(); 84 leafIterator = yangContainer.getListOfLeaf().listIterator();
85 leafInfo = leafIterator.next(); 85 leafInfo = leafIterator.next();
86 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 86 + assertThat(leafInfo.getName(), is("invalid-interval"));
87 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 87 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
88 } 88 }
89 89
......
...@@ -58,7 +58,7 @@ public class PatternRestrictionListenerTest { ...@@ -58,7 +58,7 @@ public class PatternRestrictionListenerTest {
58 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 58 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
59 YangLeaf leafInfo = leafIterator.next(); 59 YangLeaf leafInfo = leafIterator.next();
60 60
61 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 61 + assertThat(leafInfo.getName(), is("invalid-interval"));
62 assertThat(leafInfo.getDataType().getDataTypeName(), is("string")); 62 assertThat(leafInfo.getDataType().getDataTypeName(), is("string"));
63 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 63 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
64 YangStringRestriction stringRestriction = (YangStringRestriction) leafInfo 64 YangStringRestriction stringRestriction = (YangStringRestriction) leafInfo
...@@ -84,7 +84,7 @@ public class PatternRestrictionListenerTest { ...@@ -84,7 +84,7 @@ public class PatternRestrictionListenerTest {
84 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 84 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
85 YangLeafList leafListInfo = leafListIterator.next(); 85 YangLeafList leafListInfo = leafListIterator.next();
86 86
87 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 87 + assertThat(leafListInfo.getName(), is("invalid-interval"));
88 assertThat(leafListInfo.getDataType().getDataTypeName(), is("string")); 88 assertThat(leafListInfo.getDataType().getDataTypeName(), is("string"));
89 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 89 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
90 YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo 90 YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo
...@@ -131,7 +131,7 @@ public class PatternRestrictionListenerTest { ...@@ -131,7 +131,7 @@ public class PatternRestrictionListenerTest {
131 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 131 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
132 YangLeafList leafListInfo = leafListIterator.next(); 132 YangLeafList leafListInfo = leafListIterator.next();
133 133
134 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 134 + assertThat(leafListInfo.getName(), is("invalid-interval"));
135 assertThat(leafListInfo.getDataType().getDataTypeName(), is("string")); 135 assertThat(leafListInfo.getDataType().getDataTypeName(), is("string"));
136 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 136 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
137 YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo 137 YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo
...@@ -157,7 +157,7 @@ public class PatternRestrictionListenerTest { ...@@ -157,7 +157,7 @@ public class PatternRestrictionListenerTest {
157 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 157 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
158 YangLeafList leafListInfo = leafListIterator.next(); 158 YangLeafList leafListInfo = leafListIterator.next();
159 159
160 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 160 + assertThat(leafListInfo.getName(), is("invalid-interval"));
161 assertThat(leafListInfo.getDataType().getDataTypeName(), is("string")); 161 assertThat(leafListInfo.getDataType().getDataTypeName(), is("string"));
162 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING)); 162 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
163 YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo 163 YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo
......
...@@ -61,7 +61,7 @@ public class PositionListenerTest { ...@@ -61,7 +61,7 @@ public class PositionListenerTest {
61 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 61 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
62 YangLeaf leafInfo = leafIterator.next(); 62 YangLeaf leafInfo = leafIterator.next();
63 63
64 - assertThat(leafInfo.getLeafName(), is("mybits")); 64 + assertThat(leafInfo.getName(), is("mybits"));
65 assertThat(leafInfo.getDataType().getDataTypeName(), is("bits")); 65 assertThat(leafInfo.getDataType().getDataTypeName(), is("bits"));
66 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.BITS)); 66 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.BITS));
67 assertThat(((YangBits) leafInfo.getDataType().getDataTypeExtendedInfo()).getBitsName(), 67 assertThat(((YangBits) leafInfo.getDataType().getDataTypeExtendedInfo()).getBitsName(),
...@@ -100,7 +100,7 @@ public class PositionListenerTest { ...@@ -100,7 +100,7 @@ public class PositionListenerTest {
100 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 100 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
101 YangLeaf leafInfo = leafIterator.next(); 101 YangLeaf leafInfo = leafIterator.next();
102 102
103 - assertThat(leafInfo.getLeafName(), is("mybits")); 103 + assertThat(leafInfo.getName(), is("mybits"));
104 assertThat(leafInfo.getDataType().getDataTypeName(), is("bits")); 104 assertThat(leafInfo.getDataType().getDataTypeName(), is("bits"));
105 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.BITS)); 105 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.BITS));
106 assertThat(((YangBits) leafInfo.getDataType().getDataTypeExtendedInfo()).getBitsName(), 106 assertThat(((YangBits) leafInfo.getDataType().getDataTypeExtendedInfo()).getBitsName(),
...@@ -139,7 +139,7 @@ public class PositionListenerTest { ...@@ -139,7 +139,7 @@ public class PositionListenerTest {
139 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 139 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
140 YangLeaf leafInfo = leafIterator.next(); 140 YangLeaf leafInfo = leafIterator.next();
141 141
142 - assertThat(leafInfo.getLeafName(), is("mybits")); 142 + assertThat(leafInfo.getName(), is("mybits"));
143 assertThat(leafInfo.getDataType().getDataTypeName(), is("bits")); 143 assertThat(leafInfo.getDataType().getDataTypeName(), is("bits"));
144 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.BITS)); 144 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.BITS));
145 assertThat(((YangBits) leafInfo.getDataType().getDataTypeExtendedInfo()).getBitsName(), 145 assertThat(((YangBits) leafInfo.getDataType().getDataTypeExtendedInfo()).getBitsName(),
......
...@@ -63,7 +63,7 @@ public class RangeRestrictionListenerTest { ...@@ -63,7 +63,7 @@ public class RangeRestrictionListenerTest {
63 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 63 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
64 YangLeaf leafInfo = leafIterator.next(); 64 YangLeaf leafInfo = leafIterator.next();
65 65
66 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 66 + assertThat(leafInfo.getName(), is("invalid-interval"));
67 assertThat(leafInfo.getDataType().getDataTypeName(), is("int32")); 67 assertThat(leafInfo.getDataType().getDataTypeName(), is("int32"));
68 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.INT32)); 68 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.INT32));
69 YangRangeRestriction rangeRestriction = (YangRangeRestriction) leafInfo 69 YangRangeRestriction rangeRestriction = (YangRangeRestriction) leafInfo
...@@ -92,7 +92,7 @@ public class RangeRestrictionListenerTest { ...@@ -92,7 +92,7 @@ public class RangeRestrictionListenerTest {
92 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 92 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
93 YangLeafList leafListInfo = leafListIterator.next(); 93 YangLeafList leafListInfo = leafListIterator.next();
94 94
95 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 95 + assertThat(leafListInfo.getName(), is("invalid-interval"));
96 assertThat(leafListInfo.getDataType().getDataTypeName(), is("int32")); 96 assertThat(leafListInfo.getDataType().getDataTypeName(), is("int32"));
97 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.INT32)); 97 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.INT32));
98 YangRangeRestriction rangeRestriction = (YangRangeRestriction) leafListInfo 98 YangRangeRestriction rangeRestriction = (YangRangeRestriction) leafListInfo
...@@ -122,7 +122,7 @@ public class RangeRestrictionListenerTest { ...@@ -122,7 +122,7 @@ public class RangeRestrictionListenerTest {
122 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 122 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
123 YangLeafList leafListInfo = leafListIterator.next(); 123 YangLeafList leafListInfo = leafListIterator.next();
124 124
125 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 125 + assertThat(leafListInfo.getName(), is("invalid-interval"));
126 assertThat(leafListInfo.getDataType().getDataTypeName(), is("int32")); 126 assertThat(leafListInfo.getDataType().getDataTypeName(), is("int32"));
127 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.INT32)); 127 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.INT32));
128 YangRangeRestriction rangeRestriction = (YangRangeRestriction) leafListInfo 128 YangRangeRestriction rangeRestriction = (YangRangeRestriction) leafListInfo
...@@ -152,7 +152,7 @@ public class RangeRestrictionListenerTest { ...@@ -152,7 +152,7 @@ public class RangeRestrictionListenerTest {
152 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 152 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
153 YangLeafList leafListInfo = leafListIterator.next(); 153 YangLeafList leafListInfo = leafListIterator.next();
154 154
155 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 155 + assertThat(leafListInfo.getName(), is("invalid-interval"));
156 assertThat(leafListInfo.getDataType().getDataTypeName(), is("int32")); 156 assertThat(leafListInfo.getDataType().getDataTypeName(), is("int32"));
157 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.INT32)); 157 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.INT32));
158 YangRangeRestriction rangeRestriction = (YangRangeRestriction) leafListInfo 158 YangRangeRestriction rangeRestriction = (YangRangeRestriction) leafListInfo
...@@ -175,4 +175,4 @@ public class RangeRestrictionListenerTest { ...@@ -175,4 +175,4 @@ public class RangeRestrictionListenerTest {
175 thrown.expectMessage("YANG file error : a is not valid."); 175 thrown.expectMessage("YANG file error : a is not valid.");
176 YangNode node = manager.getDataModel("src/test/resources/RangeWithInvalidIntegerPattern.yang"); 176 YangNode node = manager.getDataModel("src/test/resources/RangeWithInvalidIntegerPattern.yang");
177 } 177 }
178 -}
...\ No newline at end of file ...\ No newline at end of file
178 +}
......
...@@ -68,7 +68,7 @@ public class ReferenceListenerTest { ...@@ -68,7 +68,7 @@ public class ReferenceListenerTest {
68 YangLeaf leafInfo = leafIterator.next(); 68 YangLeaf leafInfo = leafIterator.next();
69 69
70 // Check whether the reference is set correctly. 70 // Check whether the reference is set correctly.
71 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 71 + assertThat(leafInfo.getName(), is("invalid-interval"));
72 assertThat(leafInfo.getReference(), is("\"RFC 6020\"")); 72 assertThat(leafInfo.getReference(), is("\"RFC 6020\""));
73 } 73 }
74 74
...@@ -175,7 +175,7 @@ public class ReferenceListenerTest { ...@@ -175,7 +175,7 @@ public class ReferenceListenerTest {
175 ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator(); 175 ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator();
176 YangLeaf leafInfo = leafIterator.next(); 176 YangLeaf leafInfo = leafIterator.next();
177 177
178 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 178 + assertThat(leafInfo.getName(), is("invalid-interval"));
179 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 179 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
180 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 180 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
181 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 181 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -212,7 +212,7 @@ public class ReferenceListenerTest { ...@@ -212,7 +212,7 @@ public class ReferenceListenerTest {
212 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); 212 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator();
213 YangLeaf leafInfo = leafIterator.next(); 213 YangLeaf leafInfo = leafIterator.next();
214 214
215 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 215 + assertThat(leafInfo.getName(), is("invalid-interval"));
216 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 216 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
217 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 217 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
218 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 218 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -244,7 +244,7 @@ public class ReferenceListenerTest { ...@@ -244,7 +244,7 @@ public class ReferenceListenerTest {
244 YangLeafList leafListInfo = leafListIterator.next(); 244 YangLeafList leafListInfo = leafListIterator.next();
245 245
246 // Check whether description value is set correctly. 246 // Check whether description value is set correctly.
247 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 247 + assertThat(leafListInfo.getName(), is("invalid-interval"));
248 assertThat(leafListInfo.getReference(), is("\"RFC 6020\"")); 248 assertThat(leafListInfo.getReference(), is("\"RFC 6020\""));
249 } 249 }
250 -}
...\ No newline at end of file ...\ No newline at end of file
250 +}
......
...@@ -68,7 +68,7 @@ public class StatusListenerTest { ...@@ -68,7 +68,7 @@ public class StatusListenerTest {
68 YangLeaf leafInfo = leafIterator.next(); 68 YangLeaf leafInfo = leafIterator.next();
69 69
70 // Check whether the status is set correctly. 70 // Check whether the status is set correctly.
71 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 71 + assertThat(leafInfo.getName(), is("invalid-interval"));
72 assertThat(leafInfo.getStatus(), is(YangStatusType.CURRENT)); 72 assertThat(leafInfo.getStatus(), is(YangStatusType.CURRENT));
73 } 73 }
74 74
...@@ -94,7 +94,7 @@ public class StatusListenerTest { ...@@ -94,7 +94,7 @@ public class StatusListenerTest {
94 YangLeaf leafInfo = leafIterator.next(); 94 YangLeaf leafInfo = leafIterator.next();
95 95
96 // Check whether the status is set correctly. 96 // Check whether the status is set correctly.
97 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 97 + assertThat(leafInfo.getName(), is("invalid-interval"));
98 assertThat(leafInfo.getStatus(), is(YangStatusType.DEPRECATED)); 98 assertThat(leafInfo.getStatus(), is(YangStatusType.DEPRECATED));
99 } 99 }
100 100
...@@ -120,7 +120,7 @@ public class StatusListenerTest { ...@@ -120,7 +120,7 @@ public class StatusListenerTest {
120 YangLeaf leafInfo = leafIterator.next(); 120 YangLeaf leafInfo = leafIterator.next();
121 121
122 // Check whether the status is set correctly. 122 // Check whether the status is set correctly.
123 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 123 + assertThat(leafInfo.getName(), is("invalid-interval"));
124 assertThat(leafInfo.getStatus(), is(YangStatusType.OBSOLETE)); 124 assertThat(leafInfo.getStatus(), is(YangStatusType.OBSOLETE));
125 } 125 }
126 126
...@@ -185,7 +185,7 @@ public class StatusListenerTest { ...@@ -185,7 +185,7 @@ public class StatusListenerTest {
185 ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator(); 185 ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator();
186 YangLeaf leafInfo = leafIterator.next(); 186 YangLeaf leafInfo = leafIterator.next();
187 187
188 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 188 + assertThat(leafInfo.getName(), is("invalid-interval"));
189 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 189 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
190 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 190 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
191 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 191 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -222,7 +222,7 @@ public class StatusListenerTest { ...@@ -222,7 +222,7 @@ public class StatusListenerTest {
222 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); 222 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator();
223 YangLeaf leafInfo = leafIterator.next(); 223 YangLeaf leafInfo = leafIterator.next();
224 224
225 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 225 + assertThat(leafInfo.getName(), is("invalid-interval"));
226 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 226 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
227 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 227 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
228 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 228 assertThat(leafInfo.getUnits(), is("\"seconds\""));
...@@ -254,7 +254,7 @@ public class StatusListenerTest { ...@@ -254,7 +254,7 @@ public class StatusListenerTest {
254 YangLeafList leafListInfo = leafListIterator.next(); 254 YangLeafList leafListInfo = leafListIterator.next();
255 255
256 // Check whether status is set correctly. 256 // Check whether status is set correctly.
257 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 257 + assertThat(leafListInfo.getName(), is("invalid-interval"));
258 assertThat(leafListInfo.isConfig(), is(true)); 258 assertThat(leafListInfo.isConfig(), is(true));
259 assertThat(leafListInfo.getStatus(), is(YangStatusType.CURRENT)); 259 assertThat(leafListInfo.getStatus(), is(YangStatusType.CURRENT));
260 } 260 }
...@@ -281,8 +281,8 @@ public class StatusListenerTest { ...@@ -281,8 +281,8 @@ public class StatusListenerTest {
281 YangLeafList leafListInfo = leafListIterator.next(); 281 YangLeafList leafListInfo = leafListIterator.next();
282 282
283 // Check whether status is set correctly. 283 // Check whether status is set correctly.
284 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 284 + assertThat(leafListInfo.getName(), is("invalid-interval"));
285 assertThat(leafListInfo.isConfig(), is(true)); 285 assertThat(leafListInfo.isConfig(), is(true));
286 assertThat(leafListInfo.getStatus(), is(YangStatusType.CURRENT)); 286 assertThat(leafListInfo.getStatus(), is(YangStatusType.CURRENT));
287 } 287 }
288 -}
...\ No newline at end of file ...\ No newline at end of file
288 +}
......
...@@ -58,7 +58,7 @@ public class TypeListenerTest { ...@@ -58,7 +58,7 @@ public class TypeListenerTest {
58 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 58 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
59 YangLeaf leafInfo = leafIterator.next(); 59 YangLeaf leafInfo = leafIterator.next();
60 60
61 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 61 + assertThat(leafInfo.getName(), is("invalid-interval"));
62 assertThat(leafInfo.getDataType().getDataTypeName(), is("hello")); 62 assertThat(leafInfo.getDataType().getDataTypeName(), is("hello"));
63 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED)); 63 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.DERIVED));
64 } 64 }
...@@ -84,7 +84,7 @@ public class TypeListenerTest { ...@@ -84,7 +84,7 @@ public class TypeListenerTest {
84 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 84 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
85 YangLeaf leafInfo = leafIterator.next(); 85 YangLeaf leafInfo = leafIterator.next();
86 86
87 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 87 + assertThat(leafInfo.getName(), is("invalid-interval"));
88 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 88 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
89 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 89 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
90 } 90 }
...@@ -110,8 +110,8 @@ public class TypeListenerTest { ...@@ -110,8 +110,8 @@ public class TypeListenerTest {
110 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); 110 ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
111 YangLeafList leafListInfo = leafListIterator.next(); 111 YangLeafList leafListInfo = leafListIterator.next();
112 112
113 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 113 + assertThat(leafListInfo.getName(), is("invalid-interval"));
114 assertThat(leafListInfo.getDataType().getDataTypeName(), is("uint16")); 114 assertThat(leafListInfo.getDataType().getDataTypeName(), is("uint16"));
115 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.UINT16)); 115 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.UINT16));
116 } 116 }
117 -}
...\ No newline at end of file ...\ No newline at end of file
117 +}
......
...@@ -66,7 +66,7 @@ public class UnionListenerTest { ...@@ -66,7 +66,7 @@ public class UnionListenerTest {
66 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); 66 ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator();
67 YangLeaf leafInfo = leafIterator.next(); 67 YangLeaf leafInfo = leafIterator.next();
68 68
69 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 69 + assertThat(leafInfo.getName(), is("invalid-interval"));
70 70
71 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UNION)); 71 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.UNION));
72 assertThat(leafInfo.getDataType().getDataTypeName(), is("union")); 72 assertThat(leafInfo.getDataType().getDataTypeName(), is("union"));
...@@ -110,7 +110,7 @@ public class UnionListenerTest { ...@@ -110,7 +110,7 @@ public class UnionListenerTest {
110 ListIterator<YangLeafList> leafListIterator = yangList.getListOfLeafList().listIterator(); 110 ListIterator<YangLeafList> leafListIterator = yangList.getListOfLeafList().listIterator();
111 YangLeafList leafListInfo = leafListIterator.next(); 111 YangLeafList leafListInfo = leafListIterator.next();
112 112
113 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 113 + assertThat(leafListInfo.getName(), is("invalid-interval"));
114 114
115 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.UNION)); 115 assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.UNION));
116 assertThat(leafListInfo.getDataType().getDataTypeName(), is("union")); 116 assertThat(leafListInfo.getDataType().getDataTypeName(), is("union"));
......
...@@ -66,7 +66,7 @@ public class UnitsListenerTest { ...@@ -66,7 +66,7 @@ public class UnitsListenerTest {
66 YangLeaf leafInfo = leafIterator.next(); 66 YangLeaf leafInfo = leafIterator.next();
67 67
68 // Check whether units value is set correctly. 68 // Check whether units value is set correctly.
69 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 69 + assertThat(leafInfo.getName(), is("invalid-interval"));
70 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 70 assertThat(leafInfo.getUnits(), is("\"seconds\""));
71 } 71 }
72 72
...@@ -115,7 +115,7 @@ public class UnitsListenerTest { ...@@ -115,7 +115,7 @@ public class UnitsListenerTest {
115 YangLeaf leafInfo = leafIterator.next(); 115 YangLeaf leafInfo = leafIterator.next();
116 116
117 // Check whether leaf properties is set correctly. 117 // Check whether leaf properties is set correctly.
118 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 118 + assertThat(leafInfo.getName(), is("invalid-interval"));
119 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16")); 119 assertThat(leafInfo.getDataType().getDataTypeName(), is("uint16"));
120 assertThat(leafInfo.getUnits(), is("\"seconds\"")); 120 assertThat(leafInfo.getUnits(), is("\"seconds\""));
121 assertThat(leafInfo.getDescription(), is("\"Interval before a route is declared invalid\"")); 121 assertThat(leafInfo.getDescription(), is("\"Interval before a route is declared invalid\""));
...@@ -146,7 +146,7 @@ public class UnitsListenerTest { ...@@ -146,7 +146,7 @@ public class UnitsListenerTest {
146 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 146 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
147 YangLeaf leafInfo = leafIterator.next(); 147 YangLeaf leafInfo = leafIterator.next();
148 148
149 - assertThat(leafInfo.getLeafName(), is("invalid-interval")); 149 + assertThat(leafInfo.getName(), is("invalid-interval"));
150 assertThat(leafInfo.getUnits(), is(nullValue())); 150 assertThat(leafInfo.getUnits(), is(nullValue()));
151 } 151 }
152 152
...@@ -182,7 +182,7 @@ public class UnitsListenerTest { ...@@ -182,7 +182,7 @@ public class UnitsListenerTest {
182 YangLeafList leafListInfo = leafListIterator.next(); 182 YangLeafList leafListInfo = leafListIterator.next();
183 183
184 // Check whether units value is set correctly. 184 // Check whether units value is set correctly.
185 - assertThat(leafListInfo.getLeafName(), is("invalid-interval")); 185 + assertThat(leafListInfo.getName(), is("invalid-interval"));
186 assertThat(leafListInfo.getUnits(), is("\"seconds\"")); 186 assertThat(leafListInfo.getUnits(), is("\"seconds\""));
187 } 187 }
188 -}
...\ No newline at end of file ...\ No newline at end of file
188 +}
......
...@@ -61,7 +61,7 @@ public class ValueListenerTest { ...@@ -61,7 +61,7 @@ public class ValueListenerTest {
61 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 61 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
62 YangLeaf leafInfo = leafIterator.next(); 62 YangLeaf leafInfo = leafIterator.next();
63 63
64 - assertThat(leafInfo.getLeafName(), is("speed")); 64 + assertThat(leafInfo.getName(), is("speed"));
65 assertThat(leafInfo.getDataType().getDataTypeName(), is("enumeration")); 65 assertThat(leafInfo.getDataType().getDataTypeName(), is("enumeration"));
66 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.ENUMERATION)); 66 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.ENUMERATION));
67 assertThat(((YangEnumeration) leafInfo.getDataType().getDataTypeExtendedInfo()).getName(), 67 assertThat(((YangEnumeration) leafInfo.getDataType().getDataTypeExtendedInfo()).getName(),
...@@ -100,7 +100,7 @@ public class ValueListenerTest { ...@@ -100,7 +100,7 @@ public class ValueListenerTest {
100 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); 100 ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
101 YangLeaf leafInfo = leafIterator.next(); 101 YangLeaf leafInfo = leafIterator.next();
102 102
103 - assertThat(leafInfo.getLeafName(), is("speed")); 103 + assertThat(leafInfo.getName(), is("speed"));
104 assertThat(leafInfo.getDataType().getDataTypeName(), is("enumeration")); 104 assertThat(leafInfo.getDataType().getDataTypeName(), is("enumeration"));
105 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.ENUMERATION)); 105 assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.ENUMERATION));
106 assertThat(((YangEnumeration) leafInfo.getDataType().getDataTypeExtendedInfo()).getName(), 106 assertThat(((YangEnumeration) leafInfo.getDataType().getDataTypeExtendedInfo()).getName(),
......
1 +/*
2 + * Copyright 2016-present Open Networking Laboratory
3 + *
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 +
17 +package org.onosproject.yangutils.parser.parseutils;
18 +
19 +import org.junit.Test;
20 +
21 +import static org.hamcrest.core.Is.is;
22 +import static org.junit.Assert.assertThat;
23 +import static org.onosproject.yangutils.utils.YangConstructType.CONTACT_DATA;
24 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
25 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructExtendedListenerErrorMessage;
26 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
27 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER;
28 +
29 +/**
30 + * Test case for testing listener error message construction util.
31 + */
32 +public class ListenerErrorMessageConstructionTest {
33 +
34 + /**
35 + * Checks for error message construction with parsable data type name.
36 + */
37 + @Test
38 + public void checkErrorMsgConstructionWithName() {
39 +
40 + // Create an test error message
41 + String testErrorMessage = constructListenerErrorMessage(INVALID_HOLDER, CONTACT_DATA, "Test Instance", ENTRY);
42 +
43 + // Check message.
44 + assertThat(testErrorMessage, is("Internal parser error detected: Invalid holder for contact "
45 + + "\"Test Instance\" before processing."));
46 + }
47 +
48 + /**
49 + * Checks for error message construction without parsable data type name.
50 + */
51 + @Test
52 + public void checkErrorMsgConstructionWithoutName() {
53 +
54 + // Create an test error message
55 + String testErrorMessage = constructListenerErrorMessage(INVALID_HOLDER, CONTACT_DATA, "Test Instance", ENTRY);
56 +
57 + // Check message.
58 + assertThat(testErrorMessage,
59 + is("Internal parser error detected: Invalid holder for contact \"Test Instance\""
60 + + " before processing."));
61 + }
62 +
63 + /**
64 + * Checks for extended error message construction with parsable data type
65 + * name.
66 + */
67 + @Test
68 + public void checkExtendedErrorMsgConstructionWithName() {
69 +
70 + // Create an test error message
71 + String testErrorMessage = constructExtendedListenerErrorMessage(INVALID_HOLDER, CONTACT_DATA,
72 + "Test Instance", ENTRY,
73 + "Extended Information");
74 +
75 + // Check message.
76 + assertThat(testErrorMessage,
77 + is("Internal parser error detected: Invalid holder for contact \"Test Instance\""
78 + + " before processing.\n" + "Error Information: Extended Information"));
79 + }
80 +
81 + /**
82 + * Checks for extended error message construction without parsable data type
83 + * name.
84 + */
85 + @Test
86 + public void checkExtendedErrorMsgConstructionWithoutName() {
87 +
88 + // Create an test error message
89 + String testErrorMessage = constructExtendedListenerErrorMessage(INVALID_HOLDER, CONTACT_DATA, "", ENTRY,
90 + "Extended Information");
91 +
92 + // Check message.
93 + assertThat(testErrorMessage, is("Internal parser error detected: Invalid holder for contact"
94 + + " before processing.\n" + "Error Information: Extended Information"));
95 + }
96 +}
1 +/*
2 + * Copyright 2016-present Open Networking Laboratory
3 + *
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 +
17 +package org.onosproject.yangutils.parser.parseutils;
18 +
19 +import org.junit.Rule;
20 +import org.junit.Test;
21 +import org.junit.rules.ExpectedException;
22 +import org.onosproject.yangutils.datamodel.YangRevision;
23 +import org.onosproject.yangutils.parser.exceptions.ParserException;
24 +import org.onosproject.yangutils.parser.impl.TreeWalkListener;
25 +
26 +import static org.onosproject.yangutils.utils.YangConstructType.YANGBASE_DATA;
27 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT;
28 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
29 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
30 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsEmpty;
31 +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
32 +
33 +/**
34 + * Test case for testing listener validation util.
35 + */
36 +public class ListenerValidationTest {
37 +
38 + @Rule
39 + public ExpectedException thrown = ExpectedException.none();
40 +
41 + /**
42 + * Checks for exception in case parsable stack is empty while validating for
43 + * not empty scenario.
44 + */
45 + @Test
46 + public void validateStackIsNotEmptyForEmptyStack() {
47 +
48 + String expectedError = constructListenerErrorMessage(MISSING_HOLDER, YANGBASE_DATA, "", EXIT);
49 +
50 + // Get the exception occurred during parsing.
51 + thrown.expect(ParserException.class);
52 + thrown.expectMessage(expectedError);
53 +
54 + // Create test walker and assign test error to it.
55 + TreeWalkListener testWalker = new TreeWalkListener();
56 +
57 + checkStackIsNotEmpty(testWalker, MISSING_HOLDER, YANGBASE_DATA, "", EXIT);
58 + }
59 +
60 + /**
61 + * Checks if there is no exception in case parsable stack is not empty while
62 + * validating for not empty scenario.
63 + */
64 + @Test
65 + public void validateStackIsNotEmptyForNonEmptyStack() {
66 +
67 + // Create test walker and assign test error to it.
68 + TreeWalkListener testWalker = new TreeWalkListener();
69 +
70 + // Create a temporary node of parsable.
71 + YangRevision tmpNode = new YangRevision();
72 + testWalker.getParsedDataStack().push(tmpNode);
73 +
74 + checkStackIsNotEmpty(testWalker, MISSING_HOLDER, YANGBASE_DATA, "", EXIT);
75 + }
76 +
77 + /**
78 + * Checks for exception in case parsable stack is not empty while validating
79 + * for empty scenario.
80 + */
81 + @Test
82 + public void validateStackIsEmptyForNonEmptyStack() {
83 +
84 + String expectedError = constructListenerErrorMessage(MISSING_HOLDER, YANGBASE_DATA, "", EXIT);
85 +
86 + // Get the exception occurred during parsing.
87 + thrown.expect(ParserException.class);
88 + thrown.expectMessage(expectedError);
89 +
90 + // Create test walker and assign test error to it.
91 + TreeWalkListener testWalker = new TreeWalkListener();
92 +
93 + // Create a temporary node of parsable.
94 + YangRevision tmpNode = new YangRevision();
95 + testWalker.getParsedDataStack().push(tmpNode);
96 +
97 + checkStackIsEmpty(testWalker, MISSING_HOLDER, YANGBASE_DATA, "", EXIT);
98 + }
99 +
100 + /**
101 + * Checks if there is no exception in case parsable stack is empty while
102 + * validating for empty scenario.
103 + */
104 + @Test
105 + public void validateStackIsEmptyForEmptyStack() {
106 +
107 + // Create test walker and assign test error to it.
108 + TreeWalkListener testWalker = new TreeWalkListener();
109 +
110 + checkStackIsEmpty(testWalker, MISSING_HOLDER, YANGBASE_DATA, "", EXIT);
111 + }
112 +}
1 +/*
2 + * Copyright 2016-present Open Networking Laboratory
3 + *
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 +
17 +package org.onosproject.yangutils.parser.parseutils;
18 +
19 +import org.antlr.v4.runtime.ANTLRFileStream;
20 +import org.antlr.v4.runtime.ANTLRInputStream;
21 +import org.antlr.v4.runtime.CommonTokenStream;
22 +import org.antlr.v4.runtime.tree.ParseTree;
23 +import org.junit.Rule;
24 +import org.junit.Test;
25 +import org.junit.rules.ExpectedException;
26 +import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangLexer;
27 +import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser;
28 +import org.onosproject.yangutils.parser.exceptions.ParserException;
29 +import org.onosproject.yangutils.parser.impl.CustomExceptionMatcher;
30 +import org.onosproject.yangutils.parser.impl.YangUtilsParserManager;
31 +import org.onosproject.yangutils.parser.impl.parserutils.ParseTreeErrorListener;
32 +
33 +import java.io.BufferedWriter;
34 +import java.io.File;
35 +import java.io.IOException;
36 +
37 +/**
38 + * Test case for testing parse tree error listener.
39 + */
40 +public class ParseTreeErrorListenerTest {
41 +
42 + YangUtilsParserManager manager = new YangUtilsParserManager();
43 + File file;
44 + BufferedWriter out;
45 +
46 + @Rule
47 + public ExpectedException thrown = ExpectedException.none();
48 +
49 + /**
50 + * Checks that no exception is generated for YANG file with valid syntax.
51 + */
52 + @Test
53 + public void checkValidYangFileForNoSyntaxError() throws IOException {
54 +
55 + ANTLRInputStream input = new ANTLRFileStream("src/test/resources/YangFileWithoutSyntaxError.yang");
56 +
57 + // Create a lexer that feeds off of input char stream.
58 + GeneratedYangLexer lexer = new GeneratedYangLexer(input);
59 + // Create a buffer of tokens pulled from the lexer.
60 + CommonTokenStream tokens = new CommonTokenStream(lexer);
61 + // Create a parser that feeds off the tokens buffer.
62 + GeneratedYangParser parser = new GeneratedYangParser(tokens);
63 + // Remove console error listener.
64 + parser.removeErrorListeners();
65 + // Create instance of customized error listener.
66 + ParseTreeErrorListener parseTreeErrorListener = new ParseTreeErrorListener();
67 + // Add customized error listener to catch errors during parsing.
68 + parser.addErrorListener(parseTreeErrorListener);
69 + // Begin parsing YANG file and generate parse tree.
70 + ParseTree tree = parser.yangfile();
71 + }
72 +
73 + /**
74 + * Checks that exception is generated for YANG file with invalid syntax.
75 + */
76 + @Test
77 + public void checkInvalidYangFileForSyntaxError() throws IOException {
78 +
79 + // Get the exception occurred during parsing.
80 + thrown.expect(ParserException.class);
81 + thrown.expect(CustomExceptionMatcher.errorLocation(3, 0));
82 + thrown.expectMessage("no viable alternative at input 'yang-version 1\\nnamespace'");
83 +
84 + ANTLRInputStream input = new ANTLRFileStream("src/test/resources/YangFileWithSyntaxError.yang");
85 +
86 + // Create a lexer that feeds off of input char stream.
87 + GeneratedYangLexer lexer = new GeneratedYangLexer(input);
88 + // Create a buffer of tokens pulled from the lexer.
89 + CommonTokenStream tokens = new CommonTokenStream(lexer);
90 + // Create a parser that feeds off the tokens buffer.
91 + GeneratedYangParser parser = new GeneratedYangParser(tokens);
92 + // Remove console error listener.
93 + parser.removeErrorListeners();
94 + // Create instance of customized error listener.
95 + ParseTreeErrorListener parseTreeErrorListener = new ParseTreeErrorListener();
96 + // Add customized error listener to catch errors during parsing.
97 + parser.addErrorListener(parseTreeErrorListener);
98 + // Begin parsing YANG file and generate parse tree.
99 + ParseTree tree = parser.yangfile();
100 + }
101 +}
...\ No newline at end of file ...\ No newline at end of file
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
17 package org.onosproject.yangutils.translator.tojava.utils; 17 package org.onosproject.yangutils.translator.tojava.utils;
18 18
19 import java.io.IOException; 19 import java.io.IOException;
20 +
20 import org.junit.Test; 21 import org.junit.Test;
21 import org.onosproject.yangutils.datamodel.YangNode; 22 import org.onosproject.yangutils.datamodel.YangNode;
22 import org.onosproject.yangutils.parser.exceptions.ParserException; 23 import org.onosproject.yangutils.parser.exceptions.ParserException;
...@@ -36,7 +37,8 @@ public final class RpcTranslatorTest { ...@@ -36,7 +37,8 @@ public final class RpcTranslatorTest {
36 * Checks rpc translation should not result in any exception. 37 * Checks rpc translation should not result in any exception.
37 */ 38 */
38 @Test 39 @Test
39 - public void processRpcTranslator() throws IOException, ParserException { 40 + public void processRpcTranslator()
41 + throws IOException, ParserException {
40 42
41 String userDir = System.getProperty("user.dir"); 43 String userDir = System.getProperty("user.dir");
42 YangNode node = manager.getDataModel("src/test/resources/RpcTranslator.yang"); 44 YangNode node = manager.getDataModel("src/test/resources/RpcTranslator.yang");
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
17 package org.onosproject.yangutils.translator.tojava.utils; 17 package org.onosproject.yangutils.translator.tojava.utils;
18 18
19 import java.io.IOException; 19 import java.io.IOException;
20 +
20 import org.junit.Test; 21 import org.junit.Test;
21 import org.onosproject.yangutils.datamodel.YangNode; 22 import org.onosproject.yangutils.datamodel.YangNode;
22 import org.onosproject.yangutils.parser.exceptions.ParserException; 23 import org.onosproject.yangutils.parser.exceptions.ParserException;
...@@ -36,7 +37,8 @@ public final class UnionTranslatorTest { ...@@ -36,7 +37,8 @@ public final class UnionTranslatorTest {
36 * Checks union translation should not result in any exception. 37 * Checks union translation should not result in any exception.
37 */ 38 */
38 @Test 39 @Test
39 - public void processUnionTranslator() throws IOException, ParserException { 40 + public void processUnionTranslator()
41 + throws IOException, ParserException {
40 42
41 clean("src/test/org/onosproject/yang"); 43 clean("src/test/org/onosproject/yang");
42 44
......