Vidyashree Rama
Committed by Thomas Vachuska

yang choice case translator + whitebox fix

Change-Id: I96f1855bc71a002335946150b51e911ae6ac2fb2
Showing 39 changed files with 285 additions and 148 deletions
...@@ -28,5 +28,5 @@ public enum ResolutionType { ...@@ -28,5 +28,5 @@ public enum ResolutionType {
28 /** 28 /**
29 * Identifies that resolution is for grouping. 29 * Identifies that resolution is for grouping.
30 */ 30 */
31 - GROUPING_RESOLUTION; 31 + GROUPING_RESOLUTION
32 } 32 }
......
...@@ -286,7 +286,7 @@ public class YangCase extends YangNode ...@@ -286,7 +286,7 @@ public class YangCase extends YangNode
286 */ 286 */
287 @Override 287 @Override
288 public YangConstructType getYangConstructType() { 288 public YangConstructType getYangConstructType() {
289 - return YangConstructType.CASE_DATA; 289 + return CASE_DATA;
290 } 290 }
291 291
292 /** 292 /**
...@@ -311,7 +311,7 @@ public class YangCase extends YangNode ...@@ -311,7 +311,7 @@ public class YangCase extends YangNode
311 311
312 @Override 312 @Override
313 public void detectCollidingChild(String identifierName, YangConstructType dataType) throws DataModelException { 313 public void detectCollidingChild(String identifierName, YangConstructType dataType) throws DataModelException {
314 - if (getParent() == null || !(getParent() instanceof YangChoice)) { 314 + if (!(getParent() instanceof YangChoice)) {
315 throw new DataModelException("Internal Data Model Tree Error: Invalid/Missing holder in case " + 315 throw new DataModelException("Internal Data Model Tree Error: Invalid/Missing holder in case " +
316 getName()); 316 getName());
317 } 317 }
......
...@@ -277,11 +277,11 @@ public class YangChoice extends YangNode implements YangCommonInfo, Parsable, Co ...@@ -277,11 +277,11 @@ public class YangChoice extends YangNode implements YangCommonInfo, Parsable, Co
277 /** 277 /**
278 * Returns the type of the data. 278 * Returns the type of the data.
279 * 279 *
280 - * @return returns CHOICE_DATA 280 + * @return choice data
281 */ 281 */
282 @Override 282 @Override
283 public YangConstructType getYangConstructType() { 283 public YangConstructType getYangConstructType() {
284 - return YangConstructType.CHOICE_DATA; 284 + return CHOICE_DATA;
285 } 285 }
286 286
287 /** 287 /**
......
...@@ -72,7 +72,7 @@ public class YangEntityToResolveInfo<T> { ...@@ -72,7 +72,7 @@ public class YangEntityToResolveInfo<T> {
72 } 72 }
73 73
74 String prefix; 74 String prefix;
75 - T entityToResolve = (T) getEntityToResolve(); 75 + T entityToResolve = getEntityToResolve();
76 if (entityToResolve instanceof YangType) { 76 if (entityToResolve instanceof YangType) {
77 prefix = ((YangType<?>) entityToResolve).getPrefix(); 77 prefix = ((YangType<?>) entityToResolve).getPrefix();
78 } else if (entityToResolve instanceof YangUses) { 78 } else if (entityToResolve instanceof YangUses) {
......
...@@ -22,10 +22,10 @@ package org.onosproject.yangutils.datamodel; ...@@ -22,10 +22,10 @@ package org.onosproject.yangutils.datamodel;
22 public class YangNodeIdentifier { 22 public class YangNodeIdentifier {
23 23
24 // Name of the node. 24 // Name of the node.
25 - String name; 25 + private String name;
26 26
27 // Prefix of the node. 27 // Prefix of the node.
28 - String prefix; 28 + private String prefix;
29 29
30 /** 30 /**
31 * Creates an instance of YANG node identifier. 31 * Creates an instance of YANG node identifier.
......
...@@ -118,7 +118,7 @@ public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>> ...@@ -118,7 +118,7 @@ public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>>
118 if (getAscendingRangeIntervals() == null) { 118 if (getAscendingRangeIntervals() == null) {
119 throw new DataModelException("No range restriction info"); 119 throw new DataModelException("No range restriction info");
120 } 120 }
121 - if (getAscendingRangeIntervals().size() == 0) { 121 + if (getAscendingRangeIntervals().isEmpty()) {
122 throw new DataModelException("No range interval info"); 122 throw new DataModelException("No range interval info");
123 } 123 }
124 return getAscendingRangeIntervals().get(0).getStartValue(); 124 return getAscendingRangeIntervals().get(0).getStartValue();
...@@ -134,7 +134,7 @@ public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>> ...@@ -134,7 +134,7 @@ public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>>
134 if (getAscendingRangeIntervals() == null) { 134 if (getAscendingRangeIntervals() == null) {
135 throw new DataModelException("No range restriction info"); 135 throw new DataModelException("No range restriction info");
136 } 136 }
137 - if (getAscendingRangeIntervals().size() == 0) { 137 + if (getAscendingRangeIntervals().isEmpty()) {
138 throw new DataModelException("No range interval info"); 138 throw new DataModelException("No range interval info");
139 } 139 }
140 return getAscendingRangeIntervals() 140 return getAscendingRangeIntervals()
...@@ -184,7 +184,7 @@ public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>> ...@@ -184,7 +184,7 @@ public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>>
184 public boolean isValidValueString(String valueInString) throws DataModelException { 184 public boolean isValidValueString(String valueInString) throws DataModelException {
185 185
186 if (getAscendingRangeIntervals() == null 186 if (getAscendingRangeIntervals() == null
187 - || getAscendingRangeIntervals().size() == 0) { 187 + || getAscendingRangeIntervals().isEmpty()) {
188 // Throw exception, At least one default range needs to be set in constructor or in linker. 188 // Throw exception, At least one default range needs to be set in constructor or in linker.
189 throw new DataModelException("Range interval missing in range restriction."); 189 throw new DataModelException("Range interval missing in range restriction.");
190 190
......
...@@ -450,8 +450,6 @@ public class YangResolutionInfo<T> { ...@@ -450,8 +450,6 @@ public class YangResolutionInfo<T> {
450 } 450 }
451 curNode = curNode.getNextSibling(); 451 curNode = curNode.getNextSibling();
452 } 452 }
453 -
454 - return;
455 } 453 }
456 454
457 /** 455 /**
......
...@@ -21,6 +21,7 @@ import org.onosproject.yangutils.parser.Parsable; ...@@ -21,6 +21,7 @@ import org.onosproject.yangutils.parser.Parsable;
21 import org.onosproject.yangutils.utils.YangConstructType; 21 import org.onosproject.yangutils.utils.YangConstructType;
22 22
23 import static org.onosproject.yangutils.datamodel.ResolvableStatus.INTRA_FILE_RESOLVED; 23 import static org.onosproject.yangutils.datamodel.ResolvableStatus.INTRA_FILE_RESOLVED;
24 +import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED;
24 25
25 /* 26 /*
26 * Reference:RFC 6020. 27 * Reference:RFC 6020.
...@@ -294,20 +295,18 @@ public class YangType<T> ...@@ -294,20 +295,18 @@ public class YangType<T>
294 } 295 }
295 296
296 @Override 297 @Override
297 - public void resolve() { 298 + public void resolve() throws DataModelException {
298 /* 299 /*
299 Inherit the Restriction from the referred typedef definition. 300 Inherit the Restriction from the referred typedef definition.
300 */ 301 */
301 - if (getDataType() != YangDataTypes.DERIVED) { 302 + if (getDataType() != DERIVED) {
302 - throw new RuntimeException("Resolve should only be called for derrived data types"); 303 + throw new DataModelException("Resolve should only be called for derived data types");
303 } 304 }
304 305
305 YangDerivedInfo<?> derrivedInfo = (YangDerivedInfo<?>) getDataTypeExtendedInfo(); 306 YangDerivedInfo<?> derrivedInfo = (YangDerivedInfo<?>) getDataTypeExtendedInfo();
306 YangType<?> baseType = derrivedInfo.getReferredTypeDef().getTypeDefBaseType(); 307 YangType<?> baseType = derrivedInfo.getReferredTypeDef().getTypeDefBaseType();
307 - if (YangDataTypes.DERIVED == baseType.getDataType()) { 308 + if (DERIVED == baseType.getDataType() && baseType.getResolvableStatus() == INTRA_FILE_RESOLVED) {
308 - if (baseType.getResolvableStatus() == INTRA_FILE_RESOLVED) {
309 setResolvableStatus(INTRA_FILE_RESOLVED); 309 setResolvableStatus(INTRA_FILE_RESOLVED);
310 - }
311 } 310 }
312 //TODO: 311 //TODO:
313 } 312 }
......
...@@ -224,6 +224,5 @@ public final class AugmentListener { ...@@ -224,6 +224,5 @@ public final class AugmentListener {
224 */ 224 */
225 private static void validateForChildNodes() { 225 private static void validateForChildNodes() {
226 //TODO: implement with linker. 226 //TODO: implement with linker.
227 - return;
228 } 227 }
229 } 228 }
......
...@@ -80,8 +80,8 @@ public final class BaseFileListener { ...@@ -80,8 +80,8 @@ public final class BaseFileListener {
80 checkStackIsNotEmpty(listener, MISSING_HOLDER, YANGBASE_DATA, "", EXIT); 80 checkStackIsNotEmpty(listener, MISSING_HOLDER, YANGBASE_DATA, "", EXIT);
81 81
82 // Data Model tree root node is set. 82 // Data Model tree root node is set.
83 - if ((listener.getParsedDataStack().peek() instanceof YangModule) 83 + if (listener.getParsedDataStack().peek() instanceof YangModule
84 - || (listener.getParsedDataStack().peek() instanceof YangSubModule)) { 84 + || listener.getParsedDataStack().peek() instanceof YangSubModule) {
85 listener.setRootNode((YangNode) listener.getParsedDataStack().pop()); 85 listener.setRootNode((YangNode) listener.getParsedDataStack().pop());
86 } else { 86 } else {
87 throw new ParserException(constructListenerErrorMessage(INVALID_CHILD, YANGBASE_DATA, "", EXIT)); 87 throw new ParserException(constructListenerErrorMessage(INVALID_CHILD, YANGBASE_DATA, "", EXIT));
......
...@@ -137,7 +137,7 @@ public final class BitListener { ...@@ -137,7 +137,7 @@ public final class BitListener {
137 switch (tmpNode.getYangConstructType()) { 137 switch (tmpNode.getYangConstructType()) {
138 case BITS_DATA: { 138 case BITS_DATA: {
139 YangBits yangBits = (YangBits) tmpNode; 139 YangBits yangBits = (YangBits) tmpNode;
140 - if ((ctx.bitBodyStatement() == null) || (ctx.bitBodyStatement().positionStatement() == null)) { 140 + if (ctx.bitBodyStatement() == null || ctx.bitBodyStatement().positionStatement() == null) {
141 int maxPosition = 0; 141 int maxPosition = 0;
142 boolean isPositionPresent = false; 142 boolean isPositionPresent = false;
143 143
......
...@@ -131,7 +131,7 @@ public final class EnumListener { ...@@ -131,7 +131,7 @@ public final class EnumListener {
131 switch (tmpNode.getYangConstructType()) { 131 switch (tmpNode.getYangConstructType()) {
132 case ENUMERATION_DATA: { 132 case ENUMERATION_DATA: {
133 YangEnumeration yangEnumeration = (YangEnumeration) tmpNode; 133 YangEnumeration yangEnumeration = (YangEnumeration) tmpNode;
134 - if ((ctx.enumStatementBody() == null) || (ctx.enumStatementBody().valueStatement() == null)) { 134 + if (ctx.enumStatementBody() == null || ctx.enumStatementBody().valueStatement() == null) {
135 int maxValue = 0; 135 int maxValue = 0;
136 boolean isValuePresent = false; 136 boolean isValuePresent = false;
137 137
......
...@@ -73,6 +73,8 @@ public final class LengthRestrictionListener { ...@@ -73,6 +73,8 @@ public final class LengthRestrictionListener {
73 73
74 private static final String PIPE = "|"; 74 private static final String PIPE = "|";
75 private static final String LENGTH_INTERVAL = ".."; 75 private static final String LENGTH_INTERVAL = "..";
76 + private static final int MAX_RANGE_BOUNDARY = 2;
77 + private static final int MIN_RANGE_BOUNDARY = 1;
76 78
77 /** 79 /**
78 * Creates a new length restriction listener. 80 * Creates a new length restriction listener.
...@@ -114,7 +116,8 @@ public final class LengthRestrictionListener { ...@@ -114,7 +116,8 @@ public final class LengthRestrictionListener {
114 GeneratedYangParser.LengthStatementContext ctx) { 116 GeneratedYangParser.LengthStatementContext ctx) {
115 117
116 YangStringRestriction stringRestriction; 118 YangStringRestriction stringRestriction;
117 - YangBuiltInDataTypeInfo<?> startValue, endValue; 119 + YangBuiltInDataTypeInfo<?> startValue;
120 + YangBuiltInDataTypeInfo<?> endValue;
118 YangRangeRestriction lengthRestriction = new YangRangeRestriction<>(); 121 YangRangeRestriction lengthRestriction = new YangRangeRestriction<>();
119 122
120 if (type.getDataType() != YangDataTypes.STRING && type.getDataType() != YangDataTypes.DERIVED) { 123 if (type.getDataType() != YangDataTypes.STRING && type.getDataType() != YangDataTypes.DERIVED) {
...@@ -148,11 +151,12 @@ public final class LengthRestrictionListener { ...@@ -148,11 +151,12 @@ public final class LengthRestrictionListener {
148 String[] rangeArguments = rangeArgument.trim().split(Pattern.quote(PIPE)); 151 String[] rangeArguments = rangeArgument.trim().split(Pattern.quote(PIPE));
149 152
150 for (String rangePart : rangeArguments) { 153 for (String rangePart : rangeArguments) {
151 - String startInterval, endInterval; 154 + String startInterval;
155 + String endInterval;
152 YangRangeInterval rangeInterval = new YangRangeInterval<>(); 156 YangRangeInterval rangeInterval = new YangRangeInterval<>();
153 String[] rangeBoundary = rangePart.trim().split(Pattern.quote(LENGTH_INTERVAL)); 157 String[] rangeBoundary = rangePart.trim().split(Pattern.quote(LENGTH_INTERVAL));
154 158
155 - if (rangeBoundary.length > 2) { 159 + if (rangeBoundary.length > MAX_RANGE_BOUNDARY) {
156 ParserException parserException = new ParserException("YANG file error : " + 160 ParserException parserException = new ParserException("YANG file error : " +
157 YangConstructType.getYangConstructType(LENGTH_DATA) + " " + rangeArgument + 161 YangConstructType.getYangConstructType(LENGTH_DATA) + " " + rangeArgument +
158 " is not valid."); 162 " is not valid.");
...@@ -161,7 +165,7 @@ public final class LengthRestrictionListener { ...@@ -161,7 +165,7 @@ public final class LengthRestrictionListener {
161 throw parserException; 165 throw parserException;
162 } 166 }
163 167
164 - if (rangeBoundary.length == 1) { 168 + if (rangeBoundary.length == MIN_RANGE_BOUNDARY) {
165 startInterval = rangeBoundary[0]; 169 startInterval = rangeBoundary[0];
166 endInterval = rangeBoundary[0]; 170 endInterval = rangeBoundary[0];
167 } else { 171 } else {
......
...@@ -70,6 +70,8 @@ public final class RangeRestrictionListener { ...@@ -70,6 +70,8 @@ public final class RangeRestrictionListener {
70 70
71 private static final String PIPE = "|"; 71 private static final String PIPE = "|";
72 private static final String RANGE_INTERVAL = ".."; 72 private static final String RANGE_INTERVAL = "..";
73 + private static final int MAX_RANGE_BOUNDARY = 2;
74 + private static final int MIN_RANGE_BOUNDARY = 1;
73 75
74 /** 76 /**
75 * Creates a new range restriction listener. 77 * Creates a new range restriction listener.
...@@ -110,18 +112,20 @@ public final class RangeRestrictionListener { ...@@ -110,18 +112,20 @@ public final class RangeRestrictionListener {
110 private static void setRangeRestriction(YangType type, 112 private static void setRangeRestriction(YangType type,
111 GeneratedYangParser.RangeStatementContext ctx) { 113 GeneratedYangParser.RangeStatementContext ctx) {
112 114
113 - YangBuiltInDataTypeInfo<?> startValue, endValue; 115 + YangBuiltInDataTypeInfo<?> startValue;
116 + YangBuiltInDataTypeInfo<?> endValue;
114 YangRangeRestriction rangeRestriction = new YangRangeRestriction(); 117 YangRangeRestriction rangeRestriction = new YangRangeRestriction();
115 118
116 String rangeArgument = removeQuotesAndHandleConcat(ctx.range().getText()); 119 String rangeArgument = removeQuotesAndHandleConcat(ctx.range().getText());
117 String[] rangeArguments = rangeArgument.trim().split(Pattern.quote(PIPE)); 120 String[] rangeArguments = rangeArgument.trim().split(Pattern.quote(PIPE));
118 121
119 for (String rangePart : rangeArguments) { 122 for (String rangePart : rangeArguments) {
120 - String startInterval, endInterval; 123 + String startInterval;
124 + String endInterval;
121 YangRangeInterval rangeInterval = new YangRangeInterval(); 125 YangRangeInterval rangeInterval = new YangRangeInterval();
122 String[] rangeBoundary = rangePart.trim().split(Pattern.quote(RANGE_INTERVAL)); 126 String[] rangeBoundary = rangePart.trim().split(Pattern.quote(RANGE_INTERVAL));
123 127
124 - if (rangeBoundary.length > 2) { 128 + if (rangeBoundary.length > MAX_RANGE_BOUNDARY) {
125 ParserException parserException = new ParserException("YANG file error : " + 129 ParserException parserException = new ParserException("YANG file error : " +
126 YangConstructType.getYangConstructType(RANGE_DATA) + " " + rangeArgument + 130 YangConstructType.getYangConstructType(RANGE_DATA) + " " + rangeArgument +
127 " is not valid."); 131 " is not valid.");
...@@ -130,7 +134,7 @@ public final class RangeRestrictionListener { ...@@ -130,7 +134,7 @@ public final class RangeRestrictionListener {
130 throw parserException; 134 throw parserException;
131 } 135 }
132 136
133 - if (rangeBoundary.length == 1) { 137 + if (rangeBoundary.length == MIN_RANGE_BOUNDARY) {
134 startInterval = rangeBoundary[0]; 138 startInterval = rangeBoundary[0];
135 endInterval = rangeBoundary[0]; 139 endInterval = rangeBoundary[0];
136 } else { 140 } else {
......
...@@ -31,7 +31,6 @@ import org.onosproject.yangutils.parser.Parsable; ...@@ -31,7 +31,6 @@ import org.onosproject.yangutils.parser.Parsable;
31 import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; 31 import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser;
32 import org.onosproject.yangutils.parser.exceptions.ParserException; 32 import org.onosproject.yangutils.parser.exceptions.ParserException;
33 import org.onosproject.yangutils.parser.impl.TreeWalkListener; 33 import org.onosproject.yangutils.parser.impl.TreeWalkListener;
34 -import org.onosproject.yangutils.utils.YangConstructType;
35 34
36 import static org.onosproject.yangutils.datamodel.ResolvableStatus.UNRESOLVED; 35 import static org.onosproject.yangutils.datamodel.ResolvableStatus.UNRESOLVED;
37 import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.addResolutionInfo; 36 import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.addResolutionInfo;
...@@ -89,7 +88,7 @@ public final class TypeListener { ...@@ -89,7 +88,7 @@ public final class TypeListener {
89 checkStackIsNotEmpty(listener, MISSING_HOLDER, TYPE_DATA, ctx.string().getText(), ENTRY); 88 checkStackIsNotEmpty(listener, MISSING_HOLDER, TYPE_DATA, ctx.string().getText(), ENTRY);
90 89
91 // Validate node identifier. 90 // Validate node identifier.
92 - YangNodeIdentifier nodeIdentifier = getValidNodeIdentifier(ctx.string().getText(), YangConstructType.TYPE_DATA, 91 + YangNodeIdentifier nodeIdentifier = getValidNodeIdentifier(ctx.string().getText(), TYPE_DATA,
93 ctx); 92 ctx);
94 93
95 // Obtain the YANG data type. 94 // Obtain the YANG data type.
...@@ -107,7 +106,7 @@ public final class TypeListener { ...@@ -107,7 +106,7 @@ public final class TypeListener {
107 switch (tmpData.getYangConstructType()) { 106 switch (tmpData.getYangConstructType()) {
108 case LEAF_DATA: 107 case LEAF_DATA:
109 YangLeaf leaf = (YangLeaf) tmpData; 108 YangLeaf leaf = (YangLeaf) tmpData;
110 - leaf.setDataType((YangType<?>) type); 109 + leaf.setDataType(type);
111 110
112 /* 111 /*
113 * If data type is derived, resolution information to be added 112 * If data type is derived, resolution information to be added
...@@ -139,7 +138,7 @@ public final class TypeListener { ...@@ -139,7 +138,7 @@ public final class TypeListener {
139 break; 138 break;
140 case LEAF_LIST_DATA: 139 case LEAF_LIST_DATA:
141 YangLeafList leafList = (YangLeafList) tmpData; 140 YangLeafList leafList = (YangLeafList) tmpData;
142 - leafList.setDataType((YangType<?>) type); 141 + leafList.setDataType(type);
143 142
144 /* 143 /*
145 * If data type is derived, resolution information to be added 144 * If data type is derived, resolution information to be added
...@@ -157,9 +156,6 @@ public final class TypeListener { ...@@ -157,9 +156,6 @@ public final class TypeListener {
157 ctx.string().getText(), EXIT)); 156 ctx.string().getText(), EXIT));
158 } 157 }
159 158
160 - // Get the prefix information
161 - String prefix = ((YangType<?>) type).getPrefix();
162 -
163 // Create empty derived info and attach it to type extended info. 159 // Create empty derived info and attach it to type extended info.
164 YangDerivedInfo<?> yangDerivedInfo = new YangDerivedInfo<>(); 160 YangDerivedInfo<?> yangDerivedInfo = new YangDerivedInfo<>();
165 ((YangType<YangDerivedInfo>) type).setDataTypeExtendedInfo(yangDerivedInfo); 161 ((YangType<YangDerivedInfo>) type).setDataTypeExtendedInfo(yangDerivedInfo);
...@@ -174,7 +170,7 @@ public final class TypeListener { ...@@ -174,7 +170,7 @@ public final class TypeListener {
174 case UNION_DATA: 170 case UNION_DATA:
175 YangUnion unionNode = (YangUnion) tmpData; 171 YangUnion unionNode = (YangUnion) tmpData;
176 try { 172 try {
177 - unionNode.addType((YangType<?>) type); 173 + unionNode.addType(type);
178 } catch (DataModelException e) { 174 } catch (DataModelException e) {
179 ParserException parserException = new ParserException(e.getMessage()); 175 ParserException parserException = new ParserException(e.getMessage());
180 parserException.setLine(ctx.getStart().getLine()); 176 parserException.setLine(ctx.getStart().getLine());
...@@ -188,16 +184,13 @@ public final class TypeListener { ...@@ -188,16 +184,13 @@ public final class TypeListener {
188 */ 184 */
189 if (yangDataTypes == YangDataTypes.DERIVED) { 185 if (yangDataTypes == YangDataTypes.DERIVED) {
190 186
191 - // Get the prefix information
192 - String prefix = ((YangType<?>) type).getPrefix();
193 -
194 // Create empty derived info and attach it to type extended info. 187 // Create empty derived info and attach it to type extended info.
195 YangDerivedInfo<?> yangDerivedInfo = new YangDerivedInfo<>(); 188 YangDerivedInfo<?> yangDerivedInfo = new YangDerivedInfo<>();
196 ((YangType<YangDerivedInfo>) type).setDataTypeExtendedInfo(yangDerivedInfo); 189 ((YangType<YangDerivedInfo>) type).setDataTypeExtendedInfo(yangDerivedInfo);
197 190
198 // Add resolution information to the list 191 // Add resolution information to the list
199 YangResolutionInfo resolutionInfo = 192 YangResolutionInfo resolutionInfo =
200 - new YangResolutionInfo<YangType>(type, (YangNode) unionNode, errorLine, errorPosition); 193 + new YangResolutionInfo<YangType>(type, unionNode, errorLine, errorPosition);
201 addToResolutionList(resolutionInfo, ctx); 194 addToResolutionList(resolutionInfo, ctx);
202 } 195 }
203 196
...@@ -205,24 +198,20 @@ public final class TypeListener { ...@@ -205,24 +198,20 @@ public final class TypeListener {
205 case TYPEDEF_DATA: 198 case TYPEDEF_DATA:
206 /* Prepare the base type info and set in derived type */ 199 /* Prepare the base type info and set in derived type */
207 YangTypeDef typeDef = (YangTypeDef) tmpData; 200 YangTypeDef typeDef = (YangTypeDef) tmpData;
208 - typeDef.setDataType((YangType<?>) type); 201 + typeDef.setDataType(type);
209 202
210 /* 203 /*
211 * If data type is derived, resolution information to be added 204 * If data type is derived, resolution information to be added
212 * in resolution list. 205 * in resolution list.
213 */ 206 */
214 if (yangDataTypes == YangDataTypes.DERIVED) { 207 if (yangDataTypes == YangDataTypes.DERIVED) {
215 -
216 - // Get the prefix information
217 - String prefix = ((YangType<?>) type).getPrefix();
218 -
219 // Create empty derived info and attach it to type extended info. 208 // Create empty derived info and attach it to type extended info.
220 YangDerivedInfo<?> yangDerivedInfo = new YangDerivedInfo<>(); 209 YangDerivedInfo<?> yangDerivedInfo = new YangDerivedInfo<>();
221 ((YangType<YangDerivedInfo>) type).setDataTypeExtendedInfo(yangDerivedInfo); 210 ((YangType<YangDerivedInfo>) type).setDataTypeExtendedInfo(yangDerivedInfo);
222 211
223 // Add resolution information to the list 212 // Add resolution information to the list
224 YangResolutionInfo resolutionInfo = 213 YangResolutionInfo resolutionInfo =
225 - new YangResolutionInfo<YangType>(type, (YangNode) typeDef, errorLine, errorPosition); 214 + new YangResolutionInfo<YangType>(type, typeDef, errorLine, errorPosition);
226 addToResolutionList(resolutionInfo, ctx); 215 addToResolutionList(resolutionInfo, ctx);
227 } 216 }
228 break; 217 break;
......
...@@ -51,7 +51,6 @@ import org.onosproject.yangutils.parser.Parsable; ...@@ -51,7 +51,6 @@ import org.onosproject.yangutils.parser.Parsable;
51 import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; 51 import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser;
52 import org.onosproject.yangutils.parser.exceptions.ParserException; 52 import org.onosproject.yangutils.parser.exceptions.ParserException;
53 import org.onosproject.yangutils.parser.impl.TreeWalkListener; 53 import org.onosproject.yangutils.parser.impl.TreeWalkListener;
54 -import org.onosproject.yangutils.utils.YangConstructType;
55 54
56 import static org.onosproject.yangutils.datamodel.utils.GeneratedLanguage.JAVA_GENERATION; 55 import static org.onosproject.yangutils.datamodel.utils.GeneratedLanguage.JAVA_GENERATION;
57 import static org.onosproject.yangutils.datamodel.utils.YangDataModelFactory.getYangUnionNode; 56 import static org.onosproject.yangutils.datamodel.utils.YangDataModelFactory.getYangUnionNode;
...@@ -214,7 +213,7 @@ public final class UnionListener { ...@@ -214,7 +213,7 @@ public final class UnionListener {
214 curNode.addChild(unionNode); 213 curNode.addChild(unionNode);
215 } catch (DataModelException e) { 214 } catch (DataModelException e) {
216 throw new ParserException(constructExtendedListenerErrorMessage(UNHANDLED_PARSED_DATA, 215 throw new ParserException(constructExtendedListenerErrorMessage(UNHANDLED_PARSED_DATA,
217 - YangConstructType.UNION_DATA, "", ENTRY, e.getMessage())); 216 + UNION_DATA, "", ENTRY, e.getMessage()));
218 } 217 }
219 } 218 }
220 } 219 }
......
...@@ -117,8 +117,6 @@ public class YangUtilManager extends AbstractMojo { ...@@ -117,8 +117,6 @@ public class YangUtilManager extends AbstractMojo {
117 private static final String DEFAULT_PKG = SLASH + getPackageDirPathFromJavaJPackage(DEFAULT_BASE_PKG); 117 private static final String DEFAULT_PKG = SLASH + getPackageDirPathFromJavaJPackage(DEFAULT_BASE_PKG);
118 118
119 private YangUtilsParser yangUtilsParser = new YangUtilsParserManager(); 119 private YangUtilsParser yangUtilsParser = new YangUtilsParserManager();
120 - private String searchDir;
121 - private String codeGenDir;
122 private YangNode rootNode; 120 private YangNode rootNode;
123 121
124 @Override 122 @Override
...@@ -132,12 +130,12 @@ public class YangUtilManager extends AbstractMojo { ...@@ -132,12 +130,12 @@ public class YangUtilManager extends AbstractMojo {
132 clean(getDirectory(baseDir, genFilesDir) + DEFAULT_PKG); 130 clean(getDirectory(baseDir, genFilesDir) + DEFAULT_PKG);
133 clean(getDirectory(baseDir, outputDirectory)); 131 clean(getDirectory(baseDir, outputDirectory));
134 132
135 - searchDir = getDirectory(baseDir, yangFilesDir); 133 + String searchDir = getDirectory(baseDir, yangFilesDir);
136 - codeGenDir = getDirectory(baseDir, genFilesDir) + SLASH; 134 + String codeGenDir = getDirectory(baseDir, genFilesDir) + SLASH;
137 YangToJavaNamingConflictUtil conflictResolver = new YangToJavaNamingConflictUtil(); 135 YangToJavaNamingConflictUtil conflictResolver = new YangToJavaNamingConflictUtil();
138 conflictResolver.setReplacementForPeriod(replacementForPeriod); 136 conflictResolver.setReplacementForPeriod(replacementForPeriod);
139 conflictResolver.setReplacementForHyphen(replacementForHyphen); 137 conflictResolver.setReplacementForHyphen(replacementForHyphen);
140 - conflictResolver.setReplacementForUnderscore(replacementForHyphen); 138 + conflictResolver.setReplacementForUnderscore(replacementForUnderscore);
141 List<String> yangFiles = YangFileScanner.getYangFiles(searchDir); 139 List<String> yangFiles = YangFileScanner.getYangFiles(searchDir);
142 YangPluginConfig yangPlugin = new YangPluginConfig(); 140 YangPluginConfig yangPlugin = new YangPluginConfig();
143 yangPlugin.setCodeGenDir(codeGenDir); 141 yangPlugin.setCodeGenDir(codeGenDir);
......
...@@ -132,16 +132,14 @@ public final class JavaCodeGeneratorUtil { ...@@ -132,16 +132,14 @@ public final class JavaCodeGeneratorUtil {
132 132
133 /** 133 /**
134 * Free other YANG nodes of data-model tree when error occurs while file generation of current node. 134 * Free other YANG nodes of data-model tree when error occurs while file generation of current node.
135 - *
136 - * @throws DataModelException when fails to do datamodel operations
137 */ 135 */
138 - public static void freeRestResources() throws DataModelException { 136 + public static void freeRestResources() {
139 137
140 YangNode curNode = getCurNode(); 138 YangNode curNode = getCurNode();
141 YangNode tempNode = curNode; 139 YangNode tempNode = curNode;
142 TraversalType curTraversal = ROOT; 140 TraversalType curTraversal = ROOT;
143 141
144 - while (!(curNode == tempNode.getParent())) { 142 + while (curNode != tempNode.getParent()) {
145 143
146 if (curTraversal != PARENT && curNode.getChild() != null) { 144 if (curTraversal != PARENT && curNode.getChild() != null) {
147 curTraversal = CHILD; 145 curTraversal = CHILD;
......
...@@ -162,6 +162,29 @@ public class JavaImportData { ...@@ -162,6 +162,29 @@ public class JavaImportData {
162 } 162 }
163 163
164 /** 164 /**
165 + * Returns import for class.
166 + *
167 + * @return imports for class
168 + */
169 + public List<String> getImports() {
170 + String importString;
171 + List<String> imports = new ArrayList<>();
172 +
173 + for (JavaQualifiedTypeInfo importInfo : getImportSet()) {
174 + if (!importInfo.getPkgInfo().equals(EMPTY_STRING) && importInfo.getClassInfo() != null
175 + && !importInfo.getPkgInfo().equals(JAVA_LANG)) {
176 + importString = IMPORT + importInfo.getPkgInfo() + PERIOD + importInfo.getClassInfo() + SEMI_COLAN
177 + + NEW_LINE;
178 +
179 + imports.add(importString);
180 + }
181 + }
182 +
183 + sort(imports);
184 + return imports;
185 + }
186 +
187 + /**
165 * Returns import for hash and equals method. 188 * Returns import for hash and equals method.
166 * 189 *
167 * @return import for hash and equals method 190 * @return import for hash and equals method
......
...@@ -110,14 +110,14 @@ public class JavaQualifiedTypeInfo implements Comparable<JavaQualifiedTypeInfo> ...@@ -110,14 +110,14 @@ public class JavaQualifiedTypeInfo implements Comparable<JavaQualifiedTypeInfo>
110 * Current leaves holder is adding a leaf info as a attribute to the 110 * Current leaves holder is adding a leaf info as a attribute to the
111 * current class. 111 * current class.
112 */ 112 */
113 - String className = AttributesJavaDataType.getJavaImportClass(attrType, isListAttr); 113 + String className = getJavaImportClass(attrType, isListAttr);
114 if (className != null) { 114 if (className != null) {
115 /* 115 /*
116 * Corresponding to the attribute type a class needs to be imported, 116 * Corresponding to the attribute type a class needs to be imported,
117 * since it can be a derived type or a usage of wrapper classes. 117 * since it can be a derived type or a usage of wrapper classes.
118 */ 118 */
119 importInfo.setClassInfo(className); 119 importInfo.setClassInfo(className);
120 - String classPkg = AttributesJavaDataType.getJavaImportPackage(attrType, isListAttr, className); 120 + String classPkg = getJavaImportPackage(attrType, isListAttr, className);
121 if (classPkg == null) { 121 if (classPkg == null) {
122 throw new TranslatorException("import package cannot be null when the class is used"); 122 throw new TranslatorException("import package cannot be null when the class is used");
123 } 123 }
......
...@@ -29,6 +29,7 @@ import org.onosproject.yangutils.datamodel.YangLeafList; ...@@ -29,6 +29,7 @@ import org.onosproject.yangutils.datamodel.YangLeafList;
29 import org.onosproject.yangutils.datamodel.YangLeavesHolder; 29 import org.onosproject.yangutils.datamodel.YangLeavesHolder;
30 import org.onosproject.yangutils.datamodel.YangNode; 30 import org.onosproject.yangutils.datamodel.YangNode;
31 import org.onosproject.yangutils.datamodel.YangType; 31 import org.onosproject.yangutils.datamodel.YangType;
32 +import org.onosproject.yangutils.datamodel.YangCase;
32 import org.onosproject.yangutils.translator.exception.TranslatorException; 33 import org.onosproject.yangutils.translator.exception.TranslatorException;
33 34
34 import static org.onosproject.yangutils.datamodel.YangNodeType.MODULE_NODE; 35 import static org.onosproject.yangutils.datamodel.YangNodeType.MODULE_NODE;
...@@ -110,6 +111,8 @@ import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE; ...@@ -110,6 +111,8 @@ import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
110 import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC_OF_CHILD; 111 import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC_OF_CHILD;
111 import static org.onosproject.yangutils.utils.UtilConstants.PERIOD; 112 import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
112 import static org.onosproject.yangutils.utils.UtilConstants.SLASH; 113 import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
114 +import static org.onosproject.yangutils.utils.UtilConstants.IMPORT;
115 +import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
113 import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.createPackage; 116 import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.createPackage;
114 import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.readAppendFile; 117 import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.readAppendFile;
115 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD; 118 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD;
...@@ -393,6 +396,11 @@ public class TempJavaCodeFragmentFiles { ...@@ -393,6 +396,11 @@ public class TempJavaCodeFragmentFiles {
393 private YangNode curYangNode; 396 private YangNode curYangNode;
394 397
395 /** 398 /**
399 + * Import info for case.
400 + */
401 + private JavaQualifiedTypeInfo caseImportInfo;
402 +
403 + /**
396 * Current enum's value. 404 * Current enum's value.
397 */ 405 */
398 private int enumValue; 406 private int enumValue;
...@@ -1130,9 +1138,8 @@ public class TempJavaCodeFragmentFiles { ...@@ -1130,9 +1138,8 @@ public class TempJavaCodeFragmentFiles {
1130 * Adds build method for interface. 1138 * Adds build method for interface.
1131 * 1139 *
1132 * @return build method for interface 1140 * @return build method for interface
1133 - * @throws IOException when fails to append to temporary file
1134 */ 1141 */
1135 - public String addBuildMethodForInterface() throws IOException { 1142 + public String addBuildMethodForInterface() {
1136 return parseBuilderInterfaceBuildMethodString(generatedJavaClassName); 1143 return parseBuilderInterfaceBuildMethodString(generatedJavaClassName);
1137 } 1144 }
1138 1145
...@@ -1140,9 +1147,8 @@ public class TempJavaCodeFragmentFiles { ...@@ -1140,9 +1147,8 @@ public class TempJavaCodeFragmentFiles {
1140 * Adds build method's implementation for class. 1147 * Adds build method's implementation for class.
1141 * 1148 *
1142 * @return build method implementation for class 1149 * @return build method implementation for class
1143 - * @throws IOException when fails to append to temporary file
1144 */ 1150 */
1145 - public String addBuildMethodImpl() throws IOException { 1151 + public String addBuildMethodImpl() {
1146 return getBuildString(generatedJavaClassName) + NEW_LINE; 1152 return getBuildString(generatedJavaClassName) + NEW_LINE;
1147 } 1153 }
1148 1154
...@@ -1162,9 +1168,8 @@ public class TempJavaCodeFragmentFiles { ...@@ -1162,9 +1168,8 @@ public class TempJavaCodeFragmentFiles {
1162 * @param modifier modifier for constructor. 1168 * @param modifier modifier for constructor.
1163 * @param toAppend string which need to be appended with the class name 1169 * @param toAppend string which need to be appended with the class name
1164 * @return default constructor for class 1170 * @return default constructor for class
1165 - * @throws IOException when fails to append to file
1166 */ 1171 */
1167 - public String addDefaultConstructor(String modifier, String toAppend) throws IOException { 1172 + public String addDefaultConstructor(String modifier, String toAppend) {
1168 return NEW_LINE + getDefaultConstructorString(generatedJavaClassName + toAppend, modifier); 1173 return NEW_LINE + getDefaultConstructorString(generatedJavaClassName + toAppend, modifier);
1169 } 1174 }
1170 1175
...@@ -1172,9 +1177,8 @@ public class TempJavaCodeFragmentFiles { ...@@ -1172,9 +1177,8 @@ public class TempJavaCodeFragmentFiles {
1172 * Adds default constructor for class. 1177 * Adds default constructor for class.
1173 * 1178 *
1174 * @return default constructor for class 1179 * @return default constructor for class
1175 - * @throws IOException when fails to append to file
1176 */ 1180 */
1177 - public String addOfMethod() throws IOException { 1181 + public String addOfMethod() {
1178 return getJavaDoc(OF_METHOD, generatedJavaClassName, false) 1182 return getJavaDoc(OF_METHOD, generatedJavaClassName, false)
1179 + getOfMethod(generatedJavaClassName, newAttrInfo); 1183 + getOfMethod(generatedJavaClassName, newAttrInfo);
1180 } 1184 }
...@@ -1380,6 +1384,28 @@ public class TempJavaCodeFragmentFiles { ...@@ -1380,6 +1384,28 @@ public class TempJavaCodeFragmentFiles {
1380 } 1384 }
1381 1385
1382 /** 1386 /**
1387 + * Adds parent's info to current node import list.
1388 + *
1389 + * @param curNode current node for which import list needs to be updated
1390 + */
1391 + public void addParentInfoInCurNodeTempFile(YangNode curNode) {
1392 + caseImportInfo = new JavaQualifiedTypeInfo();
1393 + YangNode parent = getParentNodeInGenCode(curNode);
1394 + if (!(parent instanceof JavaCodeGenerator)) {
1395 + throw new TranslatorException("missing parent node to contain current node info in generated file");
1396 + }
1397 +
1398 + if (!(curNode instanceof HasJavaFileInfo)) {
1399 + throw new TranslatorException("missing java file information to get the package details "
1400 + + "of attribute corresponding to child node");
1401 + }
1402 +
1403 + caseImportInfo.setClassInfo(getCaptialCase(getCamelCase(parent.getName(), null)));
1404 + caseImportInfo.setPkgInfo(((HasJavaFileInfo) parent).getJavaFileInfo().getPackage());
1405 + ((HasJavaImportData) curNode).getJavaImportData().addImportInfo(curNode, caseImportInfo);
1406 + }
1407 +
1408 + /**
1383 * Adds leaf attributes in generated files. 1409 * Adds leaf attributes in generated files.
1384 * 1410 *
1385 * @param listOfLeaves list of YANG leaf 1411 * @param listOfLeaves list of YANG leaf
...@@ -1415,7 +1441,7 @@ public class TempJavaCodeFragmentFiles { ...@@ -1415,7 +1441,7 @@ public class TempJavaCodeFragmentFiles {
1415 * Check if the attribute is of type list, then the java.lang.list 1441 * Check if the attribute is of type list, then the java.lang.list
1416 * needs to be imported. 1442 * needs to be imported.
1417 */ 1443 */
1418 - if (listOfLeafList.size() != 0) { 1444 + if (!listOfLeafList.isEmpty()) {
1419 if (!(curNode instanceof HasJavaImportData)) { 1445 if (!(curNode instanceof HasJavaImportData)) {
1420 throw new TranslatorException("missing import info in current data model node"); 1446 throw new TranslatorException("missing import info in current data model node");
1421 1447
...@@ -1651,6 +1677,18 @@ public class TempJavaCodeFragmentFiles { ...@@ -1651,6 +1677,18 @@ public class TempJavaCodeFragmentFiles {
1651 if ((fileType & INTERFACE_MASK) != 0 | (fileType & BUILDER_INTERFACE_MASK) != 0) { 1677 if ((fileType & INTERFACE_MASK) != 0 | (fileType & BUILDER_INTERFACE_MASK) != 0) {
1652 1678
1653 /** 1679 /**
1680 + * Adds import for case.
1681 + */
1682 + if (curNode instanceof YangCase) {
1683 + List<String> importData = ((HasJavaImportData) curNode).getJavaImportData().getImports();
1684 + for (String importInfo : importData) {
1685 + if (!imports.contains(importInfo)) {
1686 + imports.add(importInfo);
1687 + }
1688 + }
1689 + }
1690 +
1691 + /**
1654 * Adds import for HasAugmentation class. 1692 * Adds import for HasAugmentation class.
1655 */ 1693 */
1656 if (isHasAugmentationExtended(getExtendsList())) { 1694 if (isHasAugmentationExtended(getExtendsList())) {
...@@ -1689,6 +1727,10 @@ public class TempJavaCodeFragmentFiles { ...@@ -1689,6 +1727,10 @@ public class TempJavaCodeFragmentFiles {
1689 if (isAugmentedInfoExtended(getExtendsList())) { 1727 if (isAugmentedInfoExtended(getExtendsList())) {
1690 addAugmentedInfoImport(curNode, imports, false); 1728 addAugmentedInfoImport(curNode, imports, false);
1691 } 1729 }
1730 +
1731 + if (curNode instanceof YangCase) {
1732 + removeCaseImport(imports);
1733 + }
1692 } 1734 }
1693 1735
1694 if ((fileType & BUILDER_CLASS_MASK) != 0 | (fileType & IMPL_CLASS_MASK) != 0) { 1736 if ((fileType & BUILDER_CLASS_MASK) != 0 | (fileType & IMPL_CLASS_MASK) != 0) {
...@@ -1763,6 +1805,21 @@ public class TempJavaCodeFragmentFiles { ...@@ -1763,6 +1805,21 @@ public class TempJavaCodeFragmentFiles {
1763 } 1805 }
1764 1806
1765 /** 1807 /**
1808 + * Removes case import info from import list.
1809 + *
1810 + * @param imports list of imports
1811 + * @return import for class
1812 + */
1813 + private List<String> removeCaseImport(List<String> imports) {
1814 + if (imports != null && caseImportInfo != null) {
1815 + String caseImport = IMPORT + caseImportInfo.getPkgInfo() + PERIOD + caseImportInfo.getClassInfo() +
1816 + SEMI_COLAN + NEW_LINE;
1817 + imports.remove(caseImport);
1818 + }
1819 + return imports;
1820 + }
1821 +
1822 + /**
1766 * Removes all temporary file handles. 1823 * Removes all temporary file handles.
1767 * 1824 *
1768 * @param isErrorOccurred when translator fails to generate java files we need to close 1825 * @param isErrorOccurred when translator fails to generate java files we need to close
......
...@@ -139,8 +139,7 @@ public class YangJavaCase extends YangCase implements JavaCodeGeneratorInfo, Jav ...@@ -139,8 +139,7 @@ public class YangJavaCase extends YangCase implements JavaCodeGeneratorInfo, Jav
139 * Creates a java file using the YANG case info. 139 * Creates a java file using the YANG case info.
140 */ 140 */
141 @Override 141 @Override
142 - public void generateCodeExit() { 142 + public void generateCodeExit() throws IOException {
143 - // TODO Auto-generated method stub 143 + getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
144 -
145 } 144 }
146 } 145 }
......
...@@ -24,7 +24,7 @@ import org.onosproject.yangutils.translator.tojava.JavaImportData; ...@@ -24,7 +24,7 @@ import org.onosproject.yangutils.translator.tojava.JavaImportData;
24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles; 24 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
25 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig; 25 import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
26 26
27 -import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER; 27 +import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.INTERFACE_MASK;
28 import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfNode; 28 import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfNode;
29 29
30 /** 30 /**
...@@ -56,7 +56,7 @@ public class YangJavaChoice extends YangChoice implements JavaCodeGeneratorInfo, ...@@ -56,7 +56,7 @@ public class YangJavaChoice extends YangChoice implements JavaCodeGeneratorInfo,
56 super(); 56 super();
57 setJavaFileInfo(new JavaFileInfo()); 57 setJavaFileInfo(new JavaFileInfo());
58 setJavaImportData(new JavaImportData()); 58 setJavaImportData(new JavaImportData());
59 - getJavaFileInfo().setGeneratedFileTypes(GENERATE_INTERFACE_WITH_BUILDER); 59 + getJavaFileInfo().setGeneratedFileTypes(INTERFACE_MASK);
60 } 60 }
61 61
62 /** 62 /**
...@@ -133,15 +133,13 @@ public class YangJavaChoice extends YangChoice implements JavaCodeGeneratorInfo, ...@@ -133,15 +133,13 @@ public class YangJavaChoice extends YangChoice implements JavaCodeGeneratorInfo,
133 @Override 133 @Override
134 public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException { 134 public void generateCodeEntry(YangPluginConfig yangPlugin) throws IOException {
135 generateCodeOfNode(this, yangPlugin, false); 135 generateCodeOfNode(this, yangPlugin, false);
136 - // TODO:getTempJavaCodeFragmentFiles().addCurNodeLeavesInfoToTempFiles(this);
137 } 136 }
138 137
139 /** 138 /**
140 * Creates a java file using the YANG choice info. 139 * Creates a java file using the YANG choice info.
141 */ 140 */
142 @Override 141 @Override
143 - public void generateCodeExit() { 142 + public void generateCodeExit() throws IOException {
144 - // TODO Auto-generated method stub 143 + getTempJavaCodeFragmentFiles().generateJavaFile(INTERFACE_MASK, this);
145 -
146 } 144 }
147 } 145 }
......
...@@ -109,7 +109,7 @@ public final class ClassDefinitionGenerator { ...@@ -109,7 +109,7 @@ public final class ClassDefinitionGenerator {
109 } 109 }
110 String def = PUBLIC + SPACE + INTERFACE + SPACE + yangName + SPACE + EXTEND + SPACE; 110 String def = PUBLIC + SPACE + INTERFACE + SPACE + yangName + SPACE + EXTEND + SPACE;
111 for (String extend : getExtendsList()) { 111 for (String extend : getExtendsList()) {
112 - def = def + extend + COMMA; 112 + def = def + extend + COMMA + SPACE;
113 } 113 }
114 def = trimAtLast(def, COMMA); 114 def = trimAtLast(def, COMMA);
115 115
......
...@@ -373,7 +373,7 @@ public final class MethodsGenerator { ...@@ -373,7 +373,7 @@ public final class MethodsGenerator {
373 private static String getReturnType(JavaAttributeInfo attr) { 373 private static String getReturnType(JavaAttributeInfo attr) {
374 374
375 String returnType = EMPTY_STRING; 375 String returnType = EMPTY_STRING;
376 - if (attr.isQualifiedName() && (attr.getImportInfo().getPkgInfo() != null)) { 376 + if (attr.isQualifiedName() && attr.getImportInfo().getPkgInfo() != null) {
377 returnType = attr.getImportInfo().getPkgInfo() + PERIOD; 377 returnType = attr.getImportInfo().getPkgInfo() + PERIOD;
378 } 378 }
379 returnType = returnType + attr.getImportInfo().getClassInfo(); 379 returnType = returnType + attr.getImportInfo().getClassInfo();
......
...@@ -141,7 +141,7 @@ public final class TempJavaCodeFragmentFilesUtils { ...@@ -141,7 +141,7 @@ public final class TempJavaCodeFragmentFilesUtils {
141 */ 141 */
142 public static void prepareJavaFileGeneratorForExtendsList(List<String> extendsList) { 142 public static void prepareJavaFileGeneratorForExtendsList(List<String> extendsList) {
143 143
144 - if (!extendsList.isEmpty() && !extendsList.equals(null)) { 144 + if (extendsList != null && !extendsList.isEmpty()) {
145 JavaFileGenerator.setExtendsList(extendsList); 145 JavaFileGenerator.setExtendsList(extendsList);
146 JavaFileGenerator.setIsExtendsList(true); 146 JavaFileGenerator.setIsExtendsList(true);
147 } else { 147 } else {
...@@ -157,10 +157,7 @@ public final class TempJavaCodeFragmentFilesUtils { ...@@ -157,10 +157,7 @@ public final class TempJavaCodeFragmentFilesUtils {
157 * @return true or false 157 * @return true or false
158 */ 158 */
159 public static boolean isHasAugmentationExtended(List<String> extendsList) { 159 public static boolean isHasAugmentationExtended(List<String> extendsList) {
160 - if (extendsList != null && extendsList.contains(HAS_AUGMENTATION)) { 160 + return (extendsList != null && extendsList.contains(HAS_AUGMENTATION));
161 - return true;
162 - }
163 - return false;
164 } 161 }
165 162
166 /** 163 /**
...@@ -170,10 +167,7 @@ public final class TempJavaCodeFragmentFilesUtils { ...@@ -170,10 +167,7 @@ public final class TempJavaCodeFragmentFilesUtils {
170 * @return true or false 167 * @return true or false
171 */ 168 */
172 public static boolean isAugmentedInfoExtended(List<String> extendsList) { 169 public static boolean isAugmentedInfoExtended(List<String> extendsList) {
173 - if (extendsList != null && extendsList.contains(AUGMENTED_INFO)) { 170 + return (extendsList != null && extendsList.contains(AUGMENTED_INFO));
174 - return true;
175 - }
176 - return false;
177 } 171 }
178 172
179 /** 173 /**
......
...@@ -39,6 +39,7 @@ import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSy ...@@ -39,6 +39,7 @@ import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSy
39 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPackageDirPathFromJavaJPackage; 39 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPackageDirPathFromJavaJPackage;
40 import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED_INFO; 40 import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED_INFO;
41 import static org.onosproject.yangutils.utils.UtilConstants.HAS_AUGMENTATION; 41 import static org.onosproject.yangutils.utils.UtilConstants.HAS_AUGMENTATION;
42 +import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
42 import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath; 43 import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath;
43 44
44 /** 45 /**
...@@ -159,8 +160,10 @@ public final class YangJavaModelUtils { ...@@ -159,8 +160,10 @@ public final class YangJavaModelUtils {
159 updatePackageInfo((HasJavaFileInfo) javaCodeGeneratorInfo, yangPlugin); 160 updatePackageInfo((HasJavaFileInfo) javaCodeGeneratorInfo, yangPlugin);
160 generateTempFiles(javaCodeGeneratorInfo, yangPlugin.getCodeGenDir()); 161 generateTempFiles(javaCodeGeneratorInfo, yangPlugin.getCodeGenDir());
161 162
162 - javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles() 163 + if (!(javaCodeGeneratorInfo instanceof YangCase)) {
163 - .addCurNodeInfoInParentTempFile((YangNode) javaCodeGeneratorInfo, isMultiInstance); 164 + javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles()
165 + .addCurNodeInfoInParentTempFile((YangNode) javaCodeGeneratorInfo, isMultiInstance);
166 + }
164 167
165 /** 168 /**
166 * For augmentation of nodes. 169 * For augmentation of nodes.
...@@ -176,6 +179,21 @@ public final class YangJavaModelUtils { ...@@ -176,6 +179,21 @@ public final class YangJavaModelUtils {
176 } else if (javaCodeGeneratorInfo instanceof YangAugment) { 179 } else if (javaCodeGeneratorInfo instanceof YangAugment) {
177 javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().addToExtendsList(AUGMENTED_INFO); 180 javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().addToExtendsList(AUGMENTED_INFO);
178 } 181 }
182 +
183 + if (javaCodeGeneratorInfo instanceof YangCase) {
184 + YangNode parent = ((YangCase) javaCodeGeneratorInfo).getParent();
185 + String curNodeName = ((YangCase) javaCodeGeneratorInfo).getName();
186 + if (!parent.getName().equals(curNodeName)) {
187 + javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().addToExtendsList(getCaptialCase(getCamelCase(
188 + parent.getName(), null)));
189 + javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().addParentInfoInCurNodeTempFile((YangNode)
190 + javaCodeGeneratorInfo);
191 + } else {
192 + String parentPackage = ((HasJavaFileInfo) parent).getJavaFileInfo().getPackage();
193 + String caseExtendInfo = parentPackage + PERIOD + parent.getName();
194 + javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().addToExtendsList(caseExtendInfo);
195 + }
196 + }
179 } 197 }
180 198
181 /** 199 /**
......
...@@ -22,12 +22,6 @@ package org.onosproject.yangutils.translator.tojava.utils; ...@@ -22,12 +22,6 @@ package org.onosproject.yangutils.translator.tojava.utils;
22 public final class YangPluginConfig { 22 public final class YangPluginConfig {
23 23
24 /** 24 /**
25 - * Creates an object for YANG plugin config.
26 - */
27 - public YangPluginConfig() {
28 - }
29 -
30 - /**
31 * Contains the code generation directory. 25 * Contains the code generation directory.
32 */ 26 */
33 private String codeGenDir; 27 private String codeGenDir;
...@@ -38,6 +32,12 @@ public final class YangPluginConfig { ...@@ -38,6 +32,12 @@ public final class YangPluginConfig {
38 private YangToJavaNamingConflictUtil conflictResolver; 32 private YangToJavaNamingConflictUtil conflictResolver;
39 33
40 /** 34 /**
35 + * Creates an object for YANG plugin config.
36 + */
37 + public YangPluginConfig() {
38 + }
39 +
40 + /**
41 * Sets the path of the java code where it has to be generated. 41 * Sets the path of the java code where it has to be generated.
42 * 42 *
43 * @param codeGenDir path of the directory 43 * @param codeGenDir path of the directory
......
...@@ -26,12 +26,6 @@ import java.util.List; ...@@ -26,12 +26,6 @@ import java.util.List;
26 public final class UtilConstants { 26 public final class UtilConstants {
27 27
28 /** 28 /**
29 - * Creates an instance of util constants.
30 - */
31 - private UtilConstants() {
32 - }
33 -
34 - /**
35 * JavaDocs for impl class. 29 * JavaDocs for impl class.
36 */ 30 */
37 public static final String IMPL_CLASS_JAVA_DOC = " * Represents the implementation of "; 31 public static final String IMPL_CLASS_JAVA_DOC = " * Represents the implementation of ";
...@@ -841,4 +835,10 @@ public final class UtilConstants { ...@@ -841,4 +835,10 @@ public final class UtilConstants {
841 * Static attribute for array list. 835 * Static attribute for array list.
842 */ 836 */
843 public static final String ARRAY_LIST = "ArrayList"; 837 public static final String ARRAY_LIST = "ArrayList";
838 +
839 + /**
840 + * Creates an instance of util constants.
841 + */
842 + private UtilConstants() {
843 + }
844 } 844 }
......
...@@ -55,10 +55,7 @@ public final class FileSystemUtil { ...@@ -55,10 +55,7 @@ public final class FileSystemUtil {
55 public static boolean doesPackageExist(String pkg) { 55 public static boolean doesPackageExist(String pkg) {
56 File pkgDir = new File(getPackageDirPathFromJavaJPackage(pkg)); 56 File pkgDir = new File(getPackageDirPathFromJavaJPackage(pkg));
57 File pkgWithFile = new File(pkgDir + SLASH + "package-info.java"); 57 File pkgWithFile = new File(pkgDir + SLASH + "package-info.java");
58 - if (pkgDir.exists() && pkgWithFile.isFile()) { 58 + return (pkgDir.exists() && pkgWithFile.isFile());
59 - return true;
60 - }
61 - return false;
62 } 59 }
63 60
64 /** 61 /**
......
...@@ -376,10 +376,10 @@ public final class JavaDocGen { ...@@ -376,10 +376,10 @@ public final class JavaDocGen {
376 * @return javaDocs 376 * @return javaDocs
377 */ 377 */
378 private static String generateForTypeDefSetter(String attribute) { 378 private static String generateForTypeDefSetter(String attribute) {
379 - return (NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION 379 + return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
380 + JAVA_DOC_SETTERS_COMMON + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK 380 + JAVA_DOC_SETTERS_COMMON + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
381 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute 381 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute
382 - + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE); 382 + + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
383 } 383 }
384 384
385 /** 385 /**
...@@ -491,10 +491,9 @@ public final class JavaDocGen { ...@@ -491,10 +491,9 @@ public final class JavaDocGen {
491 * @return javaDocs for type constructor 491 * @return javaDocs for type constructor
492 */ 492 */
493 private static String generateForTypeConstructor(String attribute) { 493 private static String generateForTypeConstructor(String attribute) {
494 - 494 + return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
495 - return (NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
496 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION 495 + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK + FOUR_SPACE_INDENTATION
497 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE 496 + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
498 - + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE); 497 + + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
499 } 498 }
500 } 499 }
......
...@@ -223,7 +223,7 @@ public final class YangIoUtils { ...@@ -223,7 +223,7 @@ public final class YangIoUtils {
223 223
224 for (File file : files) { 224 for (File file : files) {
225 Files.copy(file.toPath(), 225 Files.copy(file.toPath(),
226 - (new File(path + file.getName())).toPath(), 226 + new File(path + file.getName()).toPath(),
227 StandardCopyOption.REPLACE_EXISTING); 227 StandardCopyOption.REPLACE_EXISTING);
228 } 228 }
229 Resource rsc = new Resource(); 229 Resource rsc = new Resource();
......
...@@ -53,7 +53,7 @@ public class IntraFileTypeLinkingTest { ...@@ -53,7 +53,7 @@ public class IntraFileTypeLinkingTest {
53 YangNode node = manager.getDataModel("src/test/resources/SelfResolutionWhenTypeAndTypedefAtRootLevel.yang"); 53 YangNode node = manager.getDataModel("src/test/resources/SelfResolutionWhenTypeAndTypedefAtRootLevel.yang");
54 54
55 // Check whether the data model tree returned is of type module. 55 // Check whether the data model tree returned is of type module.
56 - assertThat((node instanceof YangModule), is(true)); 56 + assertThat(node instanceof YangModule, is(true));
57 57
58 // Check whether the node type is set properly to module. 58 // Check whether the node type is set properly to module.
59 assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE)); 59 assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
...@@ -72,7 +72,7 @@ public class IntraFileTypeLinkingTest { ...@@ -72,7 +72,7 @@ public class IntraFileTypeLinkingTest {
72 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(), 72 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
73 is((YangTypeDef) node.getChild())); 73 is((YangTypeDef) node.getChild()));
74 74
75 - assertThat((leafInfo.getDataType().getResolvableStatus()), 75 + assertThat(leafInfo.getDataType().getResolvableStatus(),
76 is(ResolvableStatus.RESOLVED)); 76 is(ResolvableStatus.RESOLVED));
77 } 77 }
78 78
...@@ -111,7 +111,7 @@ public class IntraFileTypeLinkingTest { ...@@ -111,7 +111,7 @@ public class IntraFileTypeLinkingTest {
111 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(), 111 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
112 is((YangTypeDef) node.getChild())); 112 is((YangTypeDef) node.getChild()));
113 113
114 - assertThat((leafInfo.getDataType().getResolvableStatus()), 114 + assertThat(leafInfo.getDataType().getResolvableStatus(),
115 is(ResolvableStatus.RESOLVED)); 115 is(ResolvableStatus.RESOLVED));
116 } 116 }
117 117
...@@ -151,7 +151,7 @@ public class IntraFileTypeLinkingTest { ...@@ -151,7 +151,7 @@ public class IntraFileTypeLinkingTest {
151 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(), 151 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
152 is((YangTypeDef) node.getChild().getNextSibling())); 152 is((YangTypeDef) node.getChild().getNextSibling()));
153 153
154 - assertThat((leafInfo.getDataType().getResolvableStatus()), 154 + assertThat(leafInfo.getDataType().getResolvableStatus(),
155 is(ResolvableStatus.RESOLVED)); 155 is(ResolvableStatus.RESOLVED));
156 } 156 }
157 157
...@@ -191,7 +191,7 @@ public class IntraFileTypeLinkingTest { ...@@ -191,7 +191,7 @@ public class IntraFileTypeLinkingTest {
191 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(), 191 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
192 is((YangTypeDef) yangContainer.getChild().getNextSibling())); 192 is((YangTypeDef) yangContainer.getChild().getNextSibling()));
193 193
194 - assertThat((leafInfo.getDataType().getResolvableStatus()), 194 + assertThat(leafInfo.getDataType().getResolvableStatus(),
195 is(ResolvableStatus.RESOLVED)); 195 is(ResolvableStatus.RESOLVED));
196 } 196 }
197 197
...@@ -228,21 +228,21 @@ public class IntraFileTypeLinkingTest { ...@@ -228,21 +228,21 @@ public class IntraFileTypeLinkingTest {
228 228
229 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(), 229 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
230 is((YangTypeDef) yangList.getChild())); 230 is((YangTypeDef) yangList.getChild()));
231 - assertThat((leafInfo.getDataType().getResolvableStatus()), 231 + assertThat(leafInfo.getDataType().getResolvableStatus(),
232 is(ResolvableStatus.RESOLVED)); 232 is(ResolvableStatus.RESOLVED));
233 233
234 YangTypeDef typeDef1 = (YangTypeDef) yangList.getChild(); 234 YangTypeDef typeDef1 = (YangTypeDef) yangList.getChild();
235 235
236 assertThat(((YangDerivedInfo<?>) typeDef1.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(), 236 assertThat(((YangDerivedInfo<?>) typeDef1.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(),
237 is((YangTypeDef) yangContainer.getChild().getNextSibling())); 237 is((YangTypeDef) yangContainer.getChild().getNextSibling()));
238 - assertThat((typeDef1.getTypeDefBaseType().getResolvableStatus()), 238 + assertThat(typeDef1.getTypeDefBaseType().getResolvableStatus(),
239 is(ResolvableStatus.RESOLVED)); 239 is(ResolvableStatus.RESOLVED));
240 240
241 YangTypeDef typeDef2 = (YangTypeDef) yangContainer.getChild().getNextSibling(); 241 YangTypeDef typeDef2 = (YangTypeDef) yangContainer.getChild().getNextSibling();
242 242
243 assertThat(((YangDerivedInfo<?>) typeDef2.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(), 243 assertThat(((YangDerivedInfo<?>) typeDef2.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(),
244 is((YangTypeDef) node.getChild())); 244 is((YangTypeDef) node.getChild()));
245 - assertThat((typeDef2.getTypeDefBaseType().getResolvableStatus()), 245 + assertThat(typeDef2.getTypeDefBaseType().getResolvableStatus(),
246 is(ResolvableStatus.RESOLVED)); 246 is(ResolvableStatus.RESOLVED));
247 } 247 }
248 248
...@@ -280,21 +280,21 @@ public class IntraFileTypeLinkingTest { ...@@ -280,21 +280,21 @@ public class IntraFileTypeLinkingTest {
280 280
281 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(), 281 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
282 is((YangTypeDef) yangList.getChild())); 282 is((YangTypeDef) yangList.getChild()));
283 - assertThat((leafInfo.getDataType().getResolvableStatus()), 283 + assertThat(leafInfo.getDataType().getResolvableStatus(),
284 is(ResolvableStatus.INTRA_FILE_RESOLVED)); 284 is(ResolvableStatus.INTRA_FILE_RESOLVED));
285 285
286 YangTypeDef typeDef1 = (YangTypeDef) yangList.getChild(); 286 YangTypeDef typeDef1 = (YangTypeDef) yangList.getChild();
287 287
288 assertThat(((YangDerivedInfo<?>) typeDef1.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(), 288 assertThat(((YangDerivedInfo<?>) typeDef1.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(),
289 is((YangTypeDef) yangContainer.getChild().getNextSibling())); 289 is((YangTypeDef) yangContainer.getChild().getNextSibling()));
290 - assertThat((typeDef1.getTypeDefBaseType().getResolvableStatus()), 290 + assertThat(typeDef1.getTypeDefBaseType().getResolvableStatus(),
291 is(ResolvableStatus.INTRA_FILE_RESOLVED)); 291 is(ResolvableStatus.INTRA_FILE_RESOLVED));
292 292
293 YangTypeDef typeDef2 = (YangTypeDef) yangContainer.getChild().getNextSibling(); 293 YangTypeDef typeDef2 = (YangTypeDef) yangContainer.getChild().getNextSibling();
294 294
295 assertThat(((YangDerivedInfo<?>) typeDef2.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(), 295 assertThat(((YangDerivedInfo<?>) typeDef2.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(),
296 is((YangTypeDef) node.getChild())); 296 is((YangTypeDef) node.getChild()));
297 - assertThat((typeDef2.getTypeDefBaseType().getResolvableStatus()), 297 + assertThat(typeDef2.getTypeDefBaseType().getResolvableStatus(),
298 is(ResolvableStatus.INTRA_FILE_RESOLVED)); 298 is(ResolvableStatus.INTRA_FILE_RESOLVED));
299 } 299 }
300 300
...@@ -331,21 +331,21 @@ public class IntraFileTypeLinkingTest { ...@@ -331,21 +331,21 @@ public class IntraFileTypeLinkingTest {
331 331
332 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(), 332 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
333 is((YangTypeDef) yangList.getChild())); 333 is((YangTypeDef) yangList.getChild()));
334 - assertThat((leafInfo.getDataType().getResolvableStatus()), 334 + assertThat(leafInfo.getDataType().getResolvableStatus(),
335 is(ResolvableStatus.RESOLVED)); 335 is(ResolvableStatus.RESOLVED));
336 336
337 YangTypeDef typeDef1 = (YangTypeDef) yangList.getChild(); 337 YangTypeDef typeDef1 = (YangTypeDef) yangList.getChild();
338 338
339 assertThat(((YangDerivedInfo<?>) typeDef1.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(), 339 assertThat(((YangDerivedInfo<?>) typeDef1.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(),
340 is((YangTypeDef) yangContainer.getChild().getNextSibling())); 340 is((YangTypeDef) yangContainer.getChild().getNextSibling()));
341 - assertThat((typeDef1.getTypeDefBaseType().getResolvableStatus()), 341 + assertThat(typeDef1.getTypeDefBaseType().getResolvableStatus(),
342 is(ResolvableStatus.RESOLVED)); 342 is(ResolvableStatus.RESOLVED));
343 343
344 YangTypeDef typeDef2 = (YangTypeDef) yangContainer.getChild().getNextSibling(); 344 YangTypeDef typeDef2 = (YangTypeDef) yangContainer.getChild().getNextSibling();
345 345
346 assertThat(((YangDerivedInfo<?>) typeDef2.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(), 346 assertThat(((YangDerivedInfo<?>) typeDef2.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(),
347 is((YangTypeDef) node.getChild())); 347 is((YangTypeDef) node.getChild()));
348 - assertThat((typeDef2.getTypeDefBaseType().getResolvableStatus()), 348 + assertThat(typeDef2.getTypeDefBaseType().getResolvableStatus(),
349 is(ResolvableStatus.RESOLVED)); 349 is(ResolvableStatus.RESOLVED));
350 } 350 }
351 351
...@@ -383,7 +383,7 @@ public class IntraFileTypeLinkingTest { ...@@ -383,7 +383,7 @@ public class IntraFileTypeLinkingTest {
383 383
384 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(), 384 assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
385 is((YangTypeDef) yangList.getChild())); 385 is((YangTypeDef) yangList.getChild()));
386 - assertThat((leafInfo.getDataType().getResolvableStatus()), 386 + assertThat(leafInfo.getDataType().getResolvableStatus(),
387 is(ResolvableStatus.INTRA_FILE_RESOLVED)); 387 is(ResolvableStatus.INTRA_FILE_RESOLVED));
388 388
389 YangTypeDef typeDef1 = (YangTypeDef) yangList.getChild(); 389 YangTypeDef typeDef1 = (YangTypeDef) yangList.getChild();
...@@ -392,7 +392,7 @@ public class IntraFileTypeLinkingTest { ...@@ -392,7 +392,7 @@ public class IntraFileTypeLinkingTest {
392 392
393 assertThat(((YangDerivedInfo<?>) typeDef2.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(), 393 assertThat(((YangDerivedInfo<?>) typeDef2.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(),
394 is((YangTypeDef) node.getChild())); 394 is((YangTypeDef) node.getChild()));
395 - assertThat((typeDef2.getTypeDefBaseType().getResolvableStatus()), 395 + assertThat(typeDef2.getTypeDefBaseType().getResolvableStatus(),
396 is(ResolvableStatus.RESOLVED)); 396 is(ResolvableStatus.RESOLVED));
397 } 397 }
398 398
......
...@@ -27,22 +27,22 @@ import org.onosproject.yangutils.parser.exceptions.ParserException; ...@@ -27,22 +27,22 @@ import org.onosproject.yangutils.parser.exceptions.ParserException;
27 */ 27 */
28 public final class CustomExceptionMatcher extends TypeSafeMatcher<ParserException> { 28 public final class CustomExceptionMatcher extends TypeSafeMatcher<ParserException> {
29 29
30 + private int actualLine;
31 + private final int expectedLine;
32 + private int actualCharPosition;
33 + private final int expectedCharPosition;
34 +
30 /** 35 /**
31 * Customized exception matcher to match error location. 36 * Customized exception matcher to match error location.
32 * 37 *
33 * @param line error line 38 * @param line error line
34 * @param charPosition error character position 39 * @param charPosition error character position
35 - * @return 40 + * @return customized exception matcher to match error location
36 */ 41 */
37 public static CustomExceptionMatcher errorLocation(int line, int charPosition) { 42 public static CustomExceptionMatcher errorLocation(int line, int charPosition) {
38 return new CustomExceptionMatcher(line, charPosition); 43 return new CustomExceptionMatcher(line, charPosition);
39 } 44 }
40 45
41 - private int actualLine;
42 - private final int expectedLine;
43 - private int actualCharPosition;
44 - private final int expectedCharPosition;
45 -
46 private CustomExceptionMatcher(int expectedLine, int expectedCharPosition) { 46 private CustomExceptionMatcher(int expectedLine, int expectedCharPosition) {
47 this.expectedLine = expectedLine; 47 this.expectedLine = expectedLine;
48 this.expectedCharPosition = expectedCharPosition; 48 this.expectedCharPosition = expectedCharPosition;
......
...@@ -54,9 +54,6 @@ public class AugmentListenerTest { ...@@ -54,9 +54,6 @@ public class AugmentListenerTest {
54 assertThat(yangNode.getName(), is("Test")); 54 assertThat(yangNode.getName(), is("Test"));
55 55
56 YangAugment yangAugment = (YangAugment) yangNode.getChild(); 56 YangAugment yangAugment = (YangAugment) yangNode.getChild();
57 - if (yangAugment.getTargetNode().isEmpty()) {
58 - System.out.println("list is empty");
59 - }
60 ListIterator<YangNodeIdentifier> nodeIdentifierIterator = yangAugment.getTargetNode().listIterator(); 57 ListIterator<YangNodeIdentifier> nodeIdentifierIterator = yangAugment.getTargetNode().listIterator();
61 YangNodeIdentifier yangNodeIdentifier = nodeIdentifierIterator.next(); 58 YangNodeIdentifier yangNodeIdentifier = nodeIdentifierIterator.next();
62 assertThat(yangNodeIdentifier.getPrefix(), is("if")); 59 assertThat(yangNodeIdentifier.getPrefix(), is("if"));
......
1 +/*
2 + * Copyright 2016-present Open Networking Laboratory
3 + *
4 + * Licensed under the Apache License, Version 2.0 (the "License");
5 + * you may not use this file except in compliance with the License.
6 + * You may obtain a copy of the License at
7 + *
8 + * http://www.apache.org/licenses/LICENSE-2.0
9 + *
10 + * Unless required by applicable law or agreed to in writing, software
11 + * distributed under the License is distributed on an "AS IS" BASIS,
12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 + * See the License for the specific language governing permissions and
14 + * limitations under the License.
15 + */
16 +
17 +package org.onosproject.yangutils.translator.tojava.utils;
18 +
19 +import java.io.IOException;
20 +import org.junit.Test;
21 +import org.onosproject.yangutils.datamodel.YangNode;
22 +import org.onosproject.yangutils.parser.exceptions.ParserException;
23 +import org.onosproject.yangutils.parser.impl.YangUtilsParserManager;
24 +
25 +import static org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorUtil.generateJavaCode;
26 +import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.clean;
27 +
28 +/**
29 + * Unit tests for choice-case translator.
30 + */
31 +public final class ChoiceCaseTranslatorTest {
32 +
33 + private final YangUtilsParserManager manager = new YangUtilsParserManager();
34 +
35 + /**
36 + * Checks choice-case translation should not result in any exception.
37 + */
38 + @Test
39 + public void processChoiceCaseTranslator() throws IOException, ParserException {
40 +
41 + String userDir = System.getProperty("user.dir");
42 + YangNode node = manager.getDataModel("src/test/resources/ChoiceCaseTranslator.yang");
43 +
44 + YangPluginConfig yangPluginConfig = new YangPluginConfig();
45 + yangPluginConfig.setCodeGenDir(userDir + "/target/ChoiceCaseTestGenFile/");
46 +
47 + generateJavaCode(node, yangPluginConfig);
48 +
49 + clean(userDir + "/target/ChoiceCaseTestGenFile/");
50 + }
51 + // TODO enhance the test cases, after having a framework of translator test.
52 +}
...\ No newline at end of file ...\ No newline at end of file
...@@ -28,21 +28,18 @@ import java.util.Calendar; ...@@ -28,21 +28,18 @@ import java.util.Calendar;
28 import org.junit.Rule; 28 import org.junit.Rule;
29 import org.junit.Test; 29 import org.junit.Test;
30 import org.junit.rules.ExpectedException; 30 import org.junit.rules.ExpectedException;
31 -import org.slf4j.Logger;
32 31
33 import static org.apache.commons.io.FileUtils.contentEquals; 32 import static org.apache.commons.io.FileUtils.contentEquals;
34 import static org.hamcrest.core.Is.is; 33 import static org.hamcrest.core.Is.is;
35 import static org.hamcrest.core.IsNot.not; 34 import static org.hamcrest.core.IsNot.not;
36 import static org.junit.Assert.assertThat; 35 import static org.junit.Assert.assertThat;
37 import static org.onosproject.yangutils.utils.io.impl.CopyrightHeader.getCopyrightHeader; 36 import static org.onosproject.yangutils.utils.io.impl.CopyrightHeader.getCopyrightHeader;
38 -import static org.slf4j.LoggerFactory.getLogger;
39 37
40 /** 38 /**
41 * Unit Tests for the CopyrightHeader contents. 39 * Unit Tests for the CopyrightHeader contents.
42 */ 40 */
43 public final class CopyrightHeaderTest { 41 public final class CopyrightHeaderTest {
44 42
45 - private final Logger log = getLogger(getClass());
46 private static final String COPYRIGHTS_FIRST_LINE = "/*\n * Copyright " + Calendar.getInstance().get(Calendar.YEAR) 43 private static final String COPYRIGHTS_FIRST_LINE = "/*\n * Copyright " + Calendar.getInstance().get(Calendar.YEAR)
47 + "-present Open Networking Laboratory\n"; 44 + "-present Open Networking Laboratory\n";
48 @Rule 45 @Rule
......
...@@ -26,14 +26,12 @@ import java.util.List; ...@@ -26,14 +26,12 @@ import java.util.List;
26 import org.junit.Rule; 26 import org.junit.Rule;
27 import org.junit.Test; 27 import org.junit.Test;
28 import org.junit.rules.ExpectedException; 28 import org.junit.rules.ExpectedException;
29 -import org.slf4j.Logger;
30 29
31 import static org.hamcrest.core.Is.is; 30 import static org.hamcrest.core.Is.is;
32 import static org.hamcrest.core.IsNot.not; 31 import static org.hamcrest.core.IsNot.not;
33 import static org.junit.Assert.assertThat; 32 import static org.junit.Assert.assertThat;
34 import static org.onosproject.yangutils.utils.io.impl.YangFileScanner.getJavaFiles; 33 import static org.onosproject.yangutils.utils.io.impl.YangFileScanner.getJavaFiles;
35 import static org.onosproject.yangutils.utils.io.impl.YangFileScanner.getYangFiles; 34 import static org.onosproject.yangutils.utils.io.impl.YangFileScanner.getYangFiles;
36 -import static org.slf4j.LoggerFactory.getLogger;
37 35
38 import static java.io.File.separator; 36 import static java.io.File.separator;
39 37
...@@ -42,8 +40,6 @@ import static java.io.File.separator; ...@@ -42,8 +40,6 @@ import static java.io.File.separator;
42 */ 40 */
43 public final class YangFileScannerTest { 41 public final class YangFileScannerTest {
44 42
45 - private final Logger log = getLogger(getClass());
46 -
47 @Rule 43 @Rule
48 public ExpectedException thrown = ExpectedException.none(); 44 public ExpectedException thrown = ExpectedException.none();
49 45
......
1 +module Test {
2 + yang-version 1;
3 + namespace http://huawei.com;
4 + prefix Ant;
5 + container food {
6 + choice snack {
7 + case sports-arena {
8 + leaf pretzel {
9 + type string;
10 + }
11 + leaf beer {
12 + type string;
13 + }
14 + }
15 + case late-night {
16 + leaf chocolate {
17 + type string;
18 + }
19 + }
20 + }
21 + }
22 +}