Committed by
Patrick Liu
[ONOS-4829] Augmented data method generator implmentation.
Change-Id: I0cb68dd10a748e5b66eec0b832574f408a23ba5c
Showing
66 changed files
with
1957 additions
and
1083 deletions
... | @@ -15,8 +15,10 @@ | ... | @@ -15,8 +15,10 @@ |
15 | */ | 15 | */ |
16 | package org.onosproject.yangutils.datamodel; | 16 | package org.onosproject.yangutils.datamodel; |
17 | 17 | ||
18 | +import java.util.HashMap; | ||
18 | import java.util.LinkedList; | 19 | import java.util.LinkedList; |
19 | import java.util.List; | 20 | import java.util.List; |
21 | +import java.util.Map; | ||
20 | 22 | ||
21 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 23 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
22 | import org.onosproject.yangutils.datamodel.utils.Parsable; | 24 | import org.onosproject.yangutils.datamodel.utils.Parsable; |
... | @@ -128,9 +130,13 @@ public class YangAugment | ... | @@ -128,9 +130,13 @@ public class YangAugment |
128 | private YangNode augmentedNode; | 130 | private YangNode augmentedNode; |
129 | 131 | ||
130 | /** | 132 | /** |
131 | - * Status of resolution. If completely resolved enum value is "RESOLVED", | 133 | + * All resolved nodes in given xPath. |
132 | - * if not enum value is "UNRESOLVED", in case reference of grouping/typedef | 134 | + */ |
133 | - * is added to uses/type but it's not resolved value of enum should be | 135 | + private Map<YangAtomicPath, YangNode> resolveNodeInPath; |
136 | + | ||
137 | + /** | ||
138 | + * Status of resolution. If completely resolved enum value is "RESOLVED", if not enum value is "UNRESOLVED", in case | ||
139 | + * reference of grouping/typedef is added to uses/type but it's not resolved value of enum should be | ||
134 | * "INTRA_FILE_RESOLVED". | 140 | * "INTRA_FILE_RESOLVED". |
135 | */ | 141 | */ |
136 | private ResolvableStatus resolvableStatus; | 142 | private ResolvableStatus resolvableStatus; |
... | @@ -150,6 +156,7 @@ public class YangAugment | ... | @@ -150,6 +156,7 @@ public class YangAugment |
150 | */ | 156 | */ |
151 | public YangAugment() { | 157 | public YangAugment() { |
152 | super(YangNodeType.AUGMENT_NODE); | 158 | super(YangNodeType.AUGMENT_NODE); |
159 | + resolveNodeInPath = new HashMap<>(); | ||
153 | resolvableStatus = ResolvableStatus.UNRESOLVED; | 160 | resolvableStatus = ResolvableStatus.UNRESOLVED; |
154 | } | 161 | } |
155 | 162 | ||
... | @@ -411,6 +418,11 @@ public class YangAugment | ... | @@ -411,6 +418,11 @@ public class YangAugment |
411 | } | 418 | } |
412 | 419 | ||
413 | @Override | 420 | @Override |
421 | + public void setIfFeatureList(List<YangIfFeature> ifFeatureList) { | ||
422 | + this.ifFeatureList = ifFeatureList; | ||
423 | + } | ||
424 | + | ||
425 | + @Override | ||
414 | public void addIfFeatureList(YangIfFeature ifFeature) { | 426 | public void addIfFeatureList(YangIfFeature ifFeature) { |
415 | if (getIfFeatureList() == null) { | 427 | if (getIfFeatureList() == null) { |
416 | setIfFeatureList(new LinkedList<>()); | 428 | setIfFeatureList(new LinkedList<>()); |
... | @@ -419,11 +431,6 @@ public class YangAugment | ... | @@ -419,11 +431,6 @@ public class YangAugment |
419 | } | 431 | } |
420 | 432 | ||
421 | @Override | 433 | @Override |
422 | - public void setIfFeatureList(List<YangIfFeature> ifFeatureList) { | ||
423 | - this.ifFeatureList = ifFeatureList; | ||
424 | - } | ||
425 | - | ||
426 | - @Override | ||
427 | public ResolvableStatus getResolvableStatus() { | 434 | public ResolvableStatus getResolvableStatus() { |
428 | return resolvableStatus; | 435 | return resolvableStatus; |
429 | } | 436 | } |
... | @@ -438,4 +445,22 @@ public class YangAugment | ... | @@ -438,4 +445,22 @@ public class YangAugment |
438 | public void resolve() throws DataModelException { | 445 | public void resolve() throws DataModelException { |
439 | // Resolving of target node is being done in XPathLinker. | 446 | // Resolving of target node is being done in XPathLinker. |
440 | } | 447 | } |
448 | + | ||
449 | + /** | ||
450 | + * Returns all resolved node in path. | ||
451 | + * | ||
452 | + * @return all resolved node in path | ||
453 | + */ | ||
454 | + public Map<YangAtomicPath, YangNode> getResolveNodeInPath() { | ||
455 | + return resolveNodeInPath; | ||
456 | + } | ||
457 | + | ||
458 | + /** | ||
459 | + * Sets all resolved node in path. | ||
460 | + * | ||
461 | + * @param resolveNodeInPath all resolved node in path | ||
462 | + */ | ||
463 | + public void setResolveNodeInPath(Map<YangAtomicPath, YangNode> resolveNodeInPath) { | ||
464 | + this.resolveNodeInPath = resolveNodeInPath; | ||
465 | + } | ||
441 | } | 466 | } | ... | ... |
... | @@ -144,7 +144,6 @@ public class YangInput | ... | @@ -144,7 +144,6 @@ public class YangInput |
144 | listOfLeaf = leafsList; | 144 | listOfLeaf = leafsList; |
145 | } | 145 | } |
146 | 146 | ||
147 | - | ||
148 | @Override | 147 | @Override |
149 | public void addLeaf(YangLeaf leaf) { | 148 | public void addLeaf(YangLeaf leaf) { |
150 | getListOfLeaf().add(leaf); | 149 | getListOfLeaf().add(leaf); | ... | ... |
... | @@ -158,7 +158,6 @@ public class YangOutput | ... | @@ -158,7 +158,6 @@ public class YangOutput |
158 | this.listOfLeafList = listOfLeafList; | 158 | this.listOfLeafList = listOfLeafList; |
159 | } | 159 | } |
160 | 160 | ||
161 | - | ||
162 | @Override | 161 | @Override |
163 | public void addLeafList(YangLeafList leafList) { | 162 | public void addLeafList(YangLeafList leafList) { |
164 | getListOfLeafList().add(leafList); | 163 | getListOfLeafList().add(leafList); | ... | ... |
... | @@ -349,6 +349,7 @@ public final class DataModelUtils { | ... | @@ -349,6 +349,7 @@ public final class DataModelUtils { |
349 | * type info needs to be updated to the cloned new type node. | 349 | * type info needs to be updated to the cloned new type node. |
350 | * | 350 | * |
351 | * @param leavesHolder cloned leaves holder, for whom the leaves reference needs to be updated | 351 | * @param leavesHolder cloned leaves holder, for whom the leaves reference needs to be updated |
352 | + * @throws DataModelException when fails to do data model operations | ||
352 | */ | 353 | */ |
353 | public static void updateClonedLeavesUnionEnumRef(YangLeavesHolder leavesHolder) throws DataModelException { | 354 | public static void updateClonedLeavesUnionEnumRef(YangLeavesHolder leavesHolder) throws DataModelException { |
354 | List<YangLeaf> currentListOfLeaves = leavesHolder.getListOfLeaf(); | 355 | List<YangLeaf> currentListOfLeaves = leavesHolder.getListOfLeaf(); | ... | ... |
utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/linker/impl/PrefixResolverType.java
0 → 100644
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.linker.impl; | ||
18 | + | ||
19 | +/** | ||
20 | + * Enum for prefix resolver type when augment has come in path. | ||
21 | + */ | ||
22 | +public enum PrefixResolverType { | ||
23 | + | ||
24 | + /** | ||
25 | + * When prefix changes from inter file to intra file. | ||
26 | + */ | ||
27 | + INTER_TO_INTRA, | ||
28 | + | ||
29 | + /** | ||
30 | + * When prefix changes from intra file to inter file. | ||
31 | + */ | ||
32 | + INTRA_TO_INTER, | ||
33 | + | ||
34 | + /** | ||
35 | + * When prefix changes from one inter file to other inter file. | ||
36 | + */ | ||
37 | + INTER_TO_INTER, | ||
38 | + | ||
39 | + /** | ||
40 | + * When no prefix change occurres. | ||
41 | + */ | ||
42 | + NO_PREFIX_CHANGE_FOR_INTRA, | ||
43 | + | ||
44 | + /** | ||
45 | + * When no prefix change occurres. | ||
46 | + */ | ||
47 | + NO_PREFIX_CHANGE_FOR_INTER | ||
48 | +} |
... | @@ -21,6 +21,7 @@ import java.util.List; | ... | @@ -21,6 +21,7 @@ import java.util.List; |
21 | import org.onosproject.yangutils.datamodel.YangAugment; | 21 | import org.onosproject.yangutils.datamodel.YangAugment; |
22 | import org.onosproject.yangutils.datamodel.YangAugmentableNode; | 22 | import org.onosproject.yangutils.datamodel.YangAugmentableNode; |
23 | import org.onosproject.yangutils.datamodel.YangAugmentedInfo; | 23 | import org.onosproject.yangutils.datamodel.YangAugmentedInfo; |
24 | +import org.onosproject.yangutils.datamodel.YangChoice; | ||
24 | import org.onosproject.yangutils.datamodel.YangLeaf; | 25 | import org.onosproject.yangutils.datamodel.YangLeaf; |
25 | import org.onosproject.yangutils.datamodel.YangLeafList; | 26 | import org.onosproject.yangutils.datamodel.YangLeafList; |
26 | import org.onosproject.yangutils.datamodel.YangLeavesHolder; | 27 | import org.onosproject.yangutils.datamodel.YangLeavesHolder; |
... | @@ -36,8 +37,7 @@ public final class YangLinkerUtils { | ... | @@ -36,8 +37,7 @@ public final class YangLinkerUtils { |
36 | } | 37 | } |
37 | 38 | ||
38 | /** | 39 | /** |
39 | - * Detects collision between target nodes leaf/leaf-list or child node with | 40 | + * Detects collision between target nodes leaf/leaf-list or child node with augmented leaf/leaf-list or child node. |
40 | - * augmented leaf/leaf-list or child node. | ||
41 | * | 41 | * |
42 | * @param targetNode target node | 42 | * @param targetNode target node |
43 | * @param augment augment node | 43 | * @param augment augment node |
... | @@ -46,6 +46,14 @@ public final class YangLinkerUtils { | ... | @@ -46,6 +46,14 @@ public final class YangLinkerUtils { |
46 | YangNode targetNodesChild = targetNode.getChild(); | 46 | YangNode targetNodesChild = targetNode.getChild(); |
47 | YangNode augmentsChild = augment.getChild(); | 47 | YangNode augmentsChild = augment.getChild(); |
48 | YangLeavesHolder augmentsLeavesHolder = augment; | 48 | YangLeavesHolder augmentsLeavesHolder = augment; |
49 | + if (targetNode instanceof YangChoice) { | ||
50 | + if (augmentsLeavesHolder.getListOfLeaf() != null | ||
51 | + || augmentsLeavesHolder.getListOfLeafList() != null) { | ||
52 | + throw new LinkerException("target node " + targetNode.getName() | ||
53 | + + "is a instance of choice. it can " + | ||
54 | + "only be augmented with leaf using a case node."); | ||
55 | + } | ||
56 | + } else { | ||
49 | YangLeavesHolder targetNodesLeavesHolder = (YangLeavesHolder) targetNode; | 57 | YangLeavesHolder targetNodesLeavesHolder = (YangLeavesHolder) targetNode; |
50 | 58 | ||
51 | YangNode parent = targetNode; | 59 | YangNode parent = targetNode; |
... | @@ -93,10 +101,11 @@ public final class YangLinkerUtils { | ... | @@ -93,10 +101,11 @@ public final class YangLinkerUtils { |
93 | } | 101 | } |
94 | } | 102 | } |
95 | } | 103 | } |
104 | + } | ||
96 | 105 | ||
97 | /** | 106 | /** |
98 | - * Detects collision between target nodes and its all leaf/leaf-list or child node with | 107 | + * Detects collision between target nodes and its all leaf/leaf-list or child node with augmented leaf/leaf-list or |
99 | - * augmented leaf/leaf-list or child node. | 108 | + * child node. |
100 | * | 109 | * |
101 | * @param targetNode target node | 110 | * @param targetNode target node |
102 | * @param augment augment node | 111 | * @param augment augment node | ... | ... |
... | @@ -32,9 +32,9 @@ import org.onosproject.yangutils.datamodel.YangEntityToResolveInfo; | ... | @@ -32,9 +32,9 @@ import org.onosproject.yangutils.datamodel.YangEntityToResolveInfo; |
32 | import org.onosproject.yangutils.datamodel.YangFeature; | 32 | import org.onosproject.yangutils.datamodel.YangFeature; |
33 | import org.onosproject.yangutils.datamodel.YangFeatureHolder; | 33 | import org.onosproject.yangutils.datamodel.YangFeatureHolder; |
34 | import org.onosproject.yangutils.datamodel.YangGrouping; | 34 | import org.onosproject.yangutils.datamodel.YangGrouping; |
35 | -import org.onosproject.yangutils.datamodel.YangIfFeature; | ||
36 | import org.onosproject.yangutils.datamodel.YangIdentity; | 35 | import org.onosproject.yangutils.datamodel.YangIdentity; |
37 | import org.onosproject.yangutils.datamodel.YangIdentityRef; | 36 | import org.onosproject.yangutils.datamodel.YangIdentityRef; |
37 | +import org.onosproject.yangutils.datamodel.YangIfFeature; | ||
38 | import org.onosproject.yangutils.datamodel.YangImport; | 38 | import org.onosproject.yangutils.datamodel.YangImport; |
39 | import org.onosproject.yangutils.datamodel.YangInclude; | 39 | import org.onosproject.yangutils.datamodel.YangInclude; |
40 | import org.onosproject.yangutils.datamodel.YangInput; | 40 | import org.onosproject.yangutils.datamodel.YangInput; |
... | @@ -73,16 +73,16 @@ import static org.onosproject.yangutils.datamodel.utils.ResolvableStatus.UNRESOL | ... | @@ -73,16 +73,16 @@ import static org.onosproject.yangutils.datamodel.utils.ResolvableStatus.UNRESOL |
73 | import static org.onosproject.yangutils.linker.YangLinkingPhase.INTER_FILE; | 73 | import static org.onosproject.yangutils.linker.YangLinkingPhase.INTER_FILE; |
74 | import static org.onosproject.yangutils.linker.YangLinkingPhase.INTRA_FILE; | 74 | import static org.onosproject.yangutils.linker.YangLinkingPhase.INTRA_FILE; |
75 | import static org.onosproject.yangutils.linker.impl.YangLinkerUtils.detectCollisionForAugmentedNode; | 75 | import static org.onosproject.yangutils.linker.impl.YangLinkerUtils.detectCollisionForAugmentedNode; |
76 | +import static org.onosproject.yangutils.utils.UtilConstants.BASE_LINKER_ERROR; | ||
76 | import static org.onosproject.yangutils.utils.UtilConstants.FEATURE_LINKER_ERROR; | 77 | import static org.onosproject.yangutils.utils.UtilConstants.FEATURE_LINKER_ERROR; |
77 | import static org.onosproject.yangutils.utils.UtilConstants.GROUPING_LINKER_ERROR; | 78 | import static org.onosproject.yangutils.utils.UtilConstants.GROUPING_LINKER_ERROR; |
79 | +import static org.onosproject.yangutils.utils.UtilConstants.IDENTITYREF; | ||
80 | +import static org.onosproject.yangutils.utils.UtilConstants.IDENTITYREF_LINKER_ERROR; | ||
78 | import static org.onosproject.yangutils.utils.UtilConstants.INPUT; | 81 | import static org.onosproject.yangutils.utils.UtilConstants.INPUT; |
79 | import static org.onosproject.yangutils.utils.UtilConstants.LEAFREF; | 82 | import static org.onosproject.yangutils.utils.UtilConstants.LEAFREF; |
80 | -import static org.onosproject.yangutils.utils.UtilConstants.IDENTITYREF; | ||
81 | import static org.onosproject.yangutils.utils.UtilConstants.LEAFREF_LINKER_ERROR; | 83 | import static org.onosproject.yangutils.utils.UtilConstants.LEAFREF_LINKER_ERROR; |
82 | import static org.onosproject.yangutils.utils.UtilConstants.OUTPUT; | 84 | import static org.onosproject.yangutils.utils.UtilConstants.OUTPUT; |
83 | import static org.onosproject.yangutils.utils.UtilConstants.TYPEDEF_LINKER_ERROR; | 85 | import static org.onosproject.yangutils.utils.UtilConstants.TYPEDEF_LINKER_ERROR; |
84 | -import static org.onosproject.yangutils.utils.UtilConstants.IDENTITYREF_LINKER_ERROR; | ||
85 | -import static org.onosproject.yangutils.utils.UtilConstants.BASE_LINKER_ERROR; | ||
86 | 86 | ||
87 | /** | 87 | /** |
88 | * Represents implementation of resolution object which will be resolved by | 88 | * Represents implementation of resolution object which will be resolved by |
... | @@ -128,7 +128,6 @@ public class YangResolutionInfoImpl<T> | ... | @@ -128,7 +128,6 @@ public class YangResolutionInfoImpl<T> |
128 | */ | 128 | */ |
129 | @SuppressWarnings("unused") | 129 | @SuppressWarnings("unused") |
130 | private YangResolutionInfoImpl() { | 130 | private YangResolutionInfoImpl() { |
131 | - | ||
132 | } | 131 | } |
133 | 132 | ||
134 | /** | 133 | /** |
... | @@ -153,7 +152,6 @@ public class YangResolutionInfoImpl<T> | ... | @@ -153,7 +152,6 @@ public class YangResolutionInfoImpl<T> |
153 | throws DataModelException { | 152 | throws DataModelException { |
154 | 153 | ||
155 | setCurReferenceResolver(dataModelRootNode); | 154 | setCurReferenceResolver(dataModelRootNode); |
156 | - | ||
157 | /** | 155 | /** |
158 | * Current node to resolve, it can be a YANG type, YANG uses or YANG if-feature or | 156 | * Current node to resolve, it can be a YANG type, YANG uses or YANG if-feature or |
159 | * YANG leafref or YANG base or YANG identityref. | 157 | * YANG leafref or YANG base or YANG identityref. |
... | @@ -173,7 +171,6 @@ public class YangResolutionInfoImpl<T> | ... | @@ -173,7 +171,6 @@ public class YangResolutionInfoImpl<T> |
173 | throw new DataModelException("Data Model Exception: Entity to resolved is other than " + | 171 | throw new DataModelException("Data Model Exception: Entity to resolved is other than " + |
174 | "type/uses/if-feature/leafref/base/identityref"); | 172 | "type/uses/if-feature/leafref/base/identityref"); |
175 | } | 173 | } |
176 | - | ||
177 | // Push the initial entity to resolve in stack. | 174 | // Push the initial entity to resolve in stack. |
178 | addInPartialResolvedStack(getEntityToResolveInfo()); | 175 | addInPartialResolvedStack(getEntityToResolveInfo()); |
179 | 176 | ||
... | @@ -191,7 +188,6 @@ public class YangResolutionInfoImpl<T> | ... | @@ -191,7 +188,6 @@ public class YangResolutionInfoImpl<T> |
191 | throws DataModelException { | 188 | throws DataModelException { |
192 | 189 | ||
193 | while (getPartialResolvedStack().size() != 0) { | 190 | while (getPartialResolvedStack().size() != 0) { |
194 | - | ||
195 | /** | 191 | /** |
196 | * Current node to resolve, it can be a YANG type or YANG uses or | 192 | * Current node to resolve, it can be a YANG type or YANG uses or |
197 | * YANG if-feature or YANG leafref or YANG base or YANG identityref. | 193 | * YANG if-feature or YANG leafref or YANG base or YANG identityref. |
... | @@ -1479,6 +1475,7 @@ public class YangResolutionInfoImpl<T> | ... | @@ -1479,6 +1475,7 @@ public class YangResolutionInfoImpl<T> |
1479 | detectCollisionForAugmentedNode(targetNode, augment); | 1475 | detectCollisionForAugmentedNode(targetNode, augment); |
1480 | ((YangAugmentableNode) targetNode).addAugmentation(augment); | 1476 | ((YangAugmentableNode) targetNode).addAugmentation(augment); |
1481 | augment.setAugmentedNode(targetNode); | 1477 | augment.setAugmentedNode(targetNode); |
1478 | + augment.setResolveNodeInPath(xPathLinker.getResolvedNodes()); | ||
1482 | Resolvable resolvable = (Resolvable) entityToResolve; | 1479 | Resolvable resolvable = (Resolvable) entityToResolve; |
1483 | resolvable.setResolvableStatus(RESOLVED); | 1480 | resolvable.setResolvableStatus(RESOLVED); |
1484 | } else { | 1481 | } else { | ... | ... |
... | @@ -34,9 +34,14 @@ import org.onosproject.yangutils.datamodel.YangModule; | ... | @@ -34,9 +34,14 @@ import org.onosproject.yangutils.datamodel.YangModule; |
34 | import org.onosproject.yangutils.datamodel.YangNode; | 34 | import org.onosproject.yangutils.datamodel.YangNode; |
35 | import org.onosproject.yangutils.datamodel.YangNodeIdentifier; | 35 | import org.onosproject.yangutils.datamodel.YangNodeIdentifier; |
36 | import org.onosproject.yangutils.datamodel.YangSubModule; | 36 | import org.onosproject.yangutils.datamodel.YangSubModule; |
37 | -import org.onosproject.yangutils.datamodel.YangUses; | ||
38 | import org.onosproject.yangutils.linker.exceptions.LinkerException; | 37 | import org.onosproject.yangutils.linker.exceptions.LinkerException; |
39 | 38 | ||
39 | +import static org.onosproject.yangutils.linker.impl.PrefixResolverType.INTER_TO_INTER; | ||
40 | +import static org.onosproject.yangutils.linker.impl.PrefixResolverType.INTER_TO_INTRA; | ||
41 | +import static org.onosproject.yangutils.linker.impl.PrefixResolverType.INTRA_TO_INTER; | ||
42 | +import static org.onosproject.yangutils.linker.impl.PrefixResolverType.NO_PREFIX_CHANGE_FOR_INTER; | ||
43 | +import static org.onosproject.yangutils.linker.impl.PrefixResolverType.NO_PREFIX_CHANGE_FOR_INTRA; | ||
44 | + | ||
40 | /** | 45 | /** |
41 | * Represents x-path linking. | 46 | * Represents x-path linking. |
42 | * | 47 | * |
... | @@ -44,49 +49,46 @@ import org.onosproject.yangutils.linker.exceptions.LinkerException; | ... | @@ -44,49 +49,46 @@ import org.onosproject.yangutils.linker.exceptions.LinkerException; |
44 | */ | 49 | */ |
45 | public class YangXpathLinker<T> { | 50 | public class YangXpathLinker<T> { |
46 | 51 | ||
47 | - /** | 52 | + private List<YangAtomicPath> absPaths; |
48 | - * Enum for prefix resolver type when augment has come in path. | 53 | + private YangNode rootNode; |
49 | - */ | 54 | + private Map<YangAtomicPath, PrefixResolverType> prefixResolverTypes; |
50 | - private static enum PrefixResolverType { | 55 | + private String curPrefix; |
51 | - | 56 | + private Map<YangAtomicPath, YangNode> resolvedNodes; |
52 | - /** | ||
53 | - * When prefix changes from inter file to intra file. | ||
54 | - */ | ||
55 | - INTER_TO_INTRA, | ||
56 | - | ||
57 | - /** | ||
58 | - * When prefix changes from intra file to inter file. | ||
59 | - */ | ||
60 | - INTRA_TO_INTER, | ||
61 | 57 | ||
62 | /** | 58 | /** |
63 | - * When prefix changes from one inter file to other inter file. | 59 | + * Creates an instance of x-path linker. |
64 | */ | 60 | */ |
65 | - INTER_TO_INTER, | 61 | + public YangXpathLinker() { |
62 | + absPaths = new ArrayList<>(); | ||
63 | + setResolvedNodes(new HashMap<>()); | ||
64 | + } | ||
66 | 65 | ||
67 | /** | 66 | /** |
68 | - * When no prefix change occurres. | 67 | + * Returns prefix resolver list. |
68 | + * | ||
69 | + * @return prefix resolver list | ||
69 | */ | 70 | */ |
70 | - NO_PREFIX_CHANGE_FOR_INTRA, | 71 | + public Map<YangAtomicPath, PrefixResolverType> getPrefixResolverTypes() { |
72 | + return prefixResolverTypes; | ||
73 | + } | ||
71 | 74 | ||
72 | /** | 75 | /** |
73 | - * When no prefix change occurres. | 76 | + * Sets prefix resolver list. |
77 | + * | ||
78 | + * @param prefixResolverTypes prefix resolver list. | ||
74 | */ | 79 | */ |
75 | - NO_PREFIX_CHANGE_FOR_INTER | 80 | + public void setPrefixResolverTypes(Map<YangAtomicPath, PrefixResolverType> prefixResolverTypes) { |
81 | + this.prefixResolverTypes = prefixResolverTypes; | ||
76 | } | 82 | } |
77 | 83 | ||
78 | - private List<YangAtomicPath> absPaths; | ||
79 | - private YangNode rootNode; | ||
80 | - private PrefixResolverType type; | ||
81 | - private String curPrefix; | ||
82 | - private Map<YangAtomicPath, YangNode> resolvedNodes; | ||
83 | - | ||
84 | /** | 84 | /** |
85 | - * Creates an instance of x-path linker. | 85 | + * Adds to the prefix resolver type map. |
86 | + * | ||
87 | + * @param type resolver type | ||
88 | + * @param path absolute path | ||
86 | */ | 89 | */ |
87 | - public YangXpathLinker() { | 90 | + private void addToPrefixResolverList(PrefixResolverType type, YangAtomicPath path) { |
88 | - absPaths = new ArrayList<>(); | 91 | + getPrefixResolverTypes().put(path, type); |
89 | - setResolvedNodes(new HashMap<>()); | ||
90 | } | 92 | } |
91 | 93 | ||
92 | /** | 94 | /** |
... | @@ -144,24 +146,6 @@ public class YangXpathLinker<T> { | ... | @@ -144,24 +146,6 @@ public class YangXpathLinker<T> { |
144 | } | 146 | } |
145 | 147 | ||
146 | /** | 148 | /** |
147 | - * Returns prefix resolver type. | ||
148 | - * | ||
149 | - * @return prefix resolver type | ||
150 | - */ | ||
151 | - private PrefixResolverType getPrefixResolverType() { | ||
152 | - return type; | ||
153 | - } | ||
154 | - | ||
155 | - /** | ||
156 | - * Sets prefix resolver type. | ||
157 | - * | ||
158 | - * @param type prefix resolver type | ||
159 | - */ | ||
160 | - private void setPrefixResolverType(PrefixResolverType type) { | ||
161 | - this.type = type; | ||
162 | - } | ||
163 | - | ||
164 | - /** | ||
165 | * Returns resolved nodes. | 149 | * Returns resolved nodes. |
166 | * | 150 | * |
167 | * @return resolved nodes | 151 | * @return resolved nodes |
... | @@ -214,10 +198,12 @@ public class YangXpathLinker<T> { | ... | @@ -214,10 +198,12 @@ public class YangXpathLinker<T> { |
214 | * @param root root node | 198 | * @param root root node |
215 | * @return linked target node | 199 | * @return linked target node |
216 | */ | 200 | */ |
217 | - public T processLeafRefXpathLinking(List<YangAtomicPath> absPaths, YangNode root) { | 201 | + T processLeafRefXpathLinking(List<YangAtomicPath> absPaths, YangNode root) { |
218 | 202 | ||
219 | YangNode targetNode = null; | 203 | YangNode targetNode = null; |
220 | setRootNode(root); | 204 | setRootNode(root); |
205 | + setPrefixResolverTypes(new HashMap<>()); | ||
206 | + parsePrefixResolverList(absPaths); | ||
221 | YangAtomicPath leafRefPath = absPaths.get(absPaths.size() - 1); | 207 | YangAtomicPath leafRefPath = absPaths.get(absPaths.size() - 1); |
222 | 208 | ||
223 | // When leaf-ref path contains only one absolute path. | 209 | // When leaf-ref path contains only one absolute path. |
... | @@ -230,7 +216,7 @@ public class YangXpathLinker<T> { | ... | @@ -230,7 +216,7 @@ public class YangXpathLinker<T> { |
230 | targetNode = parseData(root); | 216 | targetNode = parseData(root); |
231 | } | 217 | } |
232 | if (targetNode == null) { | 218 | if (targetNode == null) { |
233 | - targetNode = parsePath(getIncludedNode(root)); | 219 | + targetNode = searchInSubModule(root); |
234 | } | 220 | } |
235 | 221 | ||
236 | if (targetNode != null) { | 222 | if (targetNode != null) { |
... | @@ -277,11 +263,13 @@ public class YangXpathLinker<T> { | ... | @@ -277,11 +263,13 @@ public class YangXpathLinker<T> { |
277 | 263 | ||
278 | setAbsPaths(absPaths); | 264 | setAbsPaths(absPaths); |
279 | setRootNode(root); | 265 | setRootNode(root); |
266 | + setPrefixResolverTypes(new HashMap<>()); | ||
267 | + parsePrefixResolverList(absPaths); | ||
280 | 268 | ||
281 | YangNode targetNode = parseData(root); | 269 | YangNode targetNode = parseData(root); |
282 | 270 | ||
283 | if (targetNode == null) { | 271 | if (targetNode == null) { |
284 | - targetNode = parsePath(getIncludedNode(root)); | 272 | + targetNode = searchInSubModule(root); |
285 | } | 273 | } |
286 | return targetNode; | 274 | return targetNode; |
287 | 275 | ||
... | @@ -363,20 +351,9 @@ public class YangXpathLinker<T> { | ... | @@ -363,20 +351,9 @@ public class YangXpathLinker<T> { |
363 | YangAtomicPath tempPath = pathIterator.next(); | 351 | YangAtomicPath tempPath = pathIterator.next(); |
364 | setCurPrefix(tempPath.getNodeIdentifier().getPrefix()); | 352 | setCurPrefix(tempPath.getNodeIdentifier().getPrefix()); |
365 | int index = 0; | 353 | int index = 0; |
366 | - YangNode tempAugment = null; | 354 | + YangNode tempAugment; |
367 | do { | 355 | do { |
368 | 356 | ||
369 | - if (tempNode instanceof YangUses) { | ||
370 | - tempNode = handleUsesNode(tempNode, tempPath.getNodeIdentifier()); | ||
371 | - if (pathIterator.hasNext()) { | ||
372 | - tempPath = pathIterator.next(); | ||
373 | - index++; | ||
374 | - } else { | ||
375 | - addToResolvedNodes(tempPath, tempNode); | ||
376 | - return tempNode; | ||
377 | - } | ||
378 | - } | ||
379 | - | ||
380 | if (tempPath.getNodeIdentifier().getPrefix() == null) { | 357 | if (tempPath.getNodeIdentifier().getPrefix() == null) { |
381 | tempAugment = resolveIntraFileAugment(tempPath, root); | 358 | tempAugment = resolveIntraFileAugment(tempPath, root); |
382 | } else { | 359 | } else { |
... | @@ -416,11 +393,20 @@ public class YangXpathLinker<T> { | ... | @@ -416,11 +393,20 @@ public class YangXpathLinker<T> { |
416 | * @return linked target node | 393 | * @return linked target node |
417 | */ | 394 | */ |
418 | private YangNode resolveIntraFileAugment(YangAtomicPath tempPath, YangNode root) { | 395 | private YangNode resolveIntraFileAugment(YangAtomicPath tempPath, YangNode root) { |
419 | - YangNode tempAugment = null; | 396 | + YangNode tempAugment; |
420 | - setPrefixResolverType(PrefixResolverType.NO_PREFIX_CHANGE_FOR_INTRA); | ||
421 | if (getCurPrefix() != tempPath.getNodeIdentifier().getPrefix()) { | 397 | if (getCurPrefix() != tempPath.getNodeIdentifier().getPrefix()) { |
422 | - setPrefixResolverType(PrefixResolverType.INTRA_TO_INTER); | 398 | + root = getIncludedNode(getRootNode(), tempPath.getNodeIdentifier().getName()); |
423 | - root = getIncludedNode(getRootNode()); | 399 | + if (root == null) { |
400 | + root = getIncludedNode(getRootNode(), getAugmentNodeIdentifier(tempPath.getNodeIdentifier(), absPaths, | ||
401 | + getRootNode())); | ||
402 | + if (root == null) { | ||
403 | + root = getRootNode(); | ||
404 | + } | ||
405 | + } | ||
406 | + } else { | ||
407 | + if (getCurPrefix() != null) { | ||
408 | + root = getImportedNode(root, tempPath.getNodeIdentifier()); | ||
409 | + } | ||
424 | } | 410 | } |
425 | 411 | ||
426 | setCurPrefix(tempPath.getNodeIdentifier().getPrefix()); | 412 | setCurPrefix(tempPath.getNodeIdentifier().getPrefix()); |
... | @@ -440,19 +426,13 @@ public class YangXpathLinker<T> { | ... | @@ -440,19 +426,13 @@ public class YangXpathLinker<T> { |
440 | */ | 426 | */ |
441 | private YangNode resolveInterFileAugment(YangAtomicPath tempPath, YangNode root) { | 427 | private YangNode resolveInterFileAugment(YangAtomicPath tempPath, YangNode root) { |
442 | 428 | ||
443 | - YangNode tempAugment = null; | 429 | + YangNode tempAugment; |
444 | - if (tempPath.getNodeIdentifier().getPrefix().equals(getCurPrefix())) { | 430 | + if (!tempPath.getNodeIdentifier().getPrefix().equals(getCurPrefix())) { |
445 | - setPrefixResolverType(PrefixResolverType.NO_PREFIX_CHANGE_FOR_INTER); | ||
446 | - } else { | ||
447 | setCurPrefix(tempPath.getNodeIdentifier().getPrefix()); | 431 | setCurPrefix(tempPath.getNodeIdentifier().getPrefix()); |
448 | - setPrefixResolverType(PrefixResolverType.INTER_TO_INTER); | ||
449 | - if (getCurPrefix() == null) { | ||
450 | - setPrefixResolverType(PrefixResolverType.INTER_TO_INTRA); | ||
451 | - } | ||
452 | root = getImportedNode(getRootNode(), tempPath.getNodeIdentifier()); | 432 | root = getImportedNode(getRootNode(), tempPath.getNodeIdentifier()); |
453 | } | 433 | } |
454 | tempAugment = getAugment(tempPath.getNodeIdentifier(), root, getAbsPaths()); | 434 | tempAugment = getAugment(tempPath.getNodeIdentifier(), root, getAbsPaths()); |
455 | - if (tempAugment == null && getPrefixResolverType().equals(PrefixResolverType.INTER_TO_INTER)) { | 435 | + if (tempAugment == null) { |
456 | return resolveInterToInterFileAugment(root); | 436 | return resolveInterToInterFileAugment(root); |
457 | } | 437 | } |
458 | return tempAugment; | 438 | return tempAugment; |
... | @@ -494,6 +474,7 @@ public class YangXpathLinker<T> { | ... | @@ -494,6 +474,7 @@ public class YangXpathLinker<T> { |
494 | /** | 474 | /** |
495 | * Searches for the augment node in imported module when prefix has changed from | 475 | * Searches for the augment node in imported module when prefix has changed from |
496 | * inter file to inter file. | 476 | * inter file to inter file. |
477 | + * | ||
497 | * @param nodeId node id | 478 | * @param nodeId node id |
498 | * @param index index | 479 | * @param index index |
499 | * @return true if found | 480 | * @return true if found |
... | @@ -511,7 +492,7 @@ public class YangXpathLinker<T> { | ... | @@ -511,7 +492,7 @@ public class YangXpathLinker<T> { |
511 | * @return linked target node | 492 | * @return linked target node |
512 | */ | 493 | */ |
513 | private YangNode getAugment(YangNodeIdentifier tempNodeId, YangNode root, List<YangAtomicPath> absPaths) { | 494 | private YangNode getAugment(YangNodeIdentifier tempNodeId, YangNode root, List<YangAtomicPath> absPaths) { |
514 | - String augmentName = getAugmentNodeIdentifier(tempNodeId, absPaths); | 495 | + String augmentName = getAugmentNodeIdentifier(tempNodeId, absPaths, root); |
515 | if (augmentName != null) { | 496 | if (augmentName != null) { |
516 | return searchAugmentNode(root, augmentName); | 497 | return searchAugmentNode(root, augmentName); |
517 | } | 498 | } |
... | @@ -527,7 +508,7 @@ public class YangXpathLinker<T> { | ... | @@ -527,7 +508,7 @@ public class YangXpathLinker<T> { |
527 | */ | 508 | */ |
528 | private YangNode getImportedNode(YangNode root, YangNodeIdentifier nodeId) { | 509 | private YangNode getImportedNode(YangNode root, YangNodeIdentifier nodeId) { |
529 | 510 | ||
530 | - List<YangImport> importList = new ArrayList<>(); | 511 | + List<YangImport> importList; |
531 | 512 | ||
532 | if (root instanceof YangModule) { | 513 | if (root instanceof YangModule) { |
533 | importList = ((YangModule) root).getImportList(); | 514 | importList = ((YangModule) root).getImportList(); |
... | @@ -545,14 +526,39 @@ public class YangXpathLinker<T> { | ... | @@ -545,14 +526,39 @@ public class YangXpathLinker<T> { |
545 | } | 526 | } |
546 | 527 | ||
547 | /** | 528 | /** |
529 | + * Searches in sub-module node. | ||
530 | + * | ||
531 | + * @param root root node | ||
532 | + * @return target linked node | ||
533 | + */ | ||
534 | + private YangNode searchInSubModule(YangNode root) { | ||
535 | + List<YangInclude> includeList; | ||
536 | + YangNode tempNode; | ||
537 | + if (root instanceof YangModule) { | ||
538 | + includeList = ((YangModule) root).getIncludeList(); | ||
539 | + } else { | ||
540 | + includeList = ((YangSubModule) root).getIncludeList(); | ||
541 | + } | ||
542 | + | ||
543 | + for (YangInclude included : includeList) { | ||
544 | + tempNode = parseData(included.getIncludedNode()); | ||
545 | + if (tempNode != null) { | ||
546 | + return tempNode; | ||
547 | + } | ||
548 | + } | ||
549 | + return null; | ||
550 | + } | ||
551 | + | ||
552 | + /** | ||
548 | * Process linking using include list. | 553 | * Process linking using include list. |
549 | * | 554 | * |
550 | * @param root root node | 555 | * @param root root node |
556 | + * @param tempPathName temporary path node name | ||
551 | * @return linked target node | 557 | * @return linked target node |
552 | */ | 558 | */ |
553 | - private YangNode getIncludedNode(YangNode root) { | 559 | + private YangNode getIncludedNode(YangNode root, String tempPathName) { |
554 | 560 | ||
555 | - List<YangInclude> includeList = new ArrayList<>(); | 561 | + List<YangInclude> includeList; |
556 | 562 | ||
557 | if (root instanceof YangModule) { | 563 | if (root instanceof YangModule) { |
558 | includeList = ((YangModule) root).getIncludeList(); | 564 | includeList = ((YangModule) root).getIncludeList(); |
... | @@ -561,34 +567,84 @@ public class YangXpathLinker<T> { | ... | @@ -561,34 +567,84 @@ public class YangXpathLinker<T> { |
561 | } | 567 | } |
562 | 568 | ||
563 | for (YangInclude included : includeList) { | 569 | for (YangInclude included : includeList) { |
570 | + if (verifyChildNode(included.getIncludedNode(), tempPathName)) { | ||
564 | return included.getIncludedNode(); | 571 | return included.getIncludedNode(); |
565 | } | 572 | } |
573 | + } | ||
566 | 574 | ||
567 | - return root; | 575 | + return null; |
568 | } | 576 | } |
569 | 577 | ||
570 | /** | 578 | /** |
571 | - * Returns augments node id. | 579 | + * Verifies for child nodes in sub module. |
580 | + * | ||
581 | + * @param node submodule node | ||
582 | + * @param name name of child node | ||
583 | + * @return true if child node found | ||
584 | + */ | ||
585 | + private boolean verifyChildNode(YangNode node, String name) { | ||
586 | + node = node.getChild(); | ||
587 | + while (node != null) { | ||
588 | + if (node.getName().equals(name)) { | ||
589 | + return true; | ||
590 | + } | ||
591 | + node = node.getNextSibling(); | ||
592 | + } | ||
593 | + return false; | ||
594 | + } | ||
595 | + | ||
596 | + | ||
597 | + /** | ||
598 | + * Returns augment's node id. | ||
572 | * | 599 | * |
573 | * @param nodeId node identifier | 600 | * @param nodeId node identifier |
574 | - * @return augment node id | 601 | + * @param absPaths absolute paths |
602 | + * @param root root node | ||
603 | + * @return augment's node id | ||
575 | */ | 604 | */ |
576 | - private String getAugmentNodeIdentifier(YangNodeIdentifier nodeId, List<YangAtomicPath> absPaths) { | 605 | + private String getAugmentNodeIdentifier(YangNodeIdentifier nodeId, List<YangAtomicPath> absPaths, YangNode root) { |
577 | 606 | ||
578 | Iterator<YangAtomicPath> nodeIdIterator = absPaths.iterator(); | 607 | Iterator<YangAtomicPath> nodeIdIterator = absPaths.iterator(); |
579 | - YangAtomicPath tempNodeId = null; | 608 | + YangAtomicPath tempNodeId; |
580 | StringBuilder builder = new StringBuilder(); | 609 | StringBuilder builder = new StringBuilder(); |
610 | + String id; | ||
611 | + PrefixResolverType type; | ||
581 | while (nodeIdIterator.hasNext()) { | 612 | while (nodeIdIterator.hasNext()) { |
582 | tempNodeId = nodeIdIterator.next(); | 613 | tempNodeId = nodeIdIterator.next(); |
583 | if (!tempNodeId.getNodeIdentifier().equals(nodeId)) { | 614 | if (!tempNodeId.getNodeIdentifier().equals(nodeId)) { |
584 | - if (tempNodeId.getNodeIdentifier().getPrefix() != null | 615 | + type = getPrefixResolverTypes().get(tempNodeId); |
585 | - && (getPrefixResolverType().equals(PrefixResolverType.INTER_TO_INTER) | 616 | + switch (type) { |
586 | - || getPrefixResolverType().equals(PrefixResolverType.INTRA_TO_INTER))) { | 617 | + case INTER_TO_INTRA: |
587 | - builder.append("/" + tempNodeId.getNodeIdentifier().getPrefix()); | 618 | + id = "/" + tempNodeId.getNodeIdentifier().getName(); |
588 | - builder.append(":" + tempNodeId.getNodeIdentifier().getName()); | 619 | + break; |
620 | + case INTRA_TO_INTER: | ||
621 | + if (!getRootsPrefix(root).equals(tempNodeId.getNodeIdentifier().getPrefix())) { | ||
622 | + id = "/" + tempNodeId.getNodeIdentifier().getPrefix() + ":" + tempNodeId.getNodeIdentifier() | ||
623 | + .getName(); | ||
589 | } else { | 624 | } else { |
590 | - builder.append("/" + tempNodeId.getNodeIdentifier().getName()); | 625 | + id = "/" + tempNodeId.getNodeIdentifier().getName(); |
591 | } | 626 | } |
627 | + break; | ||
628 | + case INTER_TO_INTER: | ||
629 | + id = "/" + tempNodeId.getNodeIdentifier().getPrefix() + ":" + tempNodeId.getNodeIdentifier() | ||
630 | + .getName(); | ||
631 | + break; | ||
632 | + case NO_PREFIX_CHANGE_FOR_INTRA: | ||
633 | + id = "/" + tempNodeId.getNodeIdentifier().getName(); | ||
634 | + break; | ||
635 | + case NO_PREFIX_CHANGE_FOR_INTER: | ||
636 | + if (!getRootsPrefix(root).equals(tempNodeId.getNodeIdentifier().getPrefix())) { | ||
637 | + id = "/" + tempNodeId.getNodeIdentifier().getPrefix() + ":" + tempNodeId.getNodeIdentifier() | ||
638 | + .getName(); | ||
639 | + } else { | ||
640 | + id = "/" + tempNodeId.getNodeIdentifier().getName(); | ||
641 | + } | ||
642 | + break; | ||
643 | + default: | ||
644 | + id = "/" + tempNodeId.getNodeIdentifier().getName(); | ||
645 | + break; | ||
646 | + } | ||
647 | + builder.append(id); | ||
592 | } else { | 648 | } else { |
593 | return builder.toString(); | 649 | return builder.toString(); |
594 | } | 650 | } |
... | @@ -603,11 +659,12 @@ public class YangXpathLinker<T> { | ... | @@ -603,11 +659,12 @@ public class YangXpathLinker<T> { |
603 | * @param tempNodeId node identifier | 659 | * @param tempNodeId node identifier |
604 | * @return target augment node | 660 | * @return target augment node |
605 | */ | 661 | */ |
662 | + | ||
606 | private YangNode searchAugmentNode(YangNode node, String tempNodeId) { | 663 | private YangNode searchAugmentNode(YangNode node, String tempNodeId) { |
607 | node = node.getChild(); | 664 | node = node.getChild(); |
608 | while (node != null) { | 665 | while (node != null) { |
609 | if (node instanceof YangAugment) { | 666 | if (node instanceof YangAugment) { |
610 | - if (((YangAugment) node).getName().equals(tempNodeId)) { | 667 | + if (node.getName().equals(tempNodeId)) { |
611 | return node; | 668 | return node; |
612 | } | 669 | } |
613 | } | 670 | } |
... | @@ -628,11 +685,11 @@ public class YangXpathLinker<T> { | ... | @@ -628,11 +685,11 @@ public class YangXpathLinker<T> { |
628 | int size = getAbsPaths().size(); | 685 | int size = getAbsPaths().size(); |
629 | if (tempNode != null && index != size) { | 686 | if (tempNode != null && index != size) { |
630 | return true; | 687 | return true; |
631 | - } else if (tempNode != null && index == size) { | 688 | + } else if (tempNode != null) { |
632 | return false; | 689 | return false; |
633 | // this is your target node. | 690 | // this is your target node. |
634 | - } else if (tempNode == null && index != size) { | 691 | + } else if (index != size) { |
635 | - return false; | 692 | + return true; |
636 | // this could be in submodule as well. | 693 | // this could be in submodule as well. |
637 | } | 694 | } |
638 | return false; | 695 | return false; |
... | @@ -661,51 +718,52 @@ public class YangXpathLinker<T> { | ... | @@ -661,51 +718,52 @@ public class YangXpathLinker<T> { |
661 | } | 718 | } |
662 | 719 | ||
663 | /** | 720 | /** |
664 | - * Handles linking when uses node is present. | 721 | + * Returns root prefix. |
665 | * | 722 | * |
666 | - * @param node uses node | 723 | + * @param root root node |
667 | - * @param curNodeId current node id | 724 | + * @return root prefix |
668 | - * @return linked node | ||
669 | */ | 725 | */ |
670 | - private YangNode handleUsesNode(YangNode node, YangNodeIdentifier curNodeId) { | 726 | + private String getRootsPrefix(YangNode root) { |
671 | - YangNode tempNode = null; | 727 | + if (root instanceof YangModule) { |
672 | - tempNode = searchInUsesNode((YangUses) node, curNodeId); | 728 | + return ((YangModule) root).getPrefix(); |
673 | - if (tempNode != null) { | 729 | + } else { |
674 | - return tempNode; | 730 | + return ((YangSubModule) root).getPrefix(); |
675 | } | 731 | } |
676 | - return null; | ||
677 | } | 732 | } |
678 | 733 | ||
679 | /** | 734 | /** |
680 | - * Searches target node in uses resolved list. | 735 | + * Resolves prefix and provides prefix resolver list. |
681 | * | 736 | * |
682 | - * @param uses uses node | 737 | + * @param absolutePaths absolute paths |
683 | - * @param curNodeId current node id | ||
684 | - * @return linked target node | ||
685 | */ | 738 | */ |
686 | - private YangNode searchInUsesNode(YangUses uses, YangNodeIdentifier curNodeId) { | 739 | + private void parsePrefixResolverList(List<YangAtomicPath> absolutePaths) { |
687 | - | 740 | + Iterator<YangAtomicPath> pathIterator = absolutePaths.iterator(); |
688 | - List<YangNode> resolvedNodes = uses.getUsesResolvedNodeList(); | 741 | + YangAtomicPath absPath; |
689 | - for (YangNode node : resolvedNodes) { | 742 | + String prePrefix; |
690 | - if (node.getName().equals(curNodeId.getName())) { | 743 | + String curPrefix = null; |
691 | - return node; | 744 | + while (pathIterator.hasNext()) { |
692 | - } | 745 | + prePrefix = curPrefix; |
746 | + absPath = pathIterator.next(); | ||
747 | + curPrefix = absPath.getNodeIdentifier().getPrefix(); | ||
748 | + if (curPrefix != null) { | ||
749 | + if (!curPrefix.equals(prePrefix)) { | ||
750 | + if (prePrefix != null) { | ||
751 | + addToPrefixResolverList(INTER_TO_INTER, absPath); | ||
752 | + } else { | ||
753 | + addToPrefixResolverList(INTRA_TO_INTER, absPath); | ||
693 | } | 754 | } |
694 | - return null; | 755 | + } else { |
756 | + addToPrefixResolverList(NO_PREFIX_CHANGE_FOR_INTER, absPath); | ||
695 | } | 757 | } |
696 | - | ||
697 | - /** | ||
698 | - * Returns root prefix. | ||
699 | - * | ||
700 | - * @param root root node | ||
701 | - * @return root prefix | ||
702 | - */ | ||
703 | - private String getRootsPrefix(YangNode root) { | ||
704 | - if (root instanceof YangModule) { | ||
705 | - return ((YangModule) root).getPrefix(); | ||
706 | } else { | 758 | } else { |
707 | - return ((YangSubModule) root).getPrefix(); | 759 | + if (prePrefix != null) { |
760 | + addToPrefixResolverList(INTER_TO_INTRA, absPath); | ||
761 | + } else { | ||
762 | + addToPrefixResolverList(NO_PREFIX_CHANGE_FOR_INTRA, absPath); | ||
763 | + } | ||
708 | } | 764 | } |
709 | } | 765 | } |
710 | 766 | ||
767 | + } | ||
768 | + | ||
711 | } | 769 | } | ... | ... |
utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaImportData.java
... | @@ -21,11 +21,14 @@ import java.util.SortedSet; | ... | @@ -21,11 +21,14 @@ import java.util.SortedSet; |
21 | import java.util.TreeSet; | 21 | import java.util.TreeSet; |
22 | 22 | ||
23 | import static org.onosproject.yangutils.utils.UtilConstants.ABSTRACT_EVENT; | 23 | import static org.onosproject.yangutils.utils.UtilConstants.ABSTRACT_EVENT; |
24 | +import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO_CLASS_IMPORT_CLASS; | ||
25 | +import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO_CLASS_IMPORT_PKG; | ||
24 | import static org.onosproject.yangutils.utils.UtilConstants.COLLECTION_IMPORTS; | 26 | import static org.onosproject.yangutils.utils.UtilConstants.COLLECTION_IMPORTS; |
25 | import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING; | 27 | import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING; |
26 | import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER; | 28 | import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER; |
27 | import static org.onosproject.yangutils.utils.UtilConstants.GOOGLE_MORE_OBJECT_IMPORT_CLASS; | 29 | import static org.onosproject.yangutils.utils.UtilConstants.GOOGLE_MORE_OBJECT_IMPORT_CLASS; |
28 | import static org.onosproject.yangutils.utils.UtilConstants.GOOGLE_MORE_OBJECT_IMPORT_PKG; | 30 | import static org.onosproject.yangutils.utils.UtilConstants.GOOGLE_MORE_OBJECT_IMPORT_PKG; |
31 | +import static org.onosproject.yangutils.utils.UtilConstants.HASH_MAP; | ||
29 | import static org.onosproject.yangutils.utils.UtilConstants.IMPORT; | 32 | import static org.onosproject.yangutils.utils.UtilConstants.IMPORT; |
30 | import static org.onosproject.yangutils.utils.UtilConstants.JAVA_LANG; | 33 | import static org.onosproject.yangutils.utils.UtilConstants.JAVA_LANG; |
31 | import static org.onosproject.yangutils.utils.UtilConstants.JAVA_UTIL_OBJECTS_IMPORT_CLASS; | 34 | import static org.onosproject.yangutils.utils.UtilConstants.JAVA_UTIL_OBJECTS_IMPORT_CLASS; |
... | @@ -33,6 +36,7 @@ import static org.onosproject.yangutils.utils.UtilConstants.JAVA_UTIL_OBJECTS_IM | ... | @@ -33,6 +36,7 @@ import static org.onosproject.yangutils.utils.UtilConstants.JAVA_UTIL_OBJECTS_IM |
33 | import static org.onosproject.yangutils.utils.UtilConstants.LIST; | 36 | import static org.onosproject.yangutils.utils.UtilConstants.LIST; |
34 | import static org.onosproject.yangutils.utils.UtilConstants.LISTENER_REG; | 37 | import static org.onosproject.yangutils.utils.UtilConstants.LISTENER_REG; |
35 | import static org.onosproject.yangutils.utils.UtilConstants.LISTENER_SERVICE; | 38 | import static org.onosproject.yangutils.utils.UtilConstants.LISTENER_SERVICE; |
39 | +import static org.onosproject.yangutils.utils.UtilConstants.MAP; | ||
36 | import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE; | 40 | import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE; |
37 | import static org.onosproject.yangutils.utils.UtilConstants.ONOS_EVENT_PKG; | 41 | import static org.onosproject.yangutils.utils.UtilConstants.ONOS_EVENT_PKG; |
38 | import static org.onosproject.yangutils.utils.UtilConstants.PERIOD; | 42 | import static org.onosproject.yangutils.utils.UtilConstants.PERIOD; |
... | @@ -248,4 +252,31 @@ public class JavaImportData { | ... | @@ -248,4 +252,31 @@ public class JavaImportData { |
248 | public String getEventListenerImport() { | 252 | public String getEventListenerImport() { |
249 | return IMPORT + ONOS_EVENT_PKG + PERIOD + EVENT_LISTENER + SEMI_COLAN + NEW_LINE; | 253 | return IMPORT + ONOS_EVENT_PKG + PERIOD + EVENT_LISTENER + SEMI_COLAN + NEW_LINE; |
250 | } | 254 | } |
255 | + | ||
256 | + /** | ||
257 | + * Returns import string for map class. | ||
258 | + * | ||
259 | + * @return import string for map class | ||
260 | + */ | ||
261 | + public String getMapImport() { | ||
262 | + return IMPORT + COLLECTION_IMPORTS + PERIOD + MAP + SEMI_COLAN + NEW_LINE; | ||
263 | + } | ||
264 | + | ||
265 | + /** | ||
266 | + * Returns import string for hash map class. | ||
267 | + * | ||
268 | + * @return import string for hash map class | ||
269 | + */ | ||
270 | + public String getHashMapImport() { | ||
271 | + return IMPORT + COLLECTION_IMPORTS + PERIOD + HASH_MAP + SEMI_COLAN + NEW_LINE; | ||
272 | + } | ||
273 | + | ||
274 | + /** | ||
275 | + * Returns import string for hash map class. | ||
276 | + * | ||
277 | + * @return import string for hash map class | ||
278 | + */ | ||
279 | + public String getYangAugmentedInfoImport() { | ||
280 | + return IMPORT + YANG_AUGMENTED_INFO_CLASS_IMPORT_PKG + PERIOD + YANG_AUGMENTED_INFO_CLASS_IMPORT_CLASS; | ||
281 | + } | ||
251 | } | 282 | } | ... | ... |
... | @@ -189,8 +189,6 @@ public class TempJavaCodeFragmentFiles { | ... | @@ -189,8 +189,6 @@ public class TempJavaCodeFragmentFiles { |
189 | if (fileType == GENERATE_ENUM_CLASS) { | 189 | if (fileType == GENERATE_ENUM_CLASS) { |
190 | getEnumerationTempFiles().generateJavaFile(GENERATE_ENUM_CLASS, curNode); | 190 | getEnumerationTempFiles().generateJavaFile(GENERATE_ENUM_CLASS, curNode); |
191 | } | 191 | } |
192 | - | ||
193 | - freeTemporaryResources(false); | ||
194 | } | 192 | } |
195 | 193 | ||
196 | /** | 194 | /** | ... | ... |
... | @@ -17,16 +17,18 @@ package org.onosproject.yangutils.translator.tojava; | ... | @@ -17,16 +17,18 @@ package org.onosproject.yangutils.translator.tojava; |
17 | 17 | ||
18 | import java.io.File; | 18 | import java.io.File; |
19 | import java.io.IOException; | 19 | import java.io.IOException; |
20 | -import java.util.ArrayList; | ||
21 | import java.util.List; | 20 | import java.util.List; |
22 | 21 | ||
23 | -import org.onosproject.yangutils.datamodel.RpcNotificationContainer; | 22 | +import org.onosproject.yangutils.datamodel.YangAugmentableNode; |
24 | import org.onosproject.yangutils.datamodel.YangCase; | 23 | import org.onosproject.yangutils.datamodel.YangCase; |
25 | import org.onosproject.yangutils.datamodel.YangLeaf; | 24 | import org.onosproject.yangutils.datamodel.YangLeaf; |
26 | import org.onosproject.yangutils.datamodel.YangLeafList; | 25 | import org.onosproject.yangutils.datamodel.YangLeafList; |
27 | import org.onosproject.yangutils.datamodel.YangLeavesHolder; | 26 | import org.onosproject.yangutils.datamodel.YangLeavesHolder; |
28 | import org.onosproject.yangutils.datamodel.YangList; | 27 | import org.onosproject.yangutils.datamodel.YangList; |
28 | +import org.onosproject.yangutils.datamodel.YangModule; | ||
29 | import org.onosproject.yangutils.datamodel.YangNode; | 29 | import org.onosproject.yangutils.datamodel.YangNode; |
30 | +import org.onosproject.yangutils.datamodel.YangSubModule; | ||
31 | +import org.onosproject.yangutils.datamodel.YangUses; | ||
30 | import org.onosproject.yangutils.translator.exception.TranslatorException; | 32 | import org.onosproject.yangutils.translator.exception.TranslatorException; |
31 | import org.onosproject.yangutils.translator.tojava.javamodel.JavaLeafInfoContainer; | 33 | import org.onosproject.yangutils.translator.tojava.javamodel.JavaLeafInfoContainer; |
32 | import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaAugment; | 34 | import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaAugment; |
... | @@ -40,6 +42,7 @@ import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.getParent | ... | @@ -40,6 +42,7 @@ import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.getParent |
40 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK; | 42 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK; |
41 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_INTERFACE_MASK; | 43 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_INTERFACE_MASK; |
42 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS; | 44 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS; |
45 | +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; | ||
43 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER; | 46 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER; |
44 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_TYPE_CLASS; | 47 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_TYPE_CLASS; |
45 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.IMPL_CLASS_MASK; | 48 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.IMPL_CLASS_MASK; |
... | @@ -60,10 +63,12 @@ import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo. | ... | @@ -60,10 +63,12 @@ import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo. |
60 | import static org.onosproject.yangutils.translator.tojava.javamodel.AttributesJavaDataType.updateJavaFileInfo; | 63 | import static org.onosproject.yangutils.translator.tojava.javamodel.AttributesJavaDataType.updateJavaFileInfo; |
61 | import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaAttributeDefination; | 64 | import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaAttributeDefination; |
62 | import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaClassDefClose; | 65 | import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaClassDefClose; |
66 | +import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.sortImports; | ||
63 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateBuilderClassFile; | 67 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateBuilderClassFile; |
64 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateBuilderInterfaceFile; | 68 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateBuilderInterfaceFile; |
65 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateImplClassFile; | 69 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateImplClassFile; |
66 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateInterfaceFile; | 70 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateInterfaceFile; |
71 | +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.addResolvedAugmentedDataNodeImports; | ||
67 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getFileObject; | 72 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getFileObject; |
68 | import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.createPackage; | 73 | import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.createPackage; |
69 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAugmentedConstructor; | 74 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAugmentedConstructor; |
... | @@ -74,14 +79,11 @@ import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator | ... | @@ -74,14 +79,11 @@ import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator |
74 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterForClass; | 79 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterForClass; |
75 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterString; | 80 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterString; |
76 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethod; | 81 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethod; |
77 | -import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOfMethod; | ||
78 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOverRideString; | 82 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOverRideString; |
79 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForClass; | 83 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForClass; |
80 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterString; | 84 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterString; |
81 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethod; | 85 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethod; |
82 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.parseBuilderInterfaceBuildMethodString; | 86 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.parseBuilderInterfaceBuildMethodString; |
83 | -import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.closeFile; | ||
84 | -import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.sortImports; | ||
85 | import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE; | 87 | import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE; |
86 | import static org.onosproject.yangutils.utils.UtilConstants.BUILDER; | 88 | import static org.onosproject.yangutils.utils.UtilConstants.BUILDER; |
87 | import static org.onosproject.yangutils.utils.UtilConstants.COMPONENT; | 89 | import static org.onosproject.yangutils.utils.UtilConstants.COMPONENT; |
... | @@ -100,9 +102,9 @@ import static org.onosproject.yangutils.utils.UtilConstants.REFERENCE_CARDINALIT | ... | @@ -100,9 +102,9 @@ import static org.onosproject.yangutils.utils.UtilConstants.REFERENCE_CARDINALIT |
100 | import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN; | 102 | import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN; |
101 | import static org.onosproject.yangutils.utils.UtilConstants.SERVICE; | 103 | import static org.onosproject.yangutils.utils.UtilConstants.SERVICE; |
102 | import static org.onosproject.yangutils.utils.UtilConstants.SLASH; | 104 | import static org.onosproject.yangutils.utils.UtilConstants.SLASH; |
105 | +import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.closeFile; | ||
103 | import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.readAppendFile; | 106 | import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.readAppendFile; |
104 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD; | 107 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD; |
105 | -import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.OF_METHOD; | ||
106 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc; | 108 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc; |
107 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath; | 109 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath; |
108 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase; | 110 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase; |
... | @@ -113,38 +115,12 @@ import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.mergeJavaFiles | ... | @@ -113,38 +115,12 @@ import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.mergeJavaFiles |
113 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.validateLineLength; | 115 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.validateLineLength; |
114 | 116 | ||
115 | /** | 117 | /** |
116 | - * Represents implementation of java code fragments temporary implementations. | 118 | + * Represents implementation of java code fragments temporary implementations. Manages the common temp file required for |
117 | - * Manages the common temp file required for Java file(s) generated. | 119 | + * Java file(s) generated. |
118 | */ | 120 | */ |
119 | public class TempJavaFragmentFiles { | 121 | public class TempJavaFragmentFiles { |
120 | 122 | ||
121 | /** | 123 | /** |
122 | - * Information about the java files being generated. | ||
123 | - */ | ||
124 | - private JavaFileInfo javaFileInfo; | ||
125 | - | ||
126 | - /** | ||
127 | - * Imported class info. | ||
128 | - */ | ||
129 | - private JavaImportData javaImportData; | ||
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 | - * Absolute path where the target java file needs to be generated. | ||
139 | - */ | ||
140 | - private String absoluteDirPath; | ||
141 | - | ||
142 | - /** | ||
143 | - * Contains all the interface(s)/class name which will be extended by generated files. | ||
144 | - */ | ||
145 | - private JavaExtendsListHolder javaExtendsListHolder; | ||
146 | - | ||
147 | - /** | ||
148 | * File type extension for java classes. | 124 | * File type extension for java classes. |
149 | */ | 125 | */ |
150 | private static final String JAVA_FILE_EXTENSION = ".java"; | 126 | private static final String JAVA_FILE_EXTENSION = ".java"; |
... | @@ -228,6 +204,32 @@ public class TempJavaFragmentFiles { | ... | @@ -228,6 +204,32 @@ public class TempJavaFragmentFiles { |
228 | * File name for augment copy constructor method. | 204 | * File name for augment copy constructor method. |
229 | */ | 205 | */ |
230 | private static final String AUGMENT_CONSTRUCTOR_FILE_NAME = "AugmentConstructor"; | 206 | private static final String AUGMENT_CONSTRUCTOR_FILE_NAME = "AugmentConstructor"; |
207 | + | ||
208 | + /** | ||
209 | + * Information about the java files being generated. | ||
210 | + */ | ||
211 | + private JavaFileInfo javaFileInfo; | ||
212 | + | ||
213 | + /** | ||
214 | + * Imported class info. | ||
215 | + */ | ||
216 | + private JavaImportData javaImportData; | ||
217 | + | ||
218 | + /** | ||
219 | + * The variable which guides the types of temporary files generated using the temporary generated file types mask. | ||
220 | + */ | ||
221 | + private int generatedTempFiles; | ||
222 | + | ||
223 | + /** | ||
224 | + * Absolute path where the target java file needs to be generated. | ||
225 | + */ | ||
226 | + private String absoluteDirPath; | ||
227 | + | ||
228 | + /** | ||
229 | + * Contains all the interface(s)/class name which will be extended by generated files. | ||
230 | + */ | ||
231 | + private JavaExtendsListHolder javaExtendsListHolder; | ||
232 | + | ||
231 | /** | 233 | /** |
232 | * Java file handle for interface file. | 234 | * Java file handle for interface file. |
233 | */ | 235 | */ |
... | @@ -308,327 +310,440 @@ public class TempJavaFragmentFiles { | ... | @@ -308,327 +310,440 @@ public class TempJavaFragmentFiles { |
308 | */ | 310 | */ |
309 | private File augmentConstructorImplTempFileHandle; | 311 | private File augmentConstructorImplTempFileHandle; |
310 | 312 | ||
311 | - /** | 313 | + TempJavaFragmentFiles() { |
312 | - * Retrieves the absolute path where the file needs to be generated. | ||
313 | - * | ||
314 | - * @return absolute path where the file needs to be generated | ||
315 | - */ | ||
316 | - private String getAbsoluteDirPath() { | ||
317 | - return absoluteDirPath; | ||
318 | } | 314 | } |
319 | 315 | ||
320 | /** | 316 | /** |
321 | - * Sets absolute path where the file needs to be generated. | 317 | + * Creates an instance of temporary java code fragment. |
322 | * | 318 | * |
323 | - * @param absoluteDirPath absolute path where the file needs to be | 319 | + * @param javaFileInfo generated java file information |
324 | - * generated. | 320 | + * @throws IOException when fails to create new file handle |
325 | */ | 321 | */ |
326 | - void setAbsoluteDirPath(String absoluteDirPath) { | 322 | + TempJavaFragmentFiles(JavaFileInfo javaFileInfo) |
327 | - this.absoluteDirPath = absoluteDirPath; | 323 | + throws IOException { |
328 | - } | 324 | + setJavaExtendsListHolder(new JavaExtendsListHolder()); |
325 | + setJavaImportData(new JavaImportData()); | ||
326 | + setJavaFileInfo(javaFileInfo); | ||
327 | + setAbsoluteDirPath(getAbsolutePackagePath(getJavaFileInfo().getBaseCodeGenPath(), | ||
328 | + getJavaFileInfo().getPackageFilePath())); | ||
329 | 329 | ||
330 | - /** | 330 | + /* |
331 | - * Sets the generated java file information. | 331 | + * Initialize getter when generation file type matches to interface |
332 | - * | 332 | + * mask. |
333 | - * @param javaFileInfo generated java file information | ||
334 | */ | 333 | */ |
335 | - public void setJavaFileInfo(JavaFileInfo javaFileInfo) { | 334 | + if ((getGeneratedJavaFiles() & INTERFACE_MASK) != 0) { |
336 | - this.javaFileInfo = javaFileInfo; | 335 | + addGeneratedTempFile(GETTER_FOR_INTERFACE_MASK); |
337 | } | 336 | } |
338 | 337 | ||
339 | - /** | 338 | + /* |
340 | - * Retrieves the generated java file information. | 339 | + * Initialize getter and setter when generation file type matches to |
341 | - * | 340 | + * builder interface mask. |
342 | - * @return generated java file information | ||
343 | */ | 341 | */ |
344 | - public JavaFileInfo getJavaFileInfo() { | 342 | + if ((getGeneratedJavaFiles() & BUILDER_INTERFACE_MASK) != 0) { |
345 | - return javaFileInfo; | 343 | + addGeneratedTempFile(GETTER_FOR_INTERFACE_MASK); |
344 | + addGeneratedTempFile(SETTER_FOR_INTERFACE_MASK); | ||
346 | } | 345 | } |
347 | 346 | ||
348 | - /** | 347 | + /* |
349 | - * Retrieves the generated temp files. | 348 | + * Initialize getterImpl, setterImpl and attributes when generation file |
350 | - * | 349 | + * type matches to builder class mask. |
351 | - * @return generated temp files | ||
352 | */ | 350 | */ |
353 | - int getGeneratedTempFiles() { | 351 | + if ((getGeneratedJavaFiles() & BUILDER_CLASS_MASK) != 0) { |
354 | - return generatedTempFiles; | 352 | + addGeneratedTempFile(ATTRIBUTES_MASK); |
353 | + addGeneratedTempFile(GETTER_FOR_CLASS_MASK); | ||
354 | + addGeneratedTempFile(SETTER_FOR_CLASS_MASK); | ||
355 | + addGeneratedTempFile(AUGMENTE_CLASS_CONSTRUCTOR_MASK); | ||
355 | } | 356 | } |
356 | 357 | ||
357 | - /** | 358 | + /* |
358 | - * Clears the generated file mask. | 359 | + * Initialize getterImpl, attributes, constructor, hash code, equals and |
360 | + * to strings when generation file type matches to impl class mask. | ||
359 | */ | 361 | */ |
360 | - void clearGeneratedTempFileMask() { | 362 | + if ((getGeneratedJavaFiles() & IMPL_CLASS_MASK) != 0) { |
361 | - generatedTempFiles = 0; | 363 | + addGeneratedTempFile(ATTRIBUTES_MASK); |
364 | + addGeneratedTempFile(GETTER_FOR_CLASS_MASK); | ||
365 | + addGeneratedTempFile(HASH_CODE_IMPL_MASK); | ||
366 | + addGeneratedTempFile(EQUALS_IMPL_MASK); | ||
367 | + addGeneratedTempFile(TO_STRING_IMPL_MASK); | ||
362 | } | 368 | } |
363 | 369 | ||
364 | - /** | 370 | + /* |
365 | - * Adds to generated temporary files. | 371 | + * Initialize temp files to generate type class. |
366 | - * | ||
367 | - * @param generatedTempFile generated file | ||
368 | */ | 372 | */ |
369 | - void addGeneratedTempFile(int generatedTempFile) { | 373 | + if ((getGeneratedJavaFiles() & GENERATE_TYPE_CLASS) != 0) { |
370 | - generatedTempFiles |= generatedTempFile; | 374 | + addGeneratedTempFile(ATTRIBUTES_MASK); |
371 | - setGeneratedTempFiles(generatedTempFiles); | 375 | + addGeneratedTempFile(GETTER_FOR_CLASS_MASK); |
376 | + addGeneratedTempFile(HASH_CODE_IMPL_MASK); | ||
377 | + addGeneratedTempFile(EQUALS_IMPL_MASK); | ||
378 | + addGeneratedTempFile(TO_STRING_IMPL_MASK); | ||
379 | + addGeneratedTempFile(FROM_STRING_IMPL_MASK); | ||
372 | } | 380 | } |
373 | 381 | ||
374 | - /** | 382 | + /* |
375 | - * Sets generated file files. | 383 | + * Initialize temp files to generate enum class. |
376 | - * | ||
377 | - * @param fileType generated file type | ||
378 | */ | 384 | */ |
379 | - void setGeneratedTempFiles(int fileType) { | 385 | + if ((getGeneratedJavaFiles() & GENERATE_ENUM_CLASS) != 0) { |
380 | - generatedTempFiles = fileType; | 386 | + addGeneratedTempFile(FROM_STRING_IMPL_MASK); |
381 | } | 387 | } |
382 | 388 | ||
383 | - /** | 389 | + /* |
384 | - * Retrieves the generated Java files. | 390 | + * Set temporary file handles. |
385 | - * | ||
386 | - * @return generated Java files | ||
387 | */ | 391 | */ |
388 | - int getGeneratedJavaFiles() { | 392 | + if ((getGeneratedTempFiles() & ATTRIBUTES_MASK) != 0) { |
389 | - return getJavaFileInfo().getGeneratedFileTypes(); | 393 | + setAttributesTempFileHandle(getTemporaryFileHandle(ATTRIBUTE_FILE_NAME)); |
394 | + } | ||
395 | + | ||
396 | + if ((getGeneratedTempFiles() & GETTER_FOR_INTERFACE_MASK) != 0) { | ||
397 | + setGetterInterfaceTempFileHandle(getTemporaryFileHandle(GETTER_METHOD_FILE_NAME)); | ||
398 | + } | ||
399 | + | ||
400 | + if ((getGeneratedTempFiles() & SETTER_FOR_INTERFACE_MASK) != 0) { | ||
401 | + setSetterInterfaceTempFileHandle(getTemporaryFileHandle(SETTER_METHOD_FILE_NAME)); | ||
402 | + } | ||
403 | + | ||
404 | + if ((getGeneratedTempFiles() & GETTER_FOR_CLASS_MASK) != 0) { | ||
405 | + setGetterImplTempFileHandle(getTemporaryFileHandle(GETTER_METHOD_IMPL_FILE_NAME)); | ||
406 | + } | ||
407 | + | ||
408 | + if ((getGeneratedTempFiles() & SETTER_FOR_CLASS_MASK) != 0) { | ||
409 | + setSetterImplTempFileHandle(getTemporaryFileHandle(SETTER_METHOD_IMPL_FILE_NAME)); | ||
410 | + } | ||
411 | + | ||
412 | + if ((getGeneratedTempFiles() & HASH_CODE_IMPL_MASK) != 0) { | ||
413 | + setHashCodeImplTempFileHandle(getTemporaryFileHandle(HASH_CODE_METHOD_FILE_NAME)); | ||
414 | + } | ||
415 | + if ((getGeneratedTempFiles() & EQUALS_IMPL_MASK) != 0) { | ||
416 | + setEqualsImplTempFileHandle(getTemporaryFileHandle(EQUALS_METHOD_FILE_NAME)); | ||
417 | + } | ||
418 | + if ((getGeneratedTempFiles() & TO_STRING_IMPL_MASK) != 0) { | ||
419 | + setToStringImplTempFileHandle(getTemporaryFileHandle(TO_STRING_METHOD_FILE_NAME)); | ||
420 | + } | ||
421 | + if ((getGeneratedTempFiles() & FROM_STRING_IMPL_MASK) != 0) { | ||
422 | + setFromStringImplTempFileHandle(getTemporaryFileHandle(FROM_STRING_METHOD_FILE_NAME)); | ||
423 | + } | ||
424 | + if ((getGeneratedTempFiles() & AUGMENTE_CLASS_CONSTRUCTOR_MASK) != 0) { | ||
425 | + setAugmentConstructorImplTempFileHandle(getTemporaryFileHandle(AUGMENT_CONSTRUCTOR_FILE_NAME)); | ||
390 | } | 426 | } |
391 | 427 | ||
392 | - /** | ||
393 | - * Retrieves the mapped Java class name. | ||
394 | - * | ||
395 | - * @return mapped Java class name | ||
396 | - */ | ||
397 | - String getGeneratedJavaClassName() { | ||
398 | - return getCapitalCase(getJavaFileInfo().getJavaName()); | ||
399 | } | 428 | } |
400 | 429 | ||
401 | /** | 430 | /** |
402 | - * Retrieves the import data for the generated Java file. | 431 | + * Adds current node info as and attribute to the parent generated file. |
403 | * | 432 | * |
404 | - * @return import data for the generated Java file | 433 | + * @param curNode current node which needs to be added as an attribute in the parent generated code |
434 | + * @param isList is list construct | ||
435 | + * @param pluginConfig plugin configurations | ||
436 | + * @throws IOException IO operation exception | ||
405 | */ | 437 | */ |
406 | - public JavaImportData getJavaImportData() { | 438 | + public static void addCurNodeInfoInParentTempFile(YangNode curNode, |
407 | - return javaImportData; | 439 | + boolean isList, YangPluginConfig pluginConfig) |
440 | + throws IOException { | ||
441 | + YangNode parent = getParentNodeInGenCode(curNode); | ||
442 | + if (!(parent instanceof JavaCodeGenerator)) { | ||
443 | + throw new TranslatorException("missing parent node to contain current node info in generated file"); | ||
408 | } | 444 | } |
409 | 445 | ||
410 | - /** | 446 | + if (parent instanceof YangJavaGrouping) { |
411 | - * Sets import data for the generated Java file. | 447 | + /* |
412 | - * | 448 | + * In case of grouping, there is no need to add the information, it |
413 | - * @param javaImportData import data for the generated Java file | 449 | + * will be taken care in uses |
414 | */ | 450 | */ |
415 | - void setJavaImportData(JavaImportData javaImportData) { | 451 | + return; |
416 | - this.javaImportData = javaImportData; | 452 | + } |
453 | + TempJavaBeanFragmentFiles tempJavaBeanFragmentFiles = ((JavaCodeGeneratorInfo) parent) | ||
454 | + .getTempJavaCodeFragmentFiles().getBeanTempFiles(); | ||
455 | + | ||
456 | + JavaAttributeInfo javaAttributeInfo = getCurNodeAsAttributeInTarget(curNode, | ||
457 | + parent, isList, tempJavaBeanFragmentFiles); | ||
458 | + if (!(parent instanceof TempJavaCodeFragmentFilesContainer)) { | ||
459 | + throw new TranslatorException("missing parent temp file handle"); | ||
460 | + } | ||
461 | + getNodesInterfaceFragmentFiles(parent, javaAttributeInfo, pluginConfig); | ||
417 | } | 462 | } |
418 | 463 | ||
419 | /** | 464 | /** |
420 | - * Retrieves the status of any attributes added. | 465 | + * Creates an attribute info object corresponding to a data model node and return it. |
421 | * | 466 | * |
422 | - * @return status of any attributes added | 467 | + * @param curNode current data model node for which the java code generation is being handled |
468 | + * @param targetNode target node in which the current node is an attribute | ||
469 | + * @param isListNode is the current added attribute needs to be a list | ||
470 | + * @param tempJavaFragmentFiles temp java fragment files | ||
471 | + * @return AttributeInfo attribute details required to add in temporary files | ||
423 | */ | 472 | */ |
424 | - public boolean isAttributePresent() { | 473 | + public static JavaAttributeInfo getCurNodeAsAttributeInTarget(YangNode curNode, |
425 | - return isAttributePresent; | 474 | + YangNode targetNode, boolean isListNode, |
475 | + TempJavaFragmentFiles tempJavaFragmentFiles) { | ||
476 | + String curNodeName = ((JavaFileInfoContainer) curNode).getJavaFileInfo().getJavaName(); | ||
477 | + if (curNodeName == null) { | ||
478 | + updateJavaFileInfo(curNode, null); | ||
479 | + curNodeName = ((JavaFileInfoContainer) curNode).getJavaFileInfo().getJavaName(); | ||
426 | } | 480 | } |
427 | 481 | ||
428 | - /** | 482 | + /* |
429 | - * Sets status of any attributes added. | 483 | + * Get the import info corresponding to the attribute for import in |
430 | - * | 484 | + * generated java files or qualified access |
431 | - * @param attributePresent status of any attributes added | ||
432 | */ | 485 | */ |
433 | - public void setAttributePresent(boolean attributePresent) { | 486 | + JavaQualifiedTypeInfo qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode, |
434 | - isAttributePresent = attributePresent; | 487 | + getCapitalCase(curNodeName)); |
488 | + if (!(targetNode instanceof TempJavaCodeFragmentFilesContainer)) { | ||
489 | + throw new TranslatorException("Parent node does not have file info"); | ||
490 | + } | ||
491 | + JavaImportData parentImportData = tempJavaFragmentFiles.getJavaImportData(); | ||
492 | + JavaFileInfo fileInfo = ((JavaFileInfoContainer) targetNode).getJavaFileInfo(); | ||
493 | + | ||
494 | + boolean isQualified; | ||
495 | + if ((targetNode instanceof YangJavaModule || targetNode instanceof YangJavaSubModule) | ||
496 | + && (qualifiedTypeInfo.getClassInfo().contentEquals(SERVICE) | ||
497 | + || qualifiedTypeInfo.getClassInfo().contentEquals(COMPONENT) | ||
498 | + || qualifiedTypeInfo.getClassInfo().contentEquals(getCapitalCase(ACTIVATE)) | ||
499 | + || qualifiedTypeInfo.getClassInfo().contentEquals(getCapitalCase(DEACTIVATE)) | ||
500 | + || qualifiedTypeInfo.getClassInfo().contentEquals(REFERENCE_CARDINALITY) | ||
501 | + || qualifiedTypeInfo.getClassInfo().contentEquals(REFERENCE)) | ||
502 | + || qualifiedTypeInfo.getClassInfo().contentEquals(getCapitalCase(fileInfo.getJavaName() + SERVICE)) | ||
503 | + || qualifiedTypeInfo.getClassInfo().contentEquals(getCapitalCase(fileInfo.getJavaName() + MANAGER))) { | ||
504 | + | ||
505 | + isQualified = true; | ||
506 | + } else { | ||
507 | + String className; | ||
508 | + if (targetNode instanceof YangJavaModule || targetNode instanceof YangJavaSubModule) { | ||
509 | + className = getCapitalCase(fileInfo.getJavaName()) + "Service"; | ||
510 | + } else { | ||
511 | + className = getCapitalCase(fileInfo.getJavaName()); | ||
512 | + } | ||
513 | + | ||
514 | + isQualified = parentImportData.addImportInfo(qualifiedTypeInfo, | ||
515 | + className, fileInfo.getPackage()); | ||
516 | + } | ||
517 | + | ||
518 | + if (isListNode) { | ||
519 | + parentImportData.setIfListImported(true); | ||
520 | + } | ||
521 | + | ||
522 | + return getAttributeInfoForTheData(qualifiedTypeInfo, curNodeName, null, isQualified, isListNode); | ||
435 | } | 523 | } |
436 | 524 | ||
437 | /** | 525 | /** |
438 | - * Returns getter methods's temporary file handle. | 526 | + * Adds java code snippet for corresponding files. |
439 | * | 527 | * |
440 | - * @return temporary file handle | 528 | + * @param node java node |
529 | + * @param attr attribute info | ||
530 | + * @param config plugin configurations | ||
531 | + * @throws IOException when fails to do IO operations | ||
441 | */ | 532 | */ |
442 | - public File getGetterInterfaceTempFileHandle() { | 533 | + public static void getNodesInterfaceFragmentFiles(YangNode node, JavaAttributeInfo attr, |
443 | - return getterInterfaceTempFileHandle; | 534 | + YangPluginConfig config) throws IOException { |
535 | + TempJavaFragmentFiles tempJavaFragmentFiles; | ||
536 | + JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) node).getJavaFileInfo(); | ||
537 | + if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_SERVICE_AND_MANAGER) != 0) { | ||
538 | + tempJavaFragmentFiles = ((TempJavaCodeFragmentFilesContainer) node) | ||
539 | + .getTempJavaCodeFragmentFiles() | ||
540 | + .getServiceTempFiles(); | ||
541 | + tempJavaFragmentFiles.addJavaSnippetInfoToApplicableTempFiles(attr, config); | ||
542 | + } | ||
543 | + if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_INTERFACE_WITH_BUILDER) != 0) { | ||
544 | + tempJavaFragmentFiles = ((TempJavaCodeFragmentFilesContainer) node) | ||
545 | + .getTempJavaCodeFragmentFiles() | ||
546 | + .getBeanTempFiles(); | ||
547 | + tempJavaFragmentFiles.addJavaSnippetInfoToApplicableTempFiles(attr, config); | ||
548 | + } | ||
549 | + | ||
444 | } | 550 | } |
445 | 551 | ||
446 | /** | 552 | /** |
447 | - * Sets to getter method's temporary file handle. | 553 | + * Retrieves the absolute path where the file needs to be generated. |
448 | * | 554 | * |
449 | - * @param getterForInterface file handle for to getter method | 555 | + * @return absolute path where the file needs to be generated |
450 | */ | 556 | */ |
451 | - private void setGetterInterfaceTempFileHandle(File getterForInterface) { | 557 | + private String getAbsoluteDirPath() { |
452 | - getterInterfaceTempFileHandle = getterForInterface; | 558 | + return absoluteDirPath; |
453 | } | 559 | } |
454 | 560 | ||
455 | /** | 561 | /** |
456 | - * Returns setter method's temporary file handle. | 562 | + * Sets absolute path where the file needs to be generated. |
457 | * | 563 | * |
458 | - * @return temporary file handle | 564 | + * @param absoluteDirPath absolute path where the file needs to be generated. |
459 | */ | 565 | */ |
460 | - public File getSetterInterfaceTempFileHandle() { | 566 | + void setAbsoluteDirPath(String absoluteDirPath) { |
461 | - return setterInterfaceTempFileHandle; | 567 | + this.absoluteDirPath = absoluteDirPath; |
462 | } | 568 | } |
463 | 569 | ||
464 | /** | 570 | /** |
465 | - * Sets to setter method's temporary file handle. | 571 | + * Retrieves the generated java file information. |
466 | * | 572 | * |
467 | - * @param setterForInterface file handle for to setter method | 573 | + * @return generated java file information |
468 | */ | 574 | */ |
469 | - private void setSetterInterfaceTempFileHandle(File setterForInterface) { | 575 | + public JavaFileInfo getJavaFileInfo() { |
470 | - setterInterfaceTempFileHandle = setterForInterface; | 576 | + return javaFileInfo; |
471 | } | 577 | } |
472 | 578 | ||
473 | /** | 579 | /** |
474 | - * Returns setter method's impl's temporary file handle. | 580 | + * Sets the generated java file information. |
475 | * | 581 | * |
476 | - * @return temporary file handle | 582 | + * @param javaFileInfo generated java file information |
477 | */ | 583 | */ |
478 | - public File getSetterImplTempFileHandle() { | 584 | + public void setJavaFileInfo(JavaFileInfo javaFileInfo) { |
479 | - return setterImplTempFileHandle; | 585 | + this.javaFileInfo = javaFileInfo; |
480 | } | 586 | } |
481 | 587 | ||
482 | /** | 588 | /** |
483 | - * Sets to setter method's impl's temporary file handle. | 589 | + * Retrieves the generated temp files. |
484 | * | 590 | * |
485 | - * @param setterImpl file handle for to setter method's implementation class | 591 | + * @return generated temp files |
486 | */ | 592 | */ |
487 | - private void setSetterImplTempFileHandle(File setterImpl) { | 593 | + int getGeneratedTempFiles() { |
488 | - setterImplTempFileHandle = setterImpl; | 594 | + return generatedTempFiles; |
489 | } | 595 | } |
490 | 596 | ||
491 | /** | 597 | /** |
492 | - * Returns from string method's temporary file handle. | 598 | + * Sets generated file files. |
493 | * | 599 | * |
494 | - * @return from string method's temporary file handle | 600 | + * @param fileType generated file type |
495 | */ | 601 | */ |
496 | - public File getFromStringImplTempFileHandle() { | 602 | + void setGeneratedTempFiles(int fileType) { |
497 | - return fromStringImplTempFileHandle; | 603 | + generatedTempFiles = fileType; |
498 | } | 604 | } |
499 | 605 | ||
500 | /** | 606 | /** |
501 | - * Sets from string method's temporary file handle. | 607 | + * Clears the generated file mask. |
502 | - * | ||
503 | - * @param fromStringImplTempFileHandle from string method's temporary file | ||
504 | - * handle | ||
505 | */ | 608 | */ |
506 | - private void setFromStringImplTempFileHandle(File fromStringImplTempFileHandle) { | 609 | + void clearGeneratedTempFileMask() { |
507 | - this.fromStringImplTempFileHandle = fromStringImplTempFileHandle; | 610 | + generatedTempFiles = 0; |
508 | } | 611 | } |
509 | 612 | ||
510 | /** | 613 | /** |
511 | - * Creates an instance of temporary java code fragment. | 614 | + * Adds to generated temporary files. |
512 | * | 615 | * |
513 | - * @param javaFileInfo generated java file information | 616 | + * @param generatedTempFile generated file |
514 | - * @throws IOException when fails to create new file handle | ||
515 | - */ | ||
516 | - TempJavaFragmentFiles(JavaFileInfo javaFileInfo) | ||
517 | - throws IOException { | ||
518 | - setJavaExtendsListHolder(new JavaExtendsListHolder()); | ||
519 | - setJavaImportData(new JavaImportData()); | ||
520 | - setJavaFileInfo(javaFileInfo); | ||
521 | - setAbsoluteDirPath(getAbsolutePackagePath(getJavaFileInfo().getBaseCodeGenPath(), | ||
522 | - getJavaFileInfo().getPackageFilePath())); | ||
523 | - | ||
524 | - /* | ||
525 | - * Initialize getter when generation file type matches to interface | ||
526 | - * mask. | ||
527 | */ | 617 | */ |
528 | - if ((getGeneratedJavaFiles() & INTERFACE_MASK) != 0) { | 618 | + void addGeneratedTempFile(int generatedTempFile) { |
529 | - addGeneratedTempFile(GETTER_FOR_INTERFACE_MASK); | 619 | + generatedTempFiles |= generatedTempFile; |
620 | + setGeneratedTempFiles(generatedTempFiles); | ||
530 | } | 621 | } |
531 | 622 | ||
532 | - /* | 623 | + /** |
533 | - * Initialize getter and setter when generation file type matches to | 624 | + * Retrieves the generated Java files. |
534 | - * builder interface mask. | 625 | + * |
626 | + * @return generated Java files | ||
535 | */ | 627 | */ |
536 | - if ((getGeneratedJavaFiles() & BUILDER_INTERFACE_MASK) != 0) { | 628 | + int getGeneratedJavaFiles() { |
537 | - addGeneratedTempFile(GETTER_FOR_INTERFACE_MASK); | 629 | + return getJavaFileInfo().getGeneratedFileTypes(); |
538 | - addGeneratedTempFile(SETTER_FOR_INTERFACE_MASK); | ||
539 | } | 630 | } |
540 | 631 | ||
541 | - /* | 632 | + /** |
542 | - * Initialize getterImpl, setterImpl and attributes when generation file | 633 | + * Retrieves the mapped Java class name. |
543 | - * type matches to builder class mask. | 634 | + * |
635 | + * @return mapped Java class name | ||
544 | */ | 636 | */ |
545 | - if ((getGeneratedJavaFiles() & BUILDER_CLASS_MASK) != 0) { | 637 | + String getGeneratedJavaClassName() { |
546 | - addGeneratedTempFile(ATTRIBUTES_MASK); | 638 | + return getCapitalCase(getJavaFileInfo().getJavaName()); |
547 | - addGeneratedTempFile(GETTER_FOR_CLASS_MASK); | ||
548 | - addGeneratedTempFile(SETTER_FOR_CLASS_MASK); | ||
549 | - addGeneratedTempFile(AUGMENTE_CLASS_CONSTRUCTOR_MASK); | ||
550 | } | 639 | } |
551 | 640 | ||
552 | - /* | 641 | + /** |
553 | - * Initialize getterImpl, attributes, constructor, hash code, equals and | 642 | + * Retrieves the import data for the generated Java file. |
554 | - * to strings when generation file type matches to impl class mask. | 643 | + * |
644 | + * @return import data for the generated Java file | ||
555 | */ | 645 | */ |
556 | - if ((getGeneratedJavaFiles() & IMPL_CLASS_MASK) != 0) { | 646 | + public JavaImportData getJavaImportData() { |
557 | - addGeneratedTempFile(ATTRIBUTES_MASK); | 647 | + return javaImportData; |
558 | - addGeneratedTempFile(GETTER_FOR_CLASS_MASK); | ||
559 | - addGeneratedTempFile(HASH_CODE_IMPL_MASK); | ||
560 | - addGeneratedTempFile(EQUALS_IMPL_MASK); | ||
561 | - addGeneratedTempFile(TO_STRING_IMPL_MASK); | ||
562 | } | 648 | } |
563 | 649 | ||
564 | - /* | 650 | + /** |
565 | - * Initialize temp files to generate type class. | 651 | + * Sets import data for the generated Java file. |
566 | - */ | 652 | + * |
567 | - if ((getGeneratedJavaFiles() & GENERATE_TYPE_CLASS) != 0) { | 653 | + * @param javaImportData import data for the generated Java file |
568 | - addGeneratedTempFile(ATTRIBUTES_MASK); | 654 | + */ |
569 | - addGeneratedTempFile(GETTER_FOR_CLASS_MASK); | 655 | + void setJavaImportData(JavaImportData javaImportData) { |
570 | - addGeneratedTempFile(HASH_CODE_IMPL_MASK); | 656 | + this.javaImportData = javaImportData; |
571 | - addGeneratedTempFile(EQUALS_IMPL_MASK); | ||
572 | - addGeneratedTempFile(TO_STRING_IMPL_MASK); | ||
573 | - addGeneratedTempFile(FROM_STRING_IMPL_MASK); | ||
574 | } | 657 | } |
575 | 658 | ||
576 | - /* | 659 | + /** |
577 | - * Initialize temp files to generate enum class. | 660 | + * Retrieves the status of any attributes added. |
661 | + * | ||
662 | + * @return status of any attributes added | ||
578 | */ | 663 | */ |
579 | - if ((getGeneratedJavaFiles() & GENERATE_ENUM_CLASS) != 0) { | 664 | + public boolean isAttributePresent() { |
580 | - addGeneratedTempFile(FROM_STRING_IMPL_MASK); | 665 | + return isAttributePresent; |
581 | } | 666 | } |
582 | - /* | 667 | + |
583 | - * Initialize getter and setter when generation file type matches to | 668 | + /** |
584 | - * builder interface mask. | 669 | + * Sets status of any attributes added. |
670 | + * | ||
671 | + * @param attributePresent status of any attributes added | ||
585 | */ | 672 | */ |
586 | - if ((getGeneratedJavaFiles() & GENERATE_SERVICE_AND_MANAGER) != 0) { | 673 | + public void setAttributePresent(boolean attributePresent) { |
587 | - addGeneratedTempFile(GETTER_FOR_INTERFACE_MASK); | 674 | + isAttributePresent = attributePresent; |
588 | - addGeneratedTempFile(SETTER_FOR_INTERFACE_MASK); | ||
589 | - addGeneratedTempFile(GETTER_FOR_CLASS_MASK); | ||
590 | - addGeneratedTempFile(SETTER_FOR_CLASS_MASK); | ||
591 | } | 675 | } |
592 | 676 | ||
593 | - /* | 677 | + /** |
594 | - * Set temporary file handles. | 678 | + * Returns getter methods's temporary file handle. |
679 | + * | ||
680 | + * @return temporary file handle | ||
595 | */ | 681 | */ |
596 | - if ((getGeneratedTempFiles() & ATTRIBUTES_MASK) != 0) { | 682 | + public File getGetterInterfaceTempFileHandle() { |
597 | - setAttributesTempFileHandle(getTemporaryFileHandle(ATTRIBUTE_FILE_NAME)); | 683 | + return getterInterfaceTempFileHandle; |
598 | } | 684 | } |
599 | 685 | ||
600 | - if ((getGeneratedTempFiles() & GETTER_FOR_INTERFACE_MASK) != 0) { | 686 | + /** |
601 | - setGetterInterfaceTempFileHandle(getTemporaryFileHandle(GETTER_METHOD_FILE_NAME)); | 687 | + * Sets to getter method's temporary file handle. |
688 | + * | ||
689 | + * @param getterForInterface file handle for to getter method | ||
690 | + */ | ||
691 | + private void setGetterInterfaceTempFileHandle(File getterForInterface) { | ||
692 | + getterInterfaceTempFileHandle = getterForInterface; | ||
602 | } | 693 | } |
603 | 694 | ||
604 | - if ((getGeneratedTempFiles() & SETTER_FOR_INTERFACE_MASK) != 0) { | 695 | + /** |
605 | - setSetterInterfaceTempFileHandle(getTemporaryFileHandle(SETTER_METHOD_FILE_NAME)); | 696 | + * Returns setter method's temporary file handle. |
697 | + * | ||
698 | + * @return temporary file handle | ||
699 | + */ | ||
700 | + public File getSetterInterfaceTempFileHandle() { | ||
701 | + return setterInterfaceTempFileHandle; | ||
606 | } | 702 | } |
607 | 703 | ||
608 | - if ((getGeneratedTempFiles() & GETTER_FOR_CLASS_MASK) != 0) { | 704 | + /** |
609 | - setGetterImplTempFileHandle(getTemporaryFileHandle(GETTER_METHOD_IMPL_FILE_NAME)); | 705 | + * Sets to setter method's temporary file handle. |
706 | + * | ||
707 | + * @param setterForInterface file handle for to setter method | ||
708 | + */ | ||
709 | + private void setSetterInterfaceTempFileHandle(File setterForInterface) { | ||
710 | + setterInterfaceTempFileHandle = setterForInterface; | ||
610 | } | 711 | } |
611 | 712 | ||
612 | - if ((getGeneratedTempFiles() & SETTER_FOR_CLASS_MASK) != 0) { | 713 | + /** |
613 | - setSetterImplTempFileHandle(getTemporaryFileHandle(SETTER_METHOD_IMPL_FILE_NAME)); | 714 | + * Returns setter method's impl's temporary file handle. |
715 | + * | ||
716 | + * @return temporary file handle | ||
717 | + */ | ||
718 | + public File getSetterImplTempFileHandle() { | ||
719 | + return setterImplTempFileHandle; | ||
614 | } | 720 | } |
615 | 721 | ||
616 | - if ((getGeneratedTempFiles() & HASH_CODE_IMPL_MASK) != 0) { | 722 | + /** |
617 | - setHashCodeImplTempFileHandle(getTemporaryFileHandle(HASH_CODE_METHOD_FILE_NAME)); | 723 | + * Sets to setter method's impl's temporary file handle. |
618 | - } | 724 | + * |
619 | - if ((getGeneratedTempFiles() & EQUALS_IMPL_MASK) != 0) { | 725 | + * @param setterImpl file handle for to setter method's implementation class |
620 | - setEqualsImplTempFileHandle(getTemporaryFileHandle(EQUALS_METHOD_FILE_NAME)); | 726 | + */ |
621 | - } | 727 | + private void setSetterImplTempFileHandle(File setterImpl) { |
622 | - if ((getGeneratedTempFiles() & TO_STRING_IMPL_MASK) != 0) { | 728 | + setterImplTempFileHandle = setterImpl; |
623 | - setToStringImplTempFileHandle(getTemporaryFileHandle(TO_STRING_METHOD_FILE_NAME)); | ||
624 | - } | ||
625 | - if ((getGeneratedTempFiles() & FROM_STRING_IMPL_MASK) != 0) { | ||
626 | - setFromStringImplTempFileHandle(getTemporaryFileHandle(FROM_STRING_METHOD_FILE_NAME)); | ||
627 | } | 729 | } |
628 | - if ((getGeneratedTempFiles() & AUGMENTE_CLASS_CONSTRUCTOR_MASK) != 0) { | 730 | + |
629 | - setAugmentConstructorImplTempFileHandle(getTemporaryFileHandle(AUGMENT_CONSTRUCTOR_FILE_NAME)); | 731 | + /** |
732 | + * Returns from string method's temporary file handle. | ||
733 | + * | ||
734 | + * @return from string method's temporary file handle | ||
735 | + */ | ||
736 | + public File getFromStringImplTempFileHandle() { | ||
737 | + return fromStringImplTempFileHandle; | ||
630 | } | 738 | } |
631 | 739 | ||
740 | + /** | ||
741 | + * Sets from string method's temporary file handle. | ||
742 | + * | ||
743 | + * @param fromStringImplTempFileHandle from string method's temporary file handle | ||
744 | + */ | ||
745 | + private void setFromStringImplTempFileHandle(File fromStringImplTempFileHandle) { | ||
746 | + this.fromStringImplTempFileHandle = fromStringImplTempFileHandle; | ||
632 | } | 747 | } |
633 | 748 | ||
634 | /** | 749 | /** |
... | @@ -942,19 +1057,6 @@ public class TempJavaFragmentFiles { | ... | @@ -942,19 +1057,6 @@ public class TempJavaFragmentFiles { |
942 | } | 1057 | } |
943 | 1058 | ||
944 | /** | 1059 | /** |
945 | - * Adds default constructor for class. | ||
946 | - * | ||
947 | - * @param pluginCnfig plugin configurations | ||
948 | - * @return default constructor for class | ||
949 | - * @throws IOException when fails to append to file | ||
950 | - */ | ||
951 | - public String addOfMethod(YangPluginConfig pluginCnfig) | ||
952 | - throws IOException { | ||
953 | - return getJavaDoc(OF_METHOD, getGeneratedJavaClassName(), false, pluginCnfig) | ||
954 | - + getOfMethod(getGeneratedJavaClassName(), null); | ||
955 | - } | ||
956 | - | ||
957 | - /** | ||
958 | * Adds hash code method for class. | 1060 | * Adds hash code method for class. |
959 | * | 1061 | * |
960 | * @param attr attribute info | 1062 | * @param attr attribute info |
... | @@ -1117,159 +1219,6 @@ public class TempJavaFragmentFiles { | ... | @@ -1117,159 +1219,6 @@ public class TempJavaFragmentFiles { |
1117 | } | 1219 | } |
1118 | 1220 | ||
1119 | /** | 1221 | /** |
1120 | - * Adds current node info as and attribute to the parent generated file. | ||
1121 | - * | ||
1122 | - * @param curNode current node which needs to be added as an attribute in | ||
1123 | - * the parent generated code | ||
1124 | - * @param isList is list construct | ||
1125 | - * @param pluginConfig plugin configurations | ||
1126 | - * @throws IOException IO operation exception | ||
1127 | - */ | ||
1128 | - public static void addCurNodeInfoInParentTempFile(YangNode curNode, | ||
1129 | - boolean isList, YangPluginConfig pluginConfig) | ||
1130 | - throws IOException { | ||
1131 | - YangNode parent = getParentNodeInGenCode(curNode); | ||
1132 | - if (!(parent instanceof JavaCodeGenerator)) { | ||
1133 | - throw new TranslatorException("missing parent node to contain current node info in generated file"); | ||
1134 | - } | ||
1135 | - | ||
1136 | - if (parent instanceof YangJavaGrouping) { | ||
1137 | - /* | ||
1138 | - * In case of grouping, there is no need to add the information, it | ||
1139 | - * will be taken care in uses | ||
1140 | - */ | ||
1141 | - return; | ||
1142 | - } | ||
1143 | - | ||
1144 | - JavaAttributeInfo javaAttributeInfo = getCurNodeAsAttributeInTarget(curNode, | ||
1145 | - parent, isList); | ||
1146 | - if (!(parent instanceof TempJavaCodeFragmentFilesContainer)) { | ||
1147 | - throw new TranslatorException("missing parent temp file handle"); | ||
1148 | - } | ||
1149 | - getNodesInterfaceFragmentFiles(parent) | ||
1150 | - .addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfo, pluginConfig); | ||
1151 | - } | ||
1152 | - | ||
1153 | - /** | ||
1154 | - * Adds current node info as and attribute to the parent generated file. | ||
1155 | - * | ||
1156 | - * @param curNode current node which needs to be added as an attribute in | ||
1157 | - * the parent generated code | ||
1158 | - * @param pluginConfig plugin configurations | ||
1159 | - * @param targetNode target node to add the attribute | ||
1160 | - * @throws IOException IO operation exception | ||
1161 | - */ | ||
1162 | - public static void addCurNodeAsAttributeInTargetTempFile(YangNode curNode, | ||
1163 | - YangPluginConfig pluginConfig, YangNode targetNode) | ||
1164 | - throws IOException { | ||
1165 | - | ||
1166 | - if (!(targetNode instanceof JavaCodeGenerator)) { | ||
1167 | - throw new TranslatorException("invalid target node to generated file"); | ||
1168 | - } | ||
1169 | - | ||
1170 | - if (targetNode instanceof YangJavaGrouping) { | ||
1171 | - /* | ||
1172 | - * In case of grouping, there is no need to add the information, it | ||
1173 | - * will be taken care in uses | ||
1174 | - */ | ||
1175 | - return; | ||
1176 | - } | ||
1177 | - | ||
1178 | - boolean isList = curNode instanceof YangList; | ||
1179 | - | ||
1180 | - JavaAttributeInfo javaAttributeInfo = getCurNodeAsAttributeInTarget(curNode, | ||
1181 | - targetNode, isList); | ||
1182 | - if (!(targetNode instanceof TempJavaCodeFragmentFilesContainer)) { | ||
1183 | - throw new TranslatorException("missing target node's temp file handle"); | ||
1184 | - } | ||
1185 | - getNodesInterfaceFragmentFiles(targetNode) | ||
1186 | - .addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfo, pluginConfig); | ||
1187 | - } | ||
1188 | - | ||
1189 | - /** | ||
1190 | - * Creates an attribute info object corresponding to a data model node and | ||
1191 | - * return it. | ||
1192 | - * | ||
1193 | - * @param curNode current data model node for which the java code generation | ||
1194 | - * is being handled | ||
1195 | - * @param targetNode target node in which the current node is an attribute | ||
1196 | - * @param isListNode is the current added attribute needs to be a list | ||
1197 | - * @return AttributeInfo attribute details required to add in temporary | ||
1198 | - * files | ||
1199 | - */ | ||
1200 | - public static JavaAttributeInfo getCurNodeAsAttributeInTarget(YangNode curNode, | ||
1201 | - YangNode targetNode, boolean isListNode) { | ||
1202 | - String curNodeName = ((JavaFileInfoContainer) curNode).getJavaFileInfo().getJavaName(); | ||
1203 | - if (curNodeName == null) { | ||
1204 | - updateJavaFileInfo(curNode, null); | ||
1205 | - curNodeName = ((JavaFileInfoContainer) curNode).getJavaFileInfo().getJavaName(); | ||
1206 | - } | ||
1207 | - | ||
1208 | - /* | ||
1209 | - * Get the import info corresponding to the attribute for import in | ||
1210 | - * generated java files or qualified access | ||
1211 | - */ | ||
1212 | - JavaQualifiedTypeInfo qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode, | ||
1213 | - getCapitalCase(curNodeName)); | ||
1214 | - if (!(targetNode instanceof TempJavaCodeFragmentFilesContainer)) { | ||
1215 | - throw new TranslatorException("Parent node does not have file info"); | ||
1216 | - } | ||
1217 | - TempJavaFragmentFiles tempJavaFragmentFiles = getNodesInterfaceFragmentFiles(targetNode); | ||
1218 | - JavaImportData parentImportData = tempJavaFragmentFiles.getJavaImportData(); | ||
1219 | - JavaFileInfo fileInfo = ((JavaFileInfoContainer) targetNode).getJavaFileInfo(); | ||
1220 | - | ||
1221 | - boolean isQualified; | ||
1222 | - if ((targetNode instanceof YangJavaModule || targetNode instanceof YangJavaSubModule) | ||
1223 | - && (qualifiedTypeInfo.getClassInfo().contentEquals(SERVICE) | ||
1224 | - || qualifiedTypeInfo.getClassInfo().contentEquals(COMPONENT) | ||
1225 | - || qualifiedTypeInfo.getClassInfo().contentEquals(getCapitalCase(ACTIVATE)) | ||
1226 | - || qualifiedTypeInfo.getClassInfo().contentEquals(getCapitalCase(DEACTIVATE)) | ||
1227 | - || qualifiedTypeInfo.getClassInfo().contentEquals(REFERENCE_CARDINALITY) | ||
1228 | - || qualifiedTypeInfo.getClassInfo().contentEquals(REFERENCE)) | ||
1229 | - || qualifiedTypeInfo.getClassInfo().contentEquals(getCapitalCase(fileInfo.getJavaName() + SERVICE)) | ||
1230 | - || qualifiedTypeInfo.getClassInfo().contentEquals(getCapitalCase(fileInfo.getJavaName() + MANAGER))) { | ||
1231 | - | ||
1232 | - isQualified = true; | ||
1233 | - } else { | ||
1234 | - String className; | ||
1235 | - if (targetNode instanceof YangJavaModule || targetNode instanceof YangJavaSubModule) { | ||
1236 | - className = getCapitalCase(fileInfo.getJavaName()) + "Service"; | ||
1237 | - } else { | ||
1238 | - className = getCapitalCase(fileInfo.getJavaName()); | ||
1239 | - } | ||
1240 | - | ||
1241 | - isQualified = parentImportData.addImportInfo(qualifiedTypeInfo, | ||
1242 | - className, fileInfo.getPackage()); | ||
1243 | - } | ||
1244 | - | ||
1245 | - if (isListNode) { | ||
1246 | - parentImportData.setIfListImported(true); | ||
1247 | - } | ||
1248 | - | ||
1249 | - return getAttributeInfoForTheData(qualifiedTypeInfo, curNodeName, null, isQualified, isListNode); | ||
1250 | - } | ||
1251 | - | ||
1252 | - /** | ||
1253 | - * Returns interface fragment files for node. | ||
1254 | - * | ||
1255 | - * @param node YANG node | ||
1256 | - * @return interface fragment files for node | ||
1257 | - */ | ||
1258 | - public static TempJavaFragmentFiles getNodesInterfaceFragmentFiles(YangNode node) { | ||
1259 | - TempJavaFragmentFiles tempJavaFragmentFiles; | ||
1260 | - if (node instanceof RpcNotificationContainer) { | ||
1261 | - tempJavaFragmentFiles = ((TempJavaCodeFragmentFilesContainer) node) | ||
1262 | - .getTempJavaCodeFragmentFiles() | ||
1263 | - .getServiceTempFiles(); | ||
1264 | - } else { | ||
1265 | - tempJavaFragmentFiles = ((TempJavaCodeFragmentFilesContainer) node) | ||
1266 | - .getTempJavaCodeFragmentFiles() | ||
1267 | - .getBeanTempFiles(); | ||
1268 | - } | ||
1269 | - return tempJavaFragmentFiles; | ||
1270 | - } | ||
1271 | - | ||
1272 | - /** | ||
1273 | * Adds parent's info to current node import list. | 1222 | * Adds parent's info to current node import list. |
1274 | * | 1223 | * |
1275 | * @param curNode current node for which import list needs to be updated | 1224 | * @param curNode current node for which import list needs to be updated |
... | @@ -1378,8 +1327,7 @@ public class TempJavaFragmentFiles { | ... | @@ -1378,8 +1327,7 @@ public class TempJavaFragmentFiles { |
1378 | } | 1327 | } |
1379 | 1328 | ||
1380 | /** | 1329 | /** |
1381 | - * Adds all the leaves in the current data model node as part of the | 1330 | + * Adds all the leaves in the current data model node as part of the generated temporary file. |
1382 | - * generated temporary file. | ||
1383 | * | 1331 | * |
1384 | * @param curNode java file info of the generated file | 1332 | * @param curNode java file info of the generated file |
1385 | * @param yangPluginConfig plugin config | 1333 | * @param yangPluginConfig plugin config |
... | @@ -1399,8 +1347,7 @@ public class TempJavaFragmentFiles { | ... | @@ -1399,8 +1347,7 @@ public class TempJavaFragmentFiles { |
1399 | /** | 1347 | /** |
1400 | * Adds the new attribute info to the target generated temporary files. | 1348 | * Adds the new attribute info to the target generated temporary files. |
1401 | * | 1349 | * |
1402 | - * @param newAttrInfo the attribute info that needs to be added to temporary | 1350 | + * @param newAttrInfo the attribute info that needs to be added to temporary files |
1403 | - * files | ||
1404 | * @param pluginConfig plugin configurations | 1351 | * @param pluginConfig plugin configurations |
1405 | * @throws IOException IO operation fail | 1352 | * @throws IOException IO operation fail |
1406 | */ | 1353 | */ |
... | @@ -1489,8 +1436,12 @@ public class TempJavaFragmentFiles { | ... | @@ -1489,8 +1436,12 @@ public class TempJavaFragmentFiles { |
1489 | */ | 1436 | */ |
1490 | public void generateJavaFile(int fileType, YangNode curNode) | 1437 | public void generateJavaFile(int fileType, YangNode curNode) |
1491 | throws IOException { | 1438 | throws IOException { |
1492 | - List<String> imports = new ArrayList<>(); | 1439 | + |
1493 | - imports = getJavaImportData().getImports(); | 1440 | + if (curNode instanceof YangModule || curNode instanceof YangSubModule) { |
1441 | + addResolvedAugmentedDataNodeImports(curNode); | ||
1442 | + } | ||
1443 | + List<String> imports = ((JavaCodeGeneratorInfo) curNode).getTempJavaCodeFragmentFiles().getBeanTempFiles() | ||
1444 | + .getJavaImportData().getImports(); | ||
1494 | 1445 | ||
1495 | JavaFileInfo curInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo(); | 1446 | JavaFileInfo curInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo(); |
1496 | 1447 | ||
... | @@ -1543,7 +1494,10 @@ public class TempJavaFragmentFiles { | ... | @@ -1543,7 +1494,10 @@ public class TempJavaFragmentFiles { |
1543 | } | 1494 | } |
1544 | if ((fileType & BUILDER_CLASS_MASK) != 0 || (fileType & IMPL_CLASS_MASK) != 0) { | 1495 | if ((fileType & BUILDER_CLASS_MASK) != 0 || (fileType & IMPL_CLASS_MASK) != 0) { |
1545 | if (isAttributePresent()) { | 1496 | if (isAttributePresent()) { |
1546 | - addImportsToStringAndHasCodeMethods(curNode, imports); | 1497 | + addImportsToStringAndHasCodeMethods(imports); |
1498 | + } | ||
1499 | + if (curNode instanceof YangAugmentableNode) { | ||
1500 | + addImportsForAugmentableClass(imports); | ||
1547 | } | 1501 | } |
1548 | sortImports(imports); | 1502 | sortImports(imports); |
1549 | /* | 1503 | /* |
... | @@ -1586,6 +1540,8 @@ public class TempJavaFragmentFiles { | ... | @@ -1586,6 +1540,8 @@ public class TempJavaFragmentFiles { |
1586 | throws IOException { | 1540 | throws IOException { |
1587 | YangJavaAugment augment = (YangJavaAugment) curNode; | 1541 | YangJavaAugment augment = (YangJavaAugment) curNode; |
1588 | 1542 | ||
1543 | + TempJavaBeanFragmentFiles tempJavaBeanFragmentFiles = ((JavaCodeGeneratorInfo) curNode) | ||
1544 | + .getTempJavaCodeFragmentFiles().getBeanTempFiles(); | ||
1589 | YangNode augmentedNode = augment.getAugmentedNode(); | 1545 | YangNode augmentedNode = augment.getAugmentedNode(); |
1590 | if (augmentedNode instanceof YangLeavesHolder) { | 1546 | if (augmentedNode instanceof YangLeavesHolder) { |
1591 | YangLeavesHolder holder = (YangLeavesHolder) augmentedNode; | 1547 | YangLeavesHolder holder = (YangLeavesHolder) augmentedNode; |
... | @@ -1610,7 +1566,10 @@ public class TempJavaFragmentFiles { | ... | @@ -1610,7 +1566,10 @@ public class TempJavaFragmentFiles { |
1610 | if (augmentedNode instanceof YangList) { | 1566 | if (augmentedNode instanceof YangList) { |
1611 | isList = true; | 1567 | isList = true; |
1612 | } | 1568 | } |
1613 | - addAugmentConstructor(getCurNodeAsAttributeInTarget(augmentedNode, augment, isList), pluginConfig); | 1569 | + if (!(augmentedNode instanceof YangUses)) { |
1570 | + addAugmentConstructor(getCurNodeAsAttributeInTarget(augmentedNode, augment, isList, | ||
1571 | + tempJavaBeanFragmentFiles), pluginConfig); | ||
1572 | + } | ||
1614 | augmentedNode = augmentedNode.getNextSibling(); | 1573 | augmentedNode = augmentedNode.getNextSibling(); |
1615 | } | 1574 | } |
1616 | 1575 | ||
... | @@ -1619,14 +1578,23 @@ public class TempJavaFragmentFiles { | ... | @@ -1619,14 +1578,23 @@ public class TempJavaFragmentFiles { |
1619 | /** | 1578 | /** |
1620 | * Adds imports for ToString and HashCodeMethod. | 1579 | * Adds imports for ToString and HashCodeMethod. |
1621 | * | 1580 | * |
1622 | - * @param curNode current YANG node | ||
1623 | * @param imports import list | 1581 | * @param imports import list |
1624 | - * @return import list | ||
1625 | */ | 1582 | */ |
1626 | - public List<String> addImportsToStringAndHasCodeMethods(YangNode curNode, List<String> imports) { | 1583 | + public void addImportsToStringAndHasCodeMethods(List<String> imports) { |
1627 | imports.add(getJavaImportData().getImportForHashAndEquals()); | 1584 | imports.add(getJavaImportData().getImportForHashAndEquals()); |
1628 | imports.add(getJavaImportData().getImportForToString()); | 1585 | imports.add(getJavaImportData().getImportForToString()); |
1629 | - return imports; | 1586 | + } |
1587 | + | ||
1588 | + | ||
1589 | + /** | ||
1590 | + * Adds import for map and hash map. | ||
1591 | + * | ||
1592 | + * @param imports import list | ||
1593 | + */ | ||
1594 | + public void addImportsForAugmentableClass(List<String> imports) { | ||
1595 | + imports.add(getJavaImportData().getHashMapImport()); | ||
1596 | + imports.add(getJavaImportData().getMapImport()); | ||
1597 | + imports.add(getJavaImportData().getYangAugmentedInfoImport()); | ||
1630 | } | 1598 | } |
1631 | 1599 | ||
1632 | /** | 1600 | /** |
... | @@ -1636,7 +1604,7 @@ public class TempJavaFragmentFiles { | ... | @@ -1636,7 +1604,7 @@ public class TempJavaFragmentFiles { |
1636 | * @return import for class | 1604 | * @return import for class |
1637 | */ | 1605 | */ |
1638 | private List<String> removeAugmentedImport(List<String> imports, JavaQualifiedTypeInfo augmentedInfo) { | 1606 | private List<String> removeAugmentedImport(List<String> imports, JavaQualifiedTypeInfo augmentedInfo) { |
1639 | - String augmentedNodeImport = null; | 1607 | + String augmentedNodeImport; |
1640 | if (imports != null && augmentedInfo != null) { | 1608 | if (imports != null && augmentedInfo != null) { |
1641 | augmentedNodeImport = IMPORT + augmentedInfo.getPkgInfo() + PERIOD + getCapitalCase(DEFAULT) | 1609 | augmentedNodeImport = IMPORT + augmentedInfo.getPkgInfo() + PERIOD + getCapitalCase(DEFAULT) |
1642 | + augmentedInfo.getClassInfo() + PERIOD + augmentedInfo.getClassInfo() | 1610 | + augmentedInfo.getClassInfo() + PERIOD + augmentedInfo.getClassInfo() |
... | @@ -1646,6 +1614,7 @@ public class TempJavaFragmentFiles { | ... | @@ -1646,6 +1614,7 @@ public class TempJavaFragmentFiles { |
1646 | + augmentedInfo.getClassInfo() + PERIOD + augmentedInfo.getClassInfo() | 1614 | + augmentedInfo.getClassInfo() + PERIOD + augmentedInfo.getClassInfo() |
1647 | + BUILDER + SEMI_COLAN + NEW_LINE; | 1615 | + BUILDER + SEMI_COLAN + NEW_LINE; |
1648 | imports.remove(augmentedNodeImport); | 1616 | imports.remove(augmentedNodeImport); |
1617 | + imports.remove(getJavaImportData().getYangAugmentedInfoImport()); | ||
1649 | } | 1618 | } |
1650 | return imports; | 1619 | return imports; |
1651 | } | 1620 | } |
... | @@ -1668,9 +1637,8 @@ public class TempJavaFragmentFiles { | ... | @@ -1668,9 +1637,8 @@ public class TempJavaFragmentFiles { |
1668 | /** | 1637 | /** |
1669 | * Removes all temporary file handles. | 1638 | * Removes all temporary file handles. |
1670 | * | 1639 | * |
1671 | - * @param isErrorOccurred when translator fails to generate java files we | 1640 | + * @param isErrorOccurred when translator fails to generate java files we need to close all open file handles |
1672 | - * need to close all open file handles include temporary files | 1641 | + * include temporary files and java files. |
1673 | - * and java files. | ||
1674 | * @throws IOException when failed to delete the temporary files | 1642 | * @throws IOException when failed to delete the temporary files |
1675 | */ | 1643 | */ |
1676 | public void freeTemporaryResources(boolean isErrorOccurred) | 1644 | public void freeTemporaryResources(boolean isErrorOccurred) |
... | @@ -1719,8 +1687,8 @@ public class TempJavaFragmentFiles { | ... | @@ -1719,8 +1687,8 @@ public class TempJavaFragmentFiles { |
1719 | } | 1687 | } |
1720 | 1688 | ||
1721 | /** | 1689 | /** |
1722 | - * Returns if the attribute needs to be accessed in a qualified manner or | 1690 | + * Returns if the attribute needs to be accessed in a qualified manner or not, if it needs to be imported, then the |
1723 | - * not, if it needs to be imported, then the same needs to be done. | 1691 | + * same needs to be done. |
1724 | * | 1692 | * |
1725 | * @param importInfo import info for the current attribute being added | 1693 | * @param importInfo import info for the current attribute being added |
1726 | * @return status of the qualified access to the attribute | 1694 | * @return status of the qualified access to the attribute |
... | @@ -1732,16 +1700,4 @@ public class TempJavaFragmentFiles { | ... | @@ -1732,16 +1700,4 @@ public class TempJavaFragmentFiles { |
1732 | getJavaFileInfo().getPackage()); | 1700 | getJavaFileInfo().getPackage()); |
1733 | } | 1701 | } |
1734 | 1702 | ||
1735 | - /** | ||
1736 | - * Checks if the import info is same as the package of the current generated | ||
1737 | - * java file. | ||
1738 | - * | ||
1739 | - * @param importInfo import info for an attribute | ||
1740 | - * @return true if the import info is same as the current nodes package | ||
1741 | - * false otherwise | ||
1742 | - */ | ||
1743 | - public boolean isImportPkgEqualCurNodePkg(JavaQualifiedTypeInfo importInfo) { | ||
1744 | - return getJavaFileInfo().getPackage() | ||
1745 | - .contentEquals(importInfo.getPkgInfo()); | ||
1746 | - } | ||
1747 | } | 1703 | } | ... | ... |
... | @@ -22,9 +22,9 @@ import java.util.ArrayList; | ... | @@ -22,9 +22,9 @@ import java.util.ArrayList; |
22 | import java.util.List; | 22 | import java.util.List; |
23 | 23 | ||
24 | import org.onosproject.yangutils.datamodel.YangNode; | 24 | import org.onosproject.yangutils.datamodel.YangNode; |
25 | -import org.onosproject.yangutils.datamodel.YangNotification; | ||
26 | import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModule; | 25 | import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModule; |
27 | import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaSubModule; | 26 | import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaSubModule; |
27 | +import org.onosproject.yangutils.translator.tojava.utils.JavaExtendsListHolder; | ||
28 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 28 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; |
29 | 29 | ||
30 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_LISTENER_INTERFACE; | 30 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_LISTENER_INTERFACE; |
... | @@ -38,6 +38,8 @@ import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType. | ... | @@ -38,6 +38,8 @@ import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType. |
38 | import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.RPC_INTERFACE_MASK; | 38 | import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.RPC_INTERFACE_MASK; |
39 | import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData; | 39 | import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData; |
40 | import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.getQualifiedTypeInfoOfCurNode; | 40 | import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.getQualifiedTypeInfoOfCurNode; |
41 | +import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.addAnnotationsImports; | ||
42 | +import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.addListenersImport; | ||
41 | import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaClassDefClose; | 43 | import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaClassDefClose; |
42 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateEventFile; | 44 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateEventFile; |
43 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateEventListenerFile; | 45 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateEventListenerFile; |
... | @@ -45,17 +47,12 @@ import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerato | ... | @@ -45,17 +47,12 @@ import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerato |
45 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateManagerClassFile; | 47 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateManagerClassFile; |
46 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateServiceInterfaceFile; | 48 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateServiceInterfaceFile; |
47 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getFileObject; | 49 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getFileObject; |
48 | -import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase; | 50 | +import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.createPackage; |
49 | -import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase; | ||
50 | import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getEnumJavaAttribute; | 51 | import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getEnumJavaAttribute; |
51 | -import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase; | ||
52 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterForClass; | 52 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterForClass; |
53 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRpcManagerMethod; | 53 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRpcManagerMethod; |
54 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRpcServiceMethod; | 54 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRpcServiceMethod; |
55 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForClass; | 55 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForClass; |
56 | -import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.addAnnotationsImports; | ||
57 | -import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.addListenersImport; | ||
58 | -import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.closeFile; | ||
59 | import static org.onosproject.yangutils.utils.UtilConstants.COMMA; | 56 | import static org.onosproject.yangutils.utils.UtilConstants.COMMA; |
60 | import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING; | 57 | import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING; |
61 | import static org.onosproject.yangutils.utils.UtilConstants.EVENT_STRING; | 58 | import static org.onosproject.yangutils.utils.UtilConstants.EVENT_STRING; |
... | @@ -66,22 +63,30 @@ import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE; | ... | @@ -66,22 +63,30 @@ import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE; |
66 | import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_VAR_NAME; | 63 | import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_VAR_NAME; |
67 | import static org.onosproject.yangutils.utils.UtilConstants.SLASH; | 64 | import static org.onosproject.yangutils.utils.UtilConstants.SLASH; |
68 | import static org.onosproject.yangutils.utils.UtilConstants.VOID; | 65 | import static org.onosproject.yangutils.utils.UtilConstants.VOID; |
69 | -import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.createPackage; | 66 | +import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.closeFile; |
70 | -import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateJavaDocForRpc; | ||
71 | -import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc; | ||
72 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.ENUM_ATTRIBUTE; | 67 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.ENUM_ATTRIBUTE; |
73 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD; | 68 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD; |
74 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.MANAGER_SETTER_METHOD; | 69 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.MANAGER_SETTER_METHOD; |
70 | +import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateJavaDocForRpc; | ||
71 | +import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc; | ||
72 | +import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath; | ||
73 | +import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase; | ||
74 | +import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase; | ||
75 | +import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase; | ||
75 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.insertDataIntoJavaFile; | 76 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.insertDataIntoJavaFile; |
76 | 77 | ||
77 | /** | 78 | /** |
78 | - * Represents implementation of java service code fragments temporary implementations. | 79 | + * Represents implementation of java service code fragments temporary implementations. Maintains the temp files required |
79 | - * Maintains the temp files required specific for service and manager java snippet generation. | 80 | + * specific for service and manager java snippet generation. |
80 | */ | 81 | */ |
81 | public class TempJavaServiceFragmentFiles | 82 | public class TempJavaServiceFragmentFiles |
82 | extends TempJavaFragmentFiles { | 83 | extends TempJavaFragmentFiles { |
83 | 84 | ||
84 | /** | 85 | /** |
86 | + * File name for generated class file for special type like union, typedef suffix. | ||
87 | + */ | ||
88 | + public static final String EVENT_SUBJECT_NAME_SUFFIX = "EventSubject"; | ||
89 | + /** | ||
85 | * File name for rpc method. | 90 | * File name for rpc method. |
86 | */ | 91 | */ |
87 | private static final String RPC_INTERFACE_FILE_NAME = "Rpc"; | 92 | private static final String RPC_INTERFACE_FILE_NAME = "Rpc"; |
... | @@ -139,13 +144,6 @@ public class TempJavaServiceFragmentFiles | ... | @@ -139,13 +144,6 @@ public class TempJavaServiceFragmentFiles |
139 | * suffix. | 144 | * suffix. |
140 | */ | 145 | */ |
141 | private static final String EVENT_LISTENER_FILE_NAME_SUFFIX = "Listener"; | 146 | private static final String EVENT_LISTENER_FILE_NAME_SUFFIX = "Listener"; |
142 | - | ||
143 | - /** | ||
144 | - * File name for generated class file for special type like union, typedef | ||
145 | - * suffix. | ||
146 | - */ | ||
147 | - public static final String EVENT_SUBJECT_NAME_SUFFIX = "EventSubject"; | ||
148 | - | ||
149 | private static final String JAVA_FILE_EXTENSION = ".java"; | 147 | private static final String JAVA_FILE_EXTENSION = ".java"; |
150 | 148 | ||
151 | /** | 149 | /** |
... | @@ -209,6 +207,65 @@ public class TempJavaServiceFragmentFiles | ... | @@ -209,6 +207,65 @@ public class TempJavaServiceFragmentFiles |
209 | private File eventSubjectSetterTempFileHandle; | 207 | private File eventSubjectSetterTempFileHandle; |
210 | 208 | ||
211 | /** | 209 | /** |
210 | + * Creates an instance of temporary java code fragment. | ||
211 | + * | ||
212 | + * @param javaFileInfo generated file information | ||
213 | + * @throws IOException when fails to create new file handle | ||
214 | + */ | ||
215 | + public TempJavaServiceFragmentFiles(JavaFileInfo javaFileInfo) | ||
216 | + throws IOException { | ||
217 | + setJavaExtendsListHolder(new JavaExtendsListHolder()); | ||
218 | + setJavaImportData(new JavaImportData()); | ||
219 | + setJavaFileInfo(javaFileInfo); | ||
220 | + setAbsoluteDirPath(getAbsolutePackagePath(getJavaFileInfo().getBaseCodeGenPath(), | ||
221 | + getJavaFileInfo().getPackageFilePath())); | ||
222 | + addGeneratedTempFile(RPC_INTERFACE_MASK); | ||
223 | + addGeneratedTempFile(RPC_IMPL_MASK); | ||
224 | + | ||
225 | + addGeneratedTempFile(EVENT_ENUM_MASK); | ||
226 | + addGeneratedTempFile(EVENT_METHOD_MASK); | ||
227 | + addGeneratedTempFile(EVENT_SUBJECT_ATTRIBUTE_MASK); | ||
228 | + addGeneratedTempFile(EVENT_SUBJECT_GETTER_MASK); | ||
229 | + addGeneratedTempFile(EVENT_SUBJECT_SETTER_MASK); | ||
230 | + | ||
231 | + setRpcInterfaceTempFileHandle(getTemporaryFileHandle(RPC_INTERFACE_FILE_NAME)); | ||
232 | + setRpcImplTempFileHandle(getTemporaryFileHandle(RPC_IMPL_FILE_NAME)); | ||
233 | + | ||
234 | + setEventEnumTempFileHandle(getTemporaryFileHandle(EVENT_ENUM_FILE_NAME)); | ||
235 | + setEventMethodTempFileHandle(getTemporaryFileHandle(EVENT_METHOD_FILE_NAME)); | ||
236 | + setEventSubjectAttributeTempFileHandle(getTemporaryFileHandle(EVENT_SUBJECT_ATTRIBUTE_FILE_NAME)); | ||
237 | + setEventSubjectGetterTempFileHandle(getTemporaryFileHandle(EVENT_SUBJECT_GETTER_FILE_NAME)); | ||
238 | + setEventSubjectSetterTempFileHandle(getTemporaryFileHandle(EVENT_SUBJECT_SETTER_FILE_NAME)); | ||
239 | + } | ||
240 | + | ||
241 | + /*Adds event method contents to event file.*/ | ||
242 | + private static String getEventFileContents(String eventClassname, String classname) { | ||
243 | + return "\n" + | ||
244 | + " /**\n" + | ||
245 | + " * Creates " + classname + " event with type and subject.\n" + | ||
246 | + " *\n" + | ||
247 | + " * @param type event type\n" + | ||
248 | + " * @param subject subject " + classname + "\n" + | ||
249 | + " */\n" + | ||
250 | + " public " + eventClassname + "(Type type, " + getCapitalCase(classname) + " subject) {\n" + | ||
251 | + " super(type, subject);\n" + | ||
252 | + " }\n" + | ||
253 | + "\n" + | ||
254 | + " /**\n" + | ||
255 | + " * Creates " + classname + " event with type, subject and time.\n" + | ||
256 | + " *\n" + | ||
257 | + " * @param type event type\n" + | ||
258 | + " * @param subject subject " + classname + "\n" + | ||
259 | + " * @param time time of event\n" + | ||
260 | + " */\n" + | ||
261 | + " public " + eventClassname + "(Type type, " + getCapitalCase(classname) | ||
262 | + + " subject, long time) {\n" + | ||
263 | + " super(type, subject, time);\n" + | ||
264 | + " }\n" + | ||
265 | + "\n"; | ||
266 | + } | ||
267 | + | ||
268 | + /** | ||
212 | * Returns rpc method's java file handle. | 269 | * Returns rpc method's java file handle. |
213 | * | 270 | * |
214 | * @return java file handle | 271 | * @return java file handle |
... | @@ -335,35 +392,6 @@ public class TempJavaServiceFragmentFiles | ... | @@ -335,35 +392,6 @@ public class TempJavaServiceFragmentFiles |
335 | } | 392 | } |
336 | 393 | ||
337 | /** | 394 | /** |
338 | - * Creates an instance of temporary java code fragment. | ||
339 | - * | ||
340 | - * @param javaFileInfo generated file information | ||
341 | - * @throws IOException when fails to create new file handle | ||
342 | - */ | ||
343 | - public TempJavaServiceFragmentFiles(JavaFileInfo javaFileInfo) | ||
344 | - throws IOException { | ||
345 | - super(javaFileInfo); | ||
346 | - | ||
347 | - addGeneratedTempFile(RPC_INTERFACE_MASK); | ||
348 | - addGeneratedTempFile(RPC_IMPL_MASK); | ||
349 | - | ||
350 | - addGeneratedTempFile(EVENT_ENUM_MASK); | ||
351 | - addGeneratedTempFile(EVENT_METHOD_MASK); | ||
352 | - addGeneratedTempFile(EVENT_SUBJECT_ATTRIBUTE_MASK); | ||
353 | - addGeneratedTempFile(EVENT_SUBJECT_GETTER_MASK); | ||
354 | - addGeneratedTempFile(EVENT_SUBJECT_SETTER_MASK); | ||
355 | - | ||
356 | - setRpcInterfaceTempFileHandle(getTemporaryFileHandle(RPC_INTERFACE_FILE_NAME)); | ||
357 | - setRpcImplTempFileHandle(getTemporaryFileHandle(RPC_IMPL_FILE_NAME)); | ||
358 | - | ||
359 | - setEventEnumTempFileHandle(getTemporaryFileHandle(EVENT_ENUM_FILE_NAME)); | ||
360 | - setEventMethodTempFileHandle(getTemporaryFileHandle(EVENT_METHOD_FILE_NAME)); | ||
361 | - setEventSubjectAttributeTempFileHandle(getTemporaryFileHandle(EVENT_SUBJECT_ATTRIBUTE_FILE_NAME)); | ||
362 | - setEventSubjectGetterTempFileHandle(getTemporaryFileHandle(EVENT_SUBJECT_GETTER_FILE_NAME)); | ||
363 | - setEventSubjectSetterTempFileHandle(getTemporaryFileHandle(EVENT_SUBJECT_SETTER_FILE_NAME)); | ||
364 | - } | ||
365 | - | ||
366 | - /** | ||
367 | * Constructs java code exit. | 395 | * Constructs java code exit. |
368 | * | 396 | * |
369 | * @param fileType generated file type | 397 | * @param fileType generated file type |
... | @@ -373,7 +401,8 @@ public class TempJavaServiceFragmentFiles | ... | @@ -373,7 +401,8 @@ public class TempJavaServiceFragmentFiles |
373 | @Override | 401 | @Override |
374 | public void generateJavaFile(int fileType, YangNode curNode) | 402 | public void generateJavaFile(int fileType, YangNode curNode) |
375 | throws IOException { | 403 | throws IOException { |
376 | - List<String> imports = getJavaImportData().getImports(); | 404 | + List<String> imports = ((JavaCodeGeneratorInfo) curNode).getTempJavaCodeFragmentFiles().getServiceTempFiles() |
405 | + .getJavaImportData().getImports(); | ||
377 | 406 | ||
378 | createPackage(curNode); | 407 | createPackage(curNode); |
379 | 408 | ||
... | @@ -395,7 +424,7 @@ public class TempJavaServiceFragmentFiles | ... | @@ -395,7 +424,7 @@ public class TempJavaServiceFragmentFiles |
395 | * Creates rpc interface file. | 424 | * Creates rpc interface file. |
396 | */ | 425 | */ |
397 | setServiceInterfaceJavaFileHandle(getJavaFileHandle(getJavaClassName(SERVICE_FILE_NAME_SUFFIX))); | 426 | setServiceInterfaceJavaFileHandle(getJavaFileHandle(getJavaClassName(SERVICE_FILE_NAME_SUFFIX))); |
398 | - generateServiceInterfaceFile(getServiceInterfaceJavaFileHandle(), curNode, imports, isAttributePresent()); | 427 | + generateServiceInterfaceFile(getServiceInterfaceJavaFileHandle(), curNode, imports); |
399 | 428 | ||
400 | if (isNotification) { | 429 | if (isNotification) { |
401 | addListenersImport(curNode, imports, false, LISTENER_SERVICE); | 430 | addListenersImport(curNode, imports, false, LISTENER_SERVICE); |
... | @@ -406,7 +435,7 @@ public class TempJavaServiceFragmentFiles | ... | @@ -406,7 +435,7 @@ public class TempJavaServiceFragmentFiles |
406 | * Create builder class file. | 435 | * Create builder class file. |
407 | */ | 436 | */ |
408 | setManagerJavaFileHandle(getJavaFileHandle(getJavaClassName(MANAGER_FILE_NAME_SUFFIX))); | 437 | setManagerJavaFileHandle(getJavaFileHandle(getJavaClassName(MANAGER_FILE_NAME_SUFFIX))); |
409 | - generateManagerClassFile(getManagerJavaFileHandle(), imports, curNode, isAttributePresent()); | 438 | + generateManagerClassFile(getManagerJavaFileHandle(), imports, curNode); |
410 | 439 | ||
411 | insertDataIntoJavaFile(getManagerJavaFileHandle(), getJavaClassDefClose()); | 440 | insertDataIntoJavaFile(getManagerJavaFileHandle(), getJavaClassDefClose()); |
412 | if (isNotification) { | 441 | if (isNotification) { |
... | @@ -468,8 +497,8 @@ public class TempJavaServiceFragmentFiles | ... | @@ -468,8 +497,8 @@ public class TempJavaServiceFragmentFiles |
468 | * @throws IOException IO operation fail | 497 | * @throws IOException IO operation fail |
469 | */ | 498 | */ |
470 | public void addJavaSnippetInfoToApplicableTempFiles(JavaAttributeInfo javaAttributeInfoOfInput, | 499 | public void addJavaSnippetInfoToApplicableTempFiles(JavaAttributeInfo javaAttributeInfoOfInput, |
471 | - JavaAttributeInfo javaAttributeInfoOfOutput, YangPluginConfig pluginConfig, | 500 | + JavaAttributeInfo javaAttributeInfoOfOutput, |
472 | - String rpcName) | 501 | + YangPluginConfig pluginConfig, String rpcName) |
473 | throws IOException { | 502 | throws IOException { |
474 | addRpcString(javaAttributeInfoOfInput, javaAttributeInfoOfOutput, pluginConfig, rpcName); | 503 | addRpcString(javaAttributeInfoOfInput, javaAttributeInfoOfOutput, pluginConfig, rpcName); |
475 | } | 504 | } |
... | @@ -558,9 +587,8 @@ public class TempJavaServiceFragmentFiles | ... | @@ -558,9 +587,8 @@ public class TempJavaServiceFragmentFiles |
558 | /** | 587 | /** |
559 | * Removes all temporary file handles. | 588 | * Removes all temporary file handles. |
560 | * | 589 | * |
561 | - * @param isErrorOccurred when translator fails to generate java files we | 590 | + * @param isErrorOccurred when translator fails to generate java files we need to close all open file handles |
562 | - * need to close all open file handles include temporary files | 591 | + * include temporary files and java files. |
563 | - * and java files. | ||
564 | * @throws IOException when failed to delete the temporary files | 592 | * @throws IOException when failed to delete the temporary files |
565 | */ | 593 | */ |
566 | @Override | 594 | @Override |
... | @@ -691,9 +719,9 @@ public class TempJavaServiceFragmentFiles | ... | @@ -691,9 +719,9 @@ public class TempJavaServiceFragmentFiles |
691 | public void addJavaSnippetOfEvent(YangNode curNode, YangPluginConfig pluginConfig) | 719 | public void addJavaSnippetOfEvent(YangNode curNode, YangPluginConfig pluginConfig) |
692 | throws IOException { | 720 | throws IOException { |
693 | 721 | ||
694 | - String currentInfo = getCapitalCase(getCamelCase(((YangNotification) curNode).getName(), | 722 | + String currentInfo = getCapitalCase(getCamelCase(curNode.getName(), |
695 | pluginConfig.getConflictResolver())); | 723 | pluginConfig.getConflictResolver())); |
696 | - String notificationName = ((YangNotification) curNode).getName(); | 724 | + String notificationName = curNode.getName(); |
697 | 725 | ||
698 | JavaQualifiedTypeInfo qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode, | 726 | JavaQualifiedTypeInfo qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode, |
699 | getCapitalCase(currentInfo)); | 727 | getCapitalCase(currentInfo)); |
... | @@ -722,33 +750,6 @@ public class TempJavaServiceFragmentFiles | ... | @@ -722,33 +750,6 @@ public class TempJavaServiceFragmentFiles |
722 | appendToFile(getEventMethodTempFileHandle(), getEventFileContents(eventClassname, className)); | 750 | appendToFile(getEventMethodTempFileHandle(), getEventFileContents(eventClassname, className)); |
723 | } | 751 | } |
724 | 752 | ||
725 | - /*Adds event method contents to event file.*/ | ||
726 | - private static String getEventFileContents(String eventClassname, String classname) { | ||
727 | - return "\n" + | ||
728 | - " /**\n" + | ||
729 | - " * Creates " + classname + " event with type and subject.\n" + | ||
730 | - " *\n" + | ||
731 | - " * @param type event type\n" + | ||
732 | - " * @param subject subject " + classname + "\n" + | ||
733 | - " */\n" + | ||
734 | - " public " + eventClassname + "(Type type, " + getCapitalCase(classname) + " subject) {\n" + | ||
735 | - " super(type, subject);\n" + | ||
736 | - " }\n" + | ||
737 | - "\n" + | ||
738 | - " /**\n" + | ||
739 | - " * Creates " + classname + " event with type, subject and time.\n" + | ||
740 | - " *\n" + | ||
741 | - " * @param type event type\n" + | ||
742 | - " * @param subject subject " + classname + "\n" + | ||
743 | - " * @param time time of event\n" + | ||
744 | - " */\n" + | ||
745 | - " public " + eventClassname + "(Type type, " + getCapitalCase(classname) | ||
746 | - + " subject, long time) {\n" + | ||
747 | - " super(type, subject, time);\n" + | ||
748 | - " }\n" + | ||
749 | - "\n"; | ||
750 | - } | ||
751 | - | ||
752 | /*Adds events to event subject file.*/ | 753 | /*Adds events to event subject file.*/ |
753 | private void addEventSubjectAttribute(JavaAttributeInfo attr, YangPluginConfig pluginConfig) | 754 | private void addEventSubjectAttribute(JavaAttributeInfo attr, YangPluginConfig pluginConfig) |
754 | throws IOException { | 755 | throws IOException { | ... | ... |
... | @@ -332,7 +332,7 @@ public class TempJavaTypeFragmentFiles | ... | @@ -332,7 +332,7 @@ public class TempJavaTypeFragmentFiles |
332 | * Creates type def class file. | 332 | * Creates type def class file. |
333 | */ | 333 | */ |
334 | if ((fileType & GENERATE_TYPEDEF_CLASS) != 0) { | 334 | if ((fileType & GENERATE_TYPEDEF_CLASS) != 0) { |
335 | - addImportsToStringAndHasCodeMethods(curNode, imports); | 335 | + addImportsToStringAndHasCodeMethods(imports); |
336 | setTypedefClassJavaFileHandle(getJavaFileHandle(getJavaClassName(TYPEDEF_CLASS_FILE_NAME_SUFFIX))); | 336 | setTypedefClassJavaFileHandle(getJavaFileHandle(getJavaClassName(TYPEDEF_CLASS_FILE_NAME_SUFFIX))); |
337 | generateTypeDefClassFile(getTypedefClassJavaFileHandle(), curNode, imports); | 337 | generateTypeDefClassFile(getTypedefClassJavaFileHandle(), curNode, imports); |
338 | } | 338 | } |
... | @@ -340,7 +340,7 @@ public class TempJavaTypeFragmentFiles | ... | @@ -340,7 +340,7 @@ public class TempJavaTypeFragmentFiles |
340 | * Creates type class file. | 340 | * Creates type class file. |
341 | */ | 341 | */ |
342 | if ((fileType & GENERATE_UNION_CLASS) != 0) { | 342 | if ((fileType & GENERATE_UNION_CLASS) != 0) { |
343 | - addImportsToStringAndHasCodeMethods(curNode, imports); | 343 | + addImportsToStringAndHasCodeMethods(imports); |
344 | setTypeClassJavaFileHandle(getJavaFileHandle(getJavaClassName(UNION_TYPE_CLASS_FILE_NAME_SUFFIX))); | 344 | setTypeClassJavaFileHandle(getJavaFileHandle(getJavaClassName(UNION_TYPE_CLASS_FILE_NAME_SUFFIX))); |
345 | generateUnionClassFile(getTypeClassJavaFileHandle(), curNode, imports); | 345 | generateUnionClassFile(getTypeClassJavaFileHandle(), curNode, imports); |
346 | } | 346 | } | ... | ... |
... | @@ -14,7 +14,7 @@ | ... | @@ -14,7 +14,7 @@ |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | -package org.onosproject.yangutils.translator.tojava.javamodel; | 17 | +package org.onosproject.yangutils.translator.tojava; |
18 | 18 | ||
19 | import java.io.File; | 19 | import java.io.File; |
20 | import java.io.IOException; | 20 | import java.io.IOException; |
... | @@ -26,16 +26,17 @@ import org.onosproject.yangutils.datamodel.YangCase; | ... | @@ -26,16 +26,17 @@ import org.onosproject.yangutils.datamodel.YangCase; |
26 | import org.onosproject.yangutils.datamodel.YangChoice; | 26 | import org.onosproject.yangutils.datamodel.YangChoice; |
27 | import org.onosproject.yangutils.datamodel.YangGrouping; | 27 | import org.onosproject.yangutils.datamodel.YangGrouping; |
28 | import org.onosproject.yangutils.datamodel.YangLeavesHolder; | 28 | import org.onosproject.yangutils.datamodel.YangLeavesHolder; |
29 | +import org.onosproject.yangutils.datamodel.YangModule; | ||
29 | import org.onosproject.yangutils.datamodel.YangNode; | 30 | import org.onosproject.yangutils.datamodel.YangNode; |
31 | +import org.onosproject.yangutils.datamodel.YangSubModule; | ||
30 | import org.onosproject.yangutils.datamodel.YangTypeDef; | 32 | import org.onosproject.yangutils.datamodel.YangTypeDef; |
31 | import org.onosproject.yangutils.datamodel.YangTypeHolder; | 33 | import org.onosproject.yangutils.datamodel.YangTypeHolder; |
32 | import org.onosproject.yangutils.datamodel.utils.DataModelUtils; | 34 | import org.onosproject.yangutils.datamodel.utils.DataModelUtils; |
33 | import org.onosproject.yangutils.translator.exception.TranslatorException; | 35 | import org.onosproject.yangutils.translator.exception.TranslatorException; |
34 | -import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo; | 36 | +import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaAugment; |
35 | -import org.onosproject.yangutils.translator.tojava.JavaFileInfo; | 37 | +import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaEnumeration; |
36 | -import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer; | 38 | +import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModule; |
37 | -import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo; | 39 | +import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaSubModule; |
38 | -import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; | ||
39 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 40 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; |
40 | 41 | ||
41 | import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.isRpcChildNodePresent; | 42 | import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.isRpcChildNodePresent; |
... | @@ -50,6 +51,8 @@ import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT; | ... | @@ -50,6 +51,8 @@ import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT; |
50 | import static org.onosproject.yangutils.utils.UtilConstants.MANAGER; | 51 | import static org.onosproject.yangutils.utils.UtilConstants.MANAGER; |
51 | import static org.onosproject.yangutils.utils.UtilConstants.PERIOD; | 52 | import static org.onosproject.yangutils.utils.UtilConstants.PERIOD; |
52 | import static org.onosproject.yangutils.utils.UtilConstants.SERVICE; | 53 | import static org.onosproject.yangutils.utils.UtilConstants.SERVICE; |
54 | +import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO; | ||
55 | +import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO_CLASS_IMPORT_PKG; | ||
53 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase; | 56 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase; |
54 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase; | 57 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase; |
55 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getPackageDirPathFromJavaJPackage; | 58 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getPackageDirPathFromJavaJPackage; |
... | @@ -75,7 +78,6 @@ public final class YangJavaModelUtils { | ... | @@ -75,7 +78,6 @@ public final class YangJavaModelUtils { |
75 | public static void updatePackageInfo(JavaCodeGeneratorInfo javaCodeGeneratorInfo, | 78 | public static void updatePackageInfo(JavaCodeGeneratorInfo javaCodeGeneratorInfo, |
76 | YangPluginConfig yangPluginConfig) | 79 | YangPluginConfig yangPluginConfig) |
77 | throws IOException { | 80 | throws IOException { |
78 | - | ||
79 | if (javaCodeGeneratorInfo instanceof YangJavaAugment) { | 81 | if (javaCodeGeneratorInfo instanceof YangJavaAugment) { |
80 | javaCodeGeneratorInfo.getJavaFileInfo() | 82 | javaCodeGeneratorInfo.getJavaFileInfo() |
81 | .setJavaName(((YangJavaAugment) javaCodeGeneratorInfo).getAugmentClassName()); | 83 | .setJavaName(((YangJavaAugment) javaCodeGeneratorInfo).getAugmentClassName()); |
... | @@ -138,11 +140,11 @@ public final class YangJavaModelUtils { | ... | @@ -138,11 +140,11 @@ public final class YangJavaModelUtils { |
138 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles() | 140 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles() |
139 | .getServiceTempFiles().addCurNodeLeavesInfoToTempFiles( | 141 | .getServiceTempFiles().addCurNodeLeavesInfoToTempFiles( |
140 | (YangNode) javaCodeGeneratorInfo, yangPluginConfig); | 142 | (YangNode) javaCodeGeneratorInfo, yangPluginConfig); |
141 | - if ((YangNode) javaCodeGeneratorInfo instanceof YangJavaModule) { | 143 | + if (javaCodeGeneratorInfo instanceof YangJavaModule) { |
142 | if (!((YangJavaModule) javaCodeGeneratorInfo).getNotificationNodes().isEmpty()) { | 144 | if (!((YangJavaModule) javaCodeGeneratorInfo).getNotificationNodes().isEmpty()) { |
143 | updateNotificaitonNodeInfo(javaCodeGeneratorInfo, yangPluginConfig); | 145 | updateNotificaitonNodeInfo(javaCodeGeneratorInfo, yangPluginConfig); |
144 | } | 146 | } |
145 | - } else if ((YangNode) javaCodeGeneratorInfo instanceof YangJavaSubModule) { | 147 | + } else if (javaCodeGeneratorInfo instanceof YangJavaSubModule) { |
146 | if (!((YangJavaSubModule) javaCodeGeneratorInfo).getNotificationNodes().isEmpty()) { | 148 | if (!((YangJavaSubModule) javaCodeGeneratorInfo).getNotificationNodes().isEmpty()) { |
147 | updateNotificaitonNodeInfo(javaCodeGeneratorInfo, yangPluginConfig); | 149 | updateNotificaitonNodeInfo(javaCodeGeneratorInfo, yangPluginConfig); |
148 | } | 150 | } |
... | @@ -186,6 +188,7 @@ public final class YangJavaModelUtils { | ... | @@ -186,6 +188,7 @@ public final class YangJavaModelUtils { |
186 | * Process generate code entry of YANG node. | 188 | * Process generate code entry of YANG node. |
187 | * | 189 | * |
188 | * @param javaCodeGeneratorInfo YANG java file info node | 190 | * @param javaCodeGeneratorInfo YANG java file info node |
191 | + * @param yangPluginConfig plugin configurations | ||
189 | * @throws IOException IO operations fails | 192 | * @throws IOException IO operations fails |
190 | */ | 193 | */ |
191 | private static void generateTempFiles(JavaCodeGeneratorInfo javaCodeGeneratorInfo, | 194 | private static void generateTempFiles(JavaCodeGeneratorInfo javaCodeGeneratorInfo, |
... | @@ -209,14 +212,14 @@ public final class YangJavaModelUtils { | ... | @@ -209,14 +212,14 @@ public final class YangJavaModelUtils { |
209 | private static void updateNotificaitonNodeInfo(JavaCodeGeneratorInfo javaCodeGeneratorInfo, | 212 | private static void updateNotificaitonNodeInfo(JavaCodeGeneratorInfo javaCodeGeneratorInfo, |
210 | YangPluginConfig yangPluginConfig) | 213 | YangPluginConfig yangPluginConfig) |
211 | throws IOException { | 214 | throws IOException { |
212 | - if ((YangNode) javaCodeGeneratorInfo instanceof YangJavaModule) { | 215 | + if (javaCodeGeneratorInfo instanceof YangJavaModule) { |
213 | for (YangNode notificaiton : ((YangJavaModule) javaCodeGeneratorInfo).getNotificationNodes()) { | 216 | for (YangNode notificaiton : ((YangJavaModule) javaCodeGeneratorInfo).getNotificationNodes()) { |
214 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles() | 217 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles() |
215 | .getServiceTempFiles() | 218 | .getServiceTempFiles() |
216 | .addJavaSnippetOfEvent(notificaiton, yangPluginConfig); | 219 | .addJavaSnippetOfEvent(notificaiton, yangPluginConfig); |
217 | } | 220 | } |
218 | } | 221 | } |
219 | - if ((YangNode) javaCodeGeneratorInfo instanceof YangJavaSubModule) { | 222 | + if (javaCodeGeneratorInfo instanceof YangJavaSubModule) { |
220 | for (YangNode notificaiton : ((YangJavaSubModule) javaCodeGeneratorInfo) | 223 | for (YangNode notificaiton : ((YangJavaSubModule) javaCodeGeneratorInfo) |
221 | .getNotificationNodes()) { | 224 | .getNotificationNodes()) { |
222 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles() | 225 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles() |
... | @@ -267,8 +270,9 @@ public final class YangJavaModelUtils { | ... | @@ -267,8 +270,9 @@ public final class YangJavaModelUtils { |
267 | } | 270 | } |
268 | 271 | ||
269 | generateCodeOfNode(javaCodeGeneratorInfo, yangPlugin); | 272 | generateCodeOfNode(javaCodeGeneratorInfo, yangPlugin); |
270 | - | 273 | + TempJavaCodeFragmentFiles tempJavaCodeFragmentFiles = javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles(); |
271 | if (javaCodeGeneratorInfo instanceof YangJavaAugment) { | 274 | if (javaCodeGeneratorInfo instanceof YangJavaAugment) { |
275 | + | ||
272 | JavaQualifiedTypeInfo augmentedBuilderInfo = new JavaQualifiedTypeInfo(); | 276 | JavaQualifiedTypeInfo augmentedBuilderInfo = new JavaQualifiedTypeInfo(); |
273 | JavaQualifiedTypeInfo augmentedBuilderClassInfo = new JavaQualifiedTypeInfo(); | 277 | JavaQualifiedTypeInfo augmentedBuilderClassInfo = new JavaQualifiedTypeInfo(); |
274 | JavaQualifiedTypeInfo augmentedClassInfo = new JavaQualifiedTypeInfo(); | 278 | JavaQualifiedTypeInfo augmentedClassInfo = new JavaQualifiedTypeInfo(); |
... | @@ -283,8 +287,10 @@ public final class YangJavaModelUtils { | ... | @@ -283,8 +287,10 @@ public final class YangJavaModelUtils { |
283 | } else { | 287 | } else { |
284 | name = getCapitalCase(getCamelCase(augmentedNode.getName(), yangPlugin.getConflictResolver())); | 288 | name = getCapitalCase(getCamelCase(augmentedNode.getName(), yangPlugin.getConflictResolver())); |
285 | augmentedClassInfo.setClassInfo(name); | 289 | augmentedClassInfo.setClassInfo(name); |
286 | - augmentedClassInfo.setPkgInfo(getAugmentedNodesPackage(augmentedNode, yangPlugin)); | 290 | + augmentedClassInfo.setPkgInfo(getAugmentedNodesPackage(augmentedNode, |
291 | + yangPlugin)); | ||
287 | } | 292 | } |
293 | + | ||
288 | augmentedBuilderInfo.setClassInfo(name + PERIOD + name + BUILDER); | 294 | augmentedBuilderInfo.setClassInfo(name + PERIOD + name + BUILDER); |
289 | augmentedBuilderInfo.setPkgInfo(augmentedClassInfo.getPkgInfo()); | 295 | augmentedBuilderInfo.setPkgInfo(augmentedClassInfo.getPkgInfo()); |
290 | augmentedBuilderClassInfo.setClassInfo(getCapitalCase(DEFAULT) + name + PERIOD + name + BUILDER); | 296 | augmentedBuilderClassInfo.setClassInfo(getCapitalCase(DEFAULT) + name + PERIOD + name + BUILDER); |
... | @@ -296,13 +302,25 @@ public final class YangJavaModelUtils { | ... | @@ -296,13 +302,25 @@ public final class YangJavaModelUtils { |
296 | ((YangJavaAugment) javaCodeGeneratorInfo).addToExtendedClassInfo(augmentedBuilderClassInfo); | 302 | ((YangJavaAugment) javaCodeGeneratorInfo).addToExtendedClassInfo(augmentedBuilderClassInfo); |
297 | ((YangJavaAugment) javaCodeGeneratorInfo).addToExtendedClassInfo(augmentedClassInfo); | 303 | ((YangJavaAugment) javaCodeGeneratorInfo).addToExtendedClassInfo(augmentedClassInfo); |
298 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().getBeanTempFiles().getJavaExtendsListHolder() | 304 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().getBeanTempFiles().getJavaExtendsListHolder() |
299 | - .addToExtendsList(augmentedClassInfo, (YangNode) javaCodeGeneratorInfo); | 305 | + .addToExtendsList(augmentedClassInfo, (YangNode) javaCodeGeneratorInfo, |
306 | + tempJavaCodeFragmentFiles.getBeanTempFiles()); | ||
307 | + javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().getBeanTempFiles().getJavaExtendsListHolder() | ||
308 | + .addToExtendsList(augmentedBuilderInfo, (YangNode) javaCodeGeneratorInfo, | ||
309 | + tempJavaCodeFragmentFiles.getBeanTempFiles()); | ||
300 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().getBeanTempFiles().getJavaExtendsListHolder() | 310 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().getBeanTempFiles().getJavaExtendsListHolder() |
301 | - .addToExtendsList(augmentedBuilderInfo, (YangNode) javaCodeGeneratorInfo); | 311 | + .addToExtendsList(augmentedImplInfo, (YangNode) javaCodeGeneratorInfo, |
312 | + tempJavaCodeFragmentFiles.getBeanTempFiles()); | ||
302 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().getBeanTempFiles().getJavaExtendsListHolder() | 313 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().getBeanTempFiles().getJavaExtendsListHolder() |
303 | - .addToExtendsList(augmentedImplInfo, (YangNode) javaCodeGeneratorInfo); | 314 | + .addToExtendsList(augmentedBuilderClassInfo, (YangNode) javaCodeGeneratorInfo, |
315 | + tempJavaCodeFragmentFiles.getBeanTempFiles()); | ||
316 | + | ||
317 | + JavaQualifiedTypeInfo yangAugmentedInfo = new JavaQualifiedTypeInfo(); | ||
318 | + yangAugmentedInfo.setClassInfo(YANG_AUGMENTED_INFO); | ||
319 | + yangAugmentedInfo.setPkgInfo(YANG_AUGMENTED_INFO_CLASS_IMPORT_PKG); | ||
304 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().getBeanTempFiles().getJavaExtendsListHolder() | 320 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().getBeanTempFiles().getJavaExtendsListHolder() |
305 | - .addToExtendsList(augmentedBuilderClassInfo, (YangNode) javaCodeGeneratorInfo); | 321 | + .addToExtendsList(yangAugmentedInfo, (YangNode) javaCodeGeneratorInfo, |
322 | + tempJavaCodeFragmentFiles.getBeanTempFiles()); | ||
323 | + | ||
306 | 324 | ||
307 | } | 325 | } |
308 | 326 | ||
... | @@ -314,7 +332,8 @@ public final class YangJavaModelUtils { | ... | @@ -314,7 +332,8 @@ public final class YangJavaModelUtils { |
314 | parentsInfo.setClassInfo(parentName); | 332 | parentsInfo.setClassInfo(parentName); |
315 | parentsInfo.setPkgInfo(parentPkg); | 333 | parentsInfo.setPkgInfo(parentPkg); |
316 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().getBeanTempFiles().getJavaExtendsListHolder() | 334 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().getBeanTempFiles().getJavaExtendsListHolder() |
317 | - .addToExtendsList(parentsInfo, (YangNode) javaCodeGeneratorInfo); | 335 | + .addToExtendsList(parentsInfo, (YangNode) javaCodeGeneratorInfo, |
336 | + tempJavaCodeFragmentFiles.getBeanTempFiles()); | ||
318 | 337 | ||
319 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().getBeanTempFiles() | 338 | javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().getBeanTempFiles() |
320 | .addParentInfoInCurNodeTempFile((YangNode) javaCodeGeneratorInfo, yangPlugin); | 339 | .addParentInfoInCurNodeTempFile((YangNode) javaCodeGeneratorInfo, yangPlugin); |
... | @@ -322,45 +341,6 @@ public final class YangJavaModelUtils { | ... | @@ -322,45 +341,6 @@ public final class YangJavaModelUtils { |
322 | } | 341 | } |
323 | } | 342 | } |
324 | 343 | ||
325 | - private static String getAugmentedNodesPackage(YangNode node, YangPluginConfig yangPluginConfig) { | ||
326 | - | ||
327 | - List<String> clsInfo = new ArrayList<>(); | ||
328 | - node = node.getParent(); | ||
329 | - while (node != null) { | ||
330 | - if (!(node instanceof YangJavaModule) | ||
331 | - || !(node instanceof YangJavaSubModule)) { | ||
332 | - if (node instanceof YangJavaAugment) { | ||
333 | - clsInfo.add(((YangJavaAugment) node).getAugmentClassName()); | ||
334 | - } else { | ||
335 | - clsInfo.add(getCamelCase(node.getName(), yangPluginConfig.getConflictResolver())); | ||
336 | - } | ||
337 | - } | ||
338 | - if (node instanceof YangJavaModule | ||
339 | - || node instanceof YangJavaSubModule) { | ||
340 | - break; | ||
341 | - } | ||
342 | - node = node.getParent(); | ||
343 | - } | ||
344 | - | ||
345 | - StringBuilder pkg = new StringBuilder(); | ||
346 | - if (node instanceof YangJavaModule) { | ||
347 | - YangJavaModule module = (YangJavaModule) node; | ||
348 | - pkg.append(getRootPackage(module.getVersion(), module.getNameSpace().getUri(), module | ||
349 | - .getRevision().getRevDate(), yangPluginConfig.getConflictResolver())); | ||
350 | - } else if (node instanceof YangJavaSubModule) { | ||
351 | - YangJavaSubModule submodule = (YangJavaSubModule) node; | ||
352 | - pkg.append(getRootPackage(submodule.getVersion(), | ||
353 | - submodule.getNameSpaceFromModule(submodule.getBelongsTo()), | ||
354 | - submodule.getRevision().getRevDate(), yangPluginConfig.getConflictResolver())); | ||
355 | - } | ||
356 | - for (int i = 1; i <= clsInfo.size(); i++) { | ||
357 | - pkg.append("." + clsInfo.get(clsInfo.size() - i)); | ||
358 | - } | ||
359 | - | ||
360 | - return pkg.toString().toLowerCase(); | ||
361 | - | ||
362 | - } | ||
363 | - | ||
364 | /** | 344 | /** |
365 | * Generates code for the current data model node. | 345 | * Generates code for the current data model node. |
366 | * | 346 | * |
... | @@ -398,18 +378,17 @@ public final class YangJavaModelUtils { | ... | @@ -398,18 +378,17 @@ public final class YangJavaModelUtils { |
398 | javaCodeGeneratorInfo.getJavaFileInfo().addGeneratedFileTypes(GENERATE_SERVICE_AND_MANAGER); | 378 | javaCodeGeneratorInfo.getJavaFileInfo().addGeneratedFileTypes(GENERATE_SERVICE_AND_MANAGER); |
399 | } | 379 | } |
400 | 380 | ||
401 | - if ((YangNode) javaCodeGeneratorInfo instanceof YangJavaModule) { | 381 | + if (javaCodeGeneratorInfo instanceof YangJavaModule) { |
402 | if (!((YangJavaModule) javaCodeGeneratorInfo) | 382 | if (!((YangJavaModule) javaCodeGeneratorInfo) |
403 | .isNotificationChildNodePresent((YangNode) javaCodeGeneratorInfo)) { | 383 | .isNotificationChildNodePresent((YangNode) javaCodeGeneratorInfo)) { |
404 | updateCodeGenInfoForEvent(javaCodeGeneratorInfo); | 384 | updateCodeGenInfoForEvent(javaCodeGeneratorInfo); |
405 | } | 385 | } |
406 | - } else if ((YangNode) javaCodeGeneratorInfo instanceof YangJavaSubModule) { | 386 | + } else if (javaCodeGeneratorInfo instanceof YangJavaSubModule) { |
407 | if (!((YangJavaSubModule) javaCodeGeneratorInfo) | 387 | if (!((YangJavaSubModule) javaCodeGeneratorInfo) |
408 | .isNotificationChildNodePresent((YangNode) javaCodeGeneratorInfo)) { | 388 | .isNotificationChildNodePresent((YangNode) javaCodeGeneratorInfo)) { |
409 | updateCodeGenInfoForEvent(javaCodeGeneratorInfo); | 389 | updateCodeGenInfoForEvent(javaCodeGeneratorInfo); |
410 | } | 390 | } |
411 | } | 391 | } |
412 | - | ||
413 | generateTempFiles(javaCodeGeneratorInfo, yangPluginConfig); | 392 | generateTempFiles(javaCodeGeneratorInfo, yangPluginConfig); |
414 | } | 393 | } |
415 | 394 | ||
... | @@ -452,13 +431,26 @@ public final class YangJavaModelUtils { | ... | @@ -452,13 +431,26 @@ public final class YangJavaModelUtils { |
452 | public static boolean isManagerCodeGenRequired(YangNode node) { | 431 | public static boolean isManagerCodeGenRequired(YangNode node) { |
453 | YangLeavesHolder holder = (YangLeavesHolder) node; | 432 | YangLeavesHolder holder = (YangLeavesHolder) node; |
454 | 433 | ||
434 | + boolean isCodeReq = true; | ||
435 | + | ||
436 | + List<YangNode> childNodes = new ArrayList<>(); | ||
437 | + node = node.getChild(); | ||
438 | + while (node != null) { | ||
439 | + childNodes.add(node); | ||
440 | + node = node.getNextSibling(); | ||
441 | + } | ||
442 | + | ||
443 | + if (childNodes.size() == 0) { | ||
455 | if (holder.getListOfLeaf() != null && !holder.getListOfLeaf().isEmpty()) { | 444 | if (holder.getListOfLeaf() != null && !holder.getListOfLeaf().isEmpty()) { |
456 | - return true; | 445 | + isCodeReq = true; |
457 | } else if (holder.getListOfLeafList() != null && !holder.getListOfLeafList().isEmpty()) { | 446 | } else if (holder.getListOfLeafList() != null && !holder.getListOfLeafList().isEmpty()) { |
458 | - return true; | 447 | + isCodeReq = true; |
459 | } | 448 | } |
460 | - node = node.getChild(); | 449 | + return isCodeReq; |
461 | - return node != null && !(node instanceof YangTypeDef) && !(node instanceof YangGrouping); | 450 | + } else if (childNodes.size() == 1) { |
451 | + return childNodes.get(0) instanceof YangTypeDef && childNodes.get(0) instanceof YangGrouping; | ||
452 | + } | ||
453 | + return isCodeReq; | ||
462 | } | 454 | } |
463 | 455 | ||
464 | /** | 456 | /** |
... | @@ -482,4 +474,49 @@ public final class YangJavaModelUtils { | ... | @@ -482,4 +474,49 @@ public final class YangJavaModelUtils { |
482 | return true; | 474 | return true; |
483 | } | 475 | } |
484 | 476 | ||
477 | + /** | ||
478 | + * Returns augmented nodes package. | ||
479 | + * | ||
480 | + * @param node augmented node | ||
481 | + * @param yangPluginConfig plugin config | ||
482 | + * @return java package | ||
483 | + */ | ||
484 | + public static String getAugmentedNodesPackage(YangNode node, YangPluginConfig yangPluginConfig) { | ||
485 | + | ||
486 | + List<String> clsInfo = new ArrayList<>(); | ||
487 | + node = node.getParent(); | ||
488 | + while (node != null) { | ||
489 | + if (!(node instanceof YangModule) | ||
490 | + || !(node instanceof YangSubModule)) { | ||
491 | + if (node instanceof YangJavaAugment) { | ||
492 | + clsInfo.add(((YangJavaAugment) node).getAugmentClassName()); | ||
493 | + } else { | ||
494 | + clsInfo.add(getCamelCase(node.getName(), yangPluginConfig.getConflictResolver())); | ||
495 | + } | ||
496 | + } | ||
497 | + if (node instanceof YangJavaModule | ||
498 | + || node instanceof YangJavaSubModule) { | ||
499 | + break; | ||
500 | + } | ||
501 | + node = node.getParent(); | ||
502 | + } | ||
503 | + | ||
504 | + StringBuilder pkg = new StringBuilder(); | ||
505 | + if (node instanceof YangJavaModule) { | ||
506 | + YangJavaModule module = (YangJavaModule) node; | ||
507 | + pkg.append(getRootPackage(module.getVersion(), module.getNameSpace().getUri(), module | ||
508 | + .getRevision().getRevDate(), yangPluginConfig.getConflictResolver())); | ||
509 | + } else if (node instanceof YangJavaSubModule) { | ||
510 | + YangJavaSubModule submodule = (YangJavaSubModule) node; | ||
511 | + pkg.append(getRootPackage(submodule.getVersion(), | ||
512 | + submodule.getNameSpaceFromModule(submodule.getBelongsTo()), | ||
513 | + submodule.getRevision().getRevDate(), yangPluginConfig.getConflictResolver())); | ||
514 | + } | ||
515 | + for (int i = 1; i <= clsInfo.size(); i++) { | ||
516 | + pkg.append("." + clsInfo.get(clsInfo.size() - i)); | ||
517 | + } | ||
518 | + | ||
519 | + return pkg.toString().toLowerCase(); | ||
520 | + | ||
521 | + } | ||
485 | } | 522 | } | ... | ... |
... | @@ -34,7 +34,7 @@ import org.onosproject.yangutils.translator.tojava.JavaFileInfo; | ... | @@ -34,7 +34,7 @@ import org.onosproject.yangutils.translator.tojava.JavaFileInfo; |
34 | import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer; | 34 | import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer; |
35 | import org.onosproject.yangutils.utils.io.impl.YangToJavaNamingConflictUtil; | 35 | import org.onosproject.yangutils.utils.io.impl.YangToJavaNamingConflictUtil; |
36 | 36 | ||
37 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.getCurNodePackage; | 37 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.getCurNodePackage; |
38 | import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage; | 38 | import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage; |
39 | import static org.onosproject.yangutils.utils.UtilConstants.BIG_INTEGER; | 39 | import static org.onosproject.yangutils.utils.UtilConstants.BIG_INTEGER; |
40 | import static org.onosproject.yangutils.utils.UtilConstants.BIG_DECIMAL; | 40 | import static org.onosproject.yangutils.utils.UtilConstants.BIG_DECIMAL; | ... | ... |
... | @@ -30,7 +30,8 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; | ... | @@ -30,7 +30,8 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; |
30 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 30 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; |
31 | 31 | ||
32 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; | 32 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; |
33 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfAugmentableNode; | 33 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfAugmentableNode; |
34 | +import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase; | ||
34 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase; | 35 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase; |
35 | 36 | ||
36 | /** | 37 | /** |
... | @@ -154,10 +155,11 @@ public class YangJavaAugment | ... | @@ -154,10 +155,11 @@ public class YangJavaAugment |
154 | */ | 155 | */ |
155 | public String getAugmentClassName() { | 156 | public String getAugmentClassName() { |
156 | YangNodeIdentifier nodeId = getTargetNode().get(getTargetNode().size() - 1).getNodeIdentifier(); | 157 | YangNodeIdentifier nodeId = getTargetNode().get(getTargetNode().size() - 1).getNodeIdentifier(); |
158 | + String name = getCapitalCase(getCamelCase(nodeId.getName(), null)); | ||
157 | if (nodeId.getPrefix() != null) { | 159 | if (nodeId.getPrefix() != null) { |
158 | - return AUGMENTED + getCapitalCase(nodeId.getPrefix()) + getCapitalCase(nodeId.getName()); | 160 | + return AUGMENTED + getCapitalCase(nodeId.getPrefix()) + name; |
159 | } else { | 161 | } else { |
160 | - return AUGMENTED + getCapitalCase(nodeId.getName()); | 162 | + return AUGMENTED + name; |
161 | } | 163 | } |
162 | } | 164 | } |
163 | 165 | ... | ... |
... | @@ -26,7 +26,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; | ... | @@ -26,7 +26,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; |
26 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 26 | import org.onosproject.yangutils.utils.io.impl.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_INTERFACE_WITH_BUILDER; |
29 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfAugmentableNode; | 29 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfAugmentableNode; |
30 | 30 | ||
31 | /** | 31 | /** |
32 | * Represents case information extended to support java code generation. | 32 | * Represents case information extended to support java code generation. | ... | ... |
... | @@ -26,7 +26,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; | ... | @@ -26,7 +26,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; |
26 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 26 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; |
27 | 27 | ||
28 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.INTERFACE_MASK; | 28 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.INTERFACE_MASK; |
29 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeAndUpdateInParent; | 29 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeAndUpdateInParent; |
30 | 30 | ||
31 | /** | 31 | /** |
32 | * Represents choice information extended to support java code generation. | 32 | * Represents choice information extended to support java code generation. | ... | ... |
... | @@ -26,7 +26,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; | ... | @@ -26,7 +26,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; |
26 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 26 | import org.onosproject.yangutils.utils.io.impl.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_INTERFACE_WITH_BUILDER; |
29 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeAndUpdateInParent; | 29 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeAndUpdateInParent; |
30 | 30 | ||
31 | /** | 31 | /** |
32 | * Represents container information extended to support java code generation. | 32 | * Represents container information extended to support java code generation. | ... | ... |
... | @@ -27,7 +27,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; | ... | @@ -27,7 +27,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; |
27 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 27 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; |
28 | 28 | ||
29 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS; | 29 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS; |
30 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfNode; | 30 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfNode; |
31 | 31 | ||
32 | /** | 32 | /** |
33 | * Represents YANG java enumeration information extended to support java code generation. | 33 | * Represents YANG java enumeration information extended to support java code generation. | ... | ... |
... | @@ -31,7 +31,7 @@ import java.util.List; | ... | @@ -31,7 +31,7 @@ import java.util.List; |
31 | 31 | ||
32 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; | 32 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; |
33 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_IDENTITY_CLASS; | 33 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_IDENTITY_CLASS; |
34 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.updatePackageInfo; | 34 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.updatePackageInfo; |
35 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getFileObject; | 35 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getFileObject; |
36 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.initiateJavaFileGeneration; | 36 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.initiateJavaFileGeneration; |
37 | import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.createPackage; | 37 | import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.createPackage; | ... | ... |
... | @@ -27,7 +27,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; | ... | @@ -27,7 +27,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; |
27 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 27 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; |
28 | 28 | ||
29 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; | 29 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; |
30 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfAugmentableNode; | 30 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfAugmentableNode; |
31 | 31 | ||
32 | /** | 32 | /** |
33 | * Represents input information extended to support java code generation. | 33 | * Represents input information extended to support java code generation. | ... | ... |
... | @@ -26,7 +26,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; | ... | @@ -26,7 +26,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; |
26 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 26 | import org.onosproject.yangutils.utils.io.impl.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_INTERFACE_WITH_BUILDER; |
29 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeAndUpdateInParent; | 29 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeAndUpdateInParent; |
30 | 30 | ||
31 | /** | 31 | /** |
32 | * Represents YANG list information extended to support java code generation. | 32 | * Represents YANG list information extended to support java code generation. | ... | ... |
... | @@ -32,10 +32,11 @@ import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | ... | @@ -32,10 +32,11 @@ import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; |
32 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_CLASS; | 32 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_CLASS; |
33 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_LISTENER_INTERFACE; | 33 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_LISTENER_INTERFACE; |
34 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS; | 34 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS; |
35 | +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; | ||
35 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER; | 36 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER; |
36 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfRootNode; | 37 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfRootNode; |
37 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.isManagerCodeGenRequired; | 38 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.isManagerCodeGenRequired; |
38 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.isGenerationOfCodeReq; | 39 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.isGenerationOfCodeReq; |
39 | import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage; | 40 | import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage; |
40 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.searchAndDeleteTempDir; | 41 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.searchAndDeleteTempDir; |
41 | 42 | ||
... | @@ -71,7 +72,7 @@ public class YangJavaModule | ... | @@ -71,7 +72,7 @@ public class YangJavaModule |
71 | super(); | 72 | super(); |
72 | setJavaFileInfo(new JavaFileInfo()); | 73 | setJavaFileInfo(new JavaFileInfo()); |
73 | setNotificationNodes(new ArrayList<>()); | 74 | setNotificationNodes(new ArrayList<>()); |
74 | - int gentype = GENERATE_SERVICE_AND_MANAGER; | 75 | + int gentype = GENERATE_SERVICE_AND_MANAGER | GENERATE_INTERFACE_WITH_BUILDER; |
75 | if (isNotificationChildNodePresent(this)) { | 76 | if (isNotificationChildNodePresent(this)) { |
76 | gentype = GENERATE_SERVICE_AND_MANAGER | GENERATE_EVENT_SUBJECT_CLASS | GENERATE_EVENT_CLASS | 77 | gentype = GENERATE_SERVICE_AND_MANAGER | GENERATE_EVENT_SUBJECT_CLASS | GENERATE_EVENT_CLASS |
77 | | GENERATE_EVENT_LISTENER_INTERFACE; | 78 | | GENERATE_EVENT_LISTENER_INTERFACE; |
... | @@ -158,7 +159,10 @@ public class YangJavaModule | ... | @@ -158,7 +159,10 @@ public class YangJavaModule |
158 | 159 | ||
159 | try { | 160 | try { |
160 | if (isManagerCodeGenRequired(this) && isGenerationOfCodeReq(getJavaFileInfo())) { | 161 | if (isManagerCodeGenRequired(this) && isGenerationOfCodeReq(getJavaFileInfo())) { |
161 | - getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_SERVICE_AND_MANAGER, this); | 162 | + getTempJavaCodeFragmentFiles() |
163 | + .generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this); | ||
164 | + getTempJavaCodeFragmentFiles() | ||
165 | + .generateJavaFile(GENERATE_SERVICE_AND_MANAGER, this); | ||
162 | } | 166 | } |
163 | searchAndDeleteTempDir(getJavaFileInfo().getBaseCodeGenPath() + | 167 | searchAndDeleteTempDir(getJavaFileInfo().getBaseCodeGenPath() + |
164 | getJavaFileInfo().getPackageFilePath()); | 168 | getJavaFileInfo().getPackageFilePath()); | ... | ... |
... | @@ -28,12 +28,13 @@ import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer; | ... | @@ -28,12 +28,13 @@ import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer; |
28 | import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo; | 28 | import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo; |
29 | import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; | 29 | import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; |
30 | import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer; | 30 | import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer; |
31 | +import org.onosproject.yangutils.translator.tojava.TempJavaServiceFragmentFiles; | ||
31 | import org.onosproject.yangutils.translator.tojava.utils.JavaExtendsListHolder; | 32 | import org.onosproject.yangutils.translator.tojava.utils.JavaExtendsListHolder; |
32 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 33 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; |
33 | 34 | ||
34 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; | 35 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; |
35 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase; | 36 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase; |
36 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfAugmentableNode; | 37 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfAugmentableNode; |
37 | import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER_STRING; | 38 | import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER_STRING; |
38 | import static org.onosproject.yangutils.utils.UtilConstants.EVENT_STRING; | 39 | import static org.onosproject.yangutils.utils.UtilConstants.EVENT_STRING; |
39 | 40 | ||
... | @@ -143,22 +144,23 @@ public class YangJavaNotification | ... | @@ -143,22 +144,23 @@ public class YangJavaNotification |
143 | /*Adds current notification info to the extends list so its parents service*/ | 144 | /*Adds current notification info to the extends list so its parents service*/ |
144 | private void addNotificationToExtendsList() { | 145 | private void addNotificationToExtendsList() { |
145 | YangNode parent = getParent(); | 146 | YangNode parent = getParent(); |
146 | - JavaExtendsListHolder holder = ((TempJavaCodeFragmentFilesContainer) parent) | 147 | + TempJavaServiceFragmentFiles tempJavaServiceFragmentFiles = ((TempJavaCodeFragmentFilesContainer) parent) |
147 | .getTempJavaCodeFragmentFiles() | 148 | .getTempJavaCodeFragmentFiles() |
148 | - .getServiceTempFiles().getJavaExtendsListHolder(); | 149 | + .getServiceTempFiles(); |
150 | + JavaExtendsListHolder holder = tempJavaServiceFragmentFiles.getJavaExtendsListHolder(); | ||
149 | JavaQualifiedTypeInfo event = new JavaQualifiedTypeInfo(); | 151 | JavaQualifiedTypeInfo event = new JavaQualifiedTypeInfo(); |
150 | 152 | ||
151 | String parentInfo = getCapitalCase(((JavaFileInfoContainer) parent) | 153 | String parentInfo = getCapitalCase(((JavaFileInfoContainer) parent) |
152 | .getJavaFileInfo().getJavaName()); | 154 | .getJavaFileInfo().getJavaName()); |
153 | event.setClassInfo(parentInfo + EVENT_STRING); | 155 | event.setClassInfo(parentInfo + EVENT_STRING); |
154 | event.setPkgInfo(getJavaFileInfo().getPackage()); | 156 | event.setPkgInfo(getJavaFileInfo().getPackage()); |
155 | - holder.addToExtendsList(event, parent); | 157 | + holder.addToExtendsList(event, parent, tempJavaServiceFragmentFiles); |
156 | 158 | ||
157 | JavaQualifiedTypeInfo eventListener = new JavaQualifiedTypeInfo(); | 159 | JavaQualifiedTypeInfo eventListener = new JavaQualifiedTypeInfo(); |
158 | 160 | ||
159 | eventListener.setClassInfo(parentInfo + EVENT_LISTENER_STRING); | 161 | eventListener.setClassInfo(parentInfo + EVENT_LISTENER_STRING); |
160 | eventListener.setPkgInfo(getJavaFileInfo().getPackage()); | 162 | eventListener.setPkgInfo(getJavaFileInfo().getPackage()); |
161 | - holder.addToExtendsList(eventListener, parent); | 163 | + holder.addToExtendsList(eventListener, parent, tempJavaServiceFragmentFiles); |
162 | 164 | ||
163 | } | 165 | } |
164 | 166 | ... | ... |
... | @@ -27,7 +27,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; | ... | @@ -27,7 +27,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; |
27 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 27 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; |
28 | 28 | ||
29 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; | 29 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; |
30 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfAugmentableNode; | 30 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfAugmentableNode; |
31 | 31 | ||
32 | /** | 32 | /** |
33 | * Represents output information extended to support java code generation. | 33 | * Represents output information extended to support java code generation. | ... | ... |
... | @@ -39,7 +39,7 @@ import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.getParent | ... | @@ -39,7 +39,7 @@ import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.getParent |
39 | import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData; | 39 | import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData; |
40 | import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.getQualifiedTypeInfoOfCurNode; | 40 | import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.getQualifiedTypeInfoOfCurNode; |
41 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase; | 41 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase; |
42 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.updatePackageInfo; | 42 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.updatePackageInfo; |
43 | import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE; | 43 | import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE; |
44 | import static org.onosproject.yangutils.utils.UtilConstants.COMPONENT; | 44 | import static org.onosproject.yangutils.utils.UtilConstants.COMPONENT; |
45 | import static org.onosproject.yangutils.utils.UtilConstants.DEACTIVATE; | 45 | import static org.onosproject.yangutils.utils.UtilConstants.DEACTIVATE; | ... | ... |
... | @@ -34,10 +34,11 @@ import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | ... | @@ -34,10 +34,11 @@ import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; |
34 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_CLASS; | 34 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_CLASS; |
35 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_LISTENER_INTERFACE; | 35 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_LISTENER_INTERFACE; |
36 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS; | 36 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS; |
37 | +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; | ||
37 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER; | 38 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER; |
38 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfRootNode; | 39 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfRootNode; |
39 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.isManagerCodeGenRequired; | 40 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.isManagerCodeGenRequired; |
40 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.isGenerationOfCodeReq; | 41 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.isGenerationOfCodeReq; |
41 | import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage; | 42 | import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage; |
42 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.searchAndDeleteTempDir; | 43 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.searchAndDeleteTempDir; |
43 | 44 | ||
... | @@ -72,7 +73,7 @@ public class YangJavaSubModule | ... | @@ -72,7 +73,7 @@ public class YangJavaSubModule |
72 | public YangJavaSubModule() { | 73 | public YangJavaSubModule() { |
73 | super(); | 74 | super(); |
74 | setJavaFileInfo(new JavaFileInfo()); | 75 | setJavaFileInfo(new JavaFileInfo()); |
75 | - int gentype = GENERATE_SERVICE_AND_MANAGER; | 76 | + int gentype = GENERATE_SERVICE_AND_MANAGER | GENERATE_INTERFACE_WITH_BUILDER; |
76 | if (isNotificationChildNodePresent(this)) { | 77 | if (isNotificationChildNodePresent(this)) { |
77 | gentype = GENERATE_SERVICE_AND_MANAGER | GENERATE_EVENT_SUBJECT_CLASS | GENERATE_EVENT_CLASS | 78 | gentype = GENERATE_SERVICE_AND_MANAGER | GENERATE_EVENT_SUBJECT_CLASS | GENERATE_EVENT_CLASS |
78 | | GENERATE_EVENT_LISTENER_INTERFACE; | 79 | | GENERATE_EVENT_LISTENER_INTERFACE; |
... | @@ -170,6 +171,8 @@ public class YangJavaSubModule | ... | @@ -170,6 +171,8 @@ public class YangJavaSubModule |
170 | */ | 171 | */ |
171 | try { | 172 | try { |
172 | if (isManagerCodeGenRequired(this) && isGenerationOfCodeReq(getJavaFileInfo())) { | 173 | if (isManagerCodeGenRequired(this) && isGenerationOfCodeReq(getJavaFileInfo())) { |
174 | + | ||
175 | + getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this); | ||
173 | getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_SERVICE_AND_MANAGER, this); | 176 | getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_SERVICE_AND_MANAGER, this); |
174 | } | 177 | } |
175 | searchAndDeleteTempDir(getJavaFileInfo().getBaseCodeGenPath() + | 178 | searchAndDeleteTempDir(getJavaFileInfo().getBaseCodeGenPath() + | ... | ... |
... | @@ -26,7 +26,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; | ... | @@ -26,7 +26,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; |
26 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 26 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; |
27 | 27 | ||
28 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_TYPEDEF_CLASS; | 28 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_TYPEDEF_CLASS; |
29 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfNode; | 29 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfNode; |
30 | 30 | ||
31 | /** | 31 | /** |
32 | * Represents type define information extended to support java code generation. | 32 | * Represents type define information extended to support java code generation. | ... | ... |
... | @@ -26,7 +26,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; | ... | @@ -26,7 +26,7 @@ import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; |
26 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 26 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; |
27 | 27 | ||
28 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_UNION_CLASS; | 28 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_UNION_CLASS; |
29 | -import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfNode; | 29 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfNode; |
30 | 30 | ||
31 | /** | 31 | /** |
32 | * Represents union information extended to support java code generation. | 32 | * Represents union information extended to support java code generation. | ... | ... |
... | @@ -282,7 +282,7 @@ public final class ClassDefinitionGenerator { | ... | @@ -282,7 +282,7 @@ public final class ClassDefinitionGenerator { |
282 | curNode = curNode.getChild(); | 282 | curNode = curNode.getChild(); |
283 | while (curNode != null) { | 283 | while (curNode != null) { |
284 | if (curNode instanceof YangNotification) { | 284 | if (curNode instanceof YangNotification) { |
285 | - return getRpcInterfaceDefinitionWhenItExtends(yangName, holder); | 285 | + return getRpcInterfaceDefinitionWhenItExtends(yangName); |
286 | } | 286 | } |
287 | curNode = curNode.getNextSibling(); | 287 | curNode = curNode.getNextSibling(); |
288 | } | 288 | } |
... | @@ -295,8 +295,7 @@ public final class ClassDefinitionGenerator { | ... | @@ -295,8 +295,7 @@ public final class ClassDefinitionGenerator { |
295 | } | 295 | } |
296 | 296 | ||
297 | /* Provides class definition when RPC interface needs to extends any event.*/ | 297 | /* Provides class definition when RPC interface needs to extends any event.*/ |
298 | - private static String getRpcInterfaceDefinitionWhenItExtends(String yangName, | 298 | + private static String getRpcInterfaceDefinitionWhenItExtends(String yangName) { |
299 | - JavaExtendsListHolder holder) { | ||
300 | 299 | ||
301 | if (yangName.matches(REGEX_FOR_ANY_STRING_ENDING_WITH_SERVICE)) { | 300 | if (yangName.matches(REGEX_FOR_ANY_STRING_ENDING_WITH_SERVICE)) { |
302 | String[] strArray = yangName.split(SERVICE); | 301 | String[] strArray = yangName.split(SERVICE); | ... | ... |
... | @@ -19,14 +19,14 @@ package org.onosproject.yangutils.translator.tojava.utils; | ... | @@ -19,14 +19,14 @@ package org.onosproject.yangutils.translator.tojava.utils; |
19 | import java.util.List; | 19 | import java.util.List; |
20 | 20 | ||
21 | import org.onosproject.yangutils.datamodel.YangNode; | 21 | import org.onosproject.yangutils.datamodel.YangNode; |
22 | +import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo; | ||
22 | import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo; | 23 | import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo; |
23 | -import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; | 24 | +import org.onosproject.yangutils.translator.tojava.TempJavaServiceFragmentFiles; |
24 | -import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer; | ||
25 | -import org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles; | ||
26 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 25 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; |
27 | 26 | ||
28 | import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getEnumJavaAttribute; | 27 | import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getEnumJavaAttribute; |
29 | import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE_ANNOTATION_IMPORT; | 28 | import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE_ANNOTATION_IMPORT; |
29 | +import static org.onosproject.yangutils.utils.UtilConstants.CLASS_STRING; | ||
30 | import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET; | 30 | import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET; |
31 | import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS; | 31 | import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS; |
32 | import static org.onosproject.yangutils.utils.UtilConstants.COMMA; | 32 | import static org.onosproject.yangutils.utils.UtilConstants.COMMA; |
... | @@ -38,6 +38,7 @@ import static org.onosproject.yangutils.utils.UtilConstants.DIAMOND_OPEN_BRACKET | ... | @@ -38,6 +38,7 @@ import static org.onosproject.yangutils.utils.UtilConstants.DIAMOND_OPEN_BRACKET |
38 | import static org.onosproject.yangutils.utils.UtilConstants.ENUM; | 38 | import static org.onosproject.yangutils.utils.UtilConstants.ENUM; |
39 | import static org.onosproject.yangutils.utils.UtilConstants.EQUAL; | 39 | import static org.onosproject.yangutils.utils.UtilConstants.EQUAL; |
40 | import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION; | 40 | import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION; |
41 | +import static org.onosproject.yangutils.utils.UtilConstants.HASH_MAP; | ||
41 | import static org.onosproject.yangutils.utils.UtilConstants.IMMEDIATE; | 42 | import static org.onosproject.yangutils.utils.UtilConstants.IMMEDIATE; |
42 | import static org.onosproject.yangutils.utils.UtilConstants.IMPORT; | 43 | import static org.onosproject.yangutils.utils.UtilConstants.IMPORT; |
43 | import static org.onosproject.yangutils.utils.UtilConstants.INT; | 44 | import static org.onosproject.yangutils.utils.UtilConstants.INT; |
... | @@ -45,18 +46,22 @@ import static org.onosproject.yangutils.utils.UtilConstants.LIST; | ... | @@ -45,18 +46,22 @@ import static org.onosproject.yangutils.utils.UtilConstants.LIST; |
45 | import static org.onosproject.yangutils.utils.UtilConstants.LISTENER_SERVICE; | 46 | import static org.onosproject.yangutils.utils.UtilConstants.LISTENER_SERVICE; |
46 | import static org.onosproject.yangutils.utils.UtilConstants.LOGGER_FACTORY_IMPORT; | 47 | import static org.onosproject.yangutils.utils.UtilConstants.LOGGER_FACTORY_IMPORT; |
47 | import static org.onosproject.yangutils.utils.UtilConstants.LOGGER_IMPORT; | 48 | import static org.onosproject.yangutils.utils.UtilConstants.LOGGER_IMPORT; |
49 | +import static org.onosproject.yangutils.utils.UtilConstants.MAP; | ||
50 | +import static org.onosproject.yangutils.utils.UtilConstants.NEW; | ||
48 | import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE; | 51 | import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE; |
49 | import static org.onosproject.yangutils.utils.UtilConstants.OPEN_CURLY_BRACKET; | 52 | import static org.onosproject.yangutils.utils.UtilConstants.OPEN_CURLY_BRACKET; |
50 | import static org.onosproject.yangutils.utils.UtilConstants.OPEN_PARENTHESIS; | 53 | import static org.onosproject.yangutils.utils.UtilConstants.OPEN_PARENTHESIS; |
51 | import static org.onosproject.yangutils.utils.UtilConstants.PERIOD; | 54 | import static org.onosproject.yangutils.utils.UtilConstants.PERIOD; |
52 | import static org.onosproject.yangutils.utils.UtilConstants.PRIVATE; | 55 | import static org.onosproject.yangutils.utils.UtilConstants.PRIVATE; |
53 | import static org.onosproject.yangutils.utils.UtilConstants.PUBLIC; | 56 | import static org.onosproject.yangutils.utils.UtilConstants.PUBLIC; |
57 | +import static org.onosproject.yangutils.utils.UtilConstants.QUESTION_MARK; | ||
54 | import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN; | 58 | import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN; |
55 | import static org.onosproject.yangutils.utils.UtilConstants.SERVICE_ANNOTATION; | 59 | import static org.onosproject.yangutils.utils.UtilConstants.SERVICE_ANNOTATION; |
56 | import static org.onosproject.yangutils.utils.UtilConstants.SERVICE_ANNOTATION_IMPORT; | 60 | import static org.onosproject.yangutils.utils.UtilConstants.SERVICE_ANNOTATION_IMPORT; |
57 | import static org.onosproject.yangutils.utils.UtilConstants.SPACE; | 61 | import static org.onosproject.yangutils.utils.UtilConstants.SPACE; |
58 | import static org.onosproject.yangutils.utils.UtilConstants.TRUE; | 62 | import static org.onosproject.yangutils.utils.UtilConstants.TRUE; |
59 | import static org.onosproject.yangutils.utils.UtilConstants.TYPE; | 63 | import static org.onosproject.yangutils.utils.UtilConstants.TYPE; |
64 | +import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO; | ||
60 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.ENUM_ATTRIBUTE; | 65 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.ENUM_ATTRIBUTE; |
61 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc; | 66 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc; |
62 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase; | 67 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase; |
... | @@ -221,11 +226,13 @@ public final class JavaCodeSnippetGen { | ... | @@ -221,11 +226,13 @@ public final class JavaCodeSnippetGen { |
221 | public static void addListenersImport(YangNode curNode, List<String> imports, boolean operation, | 226 | public static void addListenersImport(YangNode curNode, List<String> imports, boolean operation, |
222 | String classInfo) { | 227 | String classInfo) { |
223 | String thisImport = ""; | 228 | String thisImport = ""; |
229 | + TempJavaServiceFragmentFiles tempJavaServiceFragmentFiles = ((JavaCodeGeneratorInfo) curNode) | ||
230 | + .getTempJavaCodeFragmentFiles().getServiceTempFiles(); | ||
224 | if (classInfo.equals(LISTENER_SERVICE)) { | 231 | if (classInfo.equals(LISTENER_SERVICE)) { |
225 | - thisImport = getTempJavaFragment(curNode).getJavaImportData().getListenerServiceImport(); | 232 | + thisImport = tempJavaServiceFragmentFiles.getJavaImportData().getListenerServiceImport(); |
226 | performOperationOnImports(imports, thisImport, operation); | 233 | performOperationOnImports(imports, thisImport, operation); |
227 | } else { | 234 | } else { |
228 | - thisImport = getTempJavaFragment(curNode).getJavaImportData().getListenerRegistryImport(); | 235 | + thisImport = tempJavaServiceFragmentFiles.getJavaImportData().getListenerRegistryImport(); |
229 | performOperationOnImports(imports, thisImport, operation); | 236 | performOperationOnImports(imports, thisImport, operation); |
230 | } | 237 | } |
231 | } | 238 | } |
... | @@ -250,25 +257,6 @@ public final class JavaCodeSnippetGen { | ... | @@ -250,25 +257,6 @@ public final class JavaCodeSnippetGen { |
250 | } | 257 | } |
251 | 258 | ||
252 | /** | 259 | /** |
253 | - * Returns temp java fragment. | ||
254 | - * | ||
255 | - * @param curNode current YANG node | ||
256 | - * @return temp java fragments | ||
257 | - */ | ||
258 | - public static TempJavaFragmentFiles getTempJavaFragment(YangNode curNode) { | ||
259 | - TempJavaCodeFragmentFiles container = ((TempJavaCodeFragmentFilesContainer) curNode) | ||
260 | - .getTempJavaCodeFragmentFiles(); | ||
261 | - if (container.getBeanTempFiles() != null) { | ||
262 | - return container.getBeanTempFiles(); | ||
263 | - } | ||
264 | - if (container.getServiceTempFiles() != null) { | ||
265 | - return container.getServiceTempFiles(); | ||
266 | - } | ||
267 | - | ||
268 | - return null; | ||
269 | - } | ||
270 | - | ||
271 | - /** | ||
272 | * Returns integer attribute for enum's class to get the values. | 260 | * Returns integer attribute for enum's class to get the values. |
273 | * | 261 | * |
274 | * @param className enum's class name | 262 | * @param className enum's class name |
... | @@ -285,7 +273,20 @@ public final class JavaCodeSnippetGen { | ... | @@ -285,7 +273,20 @@ public final class JavaCodeSnippetGen { |
285 | * @return component string | 273 | * @return component string |
286 | */ | 274 | */ |
287 | public static String addComponentString() { | 275 | public static String addComponentString() { |
288 | - return NEW_LINE + COMPONENT_ANNOTATION + SPACE + OPEN_PARENTHESIS + IMMEDIATE + SPACE | 276 | + return NEW_LINE + COMPONENT_ANNOTATION + OPEN_PARENTHESIS + IMMEDIATE + SPACE |
289 | + EQUAL + SPACE + TRUE + CLOSE_PARENTHESIS + NEW_LINE + SERVICE_ANNOTATION; | 277 | + EQUAL + SPACE + TRUE + CLOSE_PARENTHESIS + NEW_LINE + SERVICE_ANNOTATION; |
290 | } | 278 | } |
279 | + | ||
280 | + /** | ||
281 | + * Returns attribute for augmentation. | ||
282 | + * | ||
283 | + * @return attribute for augmentation | ||
284 | + */ | ||
285 | + public static String addAugmentationAttribute() { | ||
286 | + return NEW_LINE + FOUR_SPACE_INDENTATION + PRIVATE + SPACE + MAP + DIAMOND_OPEN_BRACKET + CLASS_STRING | ||
287 | + + DIAMOND_OPEN_BRACKET + QUESTION_MARK + DIAMOND_CLOSE_BRACKET + COMMA + SPACE + YANG_AUGMENTED_INFO | ||
288 | + + DIAMOND_CLOSE_BRACKET + SPACE + getSmallCase(YANG_AUGMENTED_INFO) + MAP + SPACE + EQUAL + SPACE + | ||
289 | + NEW + SPACE + HASH_MAP + DIAMOND_OPEN_BRACKET + DIAMOND_CLOSE_BRACKET + OPEN_PARENTHESIS | ||
290 | + + CLOSE_PARENTHESIS + SEMI_COLAN; | ||
291 | + } | ||
291 | } | 292 | } | ... | ... |
... | @@ -26,9 +26,9 @@ import org.onosproject.yangutils.translator.tojava.JavaFileInfo; | ... | @@ -26,9 +26,9 @@ import org.onosproject.yangutils.translator.tojava.JavaFileInfo; |
26 | import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer; | 26 | import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer; |
27 | import org.onosproject.yangutils.translator.tojava.JavaImportData; | 27 | import org.onosproject.yangutils.translator.tojava.JavaImportData; |
28 | import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo; | 28 | import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo; |
29 | +import org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles; | ||
29 | 30 | ||
30 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase; | 31 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase; |
31 | -import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getTempJavaFragment; | ||
32 | 32 | ||
33 | /** | 33 | /** |
34 | * Represent the extends list for generated java classes. It holds the class details which needs | 34 | * Represent the extends list for generated java classes. It holds the class details which needs |
... | @@ -36,6 +36,9 @@ import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetG | ... | @@ -36,6 +36,9 @@ import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetG |
36 | */ | 36 | */ |
37 | public class JavaExtendsListHolder { | 37 | public class JavaExtendsListHolder { |
38 | 38 | ||
39 | + private Map<JavaQualifiedTypeInfo, Boolean> extendedClassStore; | ||
40 | + private List<JavaQualifiedTypeInfo> extendsList; | ||
41 | + | ||
39 | /** | 42 | /** |
40 | * Creates an instance of JavaExtendsListHolder. | 43 | * Creates an instance of JavaExtendsListHolder. |
41 | */ | 44 | */ |
... | @@ -44,9 +47,6 @@ public class JavaExtendsListHolder { | ... | @@ -44,9 +47,6 @@ public class JavaExtendsListHolder { |
44 | setExtendsList(new ArrayList<>()); | 47 | setExtendsList(new ArrayList<>()); |
45 | } | 48 | } |
46 | 49 | ||
47 | - private Map<JavaQualifiedTypeInfo, Boolean> extendedClassStore; | ||
48 | - private List<JavaQualifiedTypeInfo> extendsList; | ||
49 | - | ||
50 | /** | 50 | /** |
51 | * Returns extends list. | 51 | * Returns extends list. |
52 | * | 52 | * |
... | @@ -70,11 +70,13 @@ public class JavaExtendsListHolder { | ... | @@ -70,11 +70,13 @@ public class JavaExtendsListHolder { |
70 | * | 70 | * |
71 | * @param info java file info | 71 | * @param info java file info |
72 | * @param node YANG node | 72 | * @param node YANG node |
73 | + * @param tempJavaFragmentFiles temp java fragment files | ||
73 | */ | 74 | */ |
74 | - public void addToExtendsList(JavaQualifiedTypeInfo info, YangNode node) { | 75 | + public void addToExtendsList(JavaQualifiedTypeInfo info, YangNode node, |
76 | + TempJavaFragmentFiles tempJavaFragmentFiles) { | ||
75 | JavaFileInfo fileInfo = ((JavaFileInfoContainer) node).getJavaFileInfo(); | 77 | JavaFileInfo fileInfo = ((JavaFileInfoContainer) node).getJavaFileInfo(); |
76 | 78 | ||
77 | - JavaImportData importData = getTempJavaFragment(node).getJavaImportData(); | 79 | + JavaImportData importData = tempJavaFragmentFiles.getJavaImportData(); |
78 | boolean qualified = importData.addImportInfo(info, | 80 | boolean qualified = importData.addImportInfo(info, |
79 | getCapitalCase(fileInfo.getJavaName()), fileInfo.getPackage()); | 81 | getCapitalCase(fileInfo.getJavaName()), fileInfo.getPackage()); |
80 | 82 | ... | ... |
... | @@ -22,7 +22,9 @@ import java.util.ArrayList; | ... | @@ -22,7 +22,9 @@ import java.util.ArrayList; |
22 | import java.util.List; | 22 | import java.util.List; |
23 | 23 | ||
24 | import org.onosproject.yangutils.datamodel.YangAugment; | 24 | import org.onosproject.yangutils.datamodel.YangAugment; |
25 | +import org.onosproject.yangutils.datamodel.YangAugmentableNode; | ||
25 | import org.onosproject.yangutils.datamodel.YangNode; | 26 | import org.onosproject.yangutils.datamodel.YangNode; |
27 | +import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo; | ||
26 | import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo; | 28 | import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo; |
27 | import org.onosproject.yangutils.translator.tojava.JavaFileInfo; | 29 | import org.onosproject.yangutils.translator.tojava.JavaFileInfo; |
28 | import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer; | 30 | import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer; |
... | @@ -63,12 +65,19 @@ import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType. | ... | @@ -63,12 +65,19 @@ import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType. |
63 | import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_CLASS_MASK; | 65 | import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_CLASS_MASK; |
64 | import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_INTERFACE_MASK; | 66 | import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_INTERFACE_MASK; |
65 | import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.TO_STRING_IMPL_MASK; | 67 | import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.TO_STRING_IMPL_MASK; |
66 | -import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getDataFromTempFileHandle; | 68 | +import static org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles.getCurNodeAsAttributeInTarget; |
69 | +import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.addAugmentationAttribute; | ||
67 | import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getEnumsValueAttribute; | 70 | import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getEnumsValueAttribute; |
71 | +import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getEventEnumTypeStart; | ||
72 | +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getDataFromTempFileHandle; | ||
68 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.initiateJavaFileGeneration; | 73 | import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.initiateJavaFileGeneration; |
69 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.addActivateMethod; | 74 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.addActivateMethod; |
70 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.addDeActivateMethod; | 75 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.addDeActivateMethod; |
76 | +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAddAugmentInfoMethodImpl; | ||
77 | +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAugmentInfoImpl; | ||
71 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAugmentedNodesConstructorStart; | 78 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAugmentedNodesConstructorStart; |
79 | +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAugmentsDataMethodForManager; | ||
80 | +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAugmentsDataMethodForService; | ||
72 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getConstructorStart; | 81 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getConstructorStart; |
73 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEnumsConstructor; | 82 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEnumsConstructor; |
74 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEnumsOfMethod; | 83 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEnumsOfMethod; |
... | @@ -77,12 +86,16 @@ import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator | ... | @@ -77,12 +86,16 @@ import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator |
77 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getFromStringMethodClose; | 86 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getFromStringMethodClose; |
78 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getFromStringMethodSignature; | 87 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getFromStringMethodSignature; |
79 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetter; | 88 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetter; |
89 | +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterForClass; | ||
90 | +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterString; | ||
80 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethodClose; | 91 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethodClose; |
81 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethodOpen; | 92 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethodOpen; |
82 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOmitNullValueString; | 93 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOmitNullValueString; |
94 | +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOverRideString; | ||
95 | +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForClass; | ||
96 | +import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterString; | ||
83 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethodClose; | 97 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethodClose; |
84 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethodOpen; | 98 | import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethodOpen; |
85 | -import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getEventEnumTypeStart; | ||
86 | import static org.onosproject.yangutils.utils.UtilConstants.BUILDER; | 99 | import static org.onosproject.yangutils.utils.UtilConstants.BUILDER; |
87 | import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET; | 100 | import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET; |
88 | import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS; | 101 | import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS; |
... | @@ -320,12 +333,10 @@ public final class JavaFileGenerator { | ... | @@ -320,12 +333,10 @@ public final class JavaFileGenerator { |
320 | * @param file file | 333 | * @param file file |
321 | * @param imports imports for the file | 334 | * @param imports imports for the file |
322 | * @param curNode current YANG node | 335 | * @param curNode current YANG node |
323 | - * @param isAttrPresent if any attribute is present or not | ||
324 | * @return builder class file | 336 | * @return builder class file |
325 | * @throws IOException when fails to write in file | 337 | * @throws IOException when fails to write in file |
326 | */ | 338 | */ |
327 | - public static File generateManagerClassFile(File file, List<String> imports, YangNode curNode, | 339 | + public static File generateManagerClassFile(File file, List<String> imports, YangNode curNode) |
328 | - boolean isAttrPresent) | ||
329 | throws IOException { | 340 | throws IOException { |
330 | 341 | ||
331 | JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo(); | 342 | JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo(); |
... | @@ -341,25 +352,26 @@ public final class JavaFileGenerator { | ... | @@ -341,25 +352,26 @@ public final class JavaFileGenerator { |
341 | methods.add(addActivateMethod()); | 352 | methods.add(addActivateMethod()); |
342 | methods.add(addDeActivateMethod()); | 353 | methods.add(addDeActivateMethod()); |
343 | 354 | ||
355 | + TempJavaServiceFragmentFiles tempJavaServiceFragmentFiles = ((JavaCodeGeneratorInfo) curNode) | ||
356 | + .getTempJavaCodeFragmentFiles().getServiceTempFiles(); | ||
357 | + | ||
358 | + JavaAttributeInfo rootAttribute = getCurNodeAsAttributeInTarget(curNode, curNode, false, | ||
359 | + tempJavaServiceFragmentFiles); | ||
344 | try { | 360 | try { |
345 | - if (isAttrPresent) { | ||
346 | /** | 361 | /** |
347 | * Getter methods. | 362 | * Getter methods. |
348 | */ | 363 | */ |
349 | - methods.add( | 364 | + methods.add(getOverRideString() + |
350 | - getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK, | 365 | + getGetterForClass(rootAttribute, GENERATE_SERVICE_AND_MANAGER) + NEW_LINE); |
351 | - ((TempJavaCodeFragmentFilesContainer) curNode) | ||
352 | - .getTempJavaCodeFragmentFiles().getServiceTempFiles(), path)); | ||
353 | /** | 366 | /** |
354 | * Setter methods. | 367 | * Setter methods. |
355 | */ | 368 | */ |
356 | - methods.add( | 369 | + methods.add(getOverRideString() + |
357 | - getDataFromTempFileHandle(SETTER_FOR_CLASS_MASK, | 370 | + getSetterForClass(rootAttribute, className, GENERATE_SERVICE_AND_MANAGER) |
358 | - ((TempJavaCodeFragmentFilesContainer) curNode) | ||
359 | - .getTempJavaCodeFragmentFiles().getServiceTempFiles(), path) | ||
360 | + NEW_LINE); | 371 | + NEW_LINE); |
361 | 372 | ||
362 | - } | 373 | + methods.add(getAugmentsDataMethodForManager(curNode) + NEW_LINE); |
374 | + | ||
363 | if (((JavaCodeGeneratorInfo) curNode).getTempJavaCodeFragmentFiles().getServiceTempFiles() != null) { | 375 | if (((JavaCodeGeneratorInfo) curNode).getTempJavaCodeFragmentFiles().getServiceTempFiles() != null) { |
364 | JavaCodeGeneratorInfo javaGeninfo = (JavaCodeGeneratorInfo) curNode; | 376 | JavaCodeGeneratorInfo javaGeninfo = (JavaCodeGeneratorInfo) curNode; |
365 | /** | 377 | /** |
... | @@ -410,7 +422,9 @@ public final class JavaFileGenerator { | ... | @@ -410,7 +422,9 @@ public final class JavaFileGenerator { |
410 | if (curNode instanceof YangAugment) { | 422 | if (curNode instanceof YangAugment) { |
411 | isAugmentNode = true; | 423 | isAugmentNode = true; |
412 | } | 424 | } |
413 | - | 425 | + if (curNode instanceof YangAugmentableNode) { |
426 | + insertDataIntoJavaFile(file, addAugmentationAttribute()); | ||
427 | + } | ||
414 | if (isAttrPresent) { | 428 | if (isAttrPresent) { |
415 | /** | 429 | /** |
416 | * Add attribute strings. | 430 | * Add attribute strings. |
... | @@ -483,6 +497,11 @@ public final class JavaFileGenerator { | ... | @@ -483,6 +497,11 @@ public final class JavaFileGenerator { |
483 | + " while impl class file generation"); | 497 | + " while impl class file generation"); |
484 | } | 498 | } |
485 | 499 | ||
500 | + if (curNode instanceof YangAugmentableNode) { | ||
501 | + methods.add(getAddAugmentInfoMethodImpl()); | ||
502 | + methods.add(getAugmentInfoImpl()); | ||
503 | + } | ||
504 | + | ||
486 | /** | 505 | /** |
487 | * Add methods in impl class. | 506 | * Add methods in impl class. |
488 | */ | 507 | */ |
... | @@ -796,38 +815,38 @@ public final class JavaFileGenerator { | ... | @@ -796,38 +815,38 @@ public final class JavaFileGenerator { |
796 | * @param file generated file | 815 | * @param file generated file |
797 | * @param curNode current YANG node | 816 | * @param curNode current YANG node |
798 | * @param imports imports for file | 817 | * @param imports imports for file |
799 | - * @param isAttributePresent is attribute present | ||
800 | * @return rpc class file | 818 | * @return rpc class file |
801 | * @throws IOException when fails to generate class file | 819 | * @throws IOException when fails to generate class file |
802 | */ | 820 | */ |
803 | - public static File generateServiceInterfaceFile(File file, YangNode curNode, List<String> imports, | 821 | + public static File generateServiceInterfaceFile(File file, YangNode curNode, List<String> imports) |
804 | - boolean isAttributePresent) | ||
805 | throws IOException { | 822 | throws IOException { |
806 | 823 | ||
807 | JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo(); | 824 | JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo(); |
808 | 825 | ||
826 | + TempJavaServiceFragmentFiles tempJavaServiceFragmentFiles = ((JavaCodeGeneratorInfo) curNode) | ||
827 | + .getTempJavaCodeFragmentFiles().getServiceTempFiles(); | ||
809 | String className = getCapitalCase(javaFileInfo.getJavaName()) + SERVICE_METHOD_STRING; | 828 | String className = getCapitalCase(javaFileInfo.getJavaName()) + SERVICE_METHOD_STRING; |
810 | String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath(); | 829 | String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath(); |
811 | initiateJavaFileGeneration(file, GENERATE_SERVICE_AND_MANAGER, imports, curNode, className); | 830 | initiateJavaFileGeneration(file, GENERATE_SERVICE_AND_MANAGER, imports, curNode, className); |
812 | 831 | ||
813 | List<String> methods = new ArrayList<>(); | 832 | List<String> methods = new ArrayList<>(); |
833 | + JavaAttributeInfo rootAttribute = getCurNodeAsAttributeInTarget(curNode, curNode, false, | ||
834 | + tempJavaServiceFragmentFiles); | ||
814 | 835 | ||
815 | try { | 836 | try { |
816 | - if (isAttributePresent) { | ||
817 | - | ||
818 | /** | 837 | /** |
819 | * Getter methods. | 838 | * Getter methods. |
820 | */ | 839 | */ |
821 | - methods.add(getDataFromTempFileHandle(GETTER_FOR_INTERFACE_MASK, | 840 | + methods.add(getGetterString(rootAttribute, GENERATE_SERVICE_AND_MANAGER, |
822 | - ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles() | 841 | + javaFileInfo.getPluginConfig()) + NEW_LINE); |
823 | - .getServiceTempFiles(), path)); | ||
824 | /** | 842 | /** |
825 | * Setter methods. | 843 | * Setter methods. |
826 | */ | 844 | */ |
827 | - methods.add(getDataFromTempFileHandle(SETTER_FOR_INTERFACE_MASK, | 845 | + methods.add(getSetterString(rootAttribute, className, GENERATE_SERVICE_AND_MANAGER, |
828 | - ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles() | 846 | + javaFileInfo.getPluginConfig()) + NEW_LINE); |
829 | - .getServiceTempFiles(), path)); | 847 | + |
830 | - } | 848 | + methods.add(getAugmentsDataMethodForService(curNode) + NEW_LINE); |
849 | + | ||
831 | if (((JavaCodeGeneratorInfo) curNode).getTempJavaCodeFragmentFiles().getServiceTempFiles() != null) { | 850 | if (((JavaCodeGeneratorInfo) curNode).getTempJavaCodeFragmentFiles().getServiceTempFiles() != null) { |
832 | JavaCodeGeneratorInfo javaGeninfo = (JavaCodeGeneratorInfo) curNode; | 851 | JavaCodeGeneratorInfo javaGeninfo = (JavaCodeGeneratorInfo) curNode; |
833 | /** | 852 | /** | ... | ... |
... | @@ -18,14 +18,23 @@ package org.onosproject.yangutils.translator.tojava.utils; | ... | @@ -18,14 +18,23 @@ package org.onosproject.yangutils.translator.tojava.utils; |
18 | 18 | ||
19 | import java.io.File; | 19 | import java.io.File; |
20 | import java.io.IOException; | 20 | import java.io.IOException; |
21 | +import java.util.ArrayList; | ||
22 | +import java.util.HashMap; | ||
21 | import java.util.List; | 23 | import java.util.List; |
24 | +import java.util.Map; | ||
22 | 25 | ||
26 | +import org.onosproject.yangutils.datamodel.YangAtomicPath; | ||
23 | import org.onosproject.yangutils.datamodel.YangAugment; | 27 | import org.onosproject.yangutils.datamodel.YangAugment; |
24 | import org.onosproject.yangutils.datamodel.YangNode; | 28 | import org.onosproject.yangutils.datamodel.YangNode; |
29 | +import org.onosproject.yangutils.datamodel.YangNodeIdentifier; | ||
25 | import org.onosproject.yangutils.translator.exception.TranslatorException; | 30 | import org.onosproject.yangutils.translator.exception.TranslatorException; |
31 | +import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo; | ||
26 | import org.onosproject.yangutils.translator.tojava.JavaFileInfo; | 32 | import org.onosproject.yangutils.translator.tojava.JavaFileInfo; |
27 | import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer; | 33 | import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer; |
34 | +import org.onosproject.yangutils.translator.tojava.JavaImportData; | ||
35 | +import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo; | ||
28 | import org.onosproject.yangutils.translator.tojava.TempJavaBeanFragmentFiles; | 36 | import org.onosproject.yangutils.translator.tojava.TempJavaBeanFragmentFiles; |
37 | +import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; | ||
29 | import org.onosproject.yangutils.translator.tojava.TempJavaEnumerationFragmentFiles; | 38 | import org.onosproject.yangutils.translator.tojava.TempJavaEnumerationFragmentFiles; |
30 | import org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles; | 39 | import org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles; |
31 | import org.onosproject.yangutils.translator.tojava.TempJavaServiceFragmentFiles; | 40 | import org.onosproject.yangutils.translator.tojava.TempJavaServiceFragmentFiles; |
... | @@ -67,6 +76,8 @@ import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType. | ... | @@ -67,6 +76,8 @@ import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType. |
67 | import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_CLASS_MASK; | 76 | import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_CLASS_MASK; |
68 | import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_INTERFACE_MASK; | 77 | import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_INTERFACE_MASK; |
69 | import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.TO_STRING_IMPL_MASK; | 78 | import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.TO_STRING_IMPL_MASK; |
79 | +import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.getQualifiedTypeInfoOfCurNode; | ||
80 | +import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.getAugmentedNodesPackage; | ||
70 | import static org.onosproject.yangutils.translator.tojava.utils.ClassDefinitionGenerator.generateClassDefinition; | 81 | import static org.onosproject.yangutils.translator.tojava.utils.ClassDefinitionGenerator.generateClassDefinition; |
71 | import static org.onosproject.yangutils.utils.UtilConstants.BUILDER; | 82 | import static org.onosproject.yangutils.utils.UtilConstants.BUILDER; |
72 | import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET; | 83 | import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET; |
... | @@ -553,4 +564,191 @@ public final class JavaFileGeneratorUtils { | ... | @@ -553,4 +564,191 @@ public final class JavaFileGeneratorUtils { |
553 | insertDataIntoJavaFile(file, generateClassDefinition(genType, fileName)); | 564 | insertDataIntoJavaFile(file, generateClassDefinition(genType, fileName)); |
554 | } | 565 | } |
555 | 566 | ||
567 | + /** | ||
568 | + * Returns resolved augments for manager classes. | ||
569 | + * | ||
570 | + * @param parent parent node | ||
571 | + * @return resolved augments for manager classes | ||
572 | + */ | ||
573 | + public static Map<YangAtomicPath, YangAugment> getResolvedAugmentsForManager(YangNode parent) { | ||
574 | + Map<YangAtomicPath, YangAugment> resolvedAugmentsForManager = new HashMap<>(); | ||
575 | + YangNodeIdentifier nodeId; | ||
576 | + List<YangAtomicPath> targets = new ArrayList<>(); | ||
577 | + for (YangAugment augment : getListOfAugments(parent)) { | ||
578 | + nodeId = augment.getTargetNode().get(0).getNodeIdentifier(); | ||
579 | + if (validateNodeIdentifierInSet(nodeId, targets)) { | ||
580 | + targets.add(augment.getTargetNode().get(0)); | ||
581 | + resolvedAugmentsForManager.put(augment.getTargetNode().get(0), augment); | ||
582 | + } | ||
583 | + } | ||
584 | + return resolvedAugmentsForManager; | ||
585 | + } | ||
586 | + | ||
587 | + /** | ||
588 | + * Returns set of node identifiers. | ||
589 | + * | ||
590 | + * @param parent parent node | ||
591 | + * @return set of node identifiers | ||
592 | + */ | ||
593 | + public static List<YangAtomicPath> getSetOfNodeIdentifiers(YangNode parent) { | ||
594 | + | ||
595 | + List<YangAtomicPath> targets = new ArrayList<>(); | ||
596 | + YangNodeIdentifier nodeId; | ||
597 | + List<YangAugment> augments = getListOfAugments(parent); | ||
598 | + for (YangAugment augment : augments) { | ||
599 | + nodeId = augment.getTargetNode().get(0).getNodeIdentifier(); | ||
600 | + | ||
601 | + if (validateNodeIdentifierInSet(nodeId, targets)) { | ||
602 | + targets.add(augment.getTargetNode().get(0)); | ||
603 | + } | ||
604 | + } | ||
605 | + return targets; | ||
606 | + } | ||
607 | + | ||
608 | + /* Returns list of augments.*/ | ||
609 | + private static List<YangAugment> getListOfAugments(YangNode parent) { | ||
610 | + List<YangAugment> augments = new ArrayList<>(); | ||
611 | + YangNode child = parent.getChild(); | ||
612 | + while (child != null) { | ||
613 | + if (child instanceof YangAugment) { | ||
614 | + augments.add((YangAugment) child); | ||
615 | + } | ||
616 | + child = child.getNextSibling(); | ||
617 | + } | ||
618 | + return augments; | ||
619 | + } | ||
620 | + | ||
621 | + /*Validates the set for duplicate names of node identifiers.*/ | ||
622 | + private static boolean validateNodeIdentifierInSet(YangNodeIdentifier nodeId, List<YangAtomicPath> targets) { | ||
623 | + boolean isPresent = true; | ||
624 | + for (YangAtomicPath target : targets) { | ||
625 | + if (target.getNodeIdentifier().getName().equals(nodeId.getName())) { | ||
626 | + if (target.getNodeIdentifier().getPrefix() != null) { | ||
627 | + isPresent = !target.getNodeIdentifier().getPrefix().equals(nodeId.getPrefix()); | ||
628 | + } else { | ||
629 | + isPresent = nodeId.getPrefix() != null; | ||
630 | + } | ||
631 | + } | ||
632 | + } | ||
633 | + return isPresent; | ||
634 | + } | ||
635 | + | ||
636 | + /** | ||
637 | + * Adds resolved augmented node imports to manager class. | ||
638 | + * | ||
639 | + * @param parent parent node | ||
640 | + */ | ||
641 | + public static void addResolvedAugmentedDataNodeImports(YangNode parent) { | ||
642 | + Map<YangAtomicPath, YangAugment> resolvedAugmentsForManager = getResolvedAugmentsForManager(parent); | ||
643 | + List<YangAtomicPath> targets = getSetOfNodeIdentifiers(parent); | ||
644 | + TempJavaCodeFragmentFiles tempJavaCodeFragmentFiles = ((JavaCodeGeneratorInfo) parent) | ||
645 | + .getTempJavaCodeFragmentFiles(); | ||
646 | + YangNode augmentedNode; | ||
647 | + JavaQualifiedTypeInfo javaQualifiedTypeInfo; | ||
648 | + String curNodeName; | ||
649 | + JavaFileInfo parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo(); | ||
650 | + for (YangAtomicPath nodeId : targets) { | ||
651 | + augmentedNode = resolvedAugmentsForManager.get(nodeId).getResolveNodeInPath().get(nodeId); | ||
652 | + if (((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName() != null) { | ||
653 | + curNodeName = ((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName(); | ||
654 | + } else { | ||
655 | + curNodeName = getCapitalCase(getCamelCase(augmentedNode.getName(), parentInfo.getPluginConfig() | ||
656 | + .getConflictResolver())); | ||
657 | + } | ||
658 | + | ||
659 | + javaQualifiedTypeInfo = getQualifiedTypeInfoOfAugmentedNode(augmentedNode, getCapitalCase(curNodeName), | ||
660 | + parentInfo.getPluginConfig()); | ||
661 | + tempJavaCodeFragmentFiles.getServiceTempFiles().getJavaImportData().addImportInfo(javaQualifiedTypeInfo, | ||
662 | + parentInfo.getJavaName(), parentInfo.getPackage()); | ||
663 | + | ||
664 | + } | ||
665 | + } | ||
666 | + | ||
667 | + /** | ||
668 | + * Returns qualified type info of augmented node. | ||
669 | + * | ||
670 | + * @param augmentedNode augmented node | ||
671 | + * @param curNodeName current node name | ||
672 | + * @param pluginConfig plugin configurations | ||
673 | + * @return qualified type info of augmented node | ||
674 | + */ | ||
675 | + public static JavaQualifiedTypeInfo getQualifiedTypeInfoOfAugmentedNode(YangNode augmentedNode, String curNodeName, | ||
676 | + YangPluginConfig pluginConfig) { | ||
677 | + JavaQualifiedTypeInfo javaQualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(augmentedNode, | ||
678 | + getCapitalCase(curNodeName)); | ||
679 | + if (javaQualifiedTypeInfo.getPkgInfo() == null) { | ||
680 | + javaQualifiedTypeInfo.setPkgInfo(getAugmentedNodesPackage(augmentedNode, | ||
681 | + pluginConfig)); | ||
682 | + } | ||
683 | + return javaQualifiedTypeInfo; | ||
684 | + } | ||
685 | + | ||
686 | + /** | ||
687 | + * Validates if augmented node is imported in parent node. | ||
688 | + * | ||
689 | + * @param javaQualifiedTypeInfo qualified type info | ||
690 | + * @param importData import data | ||
691 | + * @return true if present in imports | ||
692 | + */ | ||
693 | + private static boolean validateQualifiedInfoOfAugmentedNode(JavaQualifiedTypeInfo javaQualifiedTypeInfo, | ||
694 | + JavaImportData importData) { | ||
695 | + for (JavaQualifiedTypeInfo curImportInfo : importData.getImportSet()) { | ||
696 | + if (curImportInfo.getClassInfo() | ||
697 | + .contentEquals(javaQualifiedTypeInfo.getClassInfo())) { | ||
698 | + return curImportInfo.getPkgInfo() | ||
699 | + .contentEquals(javaQualifiedTypeInfo.getPkgInfo()); | ||
700 | + } | ||
701 | + } | ||
702 | + return true; | ||
703 | + } | ||
704 | + | ||
705 | + /** | ||
706 | + * Return augmented class name for data methods in manager and service. | ||
707 | + * | ||
708 | + * @param augmentedNode augmented node | ||
709 | + * @param parent parent node | ||
710 | + * @return augmented class name for data methods in manager and service | ||
711 | + */ | ||
712 | + public static String getAugmentedClassNameForDataMethods(YangNode augmentedNode, YangNode parent) { | ||
713 | + String curNodeName; | ||
714 | + JavaQualifiedTypeInfo javaQualifiedTypeInfo; | ||
715 | + JavaFileInfo parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo(); | ||
716 | + YangPluginConfig pluginConfig = parentInfo.getPluginConfig(); | ||
717 | + TempJavaServiceFragmentFiles tempJavaServiceFragmentFiles = ((JavaCodeGeneratorInfo) parent) | ||
718 | + .getTempJavaCodeFragmentFiles().getServiceTempFiles(); | ||
719 | + if (((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName() != null) { | ||
720 | + curNodeName = ((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName(); | ||
721 | + } else { | ||
722 | + curNodeName = getCapitalCase(getCamelCase(augmentedNode.getName(), pluginConfig | ||
723 | + .getConflictResolver())); | ||
724 | + } | ||
725 | + | ||
726 | + javaQualifiedTypeInfo = getQualifiedTypeInfoOfAugmentedNode(augmentedNode, | ||
727 | + getCapitalCase(curNodeName), | ||
728 | + parentInfo.getPluginConfig()); | ||
729 | + if (validateQualifiedInfoOfAugmentedNode(javaQualifiedTypeInfo, | ||
730 | + tempJavaServiceFragmentFiles.getJavaImportData())) { | ||
731 | + return javaQualifiedTypeInfo.getClassInfo(); | ||
732 | + } else { | ||
733 | + return javaQualifiedTypeInfo.getPkgInfo() + PERIOD + javaQualifiedTypeInfo.getClassInfo(); | ||
734 | + } | ||
735 | + } | ||
736 | + | ||
737 | + /** | ||
738 | + * Returns parent node name for data methods in manager and service. | ||
739 | + * | ||
740 | + * @param parent parent node | ||
741 | + * @param pluginConfig plugin configurations | ||
742 | + * @return parent node name for data methods in manager and service | ||
743 | + */ | ||
744 | + public static String getParentNodeNameForDataMethods(YangNode parent, YangPluginConfig pluginConfig) { | ||
745 | + JavaFileInfo parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo(); | ||
746 | + if (parentInfo.getJavaName() != null) { | ||
747 | + return getCapitalCase(parentInfo.getJavaName()); | ||
748 | + } | ||
749 | + return getCapitalCase(getCamelCase(parent.getName(), pluginConfig | ||
750 | + .getConflictResolver())); | ||
751 | + | ||
752 | + } | ||
753 | + | ||
556 | } | 754 | } | ... | ... |
... | @@ -19,19 +19,29 @@ package org.onosproject.yangutils.translator.tojava.utils; | ... | @@ -19,19 +19,29 @@ package org.onosproject.yangutils.translator.tojava.utils; |
19 | import java.util.List; | 19 | import java.util.List; |
20 | import java.util.Map; | 20 | import java.util.Map; |
21 | 21 | ||
22 | +import org.onosproject.yangutils.datamodel.YangAtomicPath; | ||
23 | +import org.onosproject.yangutils.datamodel.YangAugment; | ||
24 | +import org.onosproject.yangutils.datamodel.YangNode; | ||
22 | import org.onosproject.yangutils.datamodel.YangType; | 25 | import org.onosproject.yangutils.datamodel.YangType; |
23 | import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes; | 26 | import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes; |
24 | import org.onosproject.yangutils.translator.exception.TranslatorException; | 27 | import org.onosproject.yangutils.translator.exception.TranslatorException; |
25 | import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo; | 28 | import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo; |
29 | +import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer; | ||
26 | import org.onosproject.yangutils.utils.io.impl.JavaDocGen; | 30 | import org.onosproject.yangutils.utils.io.impl.JavaDocGen; |
27 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; | 31 | import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; |
28 | 32 | ||
29 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS; | 33 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS; |
30 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER; | 34 | import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER; |
35 | +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getAugmentedClassNameForDataMethods; | ||
36 | +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getParentNodeNameForDataMethods; | ||
37 | +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getResolvedAugmentsForManager; | ||
38 | +import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getSetOfNodeIdentifiers; | ||
31 | import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE; | 39 | import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE; |
32 | import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE_ANNOTATION; | 40 | import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE_ANNOTATION; |
33 | import static org.onosproject.yangutils.utils.UtilConstants.ADD_STRING; | 41 | import static org.onosproject.yangutils.utils.UtilConstants.ADD_STRING; |
34 | import static org.onosproject.yangutils.utils.UtilConstants.AND; | 42 | import static org.onosproject.yangutils.utils.UtilConstants.AND; |
43 | +import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTATION; | ||
44 | +import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED; | ||
35 | import static org.onosproject.yangutils.utils.UtilConstants.BIG_DECIMAL; | 45 | import static org.onosproject.yangutils.utils.UtilConstants.BIG_DECIMAL; |
36 | import static org.onosproject.yangutils.utils.UtilConstants.BIG_INTEGER; | 46 | import static org.onosproject.yangutils.utils.UtilConstants.BIG_INTEGER; |
37 | import static org.onosproject.yangutils.utils.UtilConstants.BOOLEAN_DATA_TYPE; | 47 | import static org.onosproject.yangutils.utils.UtilConstants.BOOLEAN_DATA_TYPE; |
... | @@ -43,6 +53,8 @@ import static org.onosproject.yangutils.utils.UtilConstants.BYTE_WRAPPER; | ... | @@ -43,6 +53,8 @@ import static org.onosproject.yangutils.utils.UtilConstants.BYTE_WRAPPER; |
43 | import static org.onosproject.yangutils.utils.UtilConstants.CASE; | 53 | import static org.onosproject.yangutils.utils.UtilConstants.CASE; |
44 | import static org.onosproject.yangutils.utils.UtilConstants.CATCH; | 54 | import static org.onosproject.yangutils.utils.UtilConstants.CATCH; |
45 | import static org.onosproject.yangutils.utils.UtilConstants.CHECK_NOT_NULL_STRING; | 55 | import static org.onosproject.yangutils.utils.UtilConstants.CHECK_NOT_NULL_STRING; |
56 | +import static org.onosproject.yangutils.utils.UtilConstants.CLASS; | ||
57 | +import static org.onosproject.yangutils.utils.UtilConstants.CLASS_STRING; | ||
46 | import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET; | 58 | import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET; |
47 | import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS; | 59 | import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS; |
48 | import static org.onosproject.yangutils.utils.UtilConstants.COLAN; | 60 | import static org.onosproject.yangutils.utils.UtilConstants.COLAN; |
... | @@ -63,6 +75,7 @@ import static org.onosproject.yangutils.utils.UtilConstants.FALSE; | ... | @@ -63,6 +75,7 @@ import static org.onosproject.yangutils.utils.UtilConstants.FALSE; |
63 | import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION; | 75 | import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION; |
64 | import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_METHOD_NAME; | 76 | import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_METHOD_NAME; |
65 | import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_PARAM_NAME; | 77 | import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_PARAM_NAME; |
78 | +import static org.onosproject.yangutils.utils.UtilConstants.GET; | ||
66 | import static org.onosproject.yangutils.utils.UtilConstants.GET_BYTES; | 79 | import static org.onosproject.yangutils.utils.UtilConstants.GET_BYTES; |
67 | import static org.onosproject.yangutils.utils.UtilConstants.GET_METHOD_PREFIX; | 80 | import static org.onosproject.yangutils.utils.UtilConstants.GET_METHOD_PREFIX; |
68 | import static org.onosproject.yangutils.utils.UtilConstants.GOOGLE_MORE_OBJECT_METHOD_STRING; | 81 | import static org.onosproject.yangutils.utils.UtilConstants.GOOGLE_MORE_OBJECT_METHOD_STRING; |
... | @@ -75,6 +88,7 @@ import static org.onosproject.yangutils.utils.UtilConstants.INTEGER_WRAPPER; | ... | @@ -75,6 +88,7 @@ import static org.onosproject.yangutils.utils.UtilConstants.INTEGER_WRAPPER; |
75 | import static org.onosproject.yangutils.utils.UtilConstants.LIST; | 88 | import static org.onosproject.yangutils.utils.UtilConstants.LIST; |
76 | import static org.onosproject.yangutils.utils.UtilConstants.LONG; | 89 | import static org.onosproject.yangutils.utils.UtilConstants.LONG; |
77 | import static org.onosproject.yangutils.utils.UtilConstants.LONG_WRAPPER; | 90 | import static org.onosproject.yangutils.utils.UtilConstants.LONG_WRAPPER; |
91 | +import static org.onosproject.yangutils.utils.UtilConstants.MAP; | ||
78 | import static org.onosproject.yangutils.utils.UtilConstants.NEW; | 92 | import static org.onosproject.yangutils.utils.UtilConstants.NEW; |
79 | import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE; | 93 | import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE; |
80 | import static org.onosproject.yangutils.utils.UtilConstants.NULL; | 94 | import static org.onosproject.yangutils.utils.UtilConstants.NULL; |
... | @@ -94,6 +108,7 @@ import static org.onosproject.yangutils.utils.UtilConstants.PARSE_LONG; | ... | @@ -94,6 +108,7 @@ import static org.onosproject.yangutils.utils.UtilConstants.PARSE_LONG; |
94 | import static org.onosproject.yangutils.utils.UtilConstants.PARSE_SHORT; | 108 | import static org.onosproject.yangutils.utils.UtilConstants.PARSE_SHORT; |
95 | import static org.onosproject.yangutils.utils.UtilConstants.PERIOD; | 109 | import static org.onosproject.yangutils.utils.UtilConstants.PERIOD; |
96 | import static org.onosproject.yangutils.utils.UtilConstants.PUBLIC; | 110 | import static org.onosproject.yangutils.utils.UtilConstants.PUBLIC; |
111 | +import static org.onosproject.yangutils.utils.UtilConstants.PUT; | ||
97 | import static org.onosproject.yangutils.utils.UtilConstants.QUOTES; | 112 | import static org.onosproject.yangutils.utils.UtilConstants.QUOTES; |
98 | import static org.onosproject.yangutils.utils.UtilConstants.RETURN; | 113 | import static org.onosproject.yangutils.utils.UtilConstants.RETURN; |
99 | import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_VAR_NAME; | 114 | import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_VAR_NAME; |
... | @@ -117,6 +132,7 @@ import static org.onosproject.yangutils.utils.UtilConstants.TRY; | ... | @@ -117,6 +132,7 @@ import static org.onosproject.yangutils.utils.UtilConstants.TRY; |
117 | import static org.onosproject.yangutils.utils.UtilConstants.TWELVE_SPACE_INDENTATION; | 132 | import static org.onosproject.yangutils.utils.UtilConstants.TWELVE_SPACE_INDENTATION; |
118 | import static org.onosproject.yangutils.utils.UtilConstants.VALUE; | 133 | import static org.onosproject.yangutils.utils.UtilConstants.VALUE; |
119 | import static org.onosproject.yangutils.utils.UtilConstants.VOID; | 134 | import static org.onosproject.yangutils.utils.UtilConstants.VOID; |
135 | +import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO; | ||
120 | import static org.onosproject.yangutils.utils.UtilConstants.YANG_UTILS_TODO; | 136 | import static org.onosproject.yangutils.utils.UtilConstants.YANG_UTILS_TODO; |
121 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.BUILD_METHOD; | 137 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.BUILD_METHOD; |
122 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.CONSTRUCTOR; | 138 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.CONSTRUCTOR; |
... | @@ -127,6 +143,8 @@ import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.MAN | ... | @@ -127,6 +143,8 @@ import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.MAN |
127 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.OF_METHOD; | 143 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.OF_METHOD; |
128 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.SETTER_METHOD; | 144 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.SETTER_METHOD; |
129 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.TYPE_CONSTRUCTOR; | 145 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.TYPE_CONSTRUCTOR; |
146 | +import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateForAddAugmentation; | ||
147 | +import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateForGetAugmentation; | ||
130 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateForTypeConstructor; | 148 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateForTypeConstructor; |
131 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc; | 149 | import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc; |
132 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase; | 150 | import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase; |
... | @@ -941,6 +959,38 @@ public final class MethodsGenerator { | ... | @@ -941,6 +959,38 @@ public final class MethodsGenerator { |
941 | } | 959 | } |
942 | 960 | ||
943 | /** | 961 | /** |
962 | + * Returns implementation of add augmentation. | ||
963 | + * | ||
964 | + * @return implementation of add augmentation | ||
965 | + */ | ||
966 | + public static String getAddAugmentInfoMethodImpl() { | ||
967 | + return NEW_LINE + generateForAddAugmentation() + FOUR_SPACE_INDENTATION + | ||
968 | + PUBLIC + SPACE + VOID + SPACE + ADD_STRING | ||
969 | + + AUGMENTATION + OPEN_PARENTHESIS + YANG_AUGMENTED_INFO + SPACE + VALUE + COMMA + SPACE + CLASS_STRING + | ||
970 | + SPACE + CLASS + OBJECT_STRING + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + | ||
971 | + EIGHT_SPACE_INDENTATION + getSmallCase(YANG_AUGMENTED_INFO) + MAP + PERIOD + PUT + OPEN_PARENTHESIS + | ||
972 | + CLASS + OBJECT_STRING + COMMA + SPACE + VALUE + | ||
973 | + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION + | ||
974 | + CLOSE_CURLY_BRACKET + NEW_LINE; | ||
975 | + } | ||
976 | + | ||
977 | + /** | ||
978 | + * Returns implementation of get augment info. | ||
979 | + * | ||
980 | + * @return implementation of get augment info | ||
981 | + */ | ||
982 | + public static String getAugmentInfoImpl() { | ||
983 | + | ||
984 | + return generateForGetAugmentation() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + | ||
985 | + YANG_AUGMENTED_INFO + SPACE + GET_METHOD_PREFIX + | ||
986 | + YANG_AUGMENTED_INFO + OPEN_PARENTHESIS + CLASS_STRING + SPACE + CLASS + OBJECT_STRING + | ||
987 | + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION + | ||
988 | + RETURN + SPACE + getSmallCase(YANG_AUGMENTED_INFO) + MAP + PERIOD + GET + OPEN_PARENTHESIS + CLASS + | ||
989 | + OBJECT_STRING + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION + | ||
990 | + CLOSE_CURLY_BRACKET + NEW_LINE; | ||
991 | + } | ||
992 | + | ||
993 | + /** | ||
944 | * Returns enum's constructor. | 994 | * Returns enum's constructor. |
945 | * | 995 | * |
946 | * @param className enum's class name | 996 | * @param className enum's class name |
... | @@ -1096,4 +1146,90 @@ public final class MethodsGenerator { | ... | @@ -1096,4 +1146,90 @@ public final class MethodsGenerator { |
1096 | + VALUE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS | 1146 | + VALUE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS |
1097 | + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE; | 1147 | + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE; |
1098 | } | 1148 | } |
1149 | + | ||
1150 | + /** | ||
1151 | + * Returns augmented data getter and setter methods for service class. | ||
1152 | + * | ||
1153 | + * @param parent parent node | ||
1154 | + * @return augmented data getter and setter methods for service class | ||
1155 | + */ | ||
1156 | + public static String getAugmentsDataMethodForService(YangNode parent) { | ||
1157 | + Map<YangAtomicPath, YangAugment> resolvedAugmentsForManager = getResolvedAugmentsForManager(parent); | ||
1158 | + List<YangAtomicPath> targets = getSetOfNodeIdentifiers(parent); | ||
1159 | + YangNode augmentedNode; | ||
1160 | + String curNodeName; | ||
1161 | + String method; | ||
1162 | + StringBuilder methods = new StringBuilder(); | ||
1163 | + String parentName; | ||
1164 | + String returnType; | ||
1165 | + YangPluginConfig pluginConfig = ((JavaFileInfoContainer) parent).getJavaFileInfo().getPluginConfig(); | ||
1166 | + for (YangAtomicPath nodeId : targets) { | ||
1167 | + augmentedNode = resolvedAugmentsForManager.get(nodeId).getResolveNodeInPath().get(nodeId); | ||
1168 | + if (((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName() != null) { | ||
1169 | + curNodeName = ((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName(); | ||
1170 | + } else { | ||
1171 | + curNodeName = getCapitalCase(getCamelCase(augmentedNode.getName(), pluginConfig | ||
1172 | + .getConflictResolver())); | ||
1173 | + } | ||
1174 | + returnType = getAugmentedClassNameForDataMethods(augmentedNode, parent); | ||
1175 | + parentName = getParentNodeNameForDataMethods(augmentedNode.getParent(), pluginConfig); | ||
1176 | + method = getJavaDoc(GETTER_METHOD, getSmallCase(AUGMENTED + parentName + curNodeName), false, | ||
1177 | + pluginConfig) + getGetterForInterface(AUGMENTED + parentName | ||
1178 | + + getCapitalCase(curNodeName), | ||
1179 | + returnType, false, GENERATE_SERVICE_AND_MANAGER) | ||
1180 | + + NEW_LINE; | ||
1181 | + methods.append(method); | ||
1182 | + | ||
1183 | + method = getJavaDoc(MANAGER_SETTER_METHOD, AUGMENTED + | ||
1184 | + getCapitalCase(parentName) + curNodeName, false, pluginConfig) + | ||
1185 | + getSetterForInterface(getSmallCase(AUGMENTED) + parentName + | ||
1186 | + getCapitalCase(curNodeName), returnType, parentName, | ||
1187 | + false, | ||
1188 | + GENERATE_SERVICE_AND_MANAGER) + NEW_LINE; | ||
1189 | + methods.append(method); | ||
1190 | + } | ||
1191 | + return methods.toString(); | ||
1192 | + } | ||
1193 | + | ||
1194 | + /** | ||
1195 | + * Returns augmented data getter and setter methods for manager class. | ||
1196 | + * | ||
1197 | + * @param parent parent node | ||
1198 | + * @return augmented data getter and setter methods for manager class | ||
1199 | + */ | ||
1200 | + public static String getAugmentsDataMethodForManager(YangNode parent) { | ||
1201 | + Map<YangAtomicPath, YangAugment> resolvedAugmentsForManager = getResolvedAugmentsForManager(parent); | ||
1202 | + List<YangAtomicPath> targets = getSetOfNodeIdentifiers(parent); | ||
1203 | + YangNode augmentedNode; | ||
1204 | + String curNodeName; | ||
1205 | + String returnType; | ||
1206 | + String method; | ||
1207 | + StringBuilder methods = new StringBuilder(); | ||
1208 | + String parentName; | ||
1209 | + YangPluginConfig pluginConfig = ((JavaFileInfoContainer) parent).getJavaFileInfo().getPluginConfig(); | ||
1210 | + for (YangAtomicPath nodeId : targets) { | ||
1211 | + augmentedNode = resolvedAugmentsForManager.get(nodeId).getResolveNodeInPath().get(nodeId); | ||
1212 | + if (((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName() != null) { | ||
1213 | + curNodeName = ((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName(); | ||
1214 | + } else { | ||
1215 | + curNodeName = getCapitalCase(getCamelCase(augmentedNode.getName(), pluginConfig | ||
1216 | + .getConflictResolver())); | ||
1217 | + } | ||
1218 | + returnType = getAugmentedClassNameForDataMethods(augmentedNode, parent); | ||
1219 | + parentName = getParentNodeNameForDataMethods(augmentedNode.getParent(), pluginConfig); | ||
1220 | + method = getOverRideString() + getGetter(returnType, AUGMENTED | ||
1221 | + + parentName + getCapitalCase(curNodeName), | ||
1222 | + GENERATE_SERVICE_AND_MANAGER) + NEW_LINE; | ||
1223 | + methods.append(method); | ||
1224 | + | ||
1225 | + method = getOverRideString() + getSetter(parentName, getSmallCase(AUGMENTED) + | ||
1226 | + getCapitalCase(parentName) + getCapitalCase(curNodeName), | ||
1227 | + returnType, | ||
1228 | + GENERATE_SERVICE_AND_MANAGER) | ||
1229 | + + NEW_LINE; | ||
1230 | + methods.append(method); | ||
1231 | + } | ||
1232 | + return methods.toString(); | ||
1233 | + } | ||
1234 | + | ||
1099 | } | 1235 | } | ... | ... |
... | @@ -97,11 +97,6 @@ public final class UtilConstants { | ... | @@ -97,11 +97,6 @@ public final class UtilConstants { |
97 | public static final String JAVA_DOC_RETURN = " * @return "; | 97 | public static final String JAVA_DOC_RETURN = " * @return "; |
98 | 98 | ||
99 | /** | 99 | /** |
100 | - * JavaDocs's throw annotation. | ||
101 | - */ | ||
102 | - public static final String JAVA_DOC_THROWS = " * @throws "; | ||
103 | - | ||
104 | - /** | ||
105 | * JavaDocs's description for setter method. | 100 | * JavaDocs's description for setter method. |
106 | */ | 101 | */ |
107 | public static final String JAVA_DOC_SETTERS = " * Returns the builder object of "; | 102 | public static final String JAVA_DOC_SETTERS = " * Returns the builder object of "; |
... | @@ -307,11 +302,6 @@ public final class UtilConstants { | ... | @@ -307,11 +302,6 @@ public final class UtilConstants { |
307 | public static final String IDENTITYREF = "identityref"; | 302 | public static final String IDENTITYREF = "identityref"; |
308 | 303 | ||
309 | /** | 304 | /** |
310 | - * Static attribute for instance identifier string. | ||
311 | - */ | ||
312 | - public static final String INSTANCE_IDENTIFIER = "instance-identifier"; | ||
313 | - | ||
314 | - /** | ||
315 | * Static attribute for output variable of rpc. | 305 | * Static attribute for output variable of rpc. |
316 | */ | 306 | */ |
317 | public static final String RPC_INPUT_VAR_NAME = "inputVar"; | 307 | public static final String RPC_INPUT_VAR_NAME = "inputVar"; |
... | @@ -332,16 +322,6 @@ public final class UtilConstants { | ... | @@ -332,16 +322,6 @@ public final class UtilConstants { |
332 | public static final String ADD = "+"; | 322 | public static final String ADD = "+"; |
333 | 323 | ||
334 | /** | 324 | /** |
335 | - * Static attribute for asterisk. | ||
336 | - */ | ||
337 | - public static final String ASTERISK = "*"; | ||
338 | - | ||
339 | - /** | ||
340 | - * Static attribute for at. | ||
341 | - */ | ||
342 | - public static final String AT = "@"; | ||
343 | - | ||
344 | - /** | ||
345 | * Static attribute for quotes. | 325 | * Static attribute for quotes. |
346 | */ | 326 | */ |
347 | public static final String QUOTES = "\""; | 327 | public static final String QUOTES = "\""; |
... | @@ -357,6 +337,21 @@ public final class UtilConstants { | ... | @@ -357,6 +337,21 @@ public final class UtilConstants { |
357 | public static final String COMMA = ","; | 337 | public static final String COMMA = ","; |
358 | 338 | ||
359 | /** | 339 | /** |
340 | + * Static attribute for class. | ||
341 | + */ | ||
342 | + public static final String CLASS_STRING = "Class"; | ||
343 | + | ||
344 | + /** | ||
345 | + * Static attribute for put. | ||
346 | + */ | ||
347 | + public static final String PUT = "put"; | ||
348 | + | ||
349 | + /** | ||
350 | + * Static attribute for get. | ||
351 | + */ | ||
352 | + public static final String GET = "get"; | ||
353 | + | ||
354 | + /** | ||
360 | * Static attribute for slash character. | 355 | * Static attribute for slash character. |
361 | */ | 356 | */ |
362 | public static final char CHAR_OF_SLASH = '/'; | 357 | public static final char CHAR_OF_SLASH = '/'; |
... | @@ -432,11 +427,6 @@ public final class UtilConstants { | ... | @@ -432,11 +427,6 @@ public final class UtilConstants { |
432 | public static final String VALUE = "value"; | 427 | public static final String VALUE = "value"; |
433 | 428 | ||
434 | /** | 429 | /** |
435 | - * Static attribute for enumValue syntax. | ||
436 | - */ | ||
437 | - public static final String ENUM_VALUE = "enumValue"; | ||
438 | - | ||
439 | - /** | ||
440 | * Static attribute for suffix s. | 430 | * Static attribute for suffix s. |
441 | */ | 431 | */ |
442 | public static final String SUFFIX_S = "s"; | 432 | public static final String SUFFIX_S = "s"; |
... | @@ -447,16 +437,6 @@ public final class UtilConstants { | ... | @@ -447,16 +437,6 @@ public final class UtilConstants { |
447 | public static final String IF = "if"; | 437 | public static final String IF = "if"; |
448 | 438 | ||
449 | /** | 439 | /** |
450 | - * Static attribute for for. | ||
451 | - */ | ||
452 | - public static final String FOR = "for"; | ||
453 | - | ||
454 | - /** | ||
455 | - * Static attribute for while. | ||
456 | - */ | ||
457 | - public static final String WHILE = "while"; | ||
458 | - | ||
459 | - /** | ||
460 | * Static attribute for of. | 440 | * Static attribute for of. |
461 | */ | 441 | */ |
462 | public static final String OF = "of"; | 442 | public static final String OF = "of"; |
... | @@ -532,11 +512,6 @@ public final class UtilConstants { | ... | @@ -532,11 +512,6 @@ public final class UtilConstants { |
532 | public static final String OPEN_PARENTHESIS = "("; | 512 | public static final String OPEN_PARENTHESIS = "("; |
533 | 513 | ||
534 | /** | 514 | /** |
535 | - * Static attribute for clear syntax. | ||
536 | - */ | ||
537 | - public static final String CLEAR = "clear"; | ||
538 | - | ||
539 | - /** | ||
540 | * Static attribute for switch syntax. | 515 | * Static attribute for switch syntax. |
541 | */ | 516 | */ |
542 | public static final String SWITCH = "switch"; | 517 | public static final String SWITCH = "switch"; |
... | @@ -592,11 +567,6 @@ public final class UtilConstants { | ... | @@ -592,11 +567,6 @@ public final class UtilConstants { |
592 | public static final String FOUR_SPACE_INDENTATION = " "; | 567 | public static final String FOUR_SPACE_INDENTATION = " "; |
593 | 568 | ||
594 | /** | 569 | /** |
595 | - * Static attribute for not syntax. | ||
596 | - */ | ||
597 | - public static final String NOT = "!"; | ||
598 | - | ||
599 | - /** | ||
600 | * Static attribute for try syntax. | 570 | * Static attribute for try syntax. |
601 | */ | 571 | */ |
602 | public static final String TRY = "try"; | 572 | public static final String TRY = "try"; |
... | @@ -667,11 +637,6 @@ public final class UtilConstants { | ... | @@ -667,11 +637,6 @@ public final class UtilConstants { |
667 | public static final String ABSTRACT = "abstract"; | 637 | public static final String ABSTRACT = "abstract"; |
668 | 638 | ||
669 | /** | 639 | /** |
670 | - * Static attribute for protected modifier. | ||
671 | - */ | ||
672 | - public static final String PROTECTED = "protected"; | ||
673 | - | ||
674 | - /** | ||
675 | * Void java type. | 640 | * Void java type. |
676 | */ | 641 | */ |
677 | public static final String VOID = "void"; | 642 | public static final String VOID = "void"; |
... | @@ -732,11 +697,6 @@ public final class UtilConstants { | ... | @@ -732,11 +697,6 @@ public final class UtilConstants { |
732 | public static final String LONG = "long"; | 697 | public static final String LONG = "long"; |
733 | 698 | ||
734 | /** | 699 | /** |
735 | - * Float java built in type. | ||
736 | - */ | ||
737 | - public static final String FLOAT = "float"; | ||
738 | - | ||
739 | - /** | ||
740 | * Double java built in type. | 700 | * Double java built in type. |
741 | */ | 701 | */ |
742 | public static final String DOUBLE = "double"; | 702 | public static final String DOUBLE = "double"; |
... | @@ -767,14 +727,9 @@ public final class UtilConstants { | ... | @@ -767,14 +727,9 @@ public final class UtilConstants { |
767 | public static final String LONG_WRAPPER = "Long"; | 727 | public static final String LONG_WRAPPER = "Long"; |
768 | 728 | ||
769 | /** | 729 | /** |
770 | - * YangUint64 java built in wrapper type. | 730 | + * Static varibale for question mark. |
771 | - */ | ||
772 | - public static final String YANG_UINT64 = "YangUint64"; | ||
773 | - | ||
774 | - /** | ||
775 | - * Double java built in wrapper type. | ||
776 | */ | 731 | */ |
777 | - public static final String DOUBLE_WRAPPER = "Double"; | 732 | + public static final String QUESTION_MARK = "?"; |
778 | 733 | ||
779 | /** | 734 | /** |
780 | * List of keywords in java, this is used for checking if the input does not contain these keywords. | 735 | * List of keywords in java, this is used for checking if the input does not contain these keywords. |
... | @@ -977,11 +932,22 @@ public final class UtilConstants { | ... | @@ -977,11 +932,22 @@ public final class UtilConstants { |
977 | public static final String OVERRIDE = "@Override"; | 932 | public static final String OVERRIDE = "@Override"; |
978 | 933 | ||
979 | /** | 934 | /** |
980 | - * Static attribute for new line. | 935 | + * Static attribute for collections. |
981 | */ | 936 | */ |
982 | public static final String COLLECTION_IMPORTS = "java.util"; | 937 | public static final String COLLECTION_IMPORTS = "java.util"; |
983 | 938 | ||
984 | /** | 939 | /** |
940 | + * Static attribute for map. | ||
941 | + */ | ||
942 | + public static final String MAP = "Map"; | ||
943 | + | ||
944 | + /** | ||
945 | + * Static attribute for hash map. | ||
946 | + */ | ||
947 | + public static final String HASH_MAP = "HashMap"; | ||
948 | + | ||
949 | + | ||
950 | + /** | ||
985 | * Static attribute for more object import package. | 951 | * Static attribute for more object import package. |
986 | */ | 952 | */ |
987 | public static final String GOOGLE_MORE_OBJECT_IMPORT_PKG = "com.google.common.base"; | 953 | public static final String GOOGLE_MORE_OBJECT_IMPORT_PKG = "com.google.common.base"; |
... | @@ -1007,25 +973,14 @@ public final class UtilConstants { | ... | @@ -1007,25 +973,14 @@ public final class UtilConstants { |
1007 | public static final String JAVA_UTIL_OBJECTS_IMPORT_CLASS = "Objects;\n"; | 973 | public static final String JAVA_UTIL_OBJECTS_IMPORT_CLASS = "Objects;\n"; |
1008 | 974 | ||
1009 | /** | 975 | /** |
1010 | - * Static attribute for AugmentationHolder class import package. | ||
1011 | - */ | ||
1012 | - public static final String PROVIDED_AUGMENTATION_CLASS_IMPORT_PKG = | ||
1013 | - "org.onosproject.yangutils.utils"; | ||
1014 | - | ||
1015 | - /** | ||
1016 | - * Static attribute for AugmentationHolder class import class. | ||
1017 | - */ | ||
1018 | - public static final String AUGMENTATION_HOLDER_CLASS_IMPORT_CLASS = "AugmentationHolder;\n"; | ||
1019 | - | ||
1020 | - /** | ||
1021 | * Static attribute for AugmentedInfo class import package. | 976 | * Static attribute for AugmentedInfo class import package. |
1022 | */ | 977 | */ |
1023 | - public static final String AUGMENTED_INFO_CLASS_IMPORT_PKG = "org.onosproject.yangutils.utils"; | 978 | + public static final String YANG_AUGMENTED_INFO_CLASS_IMPORT_PKG = "org.onosproject.yangutils.datamodel"; |
1024 | 979 | ||
1025 | /** | 980 | /** |
1026 | * Static attribute for AugmentedInfo class import class. | 981 | * Static attribute for AugmentedInfo class import class. |
1027 | */ | 982 | */ |
1028 | - public static final String AUGMENTED_INFO_CLASS_IMPORT_CLASS = "AugmentedInfo;\n"; | 983 | + public static final String YANG_AUGMENTED_INFO_CLASS_IMPORT_CLASS = "YangAugmentedInfo;\n"; |
1029 | 984 | ||
1030 | /** | 985 | /** |
1031 | * Static attribute for augmentation class. | 986 | * Static attribute for augmentation class. |
... | @@ -1033,19 +988,14 @@ public final class UtilConstants { | ... | @@ -1033,19 +988,14 @@ public final class UtilConstants { |
1033 | public static final String AUGMENTATION = "Augmentation"; | 988 | public static final String AUGMENTATION = "Augmentation"; |
1034 | 989 | ||
1035 | /** | 990 | /** |
1036 | - * Static attribute for AugmentationHolder class. | ||
1037 | - */ | ||
1038 | - public static final String AUGMENTATION_HOLDER = "AugmentationHolder"; | ||
1039 | - | ||
1040 | - /** | ||
1041 | * Static attribute for AugmentedInfo class. | 991 | * Static attribute for AugmentedInfo class. |
1042 | */ | 992 | */ |
1043 | - public static final String AUGMENTED_INFO = "AugmentedInfo"; | 993 | + public static final String YANG_AUGMENTED_INFO = "YangAugmentedInfo"; |
1044 | 994 | ||
1045 | /** | 995 | /** |
1046 | - * Static attribute for augmentable. | 996 | + * Static attribute for augmented. |
1047 | */ | 997 | */ |
1048 | - public static final String AUGMENTABLE = "Augmentable"; | 998 | + public static final String AUGMENTED = "Augmented"; |
1049 | 999 | ||
1050 | /** | 1000 | /** |
1051 | * Static attribute for list. | 1001 | * Static attribute for list. |
... | @@ -1053,11 +1003,6 @@ public final class UtilConstants { | ... | @@ -1053,11 +1003,6 @@ public final class UtilConstants { |
1053 | public static final String LIST = "List"; | 1003 | public static final String LIST = "List"; |
1054 | 1004 | ||
1055 | /** | 1005 | /** |
1056 | - * Static attribute for array list. | ||
1057 | - */ | ||
1058 | - public static final String ARRAY_LIST = "ArrayList"; | ||
1059 | - | ||
1060 | - /** | ||
1061 | * Comment to be added for autogenerated impl methods. | 1006 | * Comment to be added for autogenerated impl methods. |
1062 | */ | 1007 | */ |
1063 | public static final String YANG_UTILS_TODO = "//TODO: YANG utils generated code"; | 1008 | public static final String YANG_UTILS_TODO = "//TODO: YANG utils generated code"; |
... | @@ -1166,16 +1111,6 @@ public final class UtilConstants { | ... | @@ -1166,16 +1111,6 @@ public final class UtilConstants { |
1166 | public static final String EVENT_LISTENER = "EventListener"; | 1111 | public static final String EVENT_LISTENER = "EventListener"; |
1167 | 1112 | ||
1168 | /** | 1113 | /** |
1169 | - * Static attribute for YANG types package. | ||
1170 | - */ | ||
1171 | - public static final String YANG_TYPES_PKG = "org.onosproject.yangutils.datamodel.utils.builtindatatype"; | ||
1172 | - | ||
1173 | - /** | ||
1174 | - * Static attribute for MathContext class. | ||
1175 | - */ | ||
1176 | - public static final String MATH_CONTEXT = "MathContext"; | ||
1177 | - | ||
1178 | - /** | ||
1179 | * Static attribute for YANG file error. | 1114 | * Static attribute for YANG file error. |
1180 | */ | 1115 | */ |
1181 | public static final String YANG_FILE_ERROR = "YANG file error : "; | 1116 | public static final String YANG_FILE_ERROR = "YANG file error : "; | ... | ... |
... | @@ -16,11 +16,13 @@ | ... | @@ -16,11 +16,13 @@ |
16 | 16 | ||
17 | package org.onosproject.yangutils.utils.io.impl; | 17 | package org.onosproject.yangutils.utils.io.impl; |
18 | 18 | ||
19 | -import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase; | 19 | +import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED; |
20 | +import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO; | ||
20 | import static org.onosproject.yangutils.utils.UtilConstants.BUILDER; | 21 | import static org.onosproject.yangutils.utils.UtilConstants.BUILDER; |
21 | import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_CLASS_JAVA_DOC; | 22 | import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_CLASS_JAVA_DOC; |
22 | import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_INTERFACE_JAVA_DOC; | 23 | import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_INTERFACE_JAVA_DOC; |
23 | import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_OBJECT; | 24 | import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_OBJECT; |
25 | +import static org.onosproject.yangutils.utils.UtilConstants.CLASS; | ||
24 | import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING; | 26 | import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING; |
25 | import static org.onosproject.yangutils.utils.UtilConstants.ENUM_ATTRIBUTE_JAVADOC; | 27 | import static org.onosproject.yangutils.utils.UtilConstants.ENUM_ATTRIBUTE_JAVADOC; |
26 | import static org.onosproject.yangutils.utils.UtilConstants.ENUM_CLASS_JAVADOC; | 28 | import static org.onosproject.yangutils.utils.UtilConstants.ENUM_CLASS_JAVADOC; |
... | @@ -47,9 +49,11 @@ import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RPC; | ... | @@ -47,9 +49,11 @@ import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RPC; |
47 | import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS; | 49 | import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS; |
48 | import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS_COMMON; | 50 | import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS_COMMON; |
49 | import static org.onosproject.yangutils.utils.UtilConstants.LIST; | 51 | import static org.onosproject.yangutils.utils.UtilConstants.LIST; |
52 | +import static org.onosproject.yangutils.utils.UtilConstants.MAP; | ||
50 | import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE; | 53 | import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE; |
51 | import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE_ASTERISK; | 54 | import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE_ASTERISK; |
52 | import static org.onosproject.yangutils.utils.UtilConstants.OBJECT; | 55 | import static org.onosproject.yangutils.utils.UtilConstants.OBJECT; |
56 | +import static org.onosproject.yangutils.utils.UtilConstants.OBJECT_STRING; | ||
53 | import static org.onosproject.yangutils.utils.UtilConstants.OF; | 57 | import static org.onosproject.yangutils.utils.UtilConstants.OF; |
54 | import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC; | 58 | import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC; |
55 | import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC_OF_CHILD; | 59 | import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC_OF_CHILD; |
... | @@ -60,6 +64,8 @@ import static org.onosproject.yangutils.utils.UtilConstants.SPACE; | ... | @@ -60,6 +64,8 @@ import static org.onosproject.yangutils.utils.UtilConstants.SPACE; |
60 | import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE; | 64 | import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE; |
61 | import static org.onosproject.yangutils.utils.UtilConstants.VALUE; | 65 | import static org.onosproject.yangutils.utils.UtilConstants.VALUE; |
62 | import static org.onosproject.yangutils.utils.UtilConstants.VOID; | 66 | import static org.onosproject.yangutils.utils.UtilConstants.VOID; |
67 | +import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase; | ||
68 | +import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase; | ||
63 | 69 | ||
64 | /** | 70 | /** |
65 | * Represents javadoc for the generated classes. | 71 | * Represents javadoc for the generated classes. |
... | @@ -73,122 +79,6 @@ public final class JavaDocGen { | ... | @@ -73,122 +79,6 @@ public final class JavaDocGen { |
73 | } | 79 | } |
74 | 80 | ||
75 | /** | 81 | /** |
76 | - * JavaDocs types. | ||
77 | - */ | ||
78 | - public enum JavaDocType { | ||
79 | - | ||
80 | - /** | ||
81 | - * For class. | ||
82 | - */ | ||
83 | - IMPL_CLASS, | ||
84 | - | ||
85 | - /** | ||
86 | - * For builder class. | ||
87 | - */ | ||
88 | - BUILDER_CLASS, | ||
89 | - | ||
90 | - /** | ||
91 | - * For interface. | ||
92 | - */ | ||
93 | - INTERFACE, | ||
94 | - | ||
95 | - /** | ||
96 | - * For builder interface. | ||
97 | - */ | ||
98 | - BUILDER_INTERFACE, | ||
99 | - | ||
100 | - /** | ||
101 | - * For package-info. | ||
102 | - */ | ||
103 | - PACKAGE_INFO, | ||
104 | - | ||
105 | - /** | ||
106 | - * For getters. | ||
107 | - */ | ||
108 | - GETTER_METHOD, | ||
109 | - | ||
110 | - /** | ||
111 | - * For rpc service. | ||
112 | - */ | ||
113 | - RPC_INTERFACE, | ||
114 | - | ||
115 | - /** | ||
116 | - * For rpc manager. | ||
117 | - */ | ||
118 | - RPC_MANAGER, | ||
119 | - | ||
120 | - /** | ||
121 | - * For event. | ||
122 | - */ | ||
123 | - EVENT, | ||
124 | - | ||
125 | - /** | ||
126 | - * For event listener. | ||
127 | - */ | ||
128 | - EVENT_LISTENER, | ||
129 | - | ||
130 | - /** | ||
131 | - * For setters. | ||
132 | - */ | ||
133 | - SETTER_METHOD, | ||
134 | - | ||
135 | - /** | ||
136 | - * For type def's setters. | ||
137 | - */ | ||
138 | - TYPE_DEF_SETTER_METHOD, | ||
139 | - | ||
140 | - /** | ||
141 | - * For of method. | ||
142 | - */ | ||
143 | - OF_METHOD, | ||
144 | - | ||
145 | - /** | ||
146 | - * For default constructor. | ||
147 | - */ | ||
148 | - DEFAULT_CONSTRUCTOR, | ||
149 | - | ||
150 | - /** | ||
151 | - * For constructor. | ||
152 | - */ | ||
153 | - CONSTRUCTOR, | ||
154 | - | ||
155 | - /** | ||
156 | - * For from method. | ||
157 | - */ | ||
158 | - FROM_METHOD, | ||
159 | - | ||
160 | - /** | ||
161 | - * For type constructor. | ||
162 | - */ | ||
163 | - TYPE_CONSTRUCTOR, | ||
164 | - | ||
165 | - /** | ||
166 | - * For build. | ||
167 | - */ | ||
168 | - BUILD_METHOD, | ||
169 | - | ||
170 | - /** | ||
171 | - * For enum. | ||
172 | - */ | ||
173 | - ENUM_CLASS, | ||
174 | - | ||
175 | - /** | ||
176 | - * For enum's attributes. | ||
177 | - */ | ||
178 | - ENUM_ATTRIBUTE, | ||
179 | - | ||
180 | - /** | ||
181 | - * For manager setters. | ||
182 | - */ | ||
183 | - MANAGER_SETTER_METHOD, | ||
184 | - | ||
185 | - /** | ||
186 | - * For event subject. | ||
187 | - */ | ||
188 | - EVENT_SUBJECT_CLASS | ||
189 | - } | ||
190 | - | ||
191 | - /** | ||
192 | * Returns java docs. | 82 | * Returns java docs. |
193 | * | 83 | * |
194 | * @param type java doc type | 84 | * @param type java doc type |
... | @@ -596,4 +486,143 @@ public final class JavaDocGen { | ... | @@ -596,4 +486,143 @@ public final class JavaDocGen { |
596 | + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE | 486 | + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE |
597 | + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE; | 487 | + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE; |
598 | } | 488 | } |
489 | + | ||
490 | + /** | ||
491 | + * Generates javaDocs for add augmentation method. | ||
492 | + * | ||
493 | + * @return javaDocs | ||
494 | + */ | ||
495 | + public static String generateForAddAugmentation() { | ||
496 | + return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION | ||
497 | + + JAVA_DOC_SETTERS_COMMON + getSmallCase(YANG_AUGMENTED_INFO) + MAP + PERIOD + NEW_LINE + | ||
498 | + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE + | ||
499 | + VALUE + SPACE + OF + SPACE + getSmallCase(YANG_AUGMENTED_INFO) + NEW_LINE + FOUR_SPACE_INDENTATION | ||
500 | + + JAVA_DOC_PARAM + CLASS + OBJECT_STRING + SPACE + | ||
501 | + VALUE + SPACE + OF + SPACE + AUGMENTED + CLASS + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE; | ||
502 | + } | ||
503 | + | ||
504 | + public static String generateForGetAugmentation() { | ||
505 | + return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION | ||
506 | + + JAVA_DOC_GETTERS + getSmallCase(YANG_AUGMENTED_INFO) + PERIOD + NEW_LINE + | ||
507 | + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + CLASS + | ||
508 | + OBJECT_STRING + SPACE + VALUE + SPACE + OF + SPACE + AUGMENTED + CLASS + NEW_LINE + | ||
509 | + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + VALUE + SPACE + | ||
510 | + OF + SPACE + YANG_AUGMENTED_INFO + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE; | ||
511 | + } | ||
512 | + | ||
513 | + /** | ||
514 | + * JavaDocs types. | ||
515 | + */ | ||
516 | + public enum JavaDocType { | ||
517 | + | ||
518 | + /** | ||
519 | + * For class. | ||
520 | + */ | ||
521 | + IMPL_CLASS, | ||
522 | + | ||
523 | + /** | ||
524 | + * For builder class. | ||
525 | + */ | ||
526 | + BUILDER_CLASS, | ||
527 | + | ||
528 | + /** | ||
529 | + * For interface. | ||
530 | + */ | ||
531 | + INTERFACE, | ||
532 | + | ||
533 | + /** | ||
534 | + * For builder interface. | ||
535 | + */ | ||
536 | + BUILDER_INTERFACE, | ||
537 | + | ||
538 | + /** | ||
539 | + * For package-info. | ||
540 | + */ | ||
541 | + PACKAGE_INFO, | ||
542 | + | ||
543 | + /** | ||
544 | + * For getters. | ||
545 | + */ | ||
546 | + GETTER_METHOD, | ||
547 | + | ||
548 | + /** | ||
549 | + * For rpc service. | ||
550 | + */ | ||
551 | + RPC_INTERFACE, | ||
552 | + | ||
553 | + /** | ||
554 | + * For rpc manager. | ||
555 | + */ | ||
556 | + RPC_MANAGER, | ||
557 | + | ||
558 | + /** | ||
559 | + * For event. | ||
560 | + */ | ||
561 | + EVENT, | ||
562 | + | ||
563 | + /** | ||
564 | + * For event listener. | ||
565 | + */ | ||
566 | + EVENT_LISTENER, | ||
567 | + | ||
568 | + /** | ||
569 | + * For setters. | ||
570 | + */ | ||
571 | + SETTER_METHOD, | ||
572 | + | ||
573 | + /** | ||
574 | + * For type def's setters. | ||
575 | + */ | ||
576 | + TYPE_DEF_SETTER_METHOD, | ||
577 | + | ||
578 | + /** | ||
579 | + * For of method. | ||
580 | + */ | ||
581 | + OF_METHOD, | ||
582 | + | ||
583 | + /** | ||
584 | + * For default constructor. | ||
585 | + */ | ||
586 | + DEFAULT_CONSTRUCTOR, | ||
587 | + | ||
588 | + /** | ||
589 | + * For constructor. | ||
590 | + */ | ||
591 | + CONSTRUCTOR, | ||
592 | + | ||
593 | + /** | ||
594 | + * For from method. | ||
595 | + */ | ||
596 | + FROM_METHOD, | ||
597 | + | ||
598 | + /** | ||
599 | + * For type constructor. | ||
600 | + */ | ||
601 | + TYPE_CONSTRUCTOR, | ||
602 | + | ||
603 | + /** | ||
604 | + * For build. | ||
605 | + */ | ||
606 | + BUILD_METHOD, | ||
607 | + | ||
608 | + /** | ||
609 | + * For enum. | ||
610 | + */ | ||
611 | + ENUM_CLASS, | ||
612 | + | ||
613 | + /** | ||
614 | + * For enum's attributes. | ||
615 | + */ | ||
616 | + ENUM_ATTRIBUTE, | ||
617 | + | ||
618 | + /** | ||
619 | + * For manager setters. | ||
620 | + */ | ||
621 | + MANAGER_SETTER_METHOD, | ||
622 | + | ||
623 | + /** | ||
624 | + * For event subject. | ||
625 | + */ | ||
626 | + EVENT_SUBJECT_CLASS | ||
627 | + } | ||
599 | } | 628 | } | ... | ... |
... | @@ -206,7 +206,7 @@ public class InterJarLinkerTest { | ... | @@ -206,7 +206,7 @@ public class InterJarLinkerTest { |
206 | File folder = new File(System.getProperty("user.dir") + SLASH + FLOW_CLASSIFIER_FOLDER); | 206 | File folder = new File(System.getProperty("user.dir") + SLASH + FLOW_CLASSIFIER_FOLDER); |
207 | File file = new File(System.getProperty("user.dir") + SLASH + FLOW_CLASSIFIER_MANAGER); | 207 | File file = new File(System.getProperty("user.dir") + SLASH + FLOW_CLASSIFIER_MANAGER); |
208 | assertThat(true, is(folder.exists())); | 208 | assertThat(true, is(folder.exists())); |
209 | - assertThat(false, is(file.exists())); | 209 | + assertThat(true, is(file.exists())); |
210 | } | 210 | } |
211 | 211 | ||
212 | /** | 212 | /** | ... | ... |
... | @@ -50,6 +50,7 @@ public final class NotificationTranslatorTest { | ... | @@ -50,6 +50,7 @@ public final class NotificationTranslatorTest { |
50 | generateJavaCode(node, yangPluginConfig); | 50 | generateJavaCode(node, yangPluginConfig); |
51 | 51 | ||
52 | deleteDirectory("target/NotificationTest/"); | 52 | deleteDirectory("target/NotificationTest/"); |
53 | + deleteDirectory("target/NotificationTest1/"); | ||
53 | } | 54 | } |
54 | 55 | ||
55 | // TODO enhance the test cases, after having a framework of translator test. | 56 | // TODO enhance the test cases, after having a framework of translator test. | ... | ... |
... | @@ -26,7 +26,6 @@ import org.onosproject.yangutils.datamodel.YangAugment; | ... | @@ -26,7 +26,6 @@ import org.onosproject.yangutils.datamodel.YangAugment; |
26 | import org.onosproject.yangutils.datamodel.YangNode; | 26 | import org.onosproject.yangutils.datamodel.YangNode; |
27 | import org.onosproject.yangutils.datamodel.YangReferenceResolver; | 27 | import org.onosproject.yangutils.datamodel.YangReferenceResolver; |
28 | import org.onosproject.yangutils.datamodel.YangResolutionInfo; | 28 | import org.onosproject.yangutils.datamodel.YangResolutionInfo; |
29 | -import org.onosproject.yangutils.linker.exceptions.LinkerException; | ||
30 | import org.onosproject.yangutils.linker.impl.YangLinkerManager; | 29 | import org.onosproject.yangutils.linker.impl.YangLinkerManager; |
31 | import org.onosproject.yangutils.linker.impl.YangXpathLinker; | 30 | import org.onosproject.yangutils.linker.impl.YangXpathLinker; |
32 | import org.onosproject.yangutils.utils.io.impl.YangFileScanner; | 31 | import org.onosproject.yangutils.utils.io.impl.YangFileScanner; |
... | @@ -44,6 +43,7 @@ public class YangXpathLinkerTest { | ... | @@ -44,6 +43,7 @@ public class YangXpathLinkerTest { |
44 | private YangLinkerManager linkerManager = new YangLinkerManager(); | 43 | private YangLinkerManager linkerManager = new YangLinkerManager(); |
45 | private static final String INTRA_FILE_PATH = "src/test/resources/xPathLinker/IntraFile/"; | 44 | private static final String INTRA_FILE_PATH = "src/test/resources/xPathLinker/IntraFile/"; |
46 | private static final String INTER_FILE_PATH = "src/test/resources/xPathLinker/InterFile/"; | 45 | private static final String INTER_FILE_PATH = "src/test/resources/xPathLinker/InterFile/"; |
46 | + private static final String CASE_FILE_PATH = "src/test/resources/xPathLinker/Case/"; | ||
47 | 47 | ||
48 | /** | 48 | /** |
49 | * Unit test case for intra file linking for single level container. | 49 | * Unit test case for intra file linking for single level container. |
... | @@ -230,7 +230,7 @@ public class YangXpathLinkerTest { | ... | @@ -230,7 +230,7 @@ public class YangXpathLinkerTest { |
230 | * | 230 | * |
231 | * @throws IOException when fails to do IO operations | 231 | * @throws IOException when fails to do IO operations |
232 | */ | 232 | */ |
233 | - @Test(expected = LinkerException.class) | 233 | + @Test |
234 | public void processIntraFileLinkingInUsesSingleLevel() throws IOException { | 234 | public void processIntraFileLinkingInUsesSingleLevel() throws IOException { |
235 | 235 | ||
236 | utilManager.createYangFileInfoSet(YangFileScanner.getYangFiles(INTRA_FILE_PATH + "IntraSingleUses/")); | 236 | utilManager.createYangFileInfoSet(YangFileScanner.getYangFiles(INTRA_FILE_PATH + "IntraSingleUses/")); |
... | @@ -260,7 +260,7 @@ public class YangXpathLinkerTest { | ... | @@ -260,7 +260,7 @@ public class YangXpathLinkerTest { |
260 | * | 260 | * |
261 | * @throws IOException when fails to do IO operations | 261 | * @throws IOException when fails to do IO operations |
262 | */ | 262 | */ |
263 | - @Test(expected = LinkerException.class) | 263 | + @Test |
264 | public void processIntraFileLinkingInUsesMultiLevel() throws IOException { | 264 | public void processIntraFileLinkingInUsesMultiLevel() throws IOException { |
265 | 265 | ||
266 | utilManager.createYangFileInfoSet(YangFileScanner.getYangFiles(INTRA_FILE_PATH + "IntraMultiUses/")); | 266 | utilManager.createYangFileInfoSet(YangFileScanner.getYangFiles(INTRA_FILE_PATH + "IntraMultiUses/")); |
... | @@ -449,6 +449,9 @@ public class YangXpathLinkerTest { | ... | @@ -449,6 +449,9 @@ public class YangXpathLinkerTest { |
449 | utilManager.createYangNodeSet(); | 449 | utilManager.createYangNodeSet(); |
450 | linkerManager.createYangNodeSet(utilManager.getYangNodeSet()); | 450 | linkerManager.createYangNodeSet(utilManager.getYangNodeSet()); |
451 | linkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet()); | 451 | linkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet()); |
452 | + linkerManager.linkSubModulesToParentModule(utilManager.getYangNodeSet()); | ||
453 | + linkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet()); | ||
454 | + linkerManager.processInterFileLinking(utilManager.getYangNodeSet()); | ||
452 | 455 | ||
453 | YangNode targetNode = null; | 456 | YangNode targetNode = null; |
454 | String targetNodeName = null; | 457 | String targetNodeName = null; |
... | @@ -459,7 +462,7 @@ public class YangXpathLinkerTest { | ... | @@ -459,7 +462,7 @@ public class YangXpathLinkerTest { |
459 | for (YangAugment augment : augments) { | 462 | for (YangAugment augment : augments) { |
460 | targetNodeName = augment.getTargetNode().get(augment.getTargetNode().size() - 1).getNodeIdentifier() | 463 | targetNodeName = augment.getTargetNode().get(augment.getTargetNode().size() - 1).getNodeIdentifier() |
461 | .getName(); | 464 | .getName(); |
462 | - targetNode = linker.processAugmentXpathLinking(augment.getTargetNode(), node); | 465 | + targetNode = augment.getAugmentedNode(); |
463 | } | 466 | } |
464 | } | 467 | } |
465 | 468 | ||
... | @@ -481,7 +484,7 @@ public class YangXpathLinkerTest { | ... | @@ -481,7 +484,7 @@ public class YangXpathLinkerTest { |
481 | linkerManager.linkSubModulesToParentModule(utilManager.getYangNodeSet()); | 484 | linkerManager.linkSubModulesToParentModule(utilManager.getYangNodeSet()); |
482 | linkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet()); | 485 | linkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet()); |
483 | linkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet()); | 486 | linkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet()); |
484 | - | 487 | + linkerManager.processInterFileLinking(utilManager.getYangNodeSet()); |
485 | YangNode targetNode = null; | 488 | YangNode targetNode = null; |
486 | String targetNodeName = null; | 489 | String targetNodeName = null; |
487 | 490 | ||
... | @@ -491,7 +494,7 @@ public class YangXpathLinkerTest { | ... | @@ -491,7 +494,7 @@ public class YangXpathLinkerTest { |
491 | for (YangAugment augment : augments) { | 494 | for (YangAugment augment : augments) { |
492 | targetNodeName = augment.getTargetNode().get(augment.getTargetNode().size() - 1).getNodeIdentifier() | 495 | targetNodeName = augment.getTargetNode().get(augment.getTargetNode().size() - 1).getNodeIdentifier() |
493 | .getName(); | 496 | .getName(); |
494 | - targetNode = linker.processAugmentXpathLinking(augment.getTargetNode(), node); | 497 | + targetNode = augment.getAugmentedNode(); |
495 | } | 498 | } |
496 | } | 499 | } |
497 | 500 | ||
... | @@ -523,7 +526,7 @@ public class YangXpathLinkerTest { | ... | @@ -523,7 +526,7 @@ public class YangXpathLinkerTest { |
523 | for (YangAugment augment : augments) { | 526 | for (YangAugment augment : augments) { |
524 | targetNodeName = augment.getTargetNode().get(augment.getTargetNode().size() - 1).getNodeIdentifier() | 527 | targetNodeName = augment.getTargetNode().get(augment.getTargetNode().size() - 1).getNodeIdentifier() |
525 | .getName(); | 528 | .getName(); |
526 | - targetNode = linker.processAugmentXpathLinking(augment.getTargetNode(), node); | 529 | + targetNode = augment.getAugmentedNode(); |
527 | } | 530 | } |
528 | } | 531 | } |
529 | 532 | ||
... | @@ -538,11 +541,11 @@ public class YangXpathLinkerTest { | ... | @@ -538,11 +541,11 @@ public class YangXpathLinkerTest { |
538 | @Test | 541 | @Test |
539 | public void processInterFileLinkingInUsesInAugment() throws IOException { | 542 | public void processInterFileLinkingInUsesInAugment() throws IOException { |
540 | 543 | ||
541 | - /* FIXME: when uses cloning is done test it. | ||
542 | utilManager.createYangFileInfoSet(YangFileScanner.getYangFiles(INTER_FILE_PATH + "InterSingleUses/")); | 544 | utilManager.createYangFileInfoSet(YangFileScanner.getYangFiles(INTER_FILE_PATH + "InterSingleUses/")); |
543 | utilManager.parseYangFileInfoSet(); | 545 | utilManager.parseYangFileInfoSet(); |
544 | utilManager.createYangNodeSet(); | 546 | utilManager.createYangNodeSet(); |
545 | linkerManager.createYangNodeSet(utilManager.getYangNodeSet()); | 547 | linkerManager.createYangNodeSet(utilManager.getYangNodeSet()); |
548 | + linkerManager.linkSubModulesToParentModule(utilManager.getYangNodeSet()); | ||
546 | linkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet()); | 549 | linkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet()); |
547 | linkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet()); | 550 | linkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet()); |
548 | linkerManager.processInterFileLinking(utilManager.getYangNodeSet()); | 551 | linkerManager.processInterFileLinking(utilManager.getYangNodeSet()); |
... | @@ -556,12 +559,12 @@ public class YangXpathLinkerTest { | ... | @@ -556,12 +559,12 @@ public class YangXpathLinkerTest { |
556 | for (YangAugment augment : augments) { | 559 | for (YangAugment augment : augments) { |
557 | targetNodeName = augment.getTargetNode().get(augment.getTargetNode().size() - 1) | 560 | targetNodeName = augment.getTargetNode().get(augment.getTargetNode().size() - 1) |
558 | .getNodeIdentifier().getName(); | 561 | .getNodeIdentifier().getName(); |
559 | - targetNode = linker.processXpathLinking(augment.getTargetNode(), node); | 562 | + targetNode = augment.getAugmentedNode(); |
560 | } | 563 | } |
561 | } | 564 | } |
562 | 565 | ||
563 | assertThat(true, is(targetNode.getName().equals(targetNodeName))); | 566 | assertThat(true, is(targetNode.getName().equals(targetNodeName))); |
564 | - */ | 567 | + |
565 | } | 568 | } |
566 | 569 | ||
567 | /** | 570 | /** |
... | @@ -569,7 +572,7 @@ public class YangXpathLinkerTest { | ... | @@ -569,7 +572,7 @@ public class YangXpathLinkerTest { |
569 | * | 572 | * |
570 | * @throws IOException when fails to do IO operations | 573 | * @throws IOException when fails to do IO operations |
571 | */ | 574 | */ |
572 | - @Test(expected = LinkerException.class) | 575 | + @Test |
573 | public void processInterFileLinkingInUsesMultiLevel() throws IOException { | 576 | public void processInterFileLinkingInUsesMultiLevel() throws IOException { |
574 | 577 | ||
575 | utilManager.createYangFileInfoSet(YangFileScanner.getYangFiles(INTER_FILE_PATH + "InterMultiUses/")); | 578 | utilManager.createYangFileInfoSet(YangFileScanner.getYangFiles(INTER_FILE_PATH + "InterMultiUses/")); |
... | @@ -596,4 +599,72 @@ public class YangXpathLinkerTest { | ... | @@ -596,4 +599,72 @@ public class YangXpathLinkerTest { |
596 | assertThat(true, is(targetNode.getName().equals(targetNodeName))); | 599 | assertThat(true, is(targetNode.getName().equals(targetNodeName))); |
597 | } | 600 | } |
598 | 601 | ||
602 | + /** | ||
603 | + * Unit test case for inter file linking for multi level uses inside augment. | ||
604 | + * | ||
605 | + * @throws IOException when fails to do IO operations | ||
606 | + */ | ||
607 | + @Test | ||
608 | + public void processInterFileLinkingInMultipleSubmodules() throws IOException { | ||
609 | + | ||
610 | + utilManager.createYangFileInfoSet(YangFileScanner.getYangFiles(CASE_FILE_PATH + "submodule/")); | ||
611 | + utilManager.parseYangFileInfoSet(); | ||
612 | + utilManager.createYangNodeSet(); | ||
613 | + linkerManager.createYangNodeSet(utilManager.getYangNodeSet()); | ||
614 | + linkerManager.linkSubModulesToParentModule(utilManager.getYangNodeSet()); | ||
615 | + linkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet()); | ||
616 | + linkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet()); | ||
617 | + linkerManager.processInterFileLinking(utilManager.getYangNodeSet()); | ||
618 | + | ||
619 | + YangNode targetNode = null; | ||
620 | + String targetNodeName = null; | ||
621 | + | ||
622 | + for (YangNode node : utilManager.getYangNodeSet()) { | ||
623 | + List<YangAugment> augments = linker.getListOfYangAugment(node); | ||
624 | + | ||
625 | + for (YangAugment augment : augments) { | ||
626 | + targetNodeName = augment.getTargetNode().get(augment.getTargetNode().size() - 1) | ||
627 | + .getNodeIdentifier().getName(); | ||
628 | + targetNode = augment.getAugmentedNode(); | ||
629 | + } | ||
630 | + } | ||
631 | + | ||
632 | + assertThat(true, is(targetNode.getName().equals(targetNodeName))); | ||
633 | + | ||
634 | + } | ||
635 | + | ||
636 | + /** | ||
637 | + * Unit test case for inter file linking for multi level uses inside augment. | ||
638 | + * | ||
639 | + * @throws IOException when fails to do IO operations | ||
640 | + */ | ||
641 | + @Test | ||
642 | + public void processInterFileLinkingInMultipleUses() throws IOException { | ||
643 | + | ||
644 | + /** FIXME: once order of linking is done. | ||
645 | + utilManager.createYangFileInfoSet(YangFileScanner.getYangFiles(CASE_FILE_PATH + "uses/")); | ||
646 | + utilManager.parseYangFileInfoSet(); | ||
647 | + utilManager.createYangNodeSet(); | ||
648 | + linkerManager.createYangNodeSet(utilManager.getYangNodeSet()); | ||
649 | + linkerManager.linkSubModulesToParentModule(utilManager.getYangNodeSet()); | ||
650 | + linkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet()); | ||
651 | + linkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet()); | ||
652 | + linkerManager.processInterFileLinking(utilManager.getYangNodeSet()); | ||
653 | + | ||
654 | + YangNode targetNode = null; | ||
655 | + String targetNodeName = null; | ||
656 | + | ||
657 | + for (YangNode node : utilManager.getYangNodeSet()) { | ||
658 | + List<YangAugment> augments = linker.getListOfYangAugment(node); | ||
659 | + | ||
660 | + for (YangAugment augment : augments) { | ||
661 | + targetNodeName = augment.getTargetNode().get(augment.getTargetNode().size() - 1) | ||
662 | + .getNodeIdentifier().getName(); | ||
663 | + targetNode = augment.getAugmentedNode(); | ||
664 | + } | ||
665 | + } | ||
666 | + | ||
667 | + assertThat(true, is(targetNode.getName().equals(targetNodeName))); | ||
668 | + */ | ||
669 | + } | ||
599 | } | 670 | } | ... | ... |
... | @@ -113,8 +113,6 @@ public final class JavaIdentifierSyntaxTest { | ... | @@ -113,8 +113,6 @@ public final class JavaIdentifierSyntaxTest { |
113 | private static final String BASE_DIR_PKG = "target.UnitTestCase."; | 113 | private static final String BASE_DIR_PKG = "target.UnitTestCase."; |
114 | private static final String DIR_PATH = "exist1.exist2.exist3"; | 114 | private static final String DIR_PATH = "exist1.exist2.exist3"; |
115 | private static final String PKG_INFO = "package-info.java"; | 115 | private static final String PKG_INFO = "package-info.java"; |
116 | - private static final String BASE_PKG = "target/UnitTestCase"; | ||
117 | - private static final String TEST_DATA_1 = "This is to append a text to the file first1\n"; | ||
118 | 116 | ||
119 | /** | 117 | /** |
120 | * Unit test for private constructor. | 118 | * Unit test for private constructor. |
... | @@ -319,5 +317,6 @@ public final class JavaIdentifierSyntaxTest { | ... | @@ -319,5 +317,6 @@ public final class JavaIdentifierSyntaxTest { |
319 | assertThat(true, is(doesPackageExist(strPath))); | 317 | assertThat(true, is(doesPackageExist(strPath))); |
320 | createDir.delete(); | 318 | createDir.delete(); |
321 | deleteDirectory(createDir); | 319 | deleteDirectory(createDir); |
320 | + deleteDirectory(new File(BASE_DIR_PKG.replace(PERIOD, SLASH))); | ||
322 | } | 321 | } |
323 | } | 322 | } | ... | ... |
utils/yangutils/plugin/src/test/java/org/onosproject/yangutils/utils/io/impl/FileSystemUtilTest.java
... | @@ -20,6 +20,8 @@ import java.io.File; | ... | @@ -20,6 +20,8 @@ import java.io.File; |
20 | import java.io.IOException; | 20 | import java.io.IOException; |
21 | import java.lang.reflect.Constructor; | 21 | import java.lang.reflect.Constructor; |
22 | import java.lang.reflect.InvocationTargetException; | 22 | import java.lang.reflect.InvocationTargetException; |
23 | + | ||
24 | +import org.apache.commons.io.FileUtils; | ||
23 | import org.junit.Test; | 25 | import org.junit.Test; |
24 | 26 | ||
25 | import static org.apache.commons.io.FileUtils.deleteDirectory; | 27 | import static org.apache.commons.io.FileUtils.deleteDirectory; |
... | @@ -84,5 +86,6 @@ public final class FileSystemUtilTest { | ... | @@ -84,5 +86,6 @@ public final class FileSystemUtilTest { |
84 | appendFileContents(createFile, createSourceFile); | 86 | appendFileContents(createFile, createSourceFile); |
85 | updateFileHandle(createFile, null, true); | 87 | updateFileHandle(createFile, null, true); |
86 | deleteDirectory(dir); | 88 | deleteDirectory(dir); |
89 | + FileUtils.deleteDirectory(new File(BASE_PKG)); | ||
87 | } | 90 | } |
88 | } | 91 | } | ... | ... |
... | @@ -67,7 +67,7 @@ public final class YangIoUtilsTest { | ... | @@ -67,7 +67,7 @@ public final class YangIoUtilsTest { |
67 | addPackageInfo(dirPath, CHECK1, CREATE_PATH, false, getStubPluginConfig()); | 67 | addPackageInfo(dirPath, CHECK1, CREATE_PATH, false, getStubPluginConfig()); |
68 | File filePath = new File(dirPath + File.separator + PKG_INFO); | 68 | File filePath = new File(dirPath + File.separator + PKG_INFO); |
69 | assertThat(filePath.isFile(), is(true)); | 69 | assertThat(filePath.isFile(), is(true)); |
70 | - FileUtils.deleteDirectory(dirPath); | 70 | + FileUtils.deleteDirectory(new File(BASE_DIR)); |
71 | } | 71 | } |
72 | 72 | ||
73 | /** | 73 | /** |
... | @@ -83,7 +83,7 @@ public final class YangIoUtilsTest { | ... | @@ -83,7 +83,7 @@ public final class YangIoUtilsTest { |
83 | addPackageInfo(dirPath, CHECK1, PATH + CREATE_PATH, false, getStubPluginConfig()); | 83 | addPackageInfo(dirPath, CHECK1, PATH + CREATE_PATH, false, getStubPluginConfig()); |
84 | File filePath = new File(dirPath + File.separator + PKG_INFO); | 84 | File filePath = new File(dirPath + File.separator + PKG_INFO); |
85 | assertThat(filePath.isFile(), is(true)); | 85 | assertThat(filePath.isFile(), is(true)); |
86 | - FileUtils.deleteDirectory(dirPath); | 86 | + FileUtils.deleteDirectory(new File(BASE_DIR)); |
87 | } | 87 | } |
88 | 88 | ||
89 | /** | 89 | /** |
... | @@ -99,7 +99,7 @@ public final class YangIoUtilsTest { | ... | @@ -99,7 +99,7 @@ public final class YangIoUtilsTest { |
99 | addPackageInfo(dirPath, CHECK1, PATH + CREATE_PATH, true, getStubPluginConfig()); | 99 | addPackageInfo(dirPath, CHECK1, PATH + CREATE_PATH, true, getStubPluginConfig()); |
100 | File filePath = new File(dirPath + File.separator + PKG_INFO); | 100 | File filePath = new File(dirPath + File.separator + PKG_INFO); |
101 | assertThat(filePath.isFile(), is(true)); | 101 | assertThat(filePath.isFile(), is(true)); |
102 | - FileUtils.deleteDirectory(dirPath); | 102 | + FileUtils.deleteDirectory(new File(BASE_DIR)); |
103 | } | 103 | } |
104 | 104 | ||
105 | /** | 105 | /** |
... | @@ -117,6 +117,7 @@ public final class YangIoUtilsTest { | ... | @@ -117,6 +117,7 @@ public final class YangIoUtilsTest { |
117 | File filePath1 = new File(dirPath + File.separator + PKG_INFO); | 117 | File filePath1 = new File(dirPath + File.separator + PKG_INFO); |
118 | assertThat(filePath1.isFile(), is(false)); | 118 | assertThat(filePath1.isFile(), is(false)); |
119 | FileUtils.deleteDirectory(dirPath); | 119 | FileUtils.deleteDirectory(dirPath); |
120 | + FileUtils.deleteDirectory(new File(BASE_DIR)); | ||
120 | } | 121 | } |
121 | 122 | ||
122 | /** | 123 | /** |
... | @@ -180,7 +181,7 @@ public final class YangIoUtilsTest { | ... | @@ -180,7 +181,7 @@ public final class YangIoUtilsTest { |
180 | 181 | ||
181 | File dirPath = createDirectories(CREATE_PATH); | 182 | File dirPath = createDirectories(CREATE_PATH); |
182 | assertThat(dirPath.isDirectory(), is(true)); | 183 | assertThat(dirPath.isDirectory(), is(true)); |
183 | - FileUtils.deleteDirectory(dirPath); | 184 | + FileUtils.deleteDirectory(new File(BASE_DIR)); |
184 | } | 185 | } |
185 | 186 | ||
186 | /** | 187 | /** | ... | ... |
... | @@ -1723,9 +1723,9 @@ | ... | @@ -1723,9 +1723,9 @@ |
1723 | uses tet:te-link-state-derived; | 1723 | uses tet:te-link-state-derived; |
1724 | } | 1724 | } |
1725 | 1725 | ||
1726 | - /* | 1726 | + |
1727 | augment "/te-link-event/te-link-attributes/underlay" { | 1727 | augment "/te-link-event/te-link-attributes/underlay" { |
1728 | description "Add state attributes to te-link underlay."; | 1728 | description "Add state attributes to te-link underlay."; |
1729 | uses te-link-state-underlay-attributes; | 1729 | uses te-link-state-underlay-attributes; |
1730 | - } */ | 1730 | + } |
1731 | } | 1731 | } | ... | ... |
1 | +module test { | ||
2 | + namespace "xpath:intra:single"; | ||
3 | + prefix test ; | ||
4 | + | ||
5 | + include test1; | ||
6 | + include test2; | ||
7 | + include test4; | ||
8 | + | ||
9 | + organization ""; | ||
10 | + contact ""; | ||
11 | + | ||
12 | + description | ||
13 | + "Defines basic service types for L3VPN service."; | ||
14 | + | ||
15 | + revision "2015-12-16" { | ||
16 | + reference ""; | ||
17 | + } | ||
18 | + | ||
19 | + augment /cont5/cont6 { | ||
20 | + leaf a { | ||
21 | + type int32; | ||
22 | + } | ||
23 | + } | ||
24 | + | ||
25 | + augment /cont3/cont4/cont8 { | ||
26 | + leaf a { | ||
27 | + type int32; | ||
28 | + } | ||
29 | + } | ||
30 | +} | ||
31 | + |
1 | +submodule test1 { | ||
2 | + | ||
3 | + belongs-to test { | ||
4 | + prefix test; | ||
5 | + } | ||
6 | + | ||
7 | + include test4; | ||
8 | + | ||
9 | + organization ""; | ||
10 | + contact ""; | ||
11 | + | ||
12 | + description | ||
13 | + "Defines basic service types for L3VPN service."; | ||
14 | + | ||
15 | + revision "2015-12-16" { | ||
16 | + reference ""; | ||
17 | + } | ||
18 | + | ||
19 | + container cont1 { | ||
20 | + leaf leaf1 { | ||
21 | + type int32; | ||
22 | + } | ||
23 | + container cont2 { | ||
24 | + leaf leaf2 { | ||
25 | + type int32; | ||
26 | + } | ||
27 | + } | ||
28 | + } | ||
29 | + | ||
30 | + augment /cont1/cont2 { | ||
31 | + container cont4 { | ||
32 | + leaf leaf1 { | ||
33 | + type int32; | ||
34 | + } | ||
35 | + } | ||
36 | + } | ||
37 | + | ||
38 | + augment /cont3/cont4 { | ||
39 | + container cont8 { | ||
40 | + leaf leaf8 { | ||
41 | + type int32; | ||
42 | + } | ||
43 | + } | ||
44 | + } | ||
45 | + | ||
46 | +} | ||
47 | + |
1 | +submodule test2{ | ||
2 | + belongs-to test { | ||
3 | + prefix test; | ||
4 | + } | ||
5 | + | ||
6 | + include test1; | ||
7 | + organization ""; | ||
8 | + contact ""; | ||
9 | + | ||
10 | + description | ||
11 | + "Defines basic service types for L3VPN service."; | ||
12 | + | ||
13 | + revision "2015-12-16" { | ||
14 | + reference ""; | ||
15 | + } | ||
16 | + | ||
17 | + container cont5 { | ||
18 | + leaf leaf5 { | ||
19 | + type int32; | ||
20 | + } | ||
21 | + container cont6 { | ||
22 | + leaf leaf6 { | ||
23 | + type int32; | ||
24 | + } | ||
25 | + } | ||
26 | + } | ||
27 | + | ||
28 | + augment /cont1/cont2/cont4 { | ||
29 | + container cont10 { | ||
30 | + leaf leaf10 { | ||
31 | + type int32; | ||
32 | + } | ||
33 | + } | ||
34 | + } | ||
35 | +} | ||
36 | + |
1 | +submodule test4 { | ||
2 | + | ||
3 | + belongs-to test { | ||
4 | + prefix test; | ||
5 | + } | ||
6 | + | ||
7 | + organization ""; | ||
8 | + contact ""; | ||
9 | + | ||
10 | + description | ||
11 | + "Defines basic service types for L3VPN service."; | ||
12 | + | ||
13 | + revision "2015-12-16" { | ||
14 | + reference ""; | ||
15 | + } | ||
16 | + | ||
17 | + container cont3 { | ||
18 | + leaf leaf3 { | ||
19 | + type int32; | ||
20 | + } | ||
21 | + container cont4 { | ||
22 | + leaf leaf4 { | ||
23 | + type int32; | ||
24 | + } | ||
25 | + } | ||
26 | + } | ||
27 | +} | ||
28 | + |
1 | +module test { | ||
2 | + namespace "xpath:intra:single"; | ||
3 | + prefix test ; | ||
4 | + | ||
5 | + include test1; | ||
6 | + include test2; | ||
7 | + include test4; | ||
8 | + | ||
9 | + organization ""; | ||
10 | + contact ""; | ||
11 | + | ||
12 | + description | ||
13 | + "Defines basic service types for L3VPN service."; | ||
14 | + | ||
15 | + revision "2015-12-16" { | ||
16 | + reference ""; | ||
17 | + } | ||
18 | + | ||
19 | + augment /cont5/cont6/cont3/cont4 { | ||
20 | + leaf a { | ||
21 | + type int32; | ||
22 | + } | ||
23 | + } | ||
24 | + | ||
25 | + augment /group1/cont3/cont4/cont8 { | ||
26 | + leaf a { | ||
27 | + type int32; | ||
28 | + } | ||
29 | + } | ||
30 | +} | ||
31 | + |
1 | +submodule test1 { | ||
2 | + | ||
3 | + belongs-to test { | ||
4 | + prefix test; | ||
5 | + } | ||
6 | + | ||
7 | + include test4; | ||
8 | + | ||
9 | + organization ""; | ||
10 | + contact ""; | ||
11 | + | ||
12 | + description | ||
13 | + "Defines basic service types for L3VPN service."; | ||
14 | + | ||
15 | + revision "2015-12-16" { | ||
16 | + reference ""; | ||
17 | + } | ||
18 | + | ||
19 | + container cont1 { | ||
20 | + leaf leaf1 { | ||
21 | + type int32; | ||
22 | + } | ||
23 | + container cont2 { | ||
24 | + leaf leaf2 { | ||
25 | + type int32; | ||
26 | + } | ||
27 | + } | ||
28 | + } | ||
29 | + | ||
30 | + augment /cont1/cont2 { | ||
31 | + container cont4 { | ||
32 | + leaf leaf1 { | ||
33 | + type int32; | ||
34 | + } | ||
35 | + } | ||
36 | + } | ||
37 | + | ||
38 | + augment /group1/cont3/cont4 { | ||
39 | + container cont8 { | ||
40 | + leaf leaf8 { | ||
41 | + type int32; | ||
42 | + } | ||
43 | + } | ||
44 | + } | ||
45 | + | ||
46 | +} | ||
47 | + |
1 | +submodule test2{ | ||
2 | + belongs-to test { | ||
3 | + prefix test; | ||
4 | + } | ||
5 | + | ||
6 | + include test1; | ||
7 | + include test4; | ||
8 | + | ||
9 | + organization ""; | ||
10 | + contact ""; | ||
11 | + | ||
12 | + description | ||
13 | + "Defines basic service types for L3VPN service."; | ||
14 | + | ||
15 | + revision "2015-12-16" { | ||
16 | + reference ""; | ||
17 | + } | ||
18 | + | ||
19 | + grouping group2 { | ||
20 | + container cont11 { | ||
21 | + } | ||
22 | + } | ||
23 | + | ||
24 | + container cont5 { | ||
25 | + leaf leaf5 { | ||
26 | + type int32; | ||
27 | + } | ||
28 | + container cont6 { | ||
29 | + leaf leaf6 { | ||
30 | + type int32; | ||
31 | + } | ||
32 | + uses group1; | ||
33 | + } | ||
34 | + } | ||
35 | + | ||
36 | + container ethernet { | ||
37 | + leaf leaf10 { | ||
38 | + type string; | ||
39 | + } | ||
40 | + } | ||
41 | + | ||
42 | + | ||
43 | + augment /ethernet { | ||
44 | + uses group2; | ||
45 | + } | ||
46 | + | ||
47 | + augment /cont1/cont2/cont4 { | ||
48 | + container cont10 { | ||
49 | + leaf leaf10 { | ||
50 | + type int32; | ||
51 | + } | ||
52 | + | ||
53 | + } | ||
54 | + } | ||
55 | +} | ||
56 | + |
1 | +submodule test4 { | ||
2 | + | ||
3 | + belongs-to test { | ||
4 | + prefix test; | ||
5 | + } | ||
6 | + | ||
7 | + include test2; | ||
8 | + organization ""; | ||
9 | + contact ""; | ||
10 | + | ||
11 | + description | ||
12 | + "Defines basic service types for L3VPN service."; | ||
13 | + | ||
14 | + revision "2015-12-16" { | ||
15 | + reference ""; | ||
16 | + } | ||
17 | + | ||
18 | + grouping group1 { | ||
19 | + container cont3 { | ||
20 | + leaf leaf3 { | ||
21 | + type int32; | ||
22 | + } | ||
23 | + container cont4 { | ||
24 | + leaf leaf4 { | ||
25 | + type int32; | ||
26 | + } | ||
27 | + } | ||
28 | + } | ||
29 | + } | ||
30 | + | ||
31 | + augment /ethernet/cont11 { | ||
32 | + leaf leaf11 { | ||
33 | + type int32; | ||
34 | + } | ||
35 | + } | ||
36 | + | ||
37 | +} |
... | @@ -29,7 +29,7 @@ module test1 { | ... | @@ -29,7 +29,7 @@ module test1 { |
29 | type int32; | 29 | type int32; |
30 | } | 30 | } |
31 | container cont2 { | 31 | container cont2 { |
32 | - leaf leaf1 { | 32 | + leaf leaf3 { |
33 | type int32; | 33 | type int32; |
34 | } | 34 | } |
35 | } | 35 | } |
... | @@ -37,12 +37,12 @@ module test1 { | ... | @@ -37,12 +37,12 @@ module test1 { |
37 | } | 37 | } |
38 | 38 | ||
39 | augment /test2:cont1/test2:cont2/test2:cont3 { | 39 | augment /test2:cont1/test2:cont2/test2:cont3 { |
40 | - leaf a { | 40 | + leaf leaf2 { |
41 | type int32; | 41 | type int32; |
42 | } | 42 | } |
43 | 43 | ||
44 | container cont2 { | 44 | container cont2 { |
45 | - leaf leaf1 { | 45 | + leaf leaf4 { |
46 | type int32; | 46 | type int32; |
47 | } | 47 | } |
48 | } | 48 | } | ... | ... |
... | @@ -13,11 +13,11 @@ module test2 { | ... | @@ -13,11 +13,11 @@ module test2 { |
13 | } | 13 | } |
14 | 14 | ||
15 | container cont1 { | 15 | container cont1 { |
16 | - leaf leaf1 { | 16 | + leaf leaf5 { |
17 | type int32; | 17 | type int32; |
18 | } | 18 | } |
19 | container cont2 { | 19 | container cont2 { |
20 | - leaf leaf1 { | 20 | + leaf leaf6 { |
21 | type int32; | 21 | type int32; |
22 | } | 22 | } |
23 | } | 23 | } |
... | @@ -25,7 +25,7 @@ module test2 { | ... | @@ -25,7 +25,7 @@ module test2 { |
25 | 25 | ||
26 | augment /cont1/cont2 { | 26 | augment /cont1/cont2 { |
27 | container cont3 { | 27 | container cont3 { |
28 | - leaf a { | 28 | + leaf leaf7 { |
29 | type string; | 29 | type string; |
30 | } | 30 | } |
31 | } | 31 | } | ... | ... |
... | @@ -19,14 +19,14 @@ module test { | ... | @@ -19,14 +19,14 @@ module test { |
19 | } | 19 | } |
20 | 20 | ||
21 | augment /test2:cont1/test2:cont2/cont2 { | 21 | augment /test2:cont1/test2:cont2/cont2 { |
22 | - leaf a { | 22 | + leaf leaf { |
23 | type int32; | 23 | type int32; |
24 | } | 24 | } |
25 | uses group1; | 25 | uses group1; |
26 | } | 26 | } |
27 | 27 | ||
28 | - augment /test2:cont1/test2:cont2/cont2/group1/cont1/cont2 { | 28 | + augment /test2:cont1/test2:cont2/cont2/cont1/cont2 { |
29 | - leaf a { | 29 | + leaf leaf1 { |
30 | type int32; | 30 | type int32; |
31 | } | 31 | } |
32 | } | 32 | } | ... | ... |
... | @@ -21,7 +21,7 @@ submodule test1 { | ... | @@ -21,7 +21,7 @@ submodule test1 { |
21 | grouping group1 { | 21 | grouping group1 { |
22 | container cont1 { | 22 | container cont1 { |
23 | container cont2 { | 23 | container cont2 { |
24 | - leaf a { | 24 | + leaf leaf2 { |
25 | type string; | 25 | type string; |
26 | } | 26 | } |
27 | } | 27 | } |
... | @@ -29,7 +29,7 @@ submodule test1 { | ... | @@ -29,7 +29,7 @@ submodule test1 { |
29 | } | 29 | } |
30 | 30 | ||
31 | augment /test2:cont1/test2:cont2 { | 31 | augment /test2:cont1/test2:cont2 { |
32 | - leaf a { | 32 | + leaf leaf3 { |
33 | type int32; | 33 | type int32; |
34 | } | 34 | } |
35 | container cont2 { | 35 | container cont2 { | ... | ... |
... | @@ -13,11 +13,11 @@ module test2 { | ... | @@ -13,11 +13,11 @@ module test2 { |
13 | } | 13 | } |
14 | 14 | ||
15 | container cont1 { | 15 | container cont1 { |
16 | - leaf leaf1 { | 16 | + leaf leaf4 { |
17 | type int32; | 17 | type int32; |
18 | } | 18 | } |
19 | container cont2 { | 19 | container cont2 { |
20 | - leaf leaf1 { | 20 | + leaf leaf5 { |
21 | type int32; | 21 | type int32; |
22 | } | 22 | } |
23 | } | 23 | } | ... | ... |
-
Please register or login to post a comment