[ONOS-3906],[ONOS-3910] Implementation of YANG module and leaf/leaf-list translator.
Change-Id: If1a8a991ffafa14b51211f97c435176ee1bf856f
Showing
43 changed files
with
3224 additions
and
386 deletions
... | @@ -44,23 +44,17 @@ | ... | @@ -44,23 +44,17 @@ |
44 | <dependency> | 44 | <dependency> |
45 | <groupId>org.apache.maven</groupId> | 45 | <groupId>org.apache.maven</groupId> |
46 | <artifactId>maven-artifact</artifactId> | 46 | <artifactId>maven-artifact</artifactId> |
47 | - <version>2.0.8</version> | 47 | + <version>3.2.5</version> |
48 | </dependency> | 48 | </dependency> |
49 | <dependency> | 49 | <dependency> |
50 | <groupId>org.apache.maven</groupId> | 50 | <groupId>org.apache.maven</groupId> |
51 | <artifactId>maven-project</artifactId> | 51 | <artifactId>maven-project</artifactId> |
52 | - <version>2.0.8</version> | 52 | + <version>2.2.1</version> |
53 | - </dependency> | ||
54 | - <dependency> | ||
55 | - <groupId>org.assertj</groupId> | ||
56 | - <artifactId>assertj-core</artifactId> | ||
57 | - <version>1.7.0</version> | ||
58 | - <scope>test</scope> | ||
59 | </dependency> | 53 | </dependency> |
60 | <dependency> | 54 | <dependency> |
61 | <groupId>org.apache.maven.plugin-testing</groupId> | 55 | <groupId>org.apache.maven.plugin-testing</groupId> |
62 | <artifactId>maven-plugin-testing-harness</artifactId> | 56 | <artifactId>maven-plugin-testing-harness</artifactId> |
63 | - <version>2.1</version> | 57 | + <version>3.3.0</version> |
64 | <scope>test</scope> | 58 | <scope>test</scope> |
65 | </dependency> | 59 | </dependency> |
66 | <dependency> | 60 | <dependency> |
... | @@ -74,12 +68,13 @@ | ... | @@ -74,12 +68,13 @@ |
74 | <version>3.2.5</version> | 68 | <version>3.2.5</version> |
75 | <scope>test</scope> | 69 | <scope>test</scope> |
76 | </dependency> | 70 | </dependency> |
71 | + | ||
77 | <dependency> | 72 | <dependency> |
78 | - <groupId>org.mockito</groupId> | 73 | + <groupId>org.apache.maven.plugins</groupId> |
79 | - <artifactId>mockito-core</artifactId> | 74 | + <artifactId>maven-surefire-plugin</artifactId> |
80 | - <version>1.9.5</version> | 75 | + <version>2.19.1</version> |
81 | - <scope>test</scope> | ||
82 | </dependency> | 76 | </dependency> |
77 | + | ||
83 | <dependency> | 78 | <dependency> |
84 | <groupId>junit</groupId> | 79 | <groupId>junit</groupId> |
85 | <artifactId>junit</artifactId> | 80 | <artifactId>junit</artifactId> |
... | @@ -95,13 +90,15 @@ | ... | @@ -95,13 +90,15 @@ |
95 | <dependency> | 90 | <dependency> |
96 | <groupId>commons-io</groupId> | 91 | <groupId>commons-io</groupId> |
97 | <artifactId>commons-io</artifactId> | 92 | <artifactId>commons-io</artifactId> |
98 | - <version>1.3.2</version> | 93 | + <version>2.2</version> |
99 | </dependency> | 94 | </dependency> |
95 | + | ||
100 | <dependency> | 96 | <dependency> |
101 | - <groupId>commons-configuration</groupId> | 97 | + <groupId>org.hamcrest</groupId> |
102 | - <artifactId>commons-configuration</artifactId> | 98 | + <artifactId>hamcrest-all</artifactId> |
103 | - <version>1.10</version> | 99 | + <version>1.3</version> |
104 | </dependency> | 100 | </dependency> |
101 | + | ||
105 | <dependency> | 102 | <dependency> |
106 | <groupId>org.onosproject</groupId> | 103 | <groupId>org.onosproject</groupId> |
107 | <artifactId>onlab-junit</artifactId> | 104 | <artifactId>onlab-junit</artifactId> |
... | @@ -114,21 +111,6 @@ | ... | @@ -114,21 +111,6 @@ |
114 | <version>4.5</version> | 111 | <version>4.5</version> |
115 | </dependency> | 112 | </dependency> |
116 | <dependency> | 113 | <dependency> |
117 | - <groupId>org.apache.maven.plugins</groupId> | ||
118 | - <artifactId>maven-surefire-plugin</artifactId> | ||
119 | - <version>2.19.1</version> | ||
120 | - </dependency> | ||
121 | - <dependency> | ||
122 | - <groupId>org.sonatype.aether</groupId> | ||
123 | - <artifactId>aether-api</artifactId> | ||
124 | - <version>1.8</version> | ||
125 | - </dependency> | ||
126 | - <dependency> | ||
127 | - <groupId>org.sonatype.aether</groupId> | ||
128 | - <artifactId>aether-util</artifactId> | ||
129 | - <version>1.8</version> | ||
130 | - </dependency> | ||
131 | - <dependency> | ||
132 | <groupId>org.codehaus.mojo</groupId> | 114 | <groupId>org.codehaus.mojo</groupId> |
133 | <artifactId>build-helper-maven-plugin</artifactId> | 115 | <artifactId>build-helper-maven-plugin</artifactId> |
134 | <version>1.10</version> | 116 | <version>1.10</version> |
... | @@ -237,4 +219,5 @@ | ... | @@ -237,4 +219,5 @@ |
237 | </plugin> | 219 | </plugin> |
238 | </plugins> | 220 | </plugins> |
239 | </build> | 221 | </build> |
222 | + | ||
240 | </project> | 223 | </project> | ... | ... |
... | @@ -76,8 +76,7 @@ import org.onosproject.yangutils.parser.ParsableDataType; | ... | @@ -76,8 +76,7 @@ import org.onosproject.yangutils.parser.ParsableDataType; |
76 | /** | 76 | /** |
77 | * Data model node to maintain information defined in YANG augment. | 77 | * Data model node to maintain information defined in YANG augment. |
78 | */ | 78 | */ |
79 | -public class YangAugment extends YangNode | 79 | +public class YangAugment extends YangNode implements YangLeavesHolder, YangCommonInfo, Parsable { |
80 | - implements YangLeavesHolder, YangCommonInfo, Parsable { | ||
81 | 80 | ||
82 | /** | 81 | /** |
83 | * Augment target node. | 82 | * Augment target node. |
... | @@ -92,14 +91,12 @@ public class YangAugment extends YangNode | ... | @@ -92,14 +91,12 @@ public class YangAugment extends YangNode |
92 | /** | 91 | /** |
93 | * List of leaves. | 92 | * List of leaves. |
94 | */ | 93 | */ |
95 | - @SuppressWarnings("rawtypes") | 94 | + private List<YangLeaf<?>> listOfLeaf; |
96 | - private List<YangLeaf> listOfLeaf; | ||
97 | 95 | ||
98 | /** | 96 | /** |
99 | * List of leaf-lists. | 97 | * List of leaf-lists. |
100 | */ | 98 | */ |
101 | - @SuppressWarnings("rawtypes") | 99 | + private List<YangLeafList<?>> listOfLeafList; |
102 | - private List<YangLeafList> listOfLeafList; | ||
103 | 100 | ||
104 | /** | 101 | /** |
105 | * reference. | 102 | * reference. |
... | @@ -141,6 +138,7 @@ public class YangAugment extends YangNode | ... | @@ -141,6 +138,7 @@ public class YangAugment extends YangNode |
141 | * | 138 | * |
142 | * @return the description. | 139 | * @return the description. |
143 | */ | 140 | */ |
141 | + @Override | ||
144 | public String getDescription() { | 142 | public String getDescription() { |
145 | return description; | 143 | return description; |
146 | } | 144 | } |
... | @@ -150,6 +148,7 @@ public class YangAugment extends YangNode | ... | @@ -150,6 +148,7 @@ public class YangAugment extends YangNode |
150 | * | 148 | * |
151 | * @param description set the description. | 149 | * @param description set the description. |
152 | */ | 150 | */ |
151 | + @Override | ||
153 | public void setDescription(String description) { | 152 | public void setDescription(String description) { |
154 | this.description = description; | 153 | this.description = description; |
155 | } | 154 | } |
... | @@ -159,8 +158,8 @@ public class YangAugment extends YangNode | ... | @@ -159,8 +158,8 @@ public class YangAugment extends YangNode |
159 | * | 158 | * |
160 | * @return the list of leaves. | 159 | * @return the list of leaves. |
161 | */ | 160 | */ |
162 | - @SuppressWarnings("rawtypes") | 161 | + @Override |
163 | - public List<YangLeaf> getListOfLeaf() { | 162 | + public List<YangLeaf<?>> getListOfLeaf() { |
164 | return listOfLeaf; | 163 | return listOfLeaf; |
165 | } | 164 | } |
166 | 165 | ||
... | @@ -169,8 +168,7 @@ public class YangAugment extends YangNode | ... | @@ -169,8 +168,7 @@ public class YangAugment extends YangNode |
169 | * | 168 | * |
170 | * @param leafsList the list of leaf to set. | 169 | * @param leafsList the list of leaf to set. |
171 | */ | 170 | */ |
172 | - @SuppressWarnings("rawtypes") | 171 | + private void setListOfLeaf(List<YangLeaf<?>> leafsList) { |
173 | - private void setListOfLeaf(List<YangLeaf> leafsList) { | ||
174 | listOfLeaf = leafsList; | 172 | listOfLeaf = leafsList; |
175 | } | 173 | } |
176 | 174 | ||
... | @@ -179,10 +177,10 @@ public class YangAugment extends YangNode | ... | @@ -179,10 +177,10 @@ public class YangAugment extends YangNode |
179 | * | 177 | * |
180 | * @param leaf the leaf to be added. | 178 | * @param leaf the leaf to be added. |
181 | */ | 179 | */ |
182 | - @SuppressWarnings("rawtypes") | 180 | + @Override |
183 | public void addLeaf(YangLeaf<?> leaf) { | 181 | public void addLeaf(YangLeaf<?> leaf) { |
184 | if (getListOfLeaf() == null) { | 182 | if (getListOfLeaf() == null) { |
185 | - setListOfLeaf(new LinkedList<YangLeaf>()); | 183 | + setListOfLeaf(new LinkedList<YangLeaf<?>>()); |
186 | } | 184 | } |
187 | 185 | ||
188 | getListOfLeaf().add(leaf); | 186 | getListOfLeaf().add(leaf); |
... | @@ -193,8 +191,8 @@ public class YangAugment extends YangNode | ... | @@ -193,8 +191,8 @@ public class YangAugment extends YangNode |
193 | * | 191 | * |
194 | * @return the list of leaf-list. | 192 | * @return the list of leaf-list. |
195 | */ | 193 | */ |
196 | - @SuppressWarnings("rawtypes") | 194 | + @Override |
197 | - public List<YangLeafList> getListOfLeafList() { | 195 | + public List<YangLeafList<?>> getListOfLeafList() { |
198 | return listOfLeafList; | 196 | return listOfLeafList; |
199 | } | 197 | } |
200 | 198 | ||
... | @@ -203,8 +201,7 @@ public class YangAugment extends YangNode | ... | @@ -203,8 +201,7 @@ public class YangAugment extends YangNode |
203 | * | 201 | * |
204 | * @param listOfLeafList the list of leaf-list to set. | 202 | * @param listOfLeafList the list of leaf-list to set. |
205 | */ | 203 | */ |
206 | - @SuppressWarnings("rawtypes") | 204 | + private void setListOfLeafList(List<YangLeafList<?>> listOfLeafList) { |
207 | - private void setListOfLeafList(List<YangLeafList> listOfLeafList) { | ||
208 | this.listOfLeafList = listOfLeafList; | 205 | this.listOfLeafList = listOfLeafList; |
209 | } | 206 | } |
210 | 207 | ||
... | @@ -213,10 +210,10 @@ public class YangAugment extends YangNode | ... | @@ -213,10 +210,10 @@ public class YangAugment extends YangNode |
213 | * | 210 | * |
214 | * @param leafList the leaf-list to be added. | 211 | * @param leafList the leaf-list to be added. |
215 | */ | 212 | */ |
216 | - @SuppressWarnings("rawtypes") | 213 | + @Override |
217 | public void addLeafList(YangLeafList<?> leafList) { | 214 | public void addLeafList(YangLeafList<?> leafList) { |
218 | if (getListOfLeafList() == null) { | 215 | if (getListOfLeafList() == null) { |
219 | - setListOfLeafList(new LinkedList<YangLeafList>()); | 216 | + setListOfLeafList(new LinkedList<YangLeafList<?>>()); |
220 | } | 217 | } |
221 | 218 | ||
222 | getListOfLeafList().add(leafList); | 219 | getListOfLeafList().add(leafList); |
... | @@ -227,6 +224,7 @@ public class YangAugment extends YangNode | ... | @@ -227,6 +224,7 @@ public class YangAugment extends YangNode |
227 | * | 224 | * |
228 | * @return the reference. | 225 | * @return the reference. |
229 | */ | 226 | */ |
227 | + @Override | ||
230 | public String getReference() { | 228 | public String getReference() { |
231 | return reference; | 229 | return reference; |
232 | } | 230 | } |
... | @@ -236,6 +234,7 @@ public class YangAugment extends YangNode | ... | @@ -236,6 +234,7 @@ public class YangAugment extends YangNode |
236 | * | 234 | * |
237 | * @param reference the reference to set. | 235 | * @param reference the reference to set. |
238 | */ | 236 | */ |
237 | + @Override | ||
239 | public void setReference(String reference) { | 238 | public void setReference(String reference) { |
240 | this.reference = reference; | 239 | this.reference = reference; |
241 | } | 240 | } |
... | @@ -245,6 +244,7 @@ public class YangAugment extends YangNode | ... | @@ -245,6 +244,7 @@ public class YangAugment extends YangNode |
245 | * | 244 | * |
246 | * @return the status. | 245 | * @return the status. |
247 | */ | 246 | */ |
247 | + @Override | ||
248 | public YangStatusType getStatus() { | 248 | public YangStatusType getStatus() { |
249 | return status; | 249 | return status; |
250 | } | 250 | } |
... | @@ -254,6 +254,7 @@ public class YangAugment extends YangNode | ... | @@ -254,6 +254,7 @@ public class YangAugment extends YangNode |
254 | * | 254 | * |
255 | * @param status the status to set. | 255 | * @param status the status to set. |
256 | */ | 256 | */ |
257 | + @Override | ||
257 | public void setStatus(YangStatusType status) { | 258 | public void setStatus(YangStatusType status) { |
258 | this.status = status; | 259 | this.status = status; |
259 | } | 260 | } |
... | @@ -263,6 +264,7 @@ public class YangAugment extends YangNode | ... | @@ -263,6 +264,7 @@ public class YangAugment extends YangNode |
263 | * | 264 | * |
264 | * @return returns AUGMENT_DATA. | 265 | * @return returns AUGMENT_DATA. |
265 | */ | 266 | */ |
267 | + @Override | ||
266 | public ParsableDataType getParsableDataType() { | 268 | public ParsableDataType getParsableDataType() { |
267 | return ParsableDataType.AUGMENT_DATA; | 269 | return ParsableDataType.AUGMENT_DATA; |
268 | } | 270 | } |
... | @@ -272,6 +274,7 @@ public class YangAugment extends YangNode | ... | @@ -272,6 +274,7 @@ public class YangAugment extends YangNode |
272 | * | 274 | * |
273 | * @throws DataModelException a violation of data model rules. | 275 | * @throws DataModelException a violation of data model rules. |
274 | */ | 276 | */ |
277 | + @Override | ||
275 | public void validateDataOnEntry() throws DataModelException { | 278 | public void validateDataOnEntry() throws DataModelException { |
276 | // TODO auto-generated method stub, to be implemented by parser | 279 | // TODO auto-generated method stub, to be implemented by parser |
277 | } | 280 | } |
... | @@ -281,6 +284,7 @@ public class YangAugment extends YangNode | ... | @@ -281,6 +284,7 @@ public class YangAugment extends YangNode |
281 | * | 284 | * |
282 | * @throws DataModelException a violation of data model rules. | 285 | * @throws DataModelException a violation of data model rules. |
283 | */ | 286 | */ |
287 | + @Override | ||
284 | public void validateDataOnExit() throws DataModelException { | 288 | public void validateDataOnExit() throws DataModelException { |
285 | // TODO auto-generated method stub, to be implemented by parser | 289 | // TODO auto-generated method stub, to be implemented by parser |
286 | } | 290 | } |
... | @@ -324,6 +328,7 @@ public class YangAugment extends YangNode | ... | @@ -324,6 +328,7 @@ public class YangAugment extends YangNode |
324 | /* (non-Javadoc) | 328 | /* (non-Javadoc) |
325 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry() | 329 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry() |
326 | */ | 330 | */ |
331 | + @Override | ||
327 | public void generateJavaCodeEntry() { | 332 | public void generateJavaCodeEntry() { |
328 | // TODO Auto-generated method stub | 333 | // TODO Auto-generated method stub |
329 | 334 | ||
... | @@ -332,6 +337,7 @@ public class YangAugment extends YangNode | ... | @@ -332,6 +337,7 @@ public class YangAugment extends YangNode |
332 | /* (non-Javadoc) | 337 | /* (non-Javadoc) |
333 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit() | 338 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit() |
334 | */ | 339 | */ |
340 | + @Override | ||
335 | public void generateJavaCodeExit() { | 341 | public void generateJavaCodeExit() { |
336 | // TODO Auto-generated method stub | 342 | // TODO Auto-generated method stub |
337 | 343 | ... | ... |
... | @@ -88,8 +88,7 @@ import org.onosproject.yangutils.parser.ParsableDataType; | ... | @@ -88,8 +88,7 @@ import org.onosproject.yangutils.parser.ParsableDataType; |
88 | /** | 88 | /** |
89 | * Data model node to maintain information defined in YANG case. | 89 | * Data model node to maintain information defined in YANG case. |
90 | */ | 90 | */ |
91 | -public class YangCase extends YangNode | 91 | +public class YangCase extends YangNode implements YangLeavesHolder, YangCommonInfo, Parsable { |
92 | - implements YangLeavesHolder, YangCommonInfo, Parsable { | ||
93 | 92 | ||
94 | /** | 93 | /** |
95 | * Case name. | 94 | * Case name. |
... | @@ -106,14 +105,12 @@ public class YangCase extends YangNode | ... | @@ -106,14 +105,12 @@ public class YangCase extends YangNode |
106 | /** | 105 | /** |
107 | * List of leaves. | 106 | * List of leaves. |
108 | */ | 107 | */ |
109 | - @SuppressWarnings("rawtypes") | 108 | + private List<YangLeaf<?>> listOfLeaf; |
110 | - private List<YangLeaf> listOfLeaf; | ||
111 | 109 | ||
112 | /** | 110 | /** |
113 | * List of leaf lists. | 111 | * List of leaf lists. |
114 | */ | 112 | */ |
115 | - @SuppressWarnings("rawtypes") | 113 | + private List<YangLeafList<?>> listOfLeafList; |
116 | - private List<YangLeafList> listOfLeafList; | ||
117 | 114 | ||
118 | /** | 115 | /** |
119 | * Reference of the module. | 116 | * Reference of the module. |
... | @@ -153,6 +150,7 @@ public class YangCase extends YangNode | ... | @@ -153,6 +150,7 @@ public class YangCase extends YangNode |
153 | * | 150 | * |
154 | * @return the description. | 151 | * @return the description. |
155 | */ | 152 | */ |
153 | + @Override | ||
156 | public String getDescription() { | 154 | public String getDescription() { |
157 | return description; | 155 | return description; |
158 | } | 156 | } |
... | @@ -162,6 +160,7 @@ public class YangCase extends YangNode | ... | @@ -162,6 +160,7 @@ public class YangCase extends YangNode |
162 | * | 160 | * |
163 | * @param description set the description. | 161 | * @param description set the description. |
164 | */ | 162 | */ |
163 | + @Override | ||
165 | public void setDescription(String description) { | 164 | public void setDescription(String description) { |
166 | this.description = description; | 165 | this.description = description; |
167 | } | 166 | } |
... | @@ -171,8 +170,8 @@ public class YangCase extends YangNode | ... | @@ -171,8 +170,8 @@ public class YangCase extends YangNode |
171 | * | 170 | * |
172 | * @return the list of leaves. | 171 | * @return the list of leaves. |
173 | */ | 172 | */ |
174 | - @SuppressWarnings("rawtypes") | 173 | + @Override |
175 | - public List<YangLeaf> getListOfLeaf() { | 174 | + public List<YangLeaf<?>> getListOfLeaf() { |
176 | return listOfLeaf; | 175 | return listOfLeaf; |
177 | } | 176 | } |
178 | 177 | ||
... | @@ -181,8 +180,7 @@ public class YangCase extends YangNode | ... | @@ -181,8 +180,7 @@ public class YangCase extends YangNode |
181 | * | 180 | * |
182 | * @param leafsList the list of leaf to set. | 181 | * @param leafsList the list of leaf to set. |
183 | */ | 182 | */ |
184 | - @SuppressWarnings("rawtypes") | 183 | + private void setListOfLeaf(List<YangLeaf<?>> leafsList) { |
185 | - private void setListOfLeaf(List<YangLeaf> leafsList) { | ||
186 | listOfLeaf = leafsList; | 184 | listOfLeaf = leafsList; |
187 | } | 185 | } |
188 | 186 | ||
... | @@ -191,10 +189,10 @@ public class YangCase extends YangNode | ... | @@ -191,10 +189,10 @@ public class YangCase extends YangNode |
191 | * | 189 | * |
192 | * @param leaf the leaf to be added. | 190 | * @param leaf the leaf to be added. |
193 | */ | 191 | */ |
194 | - @SuppressWarnings("rawtypes") | 192 | + @Override |
195 | public void addLeaf(YangLeaf<?> leaf) { | 193 | public void addLeaf(YangLeaf<?> leaf) { |
196 | if (getListOfLeaf() == null) { | 194 | if (getListOfLeaf() == null) { |
197 | - setListOfLeaf(new LinkedList<YangLeaf>()); | 195 | + setListOfLeaf(new LinkedList<YangLeaf<?>>()); |
198 | } | 196 | } |
199 | 197 | ||
200 | getListOfLeaf().add(leaf); | 198 | getListOfLeaf().add(leaf); |
... | @@ -205,8 +203,8 @@ public class YangCase extends YangNode | ... | @@ -205,8 +203,8 @@ public class YangCase extends YangNode |
205 | * | 203 | * |
206 | * @return the list of leaf-list. | 204 | * @return the list of leaf-list. |
207 | */ | 205 | */ |
208 | - @SuppressWarnings("rawtypes") | 206 | + @Override |
209 | - public List<YangLeafList> getListOfLeafList() { | 207 | + public List<YangLeafList<?>> getListOfLeafList() { |
210 | return listOfLeafList; | 208 | return listOfLeafList; |
211 | } | 209 | } |
212 | 210 | ||
... | @@ -215,8 +213,7 @@ public class YangCase extends YangNode | ... | @@ -215,8 +213,7 @@ public class YangCase extends YangNode |
215 | * | 213 | * |
216 | * @param listOfLeafList the list of leaf-list to set. | 214 | * @param listOfLeafList the list of leaf-list to set. |
217 | */ | 215 | */ |
218 | - @SuppressWarnings("rawtypes") | 216 | + private void setListOfLeafList(List<YangLeafList<?>> listOfLeafList) { |
219 | - private void setListOfLeafList(List<YangLeafList> listOfLeafList) { | ||
220 | this.listOfLeafList = listOfLeafList; | 217 | this.listOfLeafList = listOfLeafList; |
221 | } | 218 | } |
222 | 219 | ||
... | @@ -225,10 +222,10 @@ public class YangCase extends YangNode | ... | @@ -225,10 +222,10 @@ public class YangCase extends YangNode |
225 | * | 222 | * |
226 | * @param leafList the leaf-list to be added. | 223 | * @param leafList the leaf-list to be added. |
227 | */ | 224 | */ |
228 | - @SuppressWarnings("rawtypes") | 225 | + @Override |
229 | public void addLeafList(YangLeafList<?> leafList) { | 226 | public void addLeafList(YangLeafList<?> leafList) { |
230 | if (getListOfLeafList() == null) { | 227 | if (getListOfLeafList() == null) { |
231 | - setListOfLeafList(new LinkedList<YangLeafList>()); | 228 | + setListOfLeafList(new LinkedList<YangLeafList<?>>()); |
232 | } | 229 | } |
233 | 230 | ||
234 | getListOfLeafList().add(leafList); | 231 | getListOfLeafList().add(leafList); |
... | @@ -239,6 +236,7 @@ public class YangCase extends YangNode | ... | @@ -239,6 +236,7 @@ public class YangCase extends YangNode |
239 | * | 236 | * |
240 | * @return the reference. | 237 | * @return the reference. |
241 | */ | 238 | */ |
239 | + @Override | ||
242 | public String getReference() { | 240 | public String getReference() { |
243 | return reference; | 241 | return reference; |
244 | } | 242 | } |
... | @@ -248,6 +246,7 @@ public class YangCase extends YangNode | ... | @@ -248,6 +246,7 @@ public class YangCase extends YangNode |
248 | * | 246 | * |
249 | * @param reference the reference to set. | 247 | * @param reference the reference to set. |
250 | */ | 248 | */ |
249 | + @Override | ||
251 | public void setReference(String reference) { | 250 | public void setReference(String reference) { |
252 | this.reference = reference; | 251 | this.reference = reference; |
253 | } | 252 | } |
... | @@ -257,6 +256,7 @@ public class YangCase extends YangNode | ... | @@ -257,6 +256,7 @@ public class YangCase extends YangNode |
257 | * | 256 | * |
258 | * @return the status. | 257 | * @return the status. |
259 | */ | 258 | */ |
259 | + @Override | ||
260 | public YangStatusType getStatus() { | 260 | public YangStatusType getStatus() { |
261 | return status; | 261 | return status; |
262 | } | 262 | } |
... | @@ -266,6 +266,7 @@ public class YangCase extends YangNode | ... | @@ -266,6 +266,7 @@ public class YangCase extends YangNode |
266 | * | 266 | * |
267 | * @param status the status to set. | 267 | * @param status the status to set. |
268 | */ | 268 | */ |
269 | + @Override | ||
269 | public void setStatus(YangStatusType status) { | 270 | public void setStatus(YangStatusType status) { |
270 | this.status = status; | 271 | this.status = status; |
271 | } | 272 | } |
... | @@ -275,6 +276,7 @@ public class YangCase extends YangNode | ... | @@ -275,6 +276,7 @@ public class YangCase extends YangNode |
275 | * | 276 | * |
276 | * @return returns CASE_DATA | 277 | * @return returns CASE_DATA |
277 | */ | 278 | */ |
279 | + @Override | ||
278 | public ParsableDataType getParsableDataType() { | 280 | public ParsableDataType getParsableDataType() { |
279 | return ParsableDataType.CASE_DATA; | 281 | return ParsableDataType.CASE_DATA; |
280 | } | 282 | } |
... | @@ -284,6 +286,7 @@ public class YangCase extends YangNode | ... | @@ -284,6 +286,7 @@ public class YangCase extends YangNode |
284 | * | 286 | * |
285 | * @throws DataModelException a violation of data model rules. | 287 | * @throws DataModelException a violation of data model rules. |
286 | */ | 288 | */ |
289 | + @Override | ||
287 | public void validateDataOnEntry() throws DataModelException { | 290 | public void validateDataOnEntry() throws DataModelException { |
288 | // TODO auto-generated method stub, to be implemented by parser | 291 | // TODO auto-generated method stub, to be implemented by parser |
289 | } | 292 | } |
... | @@ -293,6 +296,7 @@ public class YangCase extends YangNode | ... | @@ -293,6 +296,7 @@ public class YangCase extends YangNode |
293 | * | 296 | * |
294 | * @throws DataModelException a violation of data model rules. | 297 | * @throws DataModelException a violation of data model rules. |
295 | */ | 298 | */ |
299 | + @Override | ||
296 | public void validateDataOnExit() throws DataModelException { | 300 | public void validateDataOnExit() throws DataModelException { |
297 | // TODO auto-generated method stub, to be implemented by parser | 301 | // TODO auto-generated method stub, to be implemented by parser |
298 | } | 302 | } |
... | @@ -318,6 +322,7 @@ public class YangCase extends YangNode | ... | @@ -318,6 +322,7 @@ public class YangCase extends YangNode |
318 | /* (non-Javadoc) | 322 | /* (non-Javadoc) |
319 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry() | 323 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry() |
320 | */ | 324 | */ |
325 | + @Override | ||
321 | public void generateJavaCodeEntry() { | 326 | public void generateJavaCodeEntry() { |
322 | // TODO Auto-generated method stub | 327 | // TODO Auto-generated method stub |
323 | 328 | ||
... | @@ -326,6 +331,7 @@ public class YangCase extends YangNode | ... | @@ -326,6 +331,7 @@ public class YangCase extends YangNode |
326 | /* (non-Javadoc) | 331 | /* (non-Javadoc) |
327 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit() | 332 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit() |
328 | */ | 333 | */ |
334 | + @Override | ||
329 | public void generateJavaCodeExit() { | 335 | public void generateJavaCodeExit() { |
330 | // TODO Auto-generated method stub | 336 | // TODO Auto-generated method stub |
331 | 337 | ... | ... |
... | @@ -16,13 +16,17 @@ | ... | @@ -16,13 +16,17 @@ |
16 | 16 | ||
17 | package org.onosproject.yangutils.datamodel; | 17 | package org.onosproject.yangutils.datamodel; |
18 | 18 | ||
19 | +import java.io.IOException; | ||
19 | import java.util.LinkedList; | 20 | import java.util.LinkedList; |
20 | import java.util.List; | 21 | import java.util.List; |
21 | 22 | ||
22 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 23 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
23 | import org.onosproject.yangutils.parser.Parsable; | 24 | import org.onosproject.yangutils.parser.Parsable; |
24 | import org.onosproject.yangutils.parser.ParsableDataType; | 25 | import org.onosproject.yangutils.parser.ParsableDataType; |
25 | -import org.onosproject.yangutils.utils.io.CachedFileHandle; | 26 | +import org.onosproject.yangutils.translator.CachedFileHandle; |
27 | +import org.onosproject.yangutils.translator.GeneratedFileType; | ||
28 | +import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax; | ||
29 | +import org.onosproject.yangutils.utils.io.impl.FileSystemUtil; | ||
26 | /*- | 30 | /*- |
27 | * Reference RFC 6020. | 31 | * Reference RFC 6020. |
28 | * | 32 | * |
... | @@ -105,14 +109,12 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -105,14 +109,12 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
105 | /** | 109 | /** |
106 | * List of leaves contained. | 110 | * List of leaves contained. |
107 | */ | 111 | */ |
108 | - @SuppressWarnings("rawtypes") | 112 | + private List<YangLeaf<?>> listOfLeaf; |
109 | - private List<YangLeaf> listOfLeaf; | ||
110 | 113 | ||
111 | /** | 114 | /** |
112 | * List of leaf-lists contained. | 115 | * List of leaf-lists contained. |
113 | */ | 116 | */ |
114 | - @SuppressWarnings("rawtypes") | 117 | + private List<YangLeafList<?>> listOfLeafList; |
115 | - private List<YangLeafList> listOfLeafList; | ||
116 | 118 | ||
117 | /** | 119 | /** |
118 | * If it is a presence container, then the textual documentation of presence | 120 | * If it is a presence container, then the textual documentation of presence |
... | @@ -186,6 +188,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -186,6 +188,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
186 | * | 188 | * |
187 | * @return the description. | 189 | * @return the description. |
188 | */ | 190 | */ |
191 | + @Override | ||
189 | public String getDescription() { | 192 | public String getDescription() { |
190 | return description; | 193 | return description; |
191 | } | 194 | } |
... | @@ -195,6 +198,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -195,6 +198,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
195 | * | 198 | * |
196 | * @param description set the description. | 199 | * @param description set the description. |
197 | */ | 200 | */ |
201 | + @Override | ||
198 | public void setDescription(String description) { | 202 | public void setDescription(String description) { |
199 | this.description = description; | 203 | this.description = description; |
200 | } | 204 | } |
... | @@ -204,8 +208,8 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -204,8 +208,8 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
204 | * | 208 | * |
205 | * @return the list of leaves. | 209 | * @return the list of leaves. |
206 | */ | 210 | */ |
207 | - @SuppressWarnings("rawtypes") | 211 | + @Override |
208 | - public List<YangLeaf> getListOfLeaf() { | 212 | + public List<YangLeaf<?>> getListOfLeaf() { |
209 | return listOfLeaf; | 213 | return listOfLeaf; |
210 | } | 214 | } |
211 | 215 | ||
... | @@ -214,8 +218,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -214,8 +218,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
214 | * | 218 | * |
215 | * @param leafsList the list of leaf to set. | 219 | * @param leafsList the list of leaf to set. |
216 | */ | 220 | */ |
217 | - @SuppressWarnings("rawtypes") | 221 | + private void setListOfLeaf(List<YangLeaf<?>> leafsList) { |
218 | - private void setListOfLeaf(List<YangLeaf> leafsList) { | ||
219 | listOfLeaf = leafsList; | 222 | listOfLeaf = leafsList; |
220 | } | 223 | } |
221 | 224 | ||
... | @@ -224,10 +227,10 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -224,10 +227,10 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
224 | * | 227 | * |
225 | * @param leaf the leaf to be added. | 228 | * @param leaf the leaf to be added. |
226 | */ | 229 | */ |
227 | - @SuppressWarnings("rawtypes") | 230 | + @Override |
228 | public void addLeaf(YangLeaf<?> leaf) { | 231 | public void addLeaf(YangLeaf<?> leaf) { |
229 | if (getListOfLeaf() == null) { | 232 | if (getListOfLeaf() == null) { |
230 | - setListOfLeaf(new LinkedList<YangLeaf>()); | 233 | + setListOfLeaf(new LinkedList<YangLeaf<?>>()); |
231 | } | 234 | } |
232 | 235 | ||
233 | getListOfLeaf().add(leaf); | 236 | getListOfLeaf().add(leaf); |
... | @@ -238,8 +241,8 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -238,8 +241,8 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
238 | * | 241 | * |
239 | * @return the list of leaf-list. | 242 | * @return the list of leaf-list. |
240 | */ | 243 | */ |
241 | - @SuppressWarnings("rawtypes") | 244 | + @Override |
242 | - public List<YangLeafList> getListOfLeafList() { | 245 | + public List<YangLeafList<?>> getListOfLeafList() { |
243 | return listOfLeafList; | 246 | return listOfLeafList; |
244 | } | 247 | } |
245 | 248 | ||
... | @@ -248,8 +251,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -248,8 +251,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
248 | * | 251 | * |
249 | * @param listOfLeafList the list of leaf-list to set. | 252 | * @param listOfLeafList the list of leaf-list to set. |
250 | */ | 253 | */ |
251 | - @SuppressWarnings("rawtypes") | 254 | + private void setListOfLeafList(List<YangLeafList<?>> listOfLeafList) { |
252 | - private void setListOfLeafList(List<YangLeafList> listOfLeafList) { | ||
253 | this.listOfLeafList = listOfLeafList; | 255 | this.listOfLeafList = listOfLeafList; |
254 | } | 256 | } |
255 | 257 | ||
... | @@ -258,10 +260,10 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -258,10 +260,10 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
258 | * | 260 | * |
259 | * @param leafList the leaf-list to be added. | 261 | * @param leafList the leaf-list to be added. |
260 | */ | 262 | */ |
261 | - @SuppressWarnings("rawtypes") | 263 | + @Override |
262 | public void addLeafList(YangLeafList<?> leafList) { | 264 | public void addLeafList(YangLeafList<?> leafList) { |
263 | if (getListOfLeafList() == null) { | 265 | if (getListOfLeafList() == null) { |
264 | - setListOfLeafList(new LinkedList<YangLeafList>()); | 266 | + setListOfLeafList(new LinkedList<YangLeafList<?>>()); |
265 | } | 267 | } |
266 | 268 | ||
267 | getListOfLeafList().add(leafList); | 269 | getListOfLeafList().add(leafList); |
... | @@ -290,6 +292,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -290,6 +292,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
290 | * | 292 | * |
291 | * @return the reference. | 293 | * @return the reference. |
292 | */ | 294 | */ |
295 | + @Override | ||
293 | public String getReference() { | 296 | public String getReference() { |
294 | return reference; | 297 | return reference; |
295 | } | 298 | } |
... | @@ -299,6 +302,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -299,6 +302,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
299 | * | 302 | * |
300 | * @param reference the reference to set. | 303 | * @param reference the reference to set. |
301 | */ | 304 | */ |
305 | + @Override | ||
302 | public void setReference(String reference) { | 306 | public void setReference(String reference) { |
303 | this.reference = reference; | 307 | this.reference = reference; |
304 | } | 308 | } |
... | @@ -308,6 +312,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -308,6 +312,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
308 | * | 312 | * |
309 | * @return the status. | 313 | * @return the status. |
310 | */ | 314 | */ |
315 | + @Override | ||
311 | public YangStatusType getStatus() { | 316 | public YangStatusType getStatus() { |
312 | return status; | 317 | return status; |
313 | } | 318 | } |
... | @@ -317,6 +322,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -317,6 +322,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
317 | * | 322 | * |
318 | * @param status the status to set. | 323 | * @param status the status to set. |
319 | */ | 324 | */ |
325 | + @Override | ||
320 | public void setStatus(YangStatusType status) { | 326 | public void setStatus(YangStatusType status) { |
321 | this.status = status; | 327 | this.status = status; |
322 | } | 328 | } |
... | @@ -344,6 +350,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -344,6 +350,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
344 | * | 350 | * |
345 | * @return returns CONTAINER_DATA. | 351 | * @return returns CONTAINER_DATA. |
346 | */ | 352 | */ |
353 | + @Override | ||
347 | public ParsableDataType getParsableDataType() { | 354 | public ParsableDataType getParsableDataType() { |
348 | return ParsableDataType.CONTAINER_DATA; | 355 | return ParsableDataType.CONTAINER_DATA; |
349 | } | 356 | } |
... | @@ -353,6 +360,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -353,6 +360,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
353 | * | 360 | * |
354 | * @throws DataModelException a violation of data model rules. | 361 | * @throws DataModelException a violation of data model rules. |
355 | */ | 362 | */ |
363 | + @Override | ||
356 | public void validateDataOnEntry() throws DataModelException { | 364 | public void validateDataOnEntry() throws DataModelException { |
357 | // TODO auto-generated method stub, to be implemented by parser | 365 | // TODO auto-generated method stub, to be implemented by parser |
358 | } | 366 | } |
... | @@ -362,6 +370,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -362,6 +370,7 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
362 | * | 370 | * |
363 | * @throws DataModelException a violation of data model rules. | 371 | * @throws DataModelException a violation of data model rules. |
364 | */ | 372 | */ |
373 | + @Override | ||
365 | public void validateDataOnExit() throws DataModelException { | 374 | public void validateDataOnExit() throws DataModelException { |
366 | // TODO auto-generated method stub, to be implemented by parser | 375 | // TODO auto-generated method stub, to be implemented by parser |
367 | } | 376 | } |
... | @@ -388,17 +397,62 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -388,17 +397,62 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
388 | 397 | ||
389 | /** | 398 | /** |
390 | * Generate the java code corresponding to YANG container. | 399 | * Generate the java code corresponding to YANG container. |
400 | + * | ||
401 | + * @throws IOException when fails to generate the source files. | ||
391 | */ | 402 | */ |
392 | - public void generateJavaCodeEntry() { | 403 | + @Override |
393 | - //TODO: autogenerated method stub, to be implemented | 404 | + public void generateJavaCodeEntry() throws IOException { |
394 | - return; | 405 | + YangNode parent = getParent(); |
406 | + String modPkg = JavaIdentifierSyntax.getPackageFromParent(parent.getPackage(), getName()); | ||
407 | + setPackage(modPkg); | ||
408 | + | ||
409 | + CachedFileHandle handle = null; | ||
410 | + try { | ||
411 | + FileSystemUtil.createPackage(getPackage(), getName()); | ||
412 | + handle = FileSystemUtil.createSourceFiles(getPackage(), getName(), GeneratedFileType.ALL); | ||
413 | + } catch (IOException e) { | ||
414 | + throw new IOException("Failed to create the source files."); | ||
415 | + } | ||
416 | + setFileHandle(handle); | ||
417 | + addLavesAttributes(); | ||
418 | + addLeafListAttributes(); | ||
419 | + } | ||
420 | + | ||
421 | + /** | ||
422 | + * Adds leaf attributes in generated files. | ||
423 | + */ | ||
424 | + private void addLavesAttributes() { | ||
425 | + | ||
426 | + List<YangLeaf<?>> leaves = getListOfLeaf(); | ||
427 | + if (leaves != null) { | ||
428 | + for (YangLeaf<?> leaf : leaves) { | ||
429 | + getFileHandle().addAttributeInfo(leaf.getDataType(), leaf.getLeafName(), false); | ||
430 | + } | ||
431 | + } | ||
432 | + } | ||
433 | + | ||
434 | + /** | ||
435 | + * Adds leaf list's attributes in generated files. | ||
436 | + */ | ||
437 | + private void addLeafListAttributes() { | ||
438 | + List<YangLeafList<?>> leavesList = getListOfLeafList(); | ||
439 | + if (leavesList != null) { | ||
440 | + for (YangLeafList<?> leafList : leavesList) { | ||
441 | + getFileHandle().addAttributeInfo(leafList.getDataType(), leafList.getLeafName(), true); | ||
442 | + } | ||
443 | + } | ||
444 | + return; | ||
445 | + | ||
395 | } | 446 | } |
396 | 447 | ||
397 | /** | 448 | /** |
398 | * Free resources used to generate code. | 449 | * Free resources used to generate code. |
450 | + * | ||
451 | + * @throws IOException when fails to generate source files. | ||
399 | */ | 452 | */ |
400 | - public void generateJavaCodeExit() { | 453 | + @Override |
401 | - //TODO: autogenerated method stub, to be implemented | 454 | + public void generateJavaCodeExit() throws IOException { |
455 | + getFileHandle().close(); | ||
402 | return; | 456 | return; |
403 | } | 457 | } |
404 | } | 458 | } | ... | ... |
... | @@ -75,8 +75,7 @@ import org.onosproject.yangutils.parser.ParsableDataType; | ... | @@ -75,8 +75,7 @@ import org.onosproject.yangutils.parser.ParsableDataType; |
75 | /** | 75 | /** |
76 | * Data model node to maintain information defined in YANG grouping. | 76 | * Data model node to maintain information defined in YANG grouping. |
77 | */ | 77 | */ |
78 | -public class YangGrouping extends YangNode | 78 | +public class YangGrouping extends YangNode implements YangLeavesHolder, YangCommonInfo, Parsable { |
79 | - implements YangLeavesHolder, YangCommonInfo, Parsable { | ||
80 | 79 | ||
81 | /** | 80 | /** |
82 | * Name of the grouping. | 81 | * Name of the grouping. |
... | @@ -91,14 +90,12 @@ public class YangGrouping extends YangNode | ... | @@ -91,14 +90,12 @@ public class YangGrouping extends YangNode |
91 | /** | 90 | /** |
92 | * List of leaves. | 91 | * List of leaves. |
93 | */ | 92 | */ |
94 | - @SuppressWarnings("rawtypes") | 93 | + private List<YangLeaf<?>> listOfLeaf; |
95 | - private List<YangLeaf> listOfLeaf; | ||
96 | 94 | ||
97 | /** | 95 | /** |
98 | * List of leaf lists. | 96 | * List of leaf lists. |
99 | */ | 97 | */ |
100 | - @SuppressWarnings("rawtypes") | 98 | + private List<YangLeafList<?>> listOfLeafList; |
101 | - private List<YangLeafList> listOfLeafList; | ||
102 | 99 | ||
103 | /** | 100 | /** |
104 | * Reference of the module. | 101 | * Reference of the module. |
... | @@ -138,6 +135,7 @@ public class YangGrouping extends YangNode | ... | @@ -138,6 +135,7 @@ public class YangGrouping extends YangNode |
138 | * | 135 | * |
139 | * @return the description. | 136 | * @return the description. |
140 | */ | 137 | */ |
138 | + @Override | ||
141 | public String getDescription() { | 139 | public String getDescription() { |
142 | return description; | 140 | return description; |
143 | } | 141 | } |
... | @@ -147,6 +145,7 @@ public class YangGrouping extends YangNode | ... | @@ -147,6 +145,7 @@ public class YangGrouping extends YangNode |
147 | * | 145 | * |
148 | * @param description set the description. | 146 | * @param description set the description. |
149 | */ | 147 | */ |
148 | + @Override | ||
150 | public void setDescription(String description) { | 149 | public void setDescription(String description) { |
151 | this.description = description; | 150 | this.description = description; |
152 | } | 151 | } |
... | @@ -156,8 +155,8 @@ public class YangGrouping extends YangNode | ... | @@ -156,8 +155,8 @@ public class YangGrouping extends YangNode |
156 | * | 155 | * |
157 | * @return the list of leaves. | 156 | * @return the list of leaves. |
158 | */ | 157 | */ |
159 | - @SuppressWarnings("rawtypes") | 158 | + @Override |
160 | - public List<YangLeaf> getListOfLeaf() { | 159 | + public List<YangLeaf<?>> getListOfLeaf() { |
161 | return listOfLeaf; | 160 | return listOfLeaf; |
162 | } | 161 | } |
163 | 162 | ||
... | @@ -166,8 +165,7 @@ public class YangGrouping extends YangNode | ... | @@ -166,8 +165,7 @@ public class YangGrouping extends YangNode |
166 | * | 165 | * |
167 | * @param leafsList the list of leaf to set. | 166 | * @param leafsList the list of leaf to set. |
168 | */ | 167 | */ |
169 | - @SuppressWarnings("rawtypes") | 168 | + private void setListOfLeaf(List<YangLeaf<?>> leafsList) { |
170 | - private void setListOfLeaf(List<YangLeaf> leafsList) { | ||
171 | listOfLeaf = leafsList; | 169 | listOfLeaf = leafsList; |
172 | } | 170 | } |
173 | 171 | ||
... | @@ -176,10 +174,10 @@ public class YangGrouping extends YangNode | ... | @@ -176,10 +174,10 @@ public class YangGrouping extends YangNode |
176 | * | 174 | * |
177 | * @param leaf the leaf to be added. | 175 | * @param leaf the leaf to be added. |
178 | */ | 176 | */ |
179 | - @SuppressWarnings("rawtypes") | 177 | + @Override |
180 | public void addLeaf(YangLeaf<?> leaf) { | 178 | public void addLeaf(YangLeaf<?> leaf) { |
181 | if (getListOfLeaf() == null) { | 179 | if (getListOfLeaf() == null) { |
182 | - setListOfLeaf(new LinkedList<YangLeaf>()); | 180 | + setListOfLeaf(new LinkedList<YangLeaf<?>>()); |
183 | } | 181 | } |
184 | 182 | ||
185 | getListOfLeaf().add(leaf); | 183 | getListOfLeaf().add(leaf); |
... | @@ -190,8 +188,8 @@ public class YangGrouping extends YangNode | ... | @@ -190,8 +188,8 @@ public class YangGrouping extends YangNode |
190 | * | 188 | * |
191 | * @return the list of leaf-list. | 189 | * @return the list of leaf-list. |
192 | */ | 190 | */ |
193 | - @SuppressWarnings("rawtypes") | 191 | + @Override |
194 | - public List<YangLeafList> getListOfLeafList() { | 192 | + public List<YangLeafList<?>> getListOfLeafList() { |
195 | return listOfLeafList; | 193 | return listOfLeafList; |
196 | } | 194 | } |
197 | 195 | ||
... | @@ -200,8 +198,7 @@ public class YangGrouping extends YangNode | ... | @@ -200,8 +198,7 @@ public class YangGrouping extends YangNode |
200 | * | 198 | * |
201 | * @param listOfLeafList the list of leaf-list to set. | 199 | * @param listOfLeafList the list of leaf-list to set. |
202 | */ | 200 | */ |
203 | - @SuppressWarnings("rawtypes") | 201 | + private void setListOfLeafList(List<YangLeafList<?>> listOfLeafList) { |
204 | - private void setListOfLeafList(List<YangLeafList> listOfLeafList) { | ||
205 | this.listOfLeafList = listOfLeafList; | 202 | this.listOfLeafList = listOfLeafList; |
206 | } | 203 | } |
207 | 204 | ||
... | @@ -210,10 +207,10 @@ public class YangGrouping extends YangNode | ... | @@ -210,10 +207,10 @@ public class YangGrouping extends YangNode |
210 | * | 207 | * |
211 | * @param leafList the leaf-list to be added. | 208 | * @param leafList the leaf-list to be added. |
212 | */ | 209 | */ |
213 | - @SuppressWarnings("rawtypes") | 210 | + @Override |
214 | public void addLeafList(YangLeafList<?> leafList) { | 211 | public void addLeafList(YangLeafList<?> leafList) { |
215 | if (getListOfLeafList() == null) { | 212 | if (getListOfLeafList() == null) { |
216 | - setListOfLeafList(new LinkedList<YangLeafList>()); | 213 | + setListOfLeafList(new LinkedList<YangLeafList<?>>()); |
217 | } | 214 | } |
218 | 215 | ||
219 | getListOfLeafList().add(leafList); | 216 | getListOfLeafList().add(leafList); |
... | @@ -224,6 +221,7 @@ public class YangGrouping extends YangNode | ... | @@ -224,6 +221,7 @@ public class YangGrouping extends YangNode |
224 | * | 221 | * |
225 | * @return the reference. | 222 | * @return the reference. |
226 | */ | 223 | */ |
224 | + @Override | ||
227 | public String getReference() { | 225 | public String getReference() { |
228 | return reference; | 226 | return reference; |
229 | } | 227 | } |
... | @@ -233,6 +231,7 @@ public class YangGrouping extends YangNode | ... | @@ -233,6 +231,7 @@ public class YangGrouping extends YangNode |
233 | * | 231 | * |
234 | * @param reference the reference to set. | 232 | * @param reference the reference to set. |
235 | */ | 233 | */ |
234 | + @Override | ||
236 | public void setReference(String reference) { | 235 | public void setReference(String reference) { |
237 | this.reference = reference; | 236 | this.reference = reference; |
238 | } | 237 | } |
... | @@ -242,6 +241,7 @@ public class YangGrouping extends YangNode | ... | @@ -242,6 +241,7 @@ public class YangGrouping extends YangNode |
242 | * | 241 | * |
243 | * @return the status. | 242 | * @return the status. |
244 | */ | 243 | */ |
244 | + @Override | ||
245 | public YangStatusType getStatus() { | 245 | public YangStatusType getStatus() { |
246 | return status; | 246 | return status; |
247 | } | 247 | } |
... | @@ -251,6 +251,7 @@ public class YangGrouping extends YangNode | ... | @@ -251,6 +251,7 @@ public class YangGrouping extends YangNode |
251 | * | 251 | * |
252 | * @param status the status to set. | 252 | * @param status the status to set. |
253 | */ | 253 | */ |
254 | + @Override | ||
254 | public void setStatus(YangStatusType status) { | 255 | public void setStatus(YangStatusType status) { |
255 | this.status = status; | 256 | this.status = status; |
256 | } | 257 | } |
... | @@ -260,6 +261,7 @@ public class YangGrouping extends YangNode | ... | @@ -260,6 +261,7 @@ public class YangGrouping extends YangNode |
260 | * | 261 | * |
261 | * @return returns GROUPING_DATA. | 262 | * @return returns GROUPING_DATA. |
262 | */ | 263 | */ |
264 | + @Override | ||
263 | public ParsableDataType getParsableDataType() { | 265 | public ParsableDataType getParsableDataType() { |
264 | return ParsableDataType.GROUPING_DATA; | 266 | return ParsableDataType.GROUPING_DATA; |
265 | } | 267 | } |
... | @@ -269,6 +271,7 @@ public class YangGrouping extends YangNode | ... | @@ -269,6 +271,7 @@ public class YangGrouping extends YangNode |
269 | * | 271 | * |
270 | * @throws DataModelException a violation of data model rules. | 272 | * @throws DataModelException a violation of data model rules. |
271 | */ | 273 | */ |
274 | + @Override | ||
272 | public void validateDataOnEntry() throws DataModelException { | 275 | public void validateDataOnEntry() throws DataModelException { |
273 | // TODO auto-generated method stub, to be implemented by parser | 276 | // TODO auto-generated method stub, to be implemented by parser |
274 | } | 277 | } |
... | @@ -278,6 +281,7 @@ public class YangGrouping extends YangNode | ... | @@ -278,6 +281,7 @@ public class YangGrouping extends YangNode |
278 | * | 281 | * |
279 | * @throws DataModelException a violation of data model rules. | 282 | * @throws DataModelException a violation of data model rules. |
280 | */ | 283 | */ |
284 | + @Override | ||
281 | public void validateDataOnExit() throws DataModelException { | 285 | public void validateDataOnExit() throws DataModelException { |
282 | // TODO auto-generated method stub, to be implemented by parser | 286 | // TODO auto-generated method stub, to be implemented by parser |
283 | } | 287 | } |
... | @@ -285,6 +289,7 @@ public class YangGrouping extends YangNode | ... | @@ -285,6 +289,7 @@ public class YangGrouping extends YangNode |
285 | /* (non-Javadoc) | 289 | /* (non-Javadoc) |
286 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry() | 290 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry() |
287 | */ | 291 | */ |
292 | + @Override | ||
288 | public void generateJavaCodeEntry() { | 293 | public void generateJavaCodeEntry() { |
289 | // TODO Auto-generated method stub | 294 | // TODO Auto-generated method stub |
290 | 295 | ||
... | @@ -293,6 +298,7 @@ public class YangGrouping extends YangNode | ... | @@ -293,6 +298,7 @@ public class YangGrouping extends YangNode |
293 | /* (non-Javadoc) | 298 | /* (non-Javadoc) |
294 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit() | 299 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit() |
295 | */ | 300 | */ |
301 | + @Override | ||
296 | public void generateJavaCodeExit() { | 302 | public void generateJavaCodeExit() { |
297 | // TODO Auto-generated method stub | 303 | // TODO Auto-generated method stub |
298 | 304 | ... | ... |
... | @@ -27,8 +27,7 @@ public interface YangLeavesHolder { | ... | @@ -27,8 +27,7 @@ public interface YangLeavesHolder { |
27 | * | 27 | * |
28 | * @return the list of leaves. | 28 | * @return the list of leaves. |
29 | */ | 29 | */ |
30 | - @SuppressWarnings("rawtypes") | 30 | + public List<YangLeaf<?>> getListOfLeaf(); |
31 | - public List<YangLeaf> getListOfLeaf(); | ||
32 | 31 | ||
33 | /** | 32 | /** |
34 | * Add a leaf in data holder like container / list. | 33 | * Add a leaf in data holder like container / list. |
... | @@ -42,8 +41,7 @@ public interface YangLeavesHolder { | ... | @@ -42,8 +41,7 @@ public interface YangLeavesHolder { |
42 | * | 41 | * |
43 | * @return the list of leaf-list. | 42 | * @return the list of leaf-list. |
44 | */ | 43 | */ |
45 | - @SuppressWarnings("rawtypes") | 44 | + List<YangLeafList<?>> getListOfLeafList(); |
46 | - List<YangLeafList> getListOfLeafList(); | ||
47 | 45 | ||
48 | /** | 46 | /** |
49 | * Add a leaf-list in data holder like container / list. | 47 | * Add a leaf-list in data holder like container / list. | ... | ... |
... | @@ -65,8 +65,7 @@ import org.onosproject.yangutils.parser.ParsableDataType; | ... | @@ -65,8 +65,7 @@ import org.onosproject.yangutils.parser.ParsableDataType; |
65 | /** | 65 | /** |
66 | * List data represented in YANG. | 66 | * List data represented in YANG. |
67 | */ | 67 | */ |
68 | -public class YangList extends YangNode | 68 | +public class YangList extends YangNode implements YangLeavesHolder, YangCommonInfo, Parsable { |
69 | - implements YangLeavesHolder, YangCommonInfo, Parsable { | ||
70 | 69 | ||
71 | /** | 70 | /** |
72 | * name of the YANG list. | 71 | * name of the YANG list. |
... | @@ -113,14 +112,12 @@ public class YangList extends YangNode | ... | @@ -113,14 +112,12 @@ public class YangList extends YangNode |
113 | /** | 112 | /** |
114 | * List of leaves. | 113 | * List of leaves. |
115 | */ | 114 | */ |
116 | - @SuppressWarnings("rawtypes") | 115 | + private List<YangLeaf<?>> listOfLeaf; |
117 | - private List<YangLeaf> listOfLeaf; | ||
118 | 116 | ||
119 | /** | 117 | /** |
120 | * List of leaf-lists. | 118 | * List of leaf-lists. |
121 | */ | 119 | */ |
122 | - @SuppressWarnings("rawtypes") | 120 | + private List<YangLeafList<?>> listOfLeafList; |
123 | - private List<YangLeafList> listOfLeafList; | ||
124 | 121 | ||
125 | /** | 122 | /** |
126 | * The "max-elements" statement, which is optional, takes as an argument a | 123 | * The "max-elements" statement, which is optional, takes as an argument a |
... | @@ -209,6 +206,7 @@ public class YangList extends YangNode | ... | @@ -209,6 +206,7 @@ public class YangList extends YangNode |
209 | * | 206 | * |
210 | * @return the description. | 207 | * @return the description. |
211 | */ | 208 | */ |
209 | + @Override | ||
212 | public String getDescription() { | 210 | public String getDescription() { |
213 | return description; | 211 | return description; |
214 | } | 212 | } |
... | @@ -218,6 +216,7 @@ public class YangList extends YangNode | ... | @@ -218,6 +216,7 @@ public class YangList extends YangNode |
218 | * | 216 | * |
219 | * @param description set the description. | 217 | * @param description set the description. |
220 | */ | 218 | */ |
219 | + @Override | ||
221 | public void setDescription(String description) { | 220 | public void setDescription(String description) { |
222 | this.description = description; | 221 | this.description = description; |
223 | } | 222 | } |
... | @@ -258,8 +257,8 @@ public class YangList extends YangNode | ... | @@ -258,8 +257,8 @@ public class YangList extends YangNode |
258 | * | 257 | * |
259 | * @return the list of leaves. | 258 | * @return the list of leaves. |
260 | */ | 259 | */ |
261 | - @SuppressWarnings("rawtypes") | 260 | + @Override |
262 | - public List<YangLeaf> getListOfLeaf() { | 261 | + public List<YangLeaf<?>> getListOfLeaf() { |
263 | return listOfLeaf; | 262 | return listOfLeaf; |
264 | } | 263 | } |
265 | 264 | ||
... | @@ -268,8 +267,7 @@ public class YangList extends YangNode | ... | @@ -268,8 +267,7 @@ public class YangList extends YangNode |
268 | * | 267 | * |
269 | * @param leafsList the list of leaf to set. | 268 | * @param leafsList the list of leaf to set. |
270 | */ | 269 | */ |
271 | - @SuppressWarnings("rawtypes") | 270 | + private void setListOfLeaf(List<YangLeaf<?>> leafsList) { |
272 | - private void setListOfLeaf(List<YangLeaf> leafsList) { | ||
273 | listOfLeaf = leafsList; | 271 | listOfLeaf = leafsList; |
274 | } | 272 | } |
275 | 273 | ||
... | @@ -278,10 +276,10 @@ public class YangList extends YangNode | ... | @@ -278,10 +276,10 @@ public class YangList extends YangNode |
278 | * | 276 | * |
279 | * @param leaf the leaf to be added. | 277 | * @param leaf the leaf to be added. |
280 | */ | 278 | */ |
281 | - @SuppressWarnings("rawtypes") | 279 | + @Override |
282 | public void addLeaf(YangLeaf<?> leaf) { | 280 | public void addLeaf(YangLeaf<?> leaf) { |
283 | if (getListOfLeaf() == null) { | 281 | if (getListOfLeaf() == null) { |
284 | - setListOfLeaf(new LinkedList<YangLeaf>()); | 282 | + setListOfLeaf(new LinkedList<YangLeaf<?>>()); |
285 | } | 283 | } |
286 | 284 | ||
287 | getListOfLeaf().add(leaf); | 285 | getListOfLeaf().add(leaf); |
... | @@ -292,8 +290,8 @@ public class YangList extends YangNode | ... | @@ -292,8 +290,8 @@ public class YangList extends YangNode |
292 | * | 290 | * |
293 | * @return the list of leaf-list. | 291 | * @return the list of leaf-list. |
294 | */ | 292 | */ |
295 | - @SuppressWarnings("rawtypes") | 293 | + @Override |
296 | - public List<YangLeafList> getListOfLeafList() { | 294 | + public List<YangLeafList<?>> getListOfLeafList() { |
297 | return listOfLeafList; | 295 | return listOfLeafList; |
298 | } | 296 | } |
299 | 297 | ||
... | @@ -302,8 +300,7 @@ public class YangList extends YangNode | ... | @@ -302,8 +300,7 @@ public class YangList extends YangNode |
302 | * | 300 | * |
303 | * @param listOfLeafList the list of leaf-list to set. | 301 | * @param listOfLeafList the list of leaf-list to set. |
304 | */ | 302 | */ |
305 | - @SuppressWarnings("rawtypes") | 303 | + private void setListOfLeafList(List<YangLeafList<?>> listOfLeafList) { |
306 | - private void setListOfLeafList(List<YangLeafList> listOfLeafList) { | ||
307 | this.listOfLeafList = listOfLeafList; | 304 | this.listOfLeafList = listOfLeafList; |
308 | } | 305 | } |
309 | 306 | ||
... | @@ -312,10 +309,10 @@ public class YangList extends YangNode | ... | @@ -312,10 +309,10 @@ public class YangList extends YangNode |
312 | * | 309 | * |
313 | * @param leafList the leaf-list to be added. | 310 | * @param leafList the leaf-list to be added. |
314 | */ | 311 | */ |
315 | - @SuppressWarnings("rawtypes") | 312 | + @Override |
316 | public void addLeafList(YangLeafList<?> leafList) { | 313 | public void addLeafList(YangLeafList<?> leafList) { |
317 | if (getListOfLeafList() == null) { | 314 | if (getListOfLeafList() == null) { |
318 | - setListOfLeafList(new LinkedList<YangLeafList>()); | 315 | + setListOfLeafList(new LinkedList<YangLeafList<?>>()); |
319 | } | 316 | } |
320 | 317 | ||
321 | getListOfLeafList().add(leafList); | 318 | getListOfLeafList().add(leafList); |
... | @@ -362,6 +359,7 @@ public class YangList extends YangNode | ... | @@ -362,6 +359,7 @@ public class YangList extends YangNode |
362 | * | 359 | * |
363 | * @return the reference. | 360 | * @return the reference. |
364 | */ | 361 | */ |
362 | + @Override | ||
365 | public String getReference() { | 363 | public String getReference() { |
366 | return reference; | 364 | return reference; |
367 | } | 365 | } |
... | @@ -371,6 +369,7 @@ public class YangList extends YangNode | ... | @@ -371,6 +369,7 @@ public class YangList extends YangNode |
371 | * | 369 | * |
372 | * @param reference the reference to set. | 370 | * @param reference the reference to set. |
373 | */ | 371 | */ |
372 | + @Override | ||
374 | public void setReference(String reference) { | 373 | public void setReference(String reference) { |
375 | this.reference = reference; | 374 | this.reference = reference; |
376 | } | 375 | } |
... | @@ -380,6 +379,7 @@ public class YangList extends YangNode | ... | @@ -380,6 +379,7 @@ public class YangList extends YangNode |
380 | * | 379 | * |
381 | * @return the status. | 380 | * @return the status. |
382 | */ | 381 | */ |
382 | + @Override | ||
383 | public YangStatusType getStatus() { | 383 | public YangStatusType getStatus() { |
384 | return status; | 384 | return status; |
385 | } | 385 | } |
... | @@ -389,6 +389,7 @@ public class YangList extends YangNode | ... | @@ -389,6 +389,7 @@ public class YangList extends YangNode |
389 | * | 389 | * |
390 | * @param status the status to set. | 390 | * @param status the status to set. |
391 | */ | 391 | */ |
392 | + @Override | ||
392 | public void setStatus(YangStatusType status) { | 393 | public void setStatus(YangStatusType status) { |
393 | this.status = status; | 394 | this.status = status; |
394 | } | 395 | } |
... | @@ -398,6 +399,7 @@ public class YangList extends YangNode | ... | @@ -398,6 +399,7 @@ public class YangList extends YangNode |
398 | * | 399 | * |
399 | * @return returns LIST_DATA. | 400 | * @return returns LIST_DATA. |
400 | */ | 401 | */ |
402 | + @Override | ||
401 | public ParsableDataType getParsableDataType() { | 403 | public ParsableDataType getParsableDataType() { |
402 | return ParsableDataType.LIST_DATA; | 404 | return ParsableDataType.LIST_DATA; |
403 | } | 405 | } |
... | @@ -407,6 +409,7 @@ public class YangList extends YangNode | ... | @@ -407,6 +409,7 @@ public class YangList extends YangNode |
407 | * | 409 | * |
408 | * @throws DataModelException a violation of data model rules. | 410 | * @throws DataModelException a violation of data model rules. |
409 | */ | 411 | */ |
412 | + @Override | ||
410 | public void validateDataOnEntry() throws DataModelException { | 413 | public void validateDataOnEntry() throws DataModelException { |
411 | // TODO auto-generated method stub, to be implemented by parser | 414 | // TODO auto-generated method stub, to be implemented by parser |
412 | } | 415 | } |
... | @@ -416,6 +419,7 @@ public class YangList extends YangNode | ... | @@ -416,6 +419,7 @@ public class YangList extends YangNode |
416 | * | 419 | * |
417 | * @throws DataModelException a violation of data model rules. | 420 | * @throws DataModelException a violation of data model rules. |
418 | */ | 421 | */ |
422 | + @Override | ||
419 | public void validateDataOnExit() throws DataModelException { | 423 | public void validateDataOnExit() throws DataModelException { |
420 | // TODO auto-generated method stub, to be implemented by parser | 424 | // TODO auto-generated method stub, to be implemented by parser |
421 | } | 425 | } |
... | @@ -423,6 +427,7 @@ public class YangList extends YangNode | ... | @@ -423,6 +427,7 @@ public class YangList extends YangNode |
423 | /* (non-Javadoc) | 427 | /* (non-Javadoc) |
424 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry() | 428 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry() |
425 | */ | 429 | */ |
430 | + @Override | ||
426 | public void generateJavaCodeEntry() { | 431 | public void generateJavaCodeEntry() { |
427 | // TODO Auto-generated method stub | 432 | // TODO Auto-generated method stub |
428 | 433 | ||
... | @@ -431,6 +436,7 @@ public class YangList extends YangNode | ... | @@ -431,6 +436,7 @@ public class YangList extends YangNode |
431 | /* (non-Javadoc) | 436 | /* (non-Javadoc) |
432 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit() | 437 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit() |
433 | */ | 438 | */ |
439 | + @Override | ||
434 | public void generateJavaCodeExit() { | 440 | public void generateJavaCodeExit() { |
435 | // TODO Auto-generated method stub | 441 | // TODO Auto-generated method stub |
436 | 442 | ... | ... |
... | @@ -15,14 +15,18 @@ | ... | @@ -15,14 +15,18 @@ |
15 | */ | 15 | */ |
16 | package org.onosproject.yangutils.datamodel; | 16 | package org.onosproject.yangutils.datamodel; |
17 | 17 | ||
18 | +import java.io.IOException; | ||
18 | import java.util.LinkedList; | 19 | import java.util.LinkedList; |
19 | import java.util.List; | 20 | import java.util.List; |
20 | 21 | ||
21 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 22 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
22 | import org.onosproject.yangutils.parser.Parsable; | 23 | import org.onosproject.yangutils.parser.Parsable; |
23 | import org.onosproject.yangutils.parser.ParsableDataType; | 24 | import org.onosproject.yangutils.parser.ParsableDataType; |
25 | +import org.onosproject.yangutils.translator.CachedFileHandle; | ||
24 | import org.onosproject.yangutils.translator.CodeGenerator; | 26 | import org.onosproject.yangutils.translator.CodeGenerator; |
25 | -import org.onosproject.yangutils.utils.io.CachedFileHandle; | 27 | +import org.onosproject.yangutils.translator.GeneratedFileType; |
28 | +import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax; | ||
29 | +import org.onosproject.yangutils.utils.io.impl.FileSystemUtil; | ||
26 | 30 | ||
27 | /*- | 31 | /*- |
28 | * Reference:RFC 6020. | 32 | * Reference:RFC 6020. |
... | @@ -67,8 +71,7 @@ import org.onosproject.yangutils.utils.io.CachedFileHandle; | ... | @@ -67,8 +71,7 @@ import org.onosproject.yangutils.utils.io.CachedFileHandle; |
67 | /** | 71 | /** |
68 | * Data model node to maintain information defined in YANG module. | 72 | * Data model node to maintain information defined in YANG module. |
69 | */ | 73 | */ |
70 | -public class YangModule extends YangNode | 74 | +public class YangModule extends YangNode implements YangLeavesHolder, YangDesc, YangReference, Parsable, CodeGenerator { |
71 | - implements YangLeavesHolder, YangDesc, YangReference, Parsable, CodeGenerator { | ||
72 | 75 | ||
73 | /** | 76 | /** |
74 | * Name of the module. | 77 | * Name of the module. |
... | @@ -109,14 +112,12 @@ public class YangModule extends YangNode | ... | @@ -109,14 +112,12 @@ public class YangModule extends YangNode |
109 | /** | 112 | /** |
110 | * List of leaves at root level in the module. | 113 | * List of leaves at root level in the module. |
111 | */ | 114 | */ |
112 | - @SuppressWarnings("rawtypes") | 115 | + private List<YangLeaf<?>> listOfLeaf; |
113 | - private List<YangLeaf> listOfLeaf; | ||
114 | 116 | ||
115 | /** | 117 | /** |
116 | * List of leaf-lists at root level in the module. | 118 | * List of leaf-lists at root level in the module. |
117 | */ | 119 | */ |
118 | - @SuppressWarnings("rawtypes") | 120 | + private List<YangLeafList<?>> listOfLeafList; |
119 | - private List<YangLeafList> listOfLeafList; | ||
120 | 121 | ||
121 | /** | 122 | /** |
122 | * Name space of the module. | 123 | * Name space of the module. |
... | @@ -209,6 +210,7 @@ public class YangModule extends YangNode | ... | @@ -209,6 +210,7 @@ public class YangModule extends YangNode |
209 | * | 210 | * |
210 | * @return the description of YANG module. | 211 | * @return the description of YANG module. |
211 | */ | 212 | */ |
213 | + @Override | ||
212 | public String getDescription() { | 214 | public String getDescription() { |
213 | return description; | 215 | return description; |
214 | } | 216 | } |
... | @@ -218,6 +220,7 @@ public class YangModule extends YangNode | ... | @@ -218,6 +220,7 @@ public class YangModule extends YangNode |
218 | * | 220 | * |
219 | * @param description set the description of YANG module. | 221 | * @param description set the description of YANG module. |
220 | */ | 222 | */ |
223 | + @Override | ||
221 | public void setDescription(String description) { | 224 | public void setDescription(String description) { |
222 | this.description = description; | 225 | this.description = description; |
223 | } | 226 | } |
... | @@ -294,8 +297,8 @@ public class YangModule extends YangNode | ... | @@ -294,8 +297,8 @@ public class YangModule extends YangNode |
294 | * | 297 | * |
295 | * @return the list of leaves. | 298 | * @return the list of leaves. |
296 | */ | 299 | */ |
297 | - @SuppressWarnings("rawtypes") | 300 | + @Override |
298 | - public List<YangLeaf> getListOfLeaf() { | 301 | + public List<YangLeaf<?>> getListOfLeaf() { |
299 | return listOfLeaf; | 302 | return listOfLeaf; |
300 | } | 303 | } |
301 | 304 | ||
... | @@ -304,8 +307,7 @@ public class YangModule extends YangNode | ... | @@ -304,8 +307,7 @@ public class YangModule extends YangNode |
304 | * | 307 | * |
305 | * @param leafsList the list of leaf to set. | 308 | * @param leafsList the list of leaf to set. |
306 | */ | 309 | */ |
307 | - @SuppressWarnings("rawtypes") | 310 | + private void setListOfLeaf(List<YangLeaf<?>> leafsList) { |
308 | - private void setListOfLeaf(List<YangLeaf> leafsList) { | ||
309 | listOfLeaf = leafsList; | 311 | listOfLeaf = leafsList; |
310 | } | 312 | } |
311 | 313 | ||
... | @@ -314,10 +316,10 @@ public class YangModule extends YangNode | ... | @@ -314,10 +316,10 @@ public class YangModule extends YangNode |
314 | * | 316 | * |
315 | * @param leaf the leaf to be added. | 317 | * @param leaf the leaf to be added. |
316 | */ | 318 | */ |
317 | - @SuppressWarnings("rawtypes") | 319 | + @Override |
318 | public void addLeaf(YangLeaf<?> leaf) { | 320 | public void addLeaf(YangLeaf<?> leaf) { |
319 | if (getListOfLeaf() == null) { | 321 | if (getListOfLeaf() == null) { |
320 | - setListOfLeaf(new LinkedList<YangLeaf>()); | 322 | + setListOfLeaf(new LinkedList<YangLeaf<?>>()); |
321 | } | 323 | } |
322 | 324 | ||
323 | getListOfLeaf().add(leaf); | 325 | getListOfLeaf().add(leaf); |
... | @@ -328,8 +330,8 @@ public class YangModule extends YangNode | ... | @@ -328,8 +330,8 @@ public class YangModule extends YangNode |
328 | * | 330 | * |
329 | * @return the list of leaf-list. | 331 | * @return the list of leaf-list. |
330 | */ | 332 | */ |
331 | - @SuppressWarnings("rawtypes") | 333 | + @Override |
332 | - public List<YangLeafList> getListOfLeafList() { | 334 | + public List<YangLeafList<?>> getListOfLeafList() { |
333 | return listOfLeafList; | 335 | return listOfLeafList; |
334 | } | 336 | } |
335 | 337 | ||
... | @@ -338,8 +340,7 @@ public class YangModule extends YangNode | ... | @@ -338,8 +340,7 @@ public class YangModule extends YangNode |
338 | * | 340 | * |
339 | * @param listOfLeafList the list of leaf-list to set. | 341 | * @param listOfLeafList the list of leaf-list to set. |
340 | */ | 342 | */ |
341 | - @SuppressWarnings("rawtypes") | 343 | + private void setListOfLeafList(List<YangLeafList<?>> listOfLeafList) { |
342 | - private void setListOfLeafList(List<YangLeafList> listOfLeafList) { | ||
343 | this.listOfLeafList = listOfLeafList; | 344 | this.listOfLeafList = listOfLeafList; |
344 | } | 345 | } |
345 | 346 | ||
... | @@ -348,10 +349,10 @@ public class YangModule extends YangNode | ... | @@ -348,10 +349,10 @@ public class YangModule extends YangNode |
348 | * | 349 | * |
349 | * @param leafList the leaf-list to be added. | 350 | * @param leafList the leaf-list to be added. |
350 | */ | 351 | */ |
351 | - @SuppressWarnings("rawtypes") | 352 | + @Override |
352 | public void addLeafList(YangLeafList<?> leafList) { | 353 | public void addLeafList(YangLeafList<?> leafList) { |
353 | if (getListOfLeafList() == null) { | 354 | if (getListOfLeafList() == null) { |
354 | - setListOfLeafList(new LinkedList<YangLeafList>()); | 355 | + setListOfLeafList(new LinkedList<YangLeafList<?>>()); |
355 | } | 356 | } |
356 | 357 | ||
357 | getListOfLeafList().add(leafList); | 358 | getListOfLeafList().add(leafList); |
... | @@ -416,6 +417,7 @@ public class YangModule extends YangNode | ... | @@ -416,6 +417,7 @@ public class YangModule extends YangNode |
416 | * | 417 | * |
417 | * @return the reference. | 418 | * @return the reference. |
418 | */ | 419 | */ |
420 | + @Override | ||
419 | public String getReference() { | 421 | public String getReference() { |
420 | return reference; | 422 | return reference; |
421 | } | 423 | } |
... | @@ -425,6 +427,7 @@ public class YangModule extends YangNode | ... | @@ -425,6 +427,7 @@ public class YangModule extends YangNode |
425 | * | 427 | * |
426 | * @param reference the reference to set. | 428 | * @param reference the reference to set. |
427 | */ | 429 | */ |
430 | + @Override | ||
428 | public void setReference(String reference) { | 431 | public void setReference(String reference) { |
429 | this.reference = reference; | 432 | this.reference = reference; |
430 | } | 433 | } |
... | @@ -508,6 +511,7 @@ public class YangModule extends YangNode | ... | @@ -508,6 +511,7 @@ public class YangModule extends YangNode |
508 | * | 511 | * |
509 | * @return returns MODULE_DATA. | 512 | * @return returns MODULE_DATA. |
510 | */ | 513 | */ |
514 | + @Override | ||
511 | public ParsableDataType getParsableDataType() { | 515 | public ParsableDataType getParsableDataType() { |
512 | return ParsableDataType.MODULE_DATA; | 516 | return ParsableDataType.MODULE_DATA; |
513 | } | 517 | } |
... | @@ -517,6 +521,7 @@ public class YangModule extends YangNode | ... | @@ -517,6 +521,7 @@ public class YangModule extends YangNode |
517 | * | 521 | * |
518 | * @throws DataModelException a violation of data model rules | 522 | * @throws DataModelException a violation of data model rules |
519 | */ | 523 | */ |
524 | + @Override | ||
520 | public void validateDataOnEntry() throws DataModelException { | 525 | public void validateDataOnEntry() throws DataModelException { |
521 | // TODO auto-generated method stub, to be implemented by parser | 526 | // TODO auto-generated method stub, to be implemented by parser |
522 | } | 527 | } |
... | @@ -526,24 +531,67 @@ public class YangModule extends YangNode | ... | @@ -526,24 +531,67 @@ public class YangModule extends YangNode |
526 | * | 531 | * |
527 | * @throws DataModelException a violation of data model rules | 532 | * @throws DataModelException a violation of data model rules |
528 | */ | 533 | */ |
534 | + @Override | ||
529 | public void validateDataOnExit() throws DataModelException { | 535 | public void validateDataOnExit() throws DataModelException { |
530 | // TODO auto-generated method stub, to be implemented by parser | 536 | // TODO auto-generated method stub, to be implemented by parser |
531 | } | 537 | } |
532 | 538 | ||
533 | /** | 539 | /** |
534 | * Generates java code for module. | 540 | * Generates java code for module. |
541 | + * | ||
542 | + * @throws IOException when fails to generate the source files. | ||
535 | */ | 543 | */ |
536 | - public void generateJavaCodeEntry() { | 544 | + @Override |
537 | - //TODO: autogenerated method stub, to be implemented | 545 | + public void generateJavaCodeEntry() throws IOException { |
546 | + String modPkg = JavaIdentifierSyntax.getRootPackage(getVersion(), getNameSpace().getUri(), | ||
547 | + getRevision().getRevDate()); | ||
548 | + setPackage(modPkg); | ||
549 | + | ||
550 | + CachedFileHandle handle = null; | ||
551 | + try { | ||
552 | + FileSystemUtil.createPackage(getPackage(), getName()); | ||
553 | + handle = FileSystemUtil.createSourceFiles(getPackage(), getName(), GeneratedFileType.ALL); | ||
554 | + } catch (IOException e) { | ||
555 | + throw new IOException("Failed to create the source files."); | ||
556 | + } | ||
557 | + setFileHandle(handle); | ||
558 | + addLavesAttributes(); | ||
559 | + addLeafListAttributes(); | ||
560 | + } | ||
538 | 561 | ||
539 | - return; | 562 | + /** |
563 | + * Adds leaf attributes in generated files. | ||
564 | + */ | ||
565 | + private void addLavesAttributes() { | ||
566 | + | ||
567 | + List<YangLeaf<?>> leaves = getListOfLeaf(); | ||
568 | + if (leaves != null) { | ||
569 | + for (YangLeaf<?> leaf : leaves) { | ||
570 | + getFileHandle().addAttributeInfo(leaf.getDataType(), leaf.getLeafName(), false); | ||
571 | + } | ||
572 | + } | ||
573 | + } | ||
574 | + | ||
575 | + /** | ||
576 | + * Adds leaf list's attributes in generated files. | ||
577 | + */ | ||
578 | + private void addLeafListAttributes() { | ||
579 | + List<YangLeafList<?>> leavesList = getListOfLeafList(); | ||
580 | + if (leavesList != null) { | ||
581 | + for (YangLeafList<?> leafList : leavesList) { | ||
582 | + getFileHandle().addAttributeInfo(leafList.getDataType(), leafList.getLeafName(), true); | ||
583 | + } | ||
584 | + } | ||
540 | } | 585 | } |
541 | 586 | ||
542 | /** | 587 | /** |
543 | * Free resources used to generate code. | 588 | * Free resources used to generate code. |
589 | + * | ||
590 | + * @throws IOException when fails to generate source files. | ||
544 | */ | 591 | */ |
545 | - public void generateJavaCodeExit() { | 592 | + @Override |
546 | - //TODO: autogenerated method stub, to be implemented | 593 | + public void generateJavaCodeExit() throws IOException { |
594 | + getFileHandle().close(); | ||
547 | return; | 595 | return; |
548 | } | 596 | } |
549 | 597 | ... | ... |
... | @@ -72,8 +72,7 @@ import org.onosproject.yangutils.parser.ParsableDataType; | ... | @@ -72,8 +72,7 @@ import org.onosproject.yangutils.parser.ParsableDataType; |
72 | /** | 72 | /** |
73 | * Data model node to maintain information defined in YANG sub-module. | 73 | * Data model node to maintain information defined in YANG sub-module. |
74 | */ | 74 | */ |
75 | -public class YangSubModule extends YangNode | 75 | +public class YangSubModule extends YangNode implements YangLeavesHolder, YangDesc, YangReference, Parsable { |
76 | - implements YangLeavesHolder, YangDesc, YangReference, Parsable { | ||
77 | 76 | ||
78 | /** | 77 | /** |
79 | * Name of sub module. | 78 | * Name of sub module. |
... | @@ -114,14 +113,12 @@ public class YangSubModule extends YangNode | ... | @@ -114,14 +113,12 @@ public class YangSubModule extends YangNode |
114 | /** | 113 | /** |
115 | * List of leaves at root level in the sub-module. | 114 | * List of leaves at root level in the sub-module. |
116 | */ | 115 | */ |
117 | - @SuppressWarnings("rawtypes") | 116 | + private List<YangLeaf<?>> listOfLeaf; |
118 | - private List<YangLeaf> listOfLeaf; | ||
119 | 117 | ||
120 | /** | 118 | /** |
121 | * List of leaf-lists at root level in the sub-module. | 119 | * List of leaf-lists at root level in the sub-module. |
122 | */ | 120 | */ |
123 | - @SuppressWarnings("rawtypes") | 121 | + private List<YangLeafList<?>> listOfLeafList; |
124 | - private List<YangLeafList> listOfLeafList; | ||
125 | 122 | ||
126 | /** | 123 | /** |
127 | * organization owner of the sub-module. | 124 | * organization owner of the sub-module. |
... | @@ -207,6 +204,7 @@ public class YangSubModule extends YangNode | ... | @@ -207,6 +204,7 @@ public class YangSubModule extends YangNode |
207 | * | 204 | * |
208 | * @return the description. | 205 | * @return the description. |
209 | */ | 206 | */ |
207 | + @Override | ||
210 | public String getDescription() { | 208 | public String getDescription() { |
211 | return description; | 209 | return description; |
212 | } | 210 | } |
... | @@ -216,6 +214,7 @@ public class YangSubModule extends YangNode | ... | @@ -216,6 +214,7 @@ public class YangSubModule extends YangNode |
216 | * | 214 | * |
217 | * @param description set the description. | 215 | * @param description set the description. |
218 | */ | 216 | */ |
217 | + @Override | ||
219 | public void setDescription(String description) { | 218 | public void setDescription(String description) { |
220 | this.description = description; | 219 | this.description = description; |
221 | } | 220 | } |
... | @@ -292,8 +291,8 @@ public class YangSubModule extends YangNode | ... | @@ -292,8 +291,8 @@ public class YangSubModule extends YangNode |
292 | * | 291 | * |
293 | * @return the list of leaves. | 292 | * @return the list of leaves. |
294 | */ | 293 | */ |
295 | - @SuppressWarnings("rawtypes") | 294 | + @Override |
296 | - public List<YangLeaf> getListOfLeaf() { | 295 | + public List<YangLeaf<?>> getListOfLeaf() { |
297 | return listOfLeaf; | 296 | return listOfLeaf; |
298 | } | 297 | } |
299 | 298 | ||
... | @@ -302,8 +301,7 @@ public class YangSubModule extends YangNode | ... | @@ -302,8 +301,7 @@ public class YangSubModule extends YangNode |
302 | * | 301 | * |
303 | * @param leafsList the list of leaf to set. | 302 | * @param leafsList the list of leaf to set. |
304 | */ | 303 | */ |
305 | - @SuppressWarnings("rawtypes") | 304 | + private void setListOfLeaf(List<YangLeaf<?>> leafsList) { |
306 | - private void setListOfLeaf(List<YangLeaf> leafsList) { | ||
307 | listOfLeaf = leafsList; | 305 | listOfLeaf = leafsList; |
308 | } | 306 | } |
309 | 307 | ||
... | @@ -312,10 +310,10 @@ public class YangSubModule extends YangNode | ... | @@ -312,10 +310,10 @@ public class YangSubModule extends YangNode |
312 | * | 310 | * |
313 | * @param leaf the leaf to be added. | 311 | * @param leaf the leaf to be added. |
314 | */ | 312 | */ |
315 | - @SuppressWarnings("rawtypes") | 313 | + @Override |
316 | public void addLeaf(YangLeaf<?> leaf) { | 314 | public void addLeaf(YangLeaf<?> leaf) { |
317 | if (getListOfLeaf() == null) { | 315 | if (getListOfLeaf() == null) { |
318 | - setListOfLeaf(new LinkedList<YangLeaf>()); | 316 | + setListOfLeaf(new LinkedList<YangLeaf<?>>()); |
319 | } | 317 | } |
320 | 318 | ||
321 | getListOfLeaf().add(leaf); | 319 | getListOfLeaf().add(leaf); |
... | @@ -326,8 +324,8 @@ public class YangSubModule extends YangNode | ... | @@ -326,8 +324,8 @@ public class YangSubModule extends YangNode |
326 | * | 324 | * |
327 | * @return the list of leaf-list. | 325 | * @return the list of leaf-list. |
328 | */ | 326 | */ |
329 | - @SuppressWarnings("rawtypes") | 327 | + @Override |
330 | - public List<YangLeafList> getListOfLeafList() { | 328 | + public List<YangLeafList<?>> getListOfLeafList() { |
331 | return listOfLeafList; | 329 | return listOfLeafList; |
332 | } | 330 | } |
333 | 331 | ||
... | @@ -336,8 +334,7 @@ public class YangSubModule extends YangNode | ... | @@ -336,8 +334,7 @@ public class YangSubModule extends YangNode |
336 | * | 334 | * |
337 | * @param listOfLeafList the list of leaf-list to set. | 335 | * @param listOfLeafList the list of leaf-list to set. |
338 | */ | 336 | */ |
339 | - @SuppressWarnings("rawtypes") | 337 | + private void setListOfLeafList(List<YangLeafList<?>> listOfLeafList) { |
340 | - private void setListOfLeafList(List<YangLeafList> listOfLeafList) { | ||
341 | this.listOfLeafList = listOfLeafList; | 338 | this.listOfLeafList = listOfLeafList; |
342 | } | 339 | } |
343 | 340 | ||
... | @@ -346,10 +343,10 @@ public class YangSubModule extends YangNode | ... | @@ -346,10 +343,10 @@ public class YangSubModule extends YangNode |
346 | * | 343 | * |
347 | * @param leafList the leaf-list to be added. | 344 | * @param leafList the leaf-list to be added. |
348 | */ | 345 | */ |
349 | - @SuppressWarnings("rawtypes") | 346 | + @Override |
350 | public void addLeafList(YangLeafList<?> leafList) { | 347 | public void addLeafList(YangLeafList<?> leafList) { |
351 | if (getListOfLeafList() == null) { | 348 | if (getListOfLeafList() == null) { |
352 | - setListOfLeafList(new LinkedList<YangLeafList>()); | 349 | + setListOfLeafList(new LinkedList<YangLeafList<?>>()); |
353 | } | 350 | } |
354 | 351 | ||
355 | getListOfLeafList().add(leafList); | 352 | getListOfLeafList().add(leafList); |
... | @@ -378,6 +375,7 @@ public class YangSubModule extends YangNode | ... | @@ -378,6 +375,7 @@ public class YangSubModule extends YangNode |
378 | * | 375 | * |
379 | * @return the reference. | 376 | * @return the reference. |
380 | */ | 377 | */ |
378 | + @Override | ||
381 | public String getReference() { | 379 | public String getReference() { |
382 | return reference; | 380 | return reference; |
383 | } | 381 | } |
... | @@ -387,6 +385,7 @@ public class YangSubModule extends YangNode | ... | @@ -387,6 +385,7 @@ public class YangSubModule extends YangNode |
387 | * | 385 | * |
388 | * @param reference the reference to set. | 386 | * @param reference the reference to set. |
389 | */ | 387 | */ |
388 | + @Override | ||
390 | public void setReference(String reference) { | 389 | public void setReference(String reference) { |
391 | this.reference = reference; | 390 | this.reference = reference; |
392 | } | 391 | } |
... | @@ -432,6 +431,7 @@ public class YangSubModule extends YangNode | ... | @@ -432,6 +431,7 @@ public class YangSubModule extends YangNode |
432 | * | 431 | * |
433 | * @return returns SUB_MODULE_DATA. | 432 | * @return returns SUB_MODULE_DATA. |
434 | */ | 433 | */ |
434 | + @Override | ||
435 | public ParsableDataType getParsableDataType() { | 435 | public ParsableDataType getParsableDataType() { |
436 | return ParsableDataType.SUB_MODULE_DATA; | 436 | return ParsableDataType.SUB_MODULE_DATA; |
437 | } | 437 | } |
... | @@ -441,6 +441,7 @@ public class YangSubModule extends YangNode | ... | @@ -441,6 +441,7 @@ public class YangSubModule extends YangNode |
441 | * | 441 | * |
442 | * @throws DataModelException a violation of data model rules. | 442 | * @throws DataModelException a violation of data model rules. |
443 | */ | 443 | */ |
444 | + @Override | ||
444 | public void validateDataOnEntry() throws DataModelException { | 445 | public void validateDataOnEntry() throws DataModelException { |
445 | // TODO auto-generated method stub, to be implemented by parser | 446 | // TODO auto-generated method stub, to be implemented by parser |
446 | } | 447 | } |
... | @@ -450,6 +451,7 @@ public class YangSubModule extends YangNode | ... | @@ -450,6 +451,7 @@ public class YangSubModule extends YangNode |
450 | * | 451 | * |
451 | * @throws DataModelException a violation of data model rules. | 452 | * @throws DataModelException a violation of data model rules. |
452 | */ | 453 | */ |
454 | + @Override | ||
453 | public void validateDataOnExit() throws DataModelException { | 455 | public void validateDataOnExit() throws DataModelException { |
454 | // TODO auto-generated method stub, to be implemented by parser | 456 | // TODO auto-generated method stub, to be implemented by parser |
455 | } | 457 | } |
... | @@ -457,6 +459,7 @@ public class YangSubModule extends YangNode | ... | @@ -457,6 +459,7 @@ public class YangSubModule extends YangNode |
457 | /* (non-Javadoc) | 459 | /* (non-Javadoc) |
458 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry() | 460 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry() |
459 | */ | 461 | */ |
462 | + @Override | ||
460 | public void generateJavaCodeEntry() { | 463 | public void generateJavaCodeEntry() { |
461 | // TODO Auto-generated method stub | 464 | // TODO Auto-generated method stub |
462 | 465 | ||
... | @@ -465,6 +468,7 @@ public class YangSubModule extends YangNode | ... | @@ -465,6 +468,7 @@ public class YangSubModule extends YangNode |
465 | /* (non-Javadoc) | 468 | /* (non-Javadoc) |
466 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit() | 469 | * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit() |
467 | */ | 470 | */ |
471 | + @Override | ||
468 | public void generateJavaCodeExit() { | 472 | public void generateJavaCodeExit() { |
469 | // TODO Auto-generated method stub | 473 | // TODO Auto-generated method stub |
470 | 474 | ... | ... |
... | @@ -24,24 +24,26 @@ import java.util.List; | ... | @@ -24,24 +24,26 @@ import java.util.List; |
24 | import org.apache.maven.plugin.AbstractMojo; | 24 | import org.apache.maven.plugin.AbstractMojo; |
25 | import org.apache.maven.plugin.MojoExecutionException; | 25 | import org.apache.maven.plugin.MojoExecutionException; |
26 | import org.apache.maven.plugin.MojoFailureException; | 26 | import org.apache.maven.plugin.MojoFailureException; |
27 | +import org.apache.maven.plugins.annotations.Component; | ||
27 | import org.apache.maven.plugins.annotations.LifecyclePhase; | 28 | import org.apache.maven.plugins.annotations.LifecyclePhase; |
28 | import org.apache.maven.plugins.annotations.Mojo; | 29 | import org.apache.maven.plugins.annotations.Mojo; |
30 | +import org.apache.maven.plugins.annotations.Parameter; | ||
29 | import org.apache.maven.plugins.annotations.ResolutionScope; | 31 | import org.apache.maven.plugins.annotations.ResolutionScope; |
30 | import org.apache.maven.project.MavenProject; | 32 | import org.apache.maven.project.MavenProject; |
31 | -import org.apache.maven.plugins.annotations.Parameter; | ||
32 | -import org.apache.maven.plugins.annotations.Component; | ||
33 | -import org.sonatype.plexus.build.incremental.BuildContext; | ||
34 | - | ||
35 | import org.onosproject.yangutils.datamodel.YangNode; | 33 | import org.onosproject.yangutils.datamodel.YangNode; |
36 | import org.onosproject.yangutils.parser.YangUtilsParser; | 34 | import org.onosproject.yangutils.parser.YangUtilsParser; |
37 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 35 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
36 | +import org.onosproject.yangutils.parser.impl.YangUtilsParserManager; | ||
37 | +import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator; | ||
38 | +import org.onosproject.yangutils.utils.UtilConstants; | ||
39 | +import org.onosproject.yangutils.utils.io.impl.CopyrightHeader; | ||
38 | import org.onosproject.yangutils.utils.io.impl.YangFileScanner; | 40 | import org.onosproject.yangutils.utils.io.impl.YangFileScanner; |
41 | +import org.onosproject.yangutils.utils.io.impl.YangIoUtils; | ||
42 | +import org.sonatype.plexus.build.incremental.BuildContext; | ||
39 | 43 | ||
40 | /** | 44 | /** |
41 | - * ONOS YANG utility maven plugin. | 45 | + * ONOS YANG utility maven plugin. Goal of plugin is yang2java Execution phase |
42 | - * Goal of plugin is yang2java | 46 | + * in generate-sources requiresDependencyResolution at compile time |
43 | - * Execution phase in generate-sources | ||
44 | - * requiresDependencyResolution at compile time | ||
45 | */ | 47 | */ |
46 | @Mojo(name = "yang2java", defaultPhase = LifecyclePhase.GENERATE_SOURCES, | 48 | @Mojo(name = "yang2java", defaultPhase = LifecyclePhase.GENERATE_SOURCES, |
47 | requiresDependencyResolution = ResolutionScope.COMPILE, requiresProject = true) | 49 | requiresDependencyResolution = ResolutionScope.COMPILE, requiresProject = true) |
... | @@ -71,24 +73,32 @@ public class YangUtilManager extends AbstractMojo { | ... | @@ -71,24 +73,32 @@ public class YangUtilManager extends AbstractMojo { |
71 | @Component | 73 | @Component |
72 | private BuildContext context; | 74 | private BuildContext context; |
73 | 75 | ||
74 | - private YangUtilsParser yangUtilsParser; | 76 | + private YangUtilsParser yangUtilsParser = new YangUtilsParserManager(); |
75 | private String baseDir; | 77 | private String baseDir; |
76 | private String searchDir; | 78 | private String searchDir; |
77 | 79 | ||
78 | /** | 80 | /** |
79 | * Set current project. | 81 | * Set current project. |
80 | * | 82 | * |
81 | - * @param project maven project. | 83 | + * @param curProject maven project. |
82 | */ | 84 | */ |
83 | - public void setCurrentProject(final MavenProject project) { | 85 | + public void setCurrentProject(final MavenProject curProject) { |
84 | - this.project = project; | 86 | + project = curProject; |
85 | } | 87 | } |
86 | 88 | ||
87 | @Override | 89 | @Override |
88 | public void execute() throws MojoExecutionException, MojoFailureException { | 90 | public void execute() throws MojoExecutionException, MojoFailureException { |
89 | 91 | ||
90 | try { | 92 | try { |
93 | + | ||
94 | + CopyrightHeader.parseCopyrightHeader(); | ||
91 | baseDir = project.getBasedir().toString(); | 95 | baseDir = project.getBasedir().toString(); |
96 | + | ||
97 | + /** | ||
98 | + * For deleting the generated code in previous build. | ||
99 | + */ | ||
100 | + YangIoUtils.clean(baseDir); | ||
101 | + | ||
92 | searchDir = baseDir + File.separator + yangFilesDir; | 102 | searchDir = baseDir + File.separator + yangFilesDir; |
93 | 103 | ||
94 | List<String> yangFiles = YangFileScanner.getYangFiles(searchDir); | 104 | List<String> yangFiles = YangFileScanner.getYangFiles(searchDir); |
... | @@ -97,13 +107,25 @@ public class YangUtilManager extends AbstractMojo { | ... | @@ -97,13 +107,25 @@ public class YangUtilManager extends AbstractMojo { |
97 | String yangFile = yangFileIterator.next(); | 107 | String yangFile = yangFileIterator.next(); |
98 | try { | 108 | try { |
99 | YangNode yangNode = yangUtilsParser.getDataModel(yangFile); | 109 | YangNode yangNode = yangUtilsParser.getDataModel(yangFile); |
100 | - //TODO: send this data model to translator and create the corresponding java files. | 110 | + JavaCodeGenerator.generateJavaCode(yangNode); |
101 | } catch (ParserException e) { | 111 | } catch (ParserException e) { |
102 | - getLog().info("Invalid yang file."); | 112 | + String logInfo = "Error in file: " + e.getFileName(); |
113 | + if (e.getLineNumber() != 0) { | ||
114 | + logInfo = logInfo + " at line: " + e.getLineNumber() + " at position: " | ||
115 | + + e.getCharPositionInLine(); | ||
116 | + | ||
117 | + } | ||
118 | + if (e.getMessage() != null) { | ||
119 | + logInfo = logInfo + "\n" + e.getMessage(); | ||
120 | + } | ||
121 | + getLog().info(logInfo); | ||
103 | } | 122 | } |
104 | } | 123 | } |
124 | + | ||
125 | + YangIoUtils.addToSource(baseDir + File.separator + UtilConstants.YANG_GEN_DIR, project, context); | ||
105 | } catch (final IOException e) { | 126 | } catch (final IOException e) { |
106 | - getLog().info("Exception occured"); | 127 | + getLog().info("IOException occured"); |
107 | } | 128 | } |
108 | } | 129 | } |
130 | + | ||
109 | } | 131 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
1 | +/* | ||
2 | + * Copyright 2016 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; | ||
18 | + | ||
19 | +import java.io.IOException; | ||
20 | + | ||
21 | +import org.onosproject.yangutils.datamodel.YangType; | ||
22 | + | ||
23 | +/** | ||
24 | + * Cached java file handle, which supports the addition of member attributes and | ||
25 | + * methods. | ||
26 | + */ | ||
27 | +public interface CachedFileHandle { | ||
28 | + | ||
29 | + /** | ||
30 | + * Add a new attribute to the file(s). | ||
31 | + * | ||
32 | + * @param attrType data type of the added attribute. | ||
33 | + * @param name name of the attribute. | ||
34 | + * @param isListAttr if the current added attribute needs to be maintained | ||
35 | + * in a list. | ||
36 | + */ | ||
37 | + void addAttributeInfo(YangType<?> attrType, String name, boolean isListAttr); | ||
38 | + | ||
39 | + /** | ||
40 | + * Flushes the cached contents to the target file, frees used resources. | ||
41 | + * | ||
42 | + * @throws IOException when failes to generated java files. | ||
43 | + */ | ||
44 | + void close() throws IOException; | ||
45 | +} |
... | @@ -16,6 +16,8 @@ | ... | @@ -16,6 +16,8 @@ |
16 | 16 | ||
17 | package org.onosproject.yangutils.translator; | 17 | package org.onosproject.yangutils.translator; |
18 | 18 | ||
19 | +import java.io.IOException; | ||
20 | + | ||
19 | /** | 21 | /** |
20 | * Abstraction of an entity which provides Code generator functionalities. | 22 | * Abstraction of an entity which provides Code generator functionalities. |
21 | */ | 23 | */ |
... | @@ -23,12 +25,16 @@ public interface CodeGenerator { | ... | @@ -23,12 +25,16 @@ public interface CodeGenerator { |
23 | 25 | ||
24 | /** | 26 | /** |
25 | * Traverse the schema of application and generate corresponding code. | 27 | * Traverse the schema of application and generate corresponding code. |
28 | + * | ||
29 | + * @throws IOException when fails to translate the data model tree. | ||
26 | */ | 30 | */ |
27 | - void generateJavaCodeEntry(); | 31 | + void generateJavaCodeEntry() throws IOException; |
28 | 32 | ||
29 | /** | 33 | /** |
30 | * Traverse the schema of application and generate corresponding code. | 34 | * Traverse the schema of application and generate corresponding code. |
35 | + * | ||
36 | + * @throws IOException when fails to generate java code. | ||
31 | */ | 37 | */ |
32 | - void generateJavaCodeExit(); | 38 | + void generateJavaCodeExit() throws IOException; |
33 | 39 | ||
34 | } | 40 | } | ... | ... |
1 | -/*Copyright 2016.year Open Networking Laboratory | 1 | +/* |
2 | - | 2 | + * Copyright 2016 Open Networking Laboratory |
3 | -Licensed under the Apache License, Version 2.0 (the "License"); | 3 | + * |
4 | -you may not use this file except in compliance with the License. | 4 | + * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | -You may obtain a copy of the License at | 5 | + * you may not use this file except in compliance with the License. |
6 | - | 6 | + * You may obtain a copy of the License at |
7 | - http://www.apache.org/licenses/LICENSE-2.0 | 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 | + */ | ||
8 | 16 | ||
9 | -Unless required by applicable law or agreed to in writing, software | ||
10 | -distributed under the License is distributed on an "AS IS" BASIS, | ||
11 | -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
12 | -See the License for the specific language governing permissions and | ||
13 | -limitations under the License.*/ | ||
14 | package org.onosproject.yangutils.translator; | 17 | package org.onosproject.yangutils.translator; |
15 | 18 | ||
16 | /** | 19 | /** |
... | @@ -18,17 +21,27 @@ package org.onosproject.yangutils.translator; | ... | @@ -18,17 +21,27 @@ package org.onosproject.yangutils.translator; |
18 | */ | 21 | */ |
19 | public enum GeneratedFileType { | 22 | public enum GeneratedFileType { |
20 | /** | 23 | /** |
21 | - * interface file. | 24 | + * Interface file. |
22 | */ | 25 | */ |
23 | INTERFACE, | 26 | INTERFACE, |
24 | 27 | ||
25 | /** | 28 | /** |
26 | - * class file. | 29 | + * Builder class file. |
27 | */ | 30 | */ |
28 | BUILDER_CLASS, | 31 | BUILDER_CLASS, |
29 | 32 | ||
30 | /** | 33 | /** |
34 | + * Builder interface file. | ||
35 | + */ | ||
36 | + BUILDER_INTERFACE, | ||
37 | + | ||
38 | + /** | ||
39 | + * Impl class file. | ||
40 | + */ | ||
41 | + IMPL, | ||
42 | + | ||
43 | + /** | ||
31 | * interface and class file. | 44 | * interface and class file. |
32 | */ | 45 | */ |
33 | - BOTH | 46 | + ALL |
34 | } | 47 | } | ... | ... |
utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/AttributeInfo.java
0 → 100644
1 | +/* | ||
2 | + * Copyright 2016 Open Networking Laboratory | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | + | ||
17 | +package org.onosproject.yangutils.translator.tojava; | ||
18 | + | ||
19 | +import java.io.Serializable; | ||
20 | + | ||
21 | +import org.onosproject.yangutils.datamodel.YangType; | ||
22 | + | ||
23 | +/** | ||
24 | + * Maintains the attribute info corresponding to class/interface generated. | ||
25 | + */ | ||
26 | +public class AttributeInfo implements Serializable { | ||
27 | + | ||
28 | + /** | ||
29 | + * version of serialized info. | ||
30 | + */ | ||
31 | + private static final long serialVersionUID = 201602151004L; | ||
32 | + | ||
33 | + /** | ||
34 | + * The data type info of attribute. | ||
35 | + */ | ||
36 | + private YangType<?> attrType; | ||
37 | + | ||
38 | + /** | ||
39 | + * Name of the attribute. | ||
40 | + */ | ||
41 | + private String name; | ||
42 | + | ||
43 | + /** | ||
44 | + * If the added attribute is a list of info. | ||
45 | + */ | ||
46 | + private boolean isListAttr; | ||
47 | + | ||
48 | + /** | ||
49 | + * If the added attribute has to be accessed in a fully qualified manner. | ||
50 | + */ | ||
51 | + private boolean isQualifiedName; | ||
52 | + | ||
53 | + /** | ||
54 | + * Default constructor. | ||
55 | + */ | ||
56 | + public AttributeInfo() { | ||
57 | + } | ||
58 | + | ||
59 | + /** | ||
60 | + * Get the data type info of attribute. | ||
61 | + * | ||
62 | + * @return the data type info of attribute. | ||
63 | + */ | ||
64 | + public YangType<?> getAttributeType() { | ||
65 | + return attrType; | ||
66 | + } | ||
67 | + | ||
68 | + /** | ||
69 | + * Set the data type info of attribute. | ||
70 | + * | ||
71 | + * @param type the data type info of attribute. | ||
72 | + */ | ||
73 | + public void setAttributeType(YangType<?> type) { | ||
74 | + attrType = type; | ||
75 | + } | ||
76 | + | ||
77 | + /** | ||
78 | + * Get name of the attribute. | ||
79 | + * | ||
80 | + * @return name of the attribute. | ||
81 | + */ | ||
82 | + public String getAttributeName() { | ||
83 | + return name; | ||
84 | + } | ||
85 | + | ||
86 | + /** | ||
87 | + * Set name of the attribute. | ||
88 | + * | ||
89 | + * @param attrName name of the attribute. | ||
90 | + */ | ||
91 | + public void setAttributeName(String attrName) { | ||
92 | + name = attrName; | ||
93 | + } | ||
94 | + | ||
95 | + /** | ||
96 | + * Get if the added attribute is a list of info. | ||
97 | + * | ||
98 | + * @return the if the added attribute is a list of info. | ||
99 | + */ | ||
100 | + public boolean isListAttr() { | ||
101 | + return isListAttr; | ||
102 | + } | ||
103 | + | ||
104 | + /** | ||
105 | + * Set if the added attribute is a list of info. | ||
106 | + * | ||
107 | + * @param isList if the added attribute is a list of info. | ||
108 | + */ | ||
109 | + public void setListAttr(boolean isList) { | ||
110 | + isListAttr = isList; | ||
111 | + } | ||
112 | + | ||
113 | + /** | ||
114 | + * Get if the added attribute has to be accessed in a fully qualified | ||
115 | + * manner. | ||
116 | + * | ||
117 | + * @return the if the added attribute has to be accessed in a fully | ||
118 | + * qualified manner. | ||
119 | + */ | ||
120 | + public boolean isQualifiedName() { | ||
121 | + return isQualifiedName; | ||
122 | + } | ||
123 | + | ||
124 | + /** | ||
125 | + * Set if the added attribute has to be accessed in a fully qualified | ||
126 | + * manner. | ||
127 | + * | ||
128 | + * @param isQualified if the added attribute has to be accessed in a fully | ||
129 | + * qualified manner. | ||
130 | + */ | ||
131 | + public void setQualifiedName(boolean isQualified) { | ||
132 | + isQualifiedName = isQualified; | ||
133 | + } | ||
134 | + | ||
135 | +} |
utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/CachedJavaFileHandle.java
0 → 100644
1 | +/* | ||
2 | + * Copyright 2016 Open Networking Laboratory | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | + | ||
17 | +package org.onosproject.yangutils.translator.tojava; | ||
18 | + | ||
19 | +import java.io.File; | ||
20 | +import java.io.IOException; | ||
21 | +import java.util.LinkedList; | ||
22 | +import java.util.List; | ||
23 | +import java.util.SortedSet; | ||
24 | +import java.util.TreeSet; | ||
25 | + | ||
26 | +import org.onosproject.yangutils.datamodel.YangType; | ||
27 | +import org.onosproject.yangutils.translator.CachedFileHandle; | ||
28 | +import org.onosproject.yangutils.translator.GeneratedFileType; | ||
29 | +import org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen; | ||
30 | +import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax; | ||
31 | +import org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator; | ||
32 | +import org.onosproject.yangutils.utils.UtilConstants; | ||
33 | +import org.onosproject.yangutils.utils.io.impl.FileSystemUtil; | ||
34 | +import org.onosproject.yangutils.utils.io.impl.JavaDocGen; | ||
35 | +import org.onosproject.yangutils.utils.io.impl.SerializedDataStore; | ||
36 | +import org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType; | ||
37 | +import org.onosproject.yangutils.utils.io.impl.CopyrightHeader; | ||
38 | + | ||
39 | +import static org.slf4j.LoggerFactory.getLogger; | ||
40 | +import org.slf4j.Logger; | ||
41 | + | ||
42 | +/** | ||
43 | + * Maintain the information about the java file to be generated. | ||
44 | + */ | ||
45 | +public class CachedJavaFileHandle implements CachedFileHandle { | ||
46 | + | ||
47 | + private static final Logger log = getLogger(CachedJavaFileHandle.class); | ||
48 | + | ||
49 | + private static final int MAX_CACHABLE_ATTR = 64; | ||
50 | + private static final String JAVA_FILE_EXTENSION = ".java"; | ||
51 | + private static final String TEMP_FILE_EXTENSION = ".tmp"; | ||
52 | + | ||
53 | + /** | ||
54 | + * The type(s) of java source file(s) to be generated when the cached file | ||
55 | + * handle is closed. | ||
56 | + */ | ||
57 | + private GeneratedFileType genFileTypes; | ||
58 | + | ||
59 | + /** | ||
60 | + * The type(s) of java method to be generated when the cached file handle is | ||
61 | + * closed. | ||
62 | + */ | ||
63 | + private GeneratedMethodTypes genMethodTypes; | ||
64 | + | ||
65 | + /** | ||
66 | + * Java package in which the class/interface needs to be generated. | ||
67 | + */ | ||
68 | + private String pkg; | ||
69 | + | ||
70 | + /** | ||
71 | + * Name of the object in YANG file. | ||
72 | + */ | ||
73 | + private String yangName; | ||
74 | + | ||
75 | + /** | ||
76 | + * Sorted set of import info, to be used to maintain the set of classes to | ||
77 | + * be imported in the generated class. | ||
78 | + */ | ||
79 | + private SortedSet<ImportInfo> importSet; | ||
80 | + | ||
81 | + /** | ||
82 | + * Cached list of attribute info. | ||
83 | + */ | ||
84 | + private List<AttributeInfo> attributeList; | ||
85 | + | ||
86 | + /** | ||
87 | + * Prevent invoking default constructor. | ||
88 | + */ | ||
89 | + private CachedJavaFileHandle() { | ||
90 | + setCachedAttributeList(new LinkedList<AttributeInfo>()); | ||
91 | + } | ||
92 | + | ||
93 | + /** | ||
94 | + * Create a cached file handle which takes care of adding attributes to the | ||
95 | + * generated java file. | ||
96 | + * | ||
97 | + * @param pcg package in which class/interface need to be generated. | ||
98 | + * @param yangName name of the attribute in YANG file. | ||
99 | + * @param types the types of files that needs to be generated. | ||
100 | + * @throws IOException file IO exception. | ||
101 | + */ | ||
102 | + public CachedJavaFileHandle(String pcg, String yangName, GeneratedFileType types) throws IOException { | ||
103 | + if ((new File(pcg).exists())) { | ||
104 | + setGeneratedFileTypes(types); | ||
105 | + setPackage(pcg); | ||
106 | + setYangName(yangName); | ||
107 | + } else { | ||
108 | + FileSystemUtil.createPackage(pcg, yangName); | ||
109 | + setGeneratedFileTypes(types); | ||
110 | + setPackage(pcg); | ||
111 | + setYangName(yangName); | ||
112 | + } | ||
113 | + } | ||
114 | + | ||
115 | + /** | ||
116 | + * Get the types of files being generated corresponding to the YANG | ||
117 | + * definition. | ||
118 | + * | ||
119 | + * @return the types of files being generated corresponding to the YANG | ||
120 | + * definition. | ||
121 | + */ | ||
122 | + public GeneratedFileType getGeneratedFileTypes() { | ||
123 | + return genFileTypes; | ||
124 | + } | ||
125 | + | ||
126 | + /** | ||
127 | + * Set the types of files being generated corresponding to the YANG | ||
128 | + * definition. | ||
129 | + * | ||
130 | + * @param fileTypes the types of files being generated corresponding to the | ||
131 | + * YANG definition. | ||
132 | + */ | ||
133 | + public void setGeneratedFileTypes(GeneratedFileType fileTypes) { | ||
134 | + genFileTypes = fileTypes; | ||
135 | + } | ||
136 | + | ||
137 | + /** | ||
138 | + * Get the corresponding name defined in YANG. | ||
139 | + * | ||
140 | + * @return the corresponding name defined in YANG. | ||
141 | + */ | ||
142 | + public String getYangName() { | ||
143 | + return yangName; | ||
144 | + } | ||
145 | + | ||
146 | + /** | ||
147 | + * Set the corresponding name defined in YANG. | ||
148 | + * | ||
149 | + * @param yangName the corresponding name defined in YANG. | ||
150 | + */ | ||
151 | + public void setYangName(String yangName) { | ||
152 | + this.yangName = yangName; | ||
153 | + } | ||
154 | + | ||
155 | + /** | ||
156 | + * Get the java package. | ||
157 | + * | ||
158 | + * @return the java package. | ||
159 | + */ | ||
160 | + public String getPackage() { | ||
161 | + return pkg; | ||
162 | + } | ||
163 | + | ||
164 | + /** | ||
165 | + * Set the java package. | ||
166 | + * | ||
167 | + * @param pcg the package to set | ||
168 | + */ | ||
169 | + public void setPackage(String pcg) { | ||
170 | + pkg = pcg; | ||
171 | + } | ||
172 | + | ||
173 | + /** | ||
174 | + * Get the set containing the imported class/interface info. | ||
175 | + * | ||
176 | + * @return the set containing the imported class/interface info. | ||
177 | + */ | ||
178 | + public SortedSet<ImportInfo> getImportSet() { | ||
179 | + return importSet; | ||
180 | + } | ||
181 | + | ||
182 | + /** | ||
183 | + * Assign the set containing the imported class/interface info. | ||
184 | + * | ||
185 | + * @param importSet the set containing the imported class/interface info. | ||
186 | + */ | ||
187 | + private void setImportSet(SortedSet<ImportInfo> importSet) { | ||
188 | + this.importSet = importSet; | ||
189 | + } | ||
190 | + | ||
191 | + /** | ||
192 | + * Add an imported class/interface info is it is not already part of the | ||
193 | + * set. If already part of the set, return false, else add to set and return | ||
194 | + * true. | ||
195 | + * | ||
196 | + * @param importInfo class/interface info being imported. | ||
197 | + * @return status of new addition of class/interface to the import set | ||
198 | + */ | ||
199 | + public boolean addImportInfo(ImportInfo importInfo) { | ||
200 | + /* | ||
201 | + * implement the import info adding. The return value will be used to | ||
202 | + * check if the qualified name will be used or class/interface name will | ||
203 | + * be used in the generated class. | ||
204 | + */ | ||
205 | + if (getImportSet() == null) { | ||
206 | + setImportSet(new TreeSet<ImportInfo>()); | ||
207 | + } | ||
208 | + return getImportSet().add(importInfo); | ||
209 | + } | ||
210 | + | ||
211 | + /** | ||
212 | + * Get the list of cached attribute list. | ||
213 | + * | ||
214 | + * @return the set containing the imported class/interface info. | ||
215 | + */ | ||
216 | + public List<AttributeInfo> getCachedAttributeList() { | ||
217 | + return attributeList; | ||
218 | + } | ||
219 | + | ||
220 | + /** | ||
221 | + * Set the cached attribute list. | ||
222 | + * | ||
223 | + * @param attrList attribute list. | ||
224 | + */ | ||
225 | + private void setCachedAttributeList(List<AttributeInfo> attrList) { | ||
226 | + attributeList = attrList; | ||
227 | + } | ||
228 | + | ||
229 | + /** | ||
230 | + * Flush the cached attribute list to the serialized file. | ||
231 | + */ | ||
232 | + private void flushCacheAttrToSerFile() { | ||
233 | + | ||
234 | + for (AttributeInfo attr : getCachedAttributeList()) { | ||
235 | + parseAttributeInfo(attr); | ||
236 | + } | ||
237 | + | ||
238 | + /* | ||
239 | + * clear the contents from the cached attribute list. | ||
240 | + */ | ||
241 | + getCachedAttributeList().clear(); | ||
242 | + } | ||
243 | + | ||
244 | + /** | ||
245 | + * Add a new attribute to the file(s). | ||
246 | + * | ||
247 | + * @param attrType data type of the added attribute. | ||
248 | + * @param name name of the attribute. | ||
249 | + * @param isListAttr if the current added attribute needs to be maintained | ||
250 | + * in a list. | ||
251 | + */ | ||
252 | + @Override | ||
253 | + public void addAttributeInfo(YangType<?> attrType, String name, boolean isListAttr) { | ||
254 | + | ||
255 | + AttributeInfo newAttr = new AttributeInfo(); | ||
256 | + attrType.setDataTypeName(attrType.getDataTypeName().replace("\"", "")); | ||
257 | + if (attrType.getDataTypeName().equals("string")) { | ||
258 | + attrType.setDataTypeName( | ||
259 | + attrType.getDataTypeName().substring(0, 1).toUpperCase() + attrType.getDataTypeName().substring(1)); | ||
260 | + } | ||
261 | + newAttr.setAttributeType(attrType); | ||
262 | + newAttr.setAttributeName(name); | ||
263 | + newAttr.setListAttr(isListAttr); | ||
264 | + | ||
265 | + /* | ||
266 | + * TODO: get the prefix and name of data type from attrType and | ||
267 | + * initialize in importInfo. | ||
268 | + */ | ||
269 | + | ||
270 | + /** | ||
271 | + * TODO: Handle QualifiedFlag for imports. | ||
272 | + */ | ||
273 | + | ||
274 | + if (getCachedAttributeList() != null) { | ||
275 | + if (getCachedAttributeList().size() == MAX_CACHABLE_ATTR) { | ||
276 | + flushCacheAttrToSerFile(); | ||
277 | + } | ||
278 | + getCachedAttributeList().add(newAttr); | ||
279 | + } else { | ||
280 | + List<AttributeInfo> newAttributeInfo = new LinkedList<>(); | ||
281 | + newAttributeInfo.add(newAttr); | ||
282 | + setCachedAttributeList(newAttributeInfo); | ||
283 | + } | ||
284 | + name = JavaIdentifierSyntax.getCamelCase(name); | ||
285 | + } | ||
286 | + | ||
287 | + /** | ||
288 | + * Flushes the cached contents to the target file, frees used resources. | ||
289 | + */ | ||
290 | + @Override | ||
291 | + public void close() throws IOException { | ||
292 | + | ||
293 | + String className = getYangName(); | ||
294 | + className = (className.substring(0, 1).toUpperCase() + className.substring(1)); | ||
295 | + String packagePath = getPackage(); | ||
296 | + String filePath = UtilConstants.YANG_GEN_DIR + packagePath.replace(".", "/"); | ||
297 | + GeneratedFileType fileType = getGeneratedFileTypes(); | ||
298 | + | ||
299 | + /** | ||
300 | + * Create interface file. | ||
301 | + */ | ||
302 | + String interfaceFileName = className + JAVA_FILE_EXTENSION; | ||
303 | + File interfaceFile = new File(filePath + File.separator + interfaceFileName); | ||
304 | + | ||
305 | + /** | ||
306 | + * Create temp builder interface file. | ||
307 | + */ | ||
308 | + String builderInterfaceFileName = interfaceFileName + TEMP_FILE_EXTENSION; | ||
309 | + File builderInterfaceFile = new File(filePath + File.separator + builderInterfaceFileName); | ||
310 | + | ||
311 | + /** | ||
312 | + * Create builder class file. | ||
313 | + */ | ||
314 | + String builderFileName = className + UtilConstants.BUILDER + JAVA_FILE_EXTENSION; | ||
315 | + File builderFile = new File(filePath + File.separator + builderFileName); | ||
316 | + MethodsGenerator.setBuilderClassName(className + UtilConstants.BUILDER); | ||
317 | + | ||
318 | + /** | ||
319 | + * Create temp impl class file. | ||
320 | + */ | ||
321 | + | ||
322 | + String implFileName = className + UtilConstants.IMPL + TEMP_FILE_EXTENSION; | ||
323 | + File implTempFile = new File(filePath + File.separator + implFileName); | ||
324 | + | ||
325 | + if (fileType.equals(GeneratedFileType.INTERFACE) || fileType.equals(GeneratedFileType.ALL)) { | ||
326 | + | ||
327 | + try { | ||
328 | + interfaceFile.createNewFile(); | ||
329 | + appendContents(interfaceFile, className, GeneratedFileType.INTERFACE); | ||
330 | + } catch (IOException e) { | ||
331 | + throw new IOException("Failed to create interface file."); | ||
332 | + } | ||
333 | + } | ||
334 | + | ||
335 | + if (fileType.equals(GeneratedFileType.BUILDER_CLASS) || fileType.equals(GeneratedFileType.ALL)) { | ||
336 | + | ||
337 | + try { | ||
338 | + builderFile.createNewFile(); | ||
339 | + appendContents(builderFile, className, GeneratedFileType.BUILDER_CLASS); | ||
340 | + } catch (IOException e) { | ||
341 | + throw new IOException("Failed to create builder class file."); | ||
342 | + } | ||
343 | + } | ||
344 | + | ||
345 | + if (fileType.equals(GeneratedFileType.IMPL) || fileType.equals(GeneratedFileType.ALL)) { | ||
346 | + | ||
347 | + try { | ||
348 | + implTempFile.createNewFile(); | ||
349 | + appendContents(implTempFile, className, GeneratedFileType.IMPL); | ||
350 | + } catch (IOException e) { | ||
351 | + throw new IOException("Failed to create impl class file."); | ||
352 | + } | ||
353 | + } | ||
354 | + | ||
355 | + if (fileType.equals(GeneratedFileType.BUILDER_INTERFACE) || fileType.equals(GeneratedFileType.ALL)) { | ||
356 | + | ||
357 | + try { | ||
358 | + builderInterfaceFile.createNewFile(); | ||
359 | + appendContents(builderInterfaceFile, className, GeneratedFileType.BUILDER_INTERFACE); | ||
360 | + } catch (IOException e) { | ||
361 | + throw new IOException("Failed to create builder interface class file."); | ||
362 | + } | ||
363 | + } | ||
364 | + /* | ||
365 | + * TODO: add the file header using | ||
366 | + * JavaCodeSnippetGen.getFileHeaderComment | ||
367 | + */ | ||
368 | + /* | ||
369 | + * TODO: get the import list using getImportText and add to the | ||
370 | + * generated java file using JavaCodeSnippetGen.getImportText | ||
371 | + */ | ||
372 | + | ||
373 | + List<String> attributes = new LinkedList<>(); | ||
374 | + List<String> interfaceMethods = new LinkedList<>(); | ||
375 | + List<String> builderInterfaceMethods = new LinkedList<>(); | ||
376 | + List<String> builderClassMethods = new LinkedList<>(); | ||
377 | + List<String> implClassMethods = new LinkedList<>(); | ||
378 | + //TODO: Handle imports for the attributes. | ||
379 | + try { | ||
380 | + attributes = SerializedDataStore.getSerializeData(SerializedDataStore.SerializedDataStoreType.ATTRIBUTE); | ||
381 | + | ||
382 | + interfaceMethods = SerializedDataStore | ||
383 | + .getSerializeData(SerializedDataStore.SerializedDataStoreType.INTERFACE_METHODS); | ||
384 | + | ||
385 | + builderInterfaceMethods = SerializedDataStore | ||
386 | + .getSerializeData(SerializedDataStore.SerializedDataStoreType.BUILDER_INTERFACE_METHODS); | ||
387 | + | ||
388 | + builderClassMethods = SerializedDataStore | ||
389 | + .getSerializeData(SerializedDataStore.SerializedDataStoreType.BUILDER_METHODS); | ||
390 | + | ||
391 | + implClassMethods = SerializedDataStore | ||
392 | + .getSerializeData(SerializedDataStore.SerializedDataStoreType.IMPL_METHODS); | ||
393 | + | ||
394 | + //TODO:imports = SerializedDataStore.getSerializeData(SerializedDataStore.SerializedDataStoreType.IMPORT); | ||
395 | + } catch (ClassNotFoundException | IOException e) { | ||
396 | + log.info("There is no attribute info of " + className + " YANG file in the serialized files."); | ||
397 | + } | ||
398 | + | ||
399 | + if (getCachedAttributeList() != null) { | ||
400 | + MethodsGenerator.setAttrInfo(getCachedAttributeList()); | ||
401 | + for (AttributeInfo attr : getCachedAttributeList()) { | ||
402 | + attributes.add(getAttributeString(attr)); | ||
403 | + | ||
404 | + interfaceMethods.add(MethodsGenerator.getMethodString(attr, GeneratedFileType.INTERFACE)); | ||
405 | + | ||
406 | + builderClassMethods.add(MethodsGenerator.getMethodString(attr, GeneratedFileType.BUILDER_CLASS)); | ||
407 | + | ||
408 | + builderInterfaceMethods | ||
409 | + .add(MethodsGenerator.getMethodString(attr, GeneratedFileType.BUILDER_INTERFACE)); | ||
410 | + | ||
411 | + implClassMethods.add(MethodsGenerator.getMethodString(attr, GeneratedFileType.IMPL)); | ||
412 | + } | ||
413 | + } | ||
414 | + | ||
415 | + builderInterfaceMethods.add(MethodsGenerator.parseBuilderInterfaceBuildMethodString(className)); | ||
416 | + builderClassMethods.add(UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE | ||
417 | + + MethodsGenerator.getDefaultConstructorString(GeneratedFileType.BUILDER_CLASS, className)); | ||
418 | + builderClassMethods.add(MethodsGenerator.getBuildString(className)); | ||
419 | + | ||
420 | + implClassMethods.add(UtilConstants.JAVA_DOC_FIRST_LINE | ||
421 | + + MethodsGenerator.getDefaultConstructorString(GeneratedFileType.IMPL, className)); | ||
422 | + implClassMethods.add(MethodsGenerator.getConstructorString(className)); | ||
423 | + | ||
424 | + /** | ||
425 | + * Add attributes to the file. | ||
426 | + */ | ||
427 | + for (String attribute : attributes) { | ||
428 | + insert(builderFile, UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + attribute); | ||
429 | + insert(implTempFile, UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + attribute); | ||
430 | + } | ||
431 | + | ||
432 | + insert(builderFile, UtilConstants.NEW_LINE); | ||
433 | + insert(implTempFile, UtilConstants.NEW_LINE); | ||
434 | + | ||
435 | + /** | ||
436 | + * Add getter methods to interface file. | ||
437 | + */ | ||
438 | + for (String method : interfaceMethods) { | ||
439 | + appendMethod(interfaceFile, method + UtilConstants.NEW_LINE); | ||
440 | + } | ||
441 | + | ||
442 | + /** | ||
443 | + * Add getters and setters in builder interface. | ||
444 | + */ | ||
445 | + for (String method : builderInterfaceMethods) { | ||
446 | + appendMethod(builderInterfaceFile, UtilConstants.FOUR_SPACE_INDENTATION + method + UtilConstants.NEW_LINE); | ||
447 | + } | ||
448 | + | ||
449 | + insert(builderInterfaceFile, UtilConstants.CLOSE_CURLY_BRACKET + UtilConstants.NEW_LINE); | ||
450 | + /** | ||
451 | + * Add methods in builder class. | ||
452 | + */ | ||
453 | + for (String method : builderClassMethods) { | ||
454 | + appendMethod(builderFile, method + UtilConstants.NEW_LINE); | ||
455 | + } | ||
456 | + | ||
457 | + /** | ||
458 | + * Add methods in impl class. | ||
459 | + */ | ||
460 | + for (String method : implClassMethods) { | ||
461 | + appendMethod(implTempFile, UtilConstants.FOUR_SPACE_INDENTATION + method + UtilConstants.NEW_LINE); | ||
462 | + } | ||
463 | + | ||
464 | + insert(implTempFile, UtilConstants.CLOSE_CURLY_BRACKET + UtilConstants.NEW_LINE); | ||
465 | + | ||
466 | + /** | ||
467 | + * Append builder interface file to interface file and close it. | ||
468 | + */ | ||
469 | + appendFileContents(builderInterfaceFile, interfaceFile); | ||
470 | + insert(interfaceFile, closeFile(GeneratedFileType.INTERFACE, interfaceFileName)); | ||
471 | + | ||
472 | + /** | ||
473 | + * Append impl class to builder class and close it. | ||
474 | + */ | ||
475 | + appendFileContents(implTempFile, builderFile); | ||
476 | + insert(builderFile, closeFile(GeneratedFileType.BUILDER_CLASS, builderFileName)); | ||
477 | + | ||
478 | + /** | ||
479 | + * Remove temp files. | ||
480 | + */ | ||
481 | + clean(implTempFile); | ||
482 | + clean(builderInterfaceFile); | ||
483 | + } | ||
484 | + | ||
485 | + /** | ||
486 | + * Appends the temp files to main files. | ||
487 | + * | ||
488 | + * @param appendFile temp file | ||
489 | + * @param srcFile main file | ||
490 | + */ | ||
491 | + private static void appendFileContents(File appendFile, File srcFile) throws IOException { | ||
492 | + try { | ||
493 | + FileSystemUtil.appendFileContents(appendFile, srcFile); | ||
494 | + } catch (IOException e) { | ||
495 | + throw new IOException("Failed to append " + appendFile + " in " + srcFile); | ||
496 | + } | ||
497 | + } | ||
498 | + | ||
499 | + /** | ||
500 | + * Append methods to the generated files. | ||
501 | + * | ||
502 | + * @param file file in which method needs to be appended. | ||
503 | + * @param method method which needs to be appended. | ||
504 | + */ | ||
505 | + private static void appendMethod(File file, String method) throws IOException { | ||
506 | + insert(file, method); | ||
507 | + } | ||
508 | + | ||
509 | + /** | ||
510 | + * Closes the current generated file. | ||
511 | + * | ||
512 | + * @param fileType generate file type | ||
513 | + * @param yangName file name | ||
514 | + * @return end of class definition string. | ||
515 | + */ | ||
516 | + private static String closeFile(GeneratedFileType fileType, String yangName) { | ||
517 | + return JavaCodeSnippetGen.getJavaClassDefClose(fileType, yangName); | ||
518 | + } | ||
519 | + | ||
520 | + /** | ||
521 | + * Parses attribute info and fetch specific data and creates serialized | ||
522 | + * files of it. | ||
523 | + * | ||
524 | + * @param attr attribute info. | ||
525 | + */ | ||
526 | + private void parseAttributeInfo(AttributeInfo attr) { | ||
527 | + | ||
528 | + String attrString = ""; | ||
529 | + String methodString = ""; | ||
530 | + String getterString = ""; | ||
531 | + | ||
532 | + try { | ||
533 | + /* | ||
534 | + * Serialize attributes. | ||
535 | + */ | ||
536 | + attrString = getAttributeString(attr); | ||
537 | + attrString = attrString.replace("\"", ""); | ||
538 | + SerializedDataStore.setSerializeData(attrString, SerializedDataStore.SerializedDataStoreType.ATTRIBUTE); | ||
539 | + | ||
540 | + if (getGeneratedFileTypes().equals(GeneratedFileType.ALL)) { | ||
541 | + | ||
542 | + methodString = MethodsGenerator.getMethodString(attr, GeneratedFileType.INTERFACE); | ||
543 | + SerializedDataStore.setSerializeData(methodString, | ||
544 | + SerializedDataStore.SerializedDataStoreType.INTERFACE_METHODS); | ||
545 | + | ||
546 | + methodString = MethodsGenerator.getMethodString(attr, GeneratedFileType.BUILDER_CLASS); | ||
547 | + SerializedDataStore.setSerializeData(methodString, | ||
548 | + SerializedDataStore.SerializedDataStoreType.BUILDER_METHODS); | ||
549 | + | ||
550 | + methodString = MethodsGenerator.getMethodString(attr, GeneratedFileType.BUILDER_INTERFACE); | ||
551 | + SerializedDataStore.setSerializeData(methodString, | ||
552 | + SerializedDataStore.SerializedDataStoreType.BUILDER_INTERFACE_METHODS); | ||
553 | + | ||
554 | + methodString = MethodsGenerator.getMethodString(attr, GeneratedFileType.IMPL); | ||
555 | + SerializedDataStore.setSerializeData(methodString, | ||
556 | + SerializedDataStore.SerializedDataStoreType.IMPL_METHODS); | ||
557 | + | ||
558 | + } else if (getGeneratedFileTypes().equals(GeneratedFileType.INTERFACE)) { | ||
559 | + | ||
560 | + getterString = MethodsGenerator.getGetterString(attr); | ||
561 | + SerializedDataStore.setSerializeData(methodString, | ||
562 | + SerializedDataStore.SerializedDataStoreType.INTERFACE_METHODS); | ||
563 | + } | ||
564 | + } catch (IOException e) { | ||
565 | + log.info("Failed to get data for " + attr.getAttributeName() + " from serialized files."); | ||
566 | + } | ||
567 | + } | ||
568 | + | ||
569 | + /** | ||
570 | + * Returns attribute string. | ||
571 | + * | ||
572 | + * @param attr attribute info | ||
573 | + * @return attribute string | ||
574 | + */ | ||
575 | + private String getAttributeString(AttributeInfo attr) { | ||
576 | + return JavaCodeSnippetGen.getJavaAttributeInfo(getGeneratedFileTypes(), attr.getAttributeName(), | ||
577 | + attr.getAttributeType()); | ||
578 | + } | ||
579 | + | ||
580 | + /** | ||
581 | + * Appends all the contents into a generated java file. | ||
582 | + * | ||
583 | + * @param file generated file | ||
584 | + * @param fileName generated file name | ||
585 | + * @param type generated file type | ||
586 | + */ | ||
587 | + private void appendContents(File file, String fileName, GeneratedFileType type) throws IOException { | ||
588 | + | ||
589 | + if (type.equals(GeneratedFileType.IMPL)) { | ||
590 | + | ||
591 | + write(file, fileName, type, JavaDocType.IMPL_CLASS); | ||
592 | + } else if (type.equals(GeneratedFileType.BUILDER_INTERFACE)) { | ||
593 | + | ||
594 | + write(file, fileName, type, JavaDocType.BUILDER_INTERFACE); | ||
595 | + } else { | ||
596 | + | ||
597 | + // TODO: handle imports for attributes. | ||
598 | + | ||
599 | + if (type.equals(GeneratedFileType.INTERFACE)) { | ||
600 | + insert(file, CopyrightHeader.getCopyrightHeader()); | ||
601 | + insert(file, "package" + UtilConstants.SPACE + getPackage() + UtilConstants.SEMI_COLAN | ||
602 | + + UtilConstants.NEW_LINE); | ||
603 | + write(file, fileName, type, JavaDocType.INTERFACE); | ||
604 | + } else if (type.equals(GeneratedFileType.BUILDER_CLASS)) { | ||
605 | + insert(file, CopyrightHeader.getCopyrightHeader()); | ||
606 | + insert(file, "package" + UtilConstants.SPACE + getPackage() + UtilConstants.SEMI_COLAN | ||
607 | + + UtilConstants.NEW_LINE); | ||
608 | + write(file, fileName, type, JavaDocType.BUILDER_CLASS); | ||
609 | + } | ||
610 | + } | ||
611 | + } | ||
612 | + | ||
613 | + /** | ||
614 | + * Write data to the specific generated file. | ||
615 | + * | ||
616 | + * @param file generated file | ||
617 | + * @param fileName file name | ||
618 | + * @param genType generated file type | ||
619 | + * @param javaDocType java doc type | ||
620 | + */ | ||
621 | + private static void write(File file, String fileName, GeneratedFileType genType, JavaDocGen.JavaDocType javaDocType) | ||
622 | + throws IOException { | ||
623 | + | ||
624 | + insert(file, JavaDocGen.getJavaDoc(javaDocType, fileName)); | ||
625 | + insert(file, JavaCodeSnippetGen.getJavaClassDefStart(genType, fileName)); | ||
626 | + } | ||
627 | + | ||
628 | + /** | ||
629 | + * Insert in the generated file. | ||
630 | + * | ||
631 | + * @param file file in which need to be inserted. | ||
632 | + * @param data data which need to be inserted. | ||
633 | + */ | ||
634 | + private static void insert(File file, String data) throws IOException { | ||
635 | + try { | ||
636 | + FileSystemUtil.insertStringInFile(file, data); | ||
637 | + } catch (IOException e) { | ||
638 | + throw new IOException("Failed to insert in " + file + "file"); | ||
639 | + } | ||
640 | + } | ||
641 | + | ||
642 | + /** | ||
643 | + * Removes temp files. | ||
644 | + * | ||
645 | + * @param file file to be removed. | ||
646 | + */ | ||
647 | + private static void clean(File file) { | ||
648 | + if (file.exists()) { | ||
649 | + file.delete(); | ||
650 | + } | ||
651 | + } | ||
652 | +} |
utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/GeneratedMethodTypes.java
0 → 100644
1 | +/* | ||
2 | + * Copyright 2016 Open Networking Laboratory | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | + | ||
17 | +package org.onosproject.yangutils.translator.tojava; | ||
18 | + | ||
19 | +/** | ||
20 | + * Type of method generated. | ||
21 | + */ | ||
22 | +public enum GeneratedMethodTypes { | ||
23 | + /** | ||
24 | + * getter method. | ||
25 | + */ | ||
26 | + GETTER, | ||
27 | + | ||
28 | + /** | ||
29 | + * setter method. | ||
30 | + */ | ||
31 | + SETTER, | ||
32 | + | ||
33 | + /** | ||
34 | + * Constructor. | ||
35 | + */ | ||
36 | + CONSTRUCTOR, | ||
37 | + | ||
38 | + /** | ||
39 | + * Build. | ||
40 | + */ | ||
41 | + BUILD, | ||
42 | + | ||
43 | + /** | ||
44 | + * Default Constructor. | ||
45 | + */ | ||
46 | + DEFAULT_CONSTRUCTOR | ||
47 | +} |
utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/ImportInfo.java
0 → 100644
1 | +/* | ||
2 | + * Copyright 2016 Open Networking Laboratory | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | + | ||
17 | +package org.onosproject.yangutils.translator.tojava; | ||
18 | + | ||
19 | +import java.util.Objects; | ||
20 | + | ||
21 | +import com.google.common.base.MoreObjects; | ||
22 | + | ||
23 | +/** | ||
24 | + * Maintains the information about individual imports in the generated file. | ||
25 | + */ | ||
26 | +public class ImportInfo { | ||
27 | + | ||
28 | + /** | ||
29 | + * Package location where the imported class/interface is defined. | ||
30 | + */ | ||
31 | + private String pkgInfo; | ||
32 | + | ||
33 | + /** | ||
34 | + * class/interface being referenced. | ||
35 | + */ | ||
36 | + private String classInfo; | ||
37 | + | ||
38 | + /** | ||
39 | + * Default constructor. | ||
40 | + */ | ||
41 | + public ImportInfo() { | ||
42 | + } | ||
43 | + | ||
44 | + /** | ||
45 | + * Get the imported package info. | ||
46 | + * | ||
47 | + * @return the imported package info. | ||
48 | + */ | ||
49 | + public String getPkgInfo() { | ||
50 | + return pkgInfo; | ||
51 | + } | ||
52 | + | ||
53 | + /** | ||
54 | + * Set the imported package info. | ||
55 | + * | ||
56 | + * @param pkgInfo the imported package info. | ||
57 | + */ | ||
58 | + public void setPkgInfo(String pkgInfo) { | ||
59 | + this.pkgInfo = pkgInfo; | ||
60 | + } | ||
61 | + | ||
62 | + /** | ||
63 | + * Get the imported class/interface info. | ||
64 | + * | ||
65 | + * @return the imported class/interface info. | ||
66 | + */ | ||
67 | + public String getClassInfo() { | ||
68 | + return classInfo; | ||
69 | + } | ||
70 | + | ||
71 | + /** | ||
72 | + * Set the imported class/interface info. | ||
73 | + * | ||
74 | + * @param classInfo the imported class/interface info. | ||
75 | + */ | ||
76 | + public void setClassInfo(String classInfo) { | ||
77 | + this.classInfo = classInfo; | ||
78 | + } | ||
79 | + | ||
80 | + @Override | ||
81 | + public int hashCode() { | ||
82 | + return Objects.hash(pkgInfo, classInfo); | ||
83 | + } | ||
84 | + | ||
85 | + @Override | ||
86 | + public boolean equals(Object obj) { | ||
87 | + if (this == obj) { | ||
88 | + return true; | ||
89 | + } | ||
90 | + if (obj instanceof ImportInfo) { | ||
91 | + ImportInfo other = (ImportInfo) obj; | ||
92 | + return Objects.equals(pkgInfo, other.pkgInfo) && | ||
93 | + Objects.equals(classInfo, other.classInfo); | ||
94 | + } | ||
95 | + return false; | ||
96 | + } | ||
97 | + | ||
98 | + /** | ||
99 | + * check if the import info matches. | ||
100 | + * | ||
101 | + * @param importInfo matched import | ||
102 | + * @return if equal or not | ||
103 | + */ | ||
104 | + public boolean exactMatch(ImportInfo importInfo) { | ||
105 | + return equals(importInfo) | ||
106 | + && Objects.equals(pkgInfo, importInfo.getPkgInfo()) | ||
107 | + && Objects.equals(classInfo, importInfo.getClassInfo()); | ||
108 | + } | ||
109 | + | ||
110 | + @Override | ||
111 | + public String toString() { | ||
112 | + return MoreObjects.toStringHelper(getClass()) | ||
113 | + .add("pkgInfo", pkgInfo) | ||
114 | + .add("classInfo", classInfo).toString(); | ||
115 | + } | ||
116 | + | ||
117 | +} |
utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGenerator.java
0 → 100644
1 | +/* | ||
2 | + * Copyright 2016 Open Networking Laboratory | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | + | ||
17 | +package org.onosproject.yangutils.translator.tojava; | ||
18 | + | ||
19 | +import java.io.IOException; | ||
20 | + | ||
21 | +import org.onosproject.yangutils.datamodel.YangNode; | ||
22 | + | ||
23 | +/** | ||
24 | + * Implementation of Java code generator based on application schema. | ||
25 | + */ | ||
26 | +public final class JavaCodeGenerator { | ||
27 | + | ||
28 | + /** | ||
29 | + * Default constructor. | ||
30 | + */ | ||
31 | + private JavaCodeGenerator() { | ||
32 | + } | ||
33 | + | ||
34 | + /** | ||
35 | + * Generate Java code files corresponding to the YANG schema. | ||
36 | + * | ||
37 | + * @param rootNode root node of the data model tree. | ||
38 | + * @throws IOException when fails to generate java code file the current node. | ||
39 | + */ | ||
40 | + public static void generateJavaCode(YangNode rootNode) throws IOException { | ||
41 | + YangNode curNode = rootNode; | ||
42 | + TraversalType curTraversal = TraversalType.ROOT; | ||
43 | + | ||
44 | + while (!(curNode == null)) { | ||
45 | + if (curTraversal != TraversalType.PARENT) { | ||
46 | + curNode.generateJavaCodeEntry(); | ||
47 | + } | ||
48 | + if (curTraversal != TraversalType.PARENT && !(curNode.getChild() == null)) { | ||
49 | + curTraversal = TraversalType.CHILD; | ||
50 | + curNode = curNode.getChild(); | ||
51 | + } else if (!(curNode.getNextSibling() == null)) { | ||
52 | + curTraversal = TraversalType.SIBILING; | ||
53 | + curNode = curNode.getNextSibling(); | ||
54 | + } else { | ||
55 | + curTraversal = TraversalType.PARENT; | ||
56 | + curNode.generateJavaCodeExit(); | ||
57 | + curNode = curNode.getParent(); | ||
58 | + } | ||
59 | + } | ||
60 | + } | ||
61 | +} |
1 | +/* | ||
2 | + * Copyright 2016 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 org.onosproject.yangutils.translator.GeneratedFileType; | ||
20 | +import org.onosproject.yangutils.utils.UtilConstants; | ||
21 | + | ||
22 | +/** | ||
23 | + * Generates class definition for generated files. | ||
24 | + */ | ||
25 | +public final class ClassDefinitionGenerator { | ||
26 | + | ||
27 | + /** | ||
28 | + * Default constructor. | ||
29 | + */ | ||
30 | + private ClassDefinitionGenerator() { | ||
31 | + } | ||
32 | + | ||
33 | + /** | ||
34 | + * Generate class definition for specific classes. | ||
35 | + * | ||
36 | + * @param genFileTypes generated file type | ||
37 | + * @param yangName class name | ||
38 | + * @return class definition | ||
39 | + */ | ||
40 | + public static String generateClassDefinition(GeneratedFileType genFileTypes, String yangName) { | ||
41 | + | ||
42 | + /** | ||
43 | + * based on the file type and the YANG name of the file, generate | ||
44 | + * the class / interface definition start. | ||
45 | + */ | ||
46 | + if (genFileTypes.equals(GeneratedFileType.INTERFACE)) { | ||
47 | + | ||
48 | + return getInterfaceDefinition(yangName); | ||
49 | + } else if (genFileTypes.equals(GeneratedFileType.BUILDER_CLASS)) { | ||
50 | + | ||
51 | + return getBuilderClassDefinition(yangName); | ||
52 | + } else if (genFileTypes.equals(GeneratedFileType.IMPL)) { | ||
53 | + | ||
54 | + return getImplClassDefinition(yangName); | ||
55 | + } else if (genFileTypes.equals(GeneratedFileType.BUILDER_INTERFACE)) { | ||
56 | + | ||
57 | + return getBuilderInterfaceDefinition(); | ||
58 | + } | ||
59 | + return null; | ||
60 | + } | ||
61 | + | ||
62 | + /** | ||
63 | + * Returns interface file class definition. | ||
64 | + * | ||
65 | + * @param yangName file name | ||
66 | + * @return definition | ||
67 | + */ | ||
68 | + private static String getInterfaceDefinition(String yangName) { | ||
69 | + | ||
70 | + return UtilConstants.PUBLIC + UtilConstants.SPACE + UtilConstants.INTERFACE + UtilConstants.SPACE + yangName | ||
71 | + + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE; | ||
72 | + } | ||
73 | + | ||
74 | + /** | ||
75 | + * Returns builder interface file class definition. | ||
76 | + * | ||
77 | + * @return definition | ||
78 | + */ | ||
79 | + private static String getBuilderInterfaceDefinition() { | ||
80 | + return UtilConstants.INTERFACE + UtilConstants.SPACE + UtilConstants.BUILDER + UtilConstants.SPACE | ||
81 | + + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE; | ||
82 | + } | ||
83 | + | ||
84 | + /** | ||
85 | + * Returns builder file class definition. | ||
86 | + * | ||
87 | + * @param yangName file name | ||
88 | + * @return definition | ||
89 | + */ | ||
90 | + private static String getBuilderClassDefinition(String yangName) { | ||
91 | + | ||
92 | + return UtilConstants.PUBLIC + UtilConstants.SPACE + UtilConstants.CLASS + UtilConstants.SPACE + yangName | ||
93 | + + UtilConstants.BUILDER + UtilConstants.SPACE + UtilConstants.IMPLEMENTS + UtilConstants.SPACE | ||
94 | + + yangName + UtilConstants.PERIOD + UtilConstants.BUILDER + UtilConstants.SPACE | ||
95 | + + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE; | ||
96 | + } | ||
97 | + | ||
98 | + /** | ||
99 | + * Returns impl file class definition. | ||
100 | + * | ||
101 | + * @param yangName file name | ||
102 | + * @return definition | ||
103 | + */ | ||
104 | + private static String getImplClassDefinition(String yangName) { | ||
105 | + | ||
106 | + return UtilConstants.PUBLIC + UtilConstants.SPACE + UtilConstants.FINAL + UtilConstants.SPACE | ||
107 | + + UtilConstants.CLASS + UtilConstants.SPACE + yangName + UtilConstants.IMPL + UtilConstants.SPACE | ||
108 | + + UtilConstants.IMPLEMENTS + UtilConstants.SPACE + yangName + UtilConstants.OPEN_CURLY_BRACKET | ||
109 | + + UtilConstants.SPACE + UtilConstants.NEW_LINE; | ||
110 | + } | ||
111 | + | ||
112 | +} |
1 | +/* | ||
2 | + * Copyright 2016 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.util.List; | ||
20 | +import java.util.SortedSet; | ||
21 | + | ||
22 | +import org.onosproject.yangutils.datamodel.YangType; | ||
23 | +import org.onosproject.yangutils.translator.GeneratedFileType; | ||
24 | +import org.onosproject.yangutils.translator.tojava.GeneratedMethodTypes; | ||
25 | +import org.onosproject.yangutils.translator.tojava.ImportInfo; | ||
26 | +import org.onosproject.yangutils.utils.UtilConstants; | ||
27 | + | ||
28 | +/** | ||
29 | + * Utility class to generate the java snippet. | ||
30 | + */ | ||
31 | +public final class JavaCodeSnippetGen { | ||
32 | + | ||
33 | + /** | ||
34 | + * Default constructor. | ||
35 | + */ | ||
36 | + private JavaCodeSnippetGen() { | ||
37 | + } | ||
38 | + | ||
39 | + /** | ||
40 | + * Get the java file header comment. | ||
41 | + * | ||
42 | + * @return the java file header comment. | ||
43 | + */ | ||
44 | + public static String getFileHeaderComment() { | ||
45 | + | ||
46 | + /** | ||
47 | + * TODO return the file header. | ||
48 | + */ | ||
49 | + return null; | ||
50 | + } | ||
51 | + | ||
52 | + /** | ||
53 | + * reorder the import list based on the ONOS import rules. | ||
54 | + * | ||
55 | + * @param importInfo the set of classes/interfaces to be imported. | ||
56 | + * @return string of import info. | ||
57 | + */ | ||
58 | + public List<ImportInfo> sortImportOrder(SortedSet<ImportInfo> importInfo) { | ||
59 | + /* TODO: reorder the import list based on the ONOS import rules. */ | ||
60 | + return null; | ||
61 | + } | ||
62 | + | ||
63 | + /** | ||
64 | + * Get the textual java code information corresponding to the import list. | ||
65 | + * | ||
66 | + * @param importInfo sorted list of import info. | ||
67 | + * @return the textual java code information corresponding to the import | ||
68 | + * list. | ||
69 | + */ | ||
70 | + public static String getImportText(List<ImportInfo> importInfo) { | ||
71 | + /* | ||
72 | + * TODO: get the textual java code information corresponding to the | ||
73 | + * import list | ||
74 | + */ | ||
75 | + return null; | ||
76 | + } | ||
77 | + | ||
78 | + /** | ||
79 | + * Based on the file type and the YANG name of the file, generate the class | ||
80 | + * / interface definition start. | ||
81 | + * | ||
82 | + * @param genFileTypes type of file being generated. | ||
83 | + * @param yangName YANG name. | ||
84 | + * @return corresponding textual java code information. | ||
85 | + */ | ||
86 | + public static String getJavaClassDefStart(GeneratedFileType genFileTypes, String yangName) { | ||
87 | + /* | ||
88 | + * get the camel case name for java class / interface. | ||
89 | + */ | ||
90 | + yangName = JavaIdentifierSyntax.getCamelCase(yangName); | ||
91 | + return ClassDefinitionGenerator.generateClassDefinition(genFileTypes, yangName); | ||
92 | + } | ||
93 | + | ||
94 | + /** | ||
95 | + * Get the textual java code for attribute definition in class. | ||
96 | + * | ||
97 | + * @param genFileTypes type of file being generated. | ||
98 | + * @param yangName YANG name of the the attribute. | ||
99 | + * @param type type of the the attribute. | ||
100 | + * @return the textual java code for attribute definition in class. | ||
101 | + */ | ||
102 | + public static String getJavaAttributeInfo(GeneratedFileType genFileTypes, String yangName, YangType<?> type) { | ||
103 | + yangName = JavaIdentifierSyntax.getCamelCase(yangName); | ||
104 | + return UtilConstants.PRIVATE + UtilConstants.SPACE + type.getDataTypeName() + UtilConstants.SPACE + yangName | ||
105 | + + UtilConstants.SEMI_COLAN; | ||
106 | + } | ||
107 | + | ||
108 | + /** | ||
109 | + * Based on the file type and method type(s) and the YANG name of the | ||
110 | + * method, generate the method definitions(s). | ||
111 | + * | ||
112 | + * @param genFileTypes type of file being generated | ||
113 | + * @param yangName name if the attribute whose getter / setter is required. | ||
114 | + * @param methodTypes getter and / or setter type of method indicator. | ||
115 | + * @param returnType type return type of the method. | ||
116 | + * @return based on the file type and method type(s) the method | ||
117 | + * definitions(s). | ||
118 | + */ | ||
119 | + public static String getJavaMethodInfo(GeneratedFileType genFileTypes, String yangName, | ||
120 | + GeneratedMethodTypes methodTypes, YangType<?> returnType) { | ||
121 | + | ||
122 | + yangName = JavaIdentifierSyntax.getCamelCase(yangName); | ||
123 | + return MethodsGenerator.constructMethodInfo(genFileTypes, yangName, methodTypes, returnType); | ||
124 | + } | ||
125 | + | ||
126 | + /** | ||
127 | + * Based on the file type and the YANG name of the file, generate the class | ||
128 | + * / interface definition close. | ||
129 | + * | ||
130 | + * @param genFileTypes type of file being generated. | ||
131 | + * @param yangName YANG name. | ||
132 | + * @return corresponding textual java code information. | ||
133 | + */ | ||
134 | + public static String getJavaClassDefClose(GeneratedFileType genFileTypes, String yangName) { | ||
135 | + | ||
136 | + if (genFileTypes.equals(GeneratedFileType.INTERFACE)) { | ||
137 | + | ||
138 | + return UtilConstants.CLOSE_CURLY_BRACKET; | ||
139 | + } else if (genFileTypes.equals(GeneratedFileType.BUILDER_CLASS)) { | ||
140 | + | ||
141 | + return UtilConstants.CLOSE_CURLY_BRACKET; | ||
142 | + } | ||
143 | + return null; | ||
144 | + } | ||
145 | + | ||
146 | +} |
1 | +/* | ||
2 | + * Copyright 2016 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.util.ArrayList; | ||
20 | + | ||
21 | +import org.onosproject.yangutils.utils.UtilConstants; | ||
22 | + | ||
23 | +/** | ||
24 | + * Utility Class for translating the name from YANG to java convention. | ||
25 | + */ | ||
26 | +public final class JavaIdentifierSyntax { | ||
27 | + | ||
28 | + /** | ||
29 | + * Util class, with static functions only. | ||
30 | + */ | ||
31 | + private JavaIdentifierSyntax() { | ||
32 | + } | ||
33 | + | ||
34 | + /** | ||
35 | + * Get the root package string. | ||
36 | + * | ||
37 | + * @param version YANG version. | ||
38 | + * @param nameSpace name space of the module. | ||
39 | + * @param revision revision of the module defined | ||
40 | + * @return returns the root package string. | ||
41 | + */ | ||
42 | + public static String getRootPackage(byte version, String nameSpace, String revision) { | ||
43 | + | ||
44 | + String pkg; | ||
45 | + pkg = UtilConstants.DEFAULT_BASE_PKG; | ||
46 | + pkg = pkg + UtilConstants.PERIOD; | ||
47 | + pkg = pkg + getYangVersion(version); | ||
48 | + pkg = pkg + UtilConstants.PERIOD; | ||
49 | + pkg = pkg + getPkgFromNameSpace(nameSpace); | ||
50 | + pkg = pkg + UtilConstants.PERIOD; | ||
51 | + pkg = pkg + getYangRevisionStr(revision); | ||
52 | + | ||
53 | + return pkg; | ||
54 | + } | ||
55 | + | ||
56 | + /** | ||
57 | + * Returns version. | ||
58 | + * | ||
59 | + * @param ver YANG version. | ||
60 | + * @return version | ||
61 | + */ | ||
62 | + private static String getYangVersion(byte ver) { | ||
63 | + return "v" + ver; | ||
64 | + } | ||
65 | + | ||
66 | + /** | ||
67 | + * Get package name from name space. | ||
68 | + * | ||
69 | + * @param nameSpace name space of YANG module | ||
70 | + * @return java package name as per java rules. | ||
71 | + */ | ||
72 | + public static String getPkgFromNameSpace(String nameSpace) { | ||
73 | + ArrayList<String> pkgArr = new ArrayList<String>(); | ||
74 | + nameSpace = nameSpace.replace("\"", ""); | ||
75 | + | ||
76 | + String[] nameSpaceArr = nameSpace.split(UtilConstants.COLAN); | ||
77 | + | ||
78 | + for (String nameSpaceString : nameSpaceArr) { | ||
79 | + pkgArr.add(nameSpaceString); | ||
80 | + } | ||
81 | + return getPkgFrmArr(pkgArr); | ||
82 | + } | ||
83 | + | ||
84 | + /** | ||
85 | + * Returns revision string array. | ||
86 | + * | ||
87 | + * @param date YANG module revision | ||
88 | + * @return revision string | ||
89 | + */ | ||
90 | + public static String getYangRevisionStr(String date) { | ||
91 | + String[] revisionArr = date.split(UtilConstants.HYPHEN); | ||
92 | + | ||
93 | + String rev = "rev"; | ||
94 | + for (String element : revisionArr) { | ||
95 | + Integer val = Integer.parseInt(element); | ||
96 | + if (val < 10) { | ||
97 | + rev = rev + "0"; | ||
98 | + } | ||
99 | + rev = rev + val; | ||
100 | + } | ||
101 | + return rev; | ||
102 | + } | ||
103 | + | ||
104 | + /** | ||
105 | + * Returns the package string. | ||
106 | + * | ||
107 | + * @param pkgArr package array | ||
108 | + * @return package string | ||
109 | + */ | ||
110 | + public static String getPkgFrmArr(ArrayList<String> pkgArr) { | ||
111 | + | ||
112 | + String pkg = ""; | ||
113 | + int size = pkgArr.size(); | ||
114 | + int i = 0; | ||
115 | + for (String member : pkgArr) { | ||
116 | + pkg = pkg + member; | ||
117 | + if (i != size - 1) { | ||
118 | + pkg = pkg + UtilConstants.PERIOD; | ||
119 | + } | ||
120 | + i++; | ||
121 | + } | ||
122 | + return pkg; | ||
123 | + } | ||
124 | + | ||
125 | + /** | ||
126 | + * Get the package from parent's package and string. | ||
127 | + * | ||
128 | + * @param parentPkg parent's package. | ||
129 | + * @param childName child's name. | ||
130 | + * @return package string. | ||
131 | + */ | ||
132 | + public static String getPackageFromParent(String parentPkg, String childName) { | ||
133 | + return parentPkg + UtilConstants.PERIOD + getSubPkgFromName(childName); | ||
134 | + } | ||
135 | + | ||
136 | + /** | ||
137 | + * Get package sub name from YANG identifier name. | ||
138 | + * | ||
139 | + * @param name YANG identifier name. | ||
140 | + * @return java package sub name as per java rules. | ||
141 | + */ | ||
142 | + public static String getSubPkgFromName(String name) { | ||
143 | + ArrayList<String> pkgArr = new ArrayList<String>(); | ||
144 | + String[] nameArr = name.split(UtilConstants.COLAN); | ||
145 | + | ||
146 | + for (String nameString : nameArr) { | ||
147 | + pkgArr.add(nameString); | ||
148 | + } | ||
149 | + return getPkgFrmArr(pkgArr); | ||
150 | + } | ||
151 | + | ||
152 | + /** | ||
153 | + * Translate the YANG identifier name to java identifier. | ||
154 | + * | ||
155 | + * @param yangIdentifier identifier in YANG file. | ||
156 | + * @return corresponding java identifier | ||
157 | + */ | ||
158 | + public static String getCamelCase(String yangIdentifier) { | ||
159 | + String[] strArray = yangIdentifier.split(UtilConstants.HYPHEN); | ||
160 | + String camelCase = strArray[0]; | ||
161 | + for (int i = 1; i < strArray.length; i++) { | ||
162 | + camelCase = camelCase + (strArray[i].substring(0, 1).toUpperCase() + strArray[i].substring(1)); | ||
163 | + } | ||
164 | + return camelCase; | ||
165 | + } | ||
166 | +} |
1 | +/* | ||
2 | + * Copyright 2016 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.util.List; | ||
20 | + | ||
21 | +import org.onosproject.yangutils.datamodel.YangType; | ||
22 | +import org.onosproject.yangutils.translator.GeneratedFileType; | ||
23 | +import org.onosproject.yangutils.translator.tojava.AttributeInfo; | ||
24 | +import org.onosproject.yangutils.translator.tojava.GeneratedMethodTypes; | ||
25 | +import org.onosproject.yangutils.utils.UtilConstants; | ||
26 | +import org.onosproject.yangutils.utils.io.impl.JavaDocGen; | ||
27 | + | ||
28 | +/** | ||
29 | + * Generated methods for generated files based on the file type. | ||
30 | + */ | ||
31 | +public final class MethodsGenerator { | ||
32 | + | ||
33 | + private static String builderClassName; | ||
34 | + private static List<AttributeInfo> attrInfo; | ||
35 | + | ||
36 | + /** | ||
37 | + * Sets the builder class name for setter methods of builder class. | ||
38 | + * | ||
39 | + * @param name builder class name | ||
40 | + */ | ||
41 | + public static void setBuilderClassName(String name) { | ||
42 | + builderClassName = name; | ||
43 | + } | ||
44 | + | ||
45 | + /** | ||
46 | + * Sets the attribute info for the impl class's constructor method. | ||
47 | + * | ||
48 | + * @param attr list of attribute info | ||
49 | + */ | ||
50 | + public static void setAttrInfo(List<AttributeInfo> attr) { | ||
51 | + attrInfo = attr; | ||
52 | + } | ||
53 | + | ||
54 | + /** | ||
55 | + * Returns attribute info for the impl class's constructor method. | ||
56 | + * | ||
57 | + * @return list of attribute info | ||
58 | + */ | ||
59 | + public static List<AttributeInfo> getAttrInfo() { | ||
60 | + return attrInfo; | ||
61 | + } | ||
62 | + | ||
63 | + /** | ||
64 | + * Return the class name. | ||
65 | + * | ||
66 | + * @return class name | ||
67 | + */ | ||
68 | + public static String getBuilderClassName() { | ||
69 | + return builderClassName; | ||
70 | + } | ||
71 | + | ||
72 | + /** | ||
73 | + * Default constructor. | ||
74 | + */ | ||
75 | + private MethodsGenerator() { | ||
76 | + } | ||
77 | + | ||
78 | + /** | ||
79 | + * Return method strings. | ||
80 | + * | ||
81 | + * @param attr attribute info. | ||
82 | + * @param type generated file type | ||
83 | + * @return method string | ||
84 | + */ | ||
85 | + public static String getMethodString(AttributeInfo attr, GeneratedFileType type) { | ||
86 | + | ||
87 | + if (type.equals(GeneratedFileType.BUILDER_CLASS)) { | ||
88 | + | ||
89 | + return parseBuilderMethodString(attr); | ||
90 | + } else if (type.equals(GeneratedFileType.INTERFACE)) { | ||
91 | + | ||
92 | + return getGetterString(attr); | ||
93 | + } else if (type.equals(GeneratedFileType.BUILDER_INTERFACE)) { | ||
94 | + | ||
95 | + return parseBuilderInterfaceMethodString(attr); | ||
96 | + } else if (type.equals(GeneratedFileType.IMPL)) { | ||
97 | + | ||
98 | + return parseImplMethodString(attr); | ||
99 | + } | ||
100 | + return null; | ||
101 | + } | ||
102 | + | ||
103 | + /** | ||
104 | + * Returns constructed method impl for specific generated file type. | ||
105 | + * | ||
106 | + * @param genFileTypes generated file type | ||
107 | + * @param yangName class name | ||
108 | + * @param methodTypes method types | ||
109 | + * @param returnType return type of method | ||
110 | + * @return constructed method impl | ||
111 | + */ | ||
112 | + public static String constructMethodInfo(GeneratedFileType genFileTypes, String yangName, | ||
113 | + GeneratedMethodTypes methodTypes, YangType<?> returnType) { | ||
114 | + | ||
115 | + if (genFileTypes.equals(GeneratedFileType.INTERFACE)) { | ||
116 | + | ||
117 | + /** | ||
118 | + * If interface, only getter will be there. | ||
119 | + */ | ||
120 | + return getGetterForInterface(yangName, returnType); | ||
121 | + } else if (genFileTypes.equals(GeneratedFileType.BUILDER_INTERFACE)) { | ||
122 | + | ||
123 | + /** | ||
124 | + * If builder interface, getters and setters will be there. | ||
125 | + */ | ||
126 | + if (methodTypes.equals(GeneratedMethodTypes.GETTER)) { | ||
127 | + | ||
128 | + return getGetterForInterface(yangName, returnType); | ||
129 | + } else if (methodTypes.equals(GeneratedMethodTypes.SETTER)) { | ||
130 | + | ||
131 | + return getSetterForInterface(yangName, returnType); | ||
132 | + } else if (methodTypes.equals(GeneratedMethodTypes.BUILD)) { | ||
133 | + | ||
134 | + return getBuildForInterface(yangName); | ||
135 | + } | ||
136 | + } else if (genFileTypes.equals(GeneratedFileType.BUILDER_CLASS)) { | ||
137 | + | ||
138 | + /** | ||
139 | + * If Builder class , getters, setters ,build and default constructor impls will be there. | ||
140 | + */ | ||
141 | + if (methodTypes.equals(GeneratedMethodTypes.GETTER)) { | ||
142 | + | ||
143 | + return getGetterForClass(yangName, returnType); | ||
144 | + } else if (methodTypes.equals(GeneratedMethodTypes.SETTER)) { | ||
145 | + | ||
146 | + return getSetterForClass(yangName, returnType); | ||
147 | + } else if (methodTypes.equals(GeneratedMethodTypes.BUILD)) { | ||
148 | + | ||
149 | + return getBuild(yangName); | ||
150 | + } else if (methodTypes.equals(GeneratedMethodTypes.DEFAULT_CONSTRUCTOR)) { | ||
151 | + | ||
152 | + return getDefaultConstructor(yangName + UtilConstants.BUILDER); | ||
153 | + } | ||
154 | + } else if (genFileTypes.equals(GeneratedFileType.IMPL)) { | ||
155 | + | ||
156 | + if (methodTypes.equals(GeneratedMethodTypes.GETTER)) { | ||
157 | + | ||
158 | + return getGetterForClass(yangName, returnType); | ||
159 | + } else if (methodTypes.equals(GeneratedMethodTypes.CONSTRUCTOR)) { | ||
160 | + | ||
161 | + return getConstructor(yangName); | ||
162 | + } else if (methodTypes.equals(GeneratedMethodTypes.DEFAULT_CONSTRUCTOR)) { | ||
163 | + | ||
164 | + return getDefaultConstructor(yangName + UtilConstants.IMPL); | ||
165 | + } | ||
166 | + } | ||
167 | + return null; | ||
168 | + } | ||
169 | + | ||
170 | + /** | ||
171 | + * Returns the methods strings for builder class. | ||
172 | + * | ||
173 | + * @param attr attribute info. | ||
174 | + * @return method string for builder class. | ||
175 | + */ | ||
176 | + private static String parseBuilderMethodString(AttributeInfo attr) { | ||
177 | + | ||
178 | + String overrideString = UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.OVERRIDE | ||
179 | + + UtilConstants.NEW_LINE; | ||
180 | + | ||
181 | + String getterString = JavaCodeSnippetGen.getJavaMethodInfo(GeneratedFileType.BUILDER_CLASS, | ||
182 | + attr.getAttributeName(), GeneratedMethodTypes.GETTER, attr.getAttributeType()); | ||
183 | + String setterString = JavaCodeSnippetGen.getJavaMethodInfo(GeneratedFileType.BUILDER_CLASS, | ||
184 | + attr.getAttributeName(), GeneratedMethodTypes.SETTER, attr.getAttributeType()); | ||
185 | + | ||
186 | + return overrideString + getterString + UtilConstants.NEW_LINE + overrideString + setterString | ||
187 | + + UtilConstants.NEW_LINE; | ||
188 | + } | ||
189 | + | ||
190 | + /** | ||
191 | + * Returns the methods strings for builder class. | ||
192 | + * | ||
193 | + * @param attr attribute info. | ||
194 | + * @return method string for builder class. | ||
195 | + */ | ||
196 | + private static String parseImplMethodString(AttributeInfo attr) { | ||
197 | + | ||
198 | + return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.OVERRIDE | ||
199 | + + UtilConstants.NEW_LINE + JavaCodeSnippetGen.getJavaMethodInfo(GeneratedFileType.BUILDER_CLASS, | ||
200 | + attr.getAttributeName(), GeneratedMethodTypes.GETTER, attr.getAttributeType()) | ||
201 | + + UtilConstants.NEW_LINE; | ||
202 | + } | ||
203 | + | ||
204 | + /** | ||
205 | + * Returns the methods strings for builder interface. | ||
206 | + * | ||
207 | + * @param attr attribute info. | ||
208 | + * @return method string for builder interface. | ||
209 | + */ | ||
210 | + private static String parseBuilderInterfaceMethodString(AttributeInfo attr) { | ||
211 | + | ||
212 | + return getGetterString(attr) + UtilConstants.NEW_LINE + getSetterString(attr); | ||
213 | + } | ||
214 | + | ||
215 | + /** | ||
216 | + * Returns the methods strings for builder interface. | ||
217 | + * | ||
218 | + * @param name attribute name. | ||
219 | + * @return method string for builder interface. | ||
220 | + */ | ||
221 | + public static String parseBuilderInterfaceBuildMethodString(String name) { | ||
222 | + | ||
223 | + return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.BUILD, name) + JavaCodeSnippetGen | ||
224 | + .getJavaMethodInfo(GeneratedFileType.BUILDER_INTERFACE, name, GeneratedMethodTypes.BUILD, null); | ||
225 | + } | ||
226 | + | ||
227 | + /** | ||
228 | + * Returns getter string. | ||
229 | + * | ||
230 | + * @param attr attribute info. | ||
231 | + * @return getter string | ||
232 | + */ | ||
233 | + public static String getGetterString(AttributeInfo attr) { | ||
234 | + | ||
235 | + return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.GETTER, attr.getAttributeName()) | ||
236 | + + JavaCodeSnippetGen.getJavaMethodInfo(GeneratedFileType.INTERFACE, attr.getAttributeName(), | ||
237 | + GeneratedMethodTypes.GETTER, attr.getAttributeType()) | ||
238 | + + UtilConstants.NEW_LINE; | ||
239 | + } | ||
240 | + | ||
241 | + /** | ||
242 | + * Returns setter string. | ||
243 | + * | ||
244 | + * @param attr attribute info. | ||
245 | + * @return setter string | ||
246 | + */ | ||
247 | + private static String getSetterString(AttributeInfo attr) { | ||
248 | + | ||
249 | + return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.SETTER, attr.getAttributeName()) | ||
250 | + + JavaCodeSnippetGen.getJavaMethodInfo(GeneratedFileType.BUILDER_INTERFACE, attr.getAttributeName(), | ||
251 | + GeneratedMethodTypes.SETTER, attr.getAttributeType()); | ||
252 | + } | ||
253 | + | ||
254 | + /** | ||
255 | + * Returns constructor method string. | ||
256 | + * | ||
257 | + * @param name class name | ||
258 | + * @return constructor string | ||
259 | + */ | ||
260 | + public static String getConstructorString(String name) { | ||
261 | + | ||
262 | + return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.CONSTRUCTOR, name) + JavaCodeSnippetGen | ||
263 | + .getJavaMethodInfo(GeneratedFileType.IMPL, name, GeneratedMethodTypes.CONSTRUCTOR, null); | ||
264 | + } | ||
265 | + | ||
266 | + /** | ||
267 | + * Returns default constructor method string. | ||
268 | + * | ||
269 | + * @param type generated file type | ||
270 | + * @param name class name | ||
271 | + * @return default constructor string | ||
272 | + */ | ||
273 | + public static String getDefaultConstructorString(GeneratedFileType type, String name) { | ||
274 | + | ||
275 | + return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.DEFAULT_CONSTRUCTOR, name) | ||
276 | + + JavaCodeSnippetGen.getJavaMethodInfo(type, name, GeneratedMethodTypes.DEFAULT_CONSTRUCTOR, null); | ||
277 | + } | ||
278 | + | ||
279 | + /** | ||
280 | + * Returns build method string. | ||
281 | + * | ||
282 | + * @param name class name | ||
283 | + * @return build string | ||
284 | + */ | ||
285 | + public static String getBuildString(String name) { | ||
286 | + | ||
287 | + return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.OVERRIDE + UtilConstants.NEW_LINE | ||
288 | + + JavaCodeSnippetGen.getJavaMethodInfo(GeneratedFileType.BUILDER_CLASS, name, | ||
289 | + GeneratedMethodTypes.BUILD, null); | ||
290 | + } | ||
291 | + | ||
292 | + /** | ||
293 | + * Returns the getter method strings for class file. | ||
294 | + * | ||
295 | + * @param yangName name of the attribute. | ||
296 | + * @param returnType return type of attribute | ||
297 | + * @return getter method for class. | ||
298 | + */ | ||
299 | + private static String getGetterForClass(String yangName, YangType<?> returnType) { | ||
300 | + | ||
301 | + return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE | ||
302 | + + returnType.getDataTypeName() + UtilConstants.SPACE + UtilConstants.GET_METHOD_PREFIX + yangName | ||
303 | + + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE | ||
304 | + + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE + UtilConstants.EIGHT_SPACE_INDENTATION | ||
305 | + + UtilConstants.RETURN + UtilConstants.SPACE + yangName + UtilConstants.SEMI_COLAN | ||
306 | + + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.CLOSE_CURLY_BRACKET; | ||
307 | + } | ||
308 | + | ||
309 | + /** | ||
310 | + * Returns the setter method strings for class file. | ||
311 | + * | ||
312 | + * @param yangName name of the attribute. | ||
313 | + * @param returnType return type of attribute | ||
314 | + * @return setter method for class. | ||
315 | + */ | ||
316 | + private static String getSetterForClass(String yangName, YangType<?> returnType) { | ||
317 | + | ||
318 | + return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE + getBuilderClassName() | ||
319 | + + UtilConstants.SPACE + UtilConstants.SET_METHOD_PREFIX + yangName + UtilConstants.OPEN_PARENTHESIS | ||
320 | + + returnType.getDataTypeName() + UtilConstants.SPACE + yangName + UtilConstants.CLOSE_PARENTHESIS | ||
321 | + + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE | ||
322 | + + UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.THIS + UtilConstants.PERIOD + yangName | ||
323 | + + UtilConstants.SPACE + UtilConstants.EQUAL + UtilConstants.SPACE + yangName + UtilConstants.SEMI_COLAN | ||
324 | + + UtilConstants.NEW_LINE + UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.RETURN | ||
325 | + + UtilConstants.SPACE + UtilConstants.THIS + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE | ||
326 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.CLOSE_CURLY_BRACKET; | ||
327 | + } | ||
328 | + | ||
329 | + /** | ||
330 | + * Returns the getter method strings for interface file. | ||
331 | + * | ||
332 | + * @param yangName name of the attribute. | ||
333 | + * @param returnType return type of attribute | ||
334 | + * @return getter method for interface. | ||
335 | + */ | ||
336 | + private static String getGetterForInterface(String yangName, YangType<?> returnType) { | ||
337 | + returnType.setDataTypeName(returnType.getDataTypeName().replace("\"", "")); | ||
338 | + return UtilConstants.FOUR_SPACE_INDENTATION + returnType.getDataTypeName() + UtilConstants.SPACE | ||
339 | + + UtilConstants.GET_METHOD_PREFIX + yangName + UtilConstants.OPEN_PARENTHESIS | ||
340 | + + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SEMI_COLAN; | ||
341 | + } | ||
342 | + | ||
343 | + /** | ||
344 | + * Returns the setter method strings for interface file. | ||
345 | + * | ||
346 | + * @param yangName name of the attribute. | ||
347 | + * @param returnType return type of attribute | ||
348 | + * @return setter method for interface. | ||
349 | + */ | ||
350 | + private static String getSetterForInterface(String yangName, YangType<?> returnType) { | ||
351 | + return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.BUILDER + UtilConstants.SPACE | ||
352 | + + UtilConstants.SET_METHOD_PREFIX + yangName + UtilConstants.OPEN_PARENTHESIS | ||
353 | + + returnType.getDataTypeName() + UtilConstants.SPACE + yangName + UtilConstants.CLOSE_PARENTHESIS | ||
354 | + + UtilConstants.SEMI_COLAN; | ||
355 | + } | ||
356 | + | ||
357 | + /** | ||
358 | + * Returns the build method strings for interface file. | ||
359 | + * | ||
360 | + * @param yangName name of the attribute. | ||
361 | + * @param returnType return type of attribute | ||
362 | + * @return build method for interface. | ||
363 | + */ | ||
364 | + private static String getBuildForInterface(String yangName) { | ||
365 | + | ||
366 | + return UtilConstants.FOUR_SPACE_INDENTATION + yangName + UtilConstants.SPACE + UtilConstants.BUILD | ||
367 | + + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SEMI_COLAN; | ||
368 | + } | ||
369 | + | ||
370 | + /** | ||
371 | + * Returns the constructor strings for class file. | ||
372 | + * | ||
373 | + * @param yangName name of the class. | ||
374 | + * @return constructor for class | ||
375 | + */ | ||
376 | + private static String getConstructor(String yangName) { | ||
377 | + | ||
378 | + String builderAttribute = (yangName.substring(0, 1).toLowerCase() + yangName.substring(1)); | ||
379 | + String constructor = UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE | ||
380 | + + yangName + UtilConstants.IMPL + UtilConstants.OPEN_PARENTHESIS + yangName + UtilConstants.BUILDER | ||
381 | + + UtilConstants.SPACE + builderAttribute + UtilConstants.OBJECT + UtilConstants.CLOSE_PARENTHESIS | ||
382 | + + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE; | ||
383 | + | ||
384 | + if (getAttrInfo() != null) { | ||
385 | + for (AttributeInfo attribute : getAttrInfo()) { | ||
386 | + attribute.setAttributeName(JavaIdentifierSyntax.getCamelCase(attribute.getAttributeName())); | ||
387 | + constructor = constructor + UtilConstants.TWELVE_SPACE_INDENTATION + UtilConstants.THIS | ||
388 | + + UtilConstants.PERIOD + attribute.getAttributeName() + UtilConstants.SPACE | ||
389 | + + UtilConstants.EQUAL + UtilConstants.SPACE + builderAttribute + UtilConstants.OBJECT | ||
390 | + + UtilConstants.PERIOD + UtilConstants.GET_METHOD_PREFIX + attribute.getAttributeName() | ||
391 | + + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SEMI_COLAN | ||
392 | + + UtilConstants.NEW_LINE; | ||
393 | + } | ||
394 | + getAttrInfo().clear(); | ||
395 | + } | ||
396 | + return constructor + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.CLOSE_CURLY_BRACKET | ||
397 | + + UtilConstants.NEW_LINE; | ||
398 | + } | ||
399 | + | ||
400 | + /** | ||
401 | + * Returns the build method strings for class file. | ||
402 | + * | ||
403 | + * @param yangName class name | ||
404 | + * @return build method string for class. | ||
405 | + */ | ||
406 | + private static String getBuild(String yangName) { | ||
407 | + | ||
408 | + return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE + yangName | ||
409 | + + UtilConstants.SPACE + UtilConstants.BUILD + UtilConstants.OPEN_PARENTHESIS | ||
410 | + + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET | ||
411 | + + UtilConstants.NEW_LINE + UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.RETURN | ||
412 | + + UtilConstants.SPACE + UtilConstants.NEW + UtilConstants.SPACE + yangName + UtilConstants.IMPL | ||
413 | + + UtilConstants.OPEN_PARENTHESIS + UtilConstants.THIS + UtilConstants.CLOSE_PARENTHESIS | ||
414 | + + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
415 | + + UtilConstants.CLOSE_CURLY_BRACKET; | ||
416 | + } | ||
417 | + | ||
418 | + /** | ||
419 | + * Returns the Default constructor strings for class file. | ||
420 | + * | ||
421 | + * @param yangName name of the class. | ||
422 | + * @return Default constructor for class | ||
423 | + */ | ||
424 | + private static String getDefaultConstructor(String name) { | ||
425 | + | ||
426 | + return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE + name | ||
427 | + + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE | ||
428 | + + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
429 | + + UtilConstants.CLOSE_CURLY_BRACKET + UtilConstants.NEW_LINE; | ||
430 | + } | ||
431 | + | ||
432 | +} |
utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/CachedFileHandle.java
deleted
100644 → 0
1 | -/*Copyright 2016.year Open Networking Laboratory | ||
2 | - | ||
3 | -Licensed under the Apache License, Version 2.0 (the "License"); | ||
4 | -you may not use this file except in compliance with the License. | ||
5 | -You may obtain a copy of the License at | ||
6 | - | ||
7 | - http://www.apache.org/licenses/LICENSE-2.0 | ||
8 | - | ||
9 | -Unless required by applicable law or agreed to in writing, software | ||
10 | -distributed under the License is distributed on an "AS IS" BASIS, | ||
11 | -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
12 | -See the License for the specific language governing permissions and | ||
13 | -limitations under the License.*/ | ||
14 | -package org.onosproject.yangutils.utils.io; | ||
15 | - | ||
16 | -import org.onosproject.yangutils.translator.GeneratedFileType; | ||
17 | - | ||
18 | -/** | ||
19 | - * Cached java file handle, which supports the addition of member attributes and | ||
20 | - * methods. | ||
21 | - */ | ||
22 | -public interface CachedFileHandle { | ||
23 | - | ||
24 | - /** | ||
25 | - * Add a new attribute to the file(s). | ||
26 | - * | ||
27 | - * @param attrType data type of the added attribute. | ||
28 | - * @param name name of the attribute. | ||
29 | - * @param isListAttr if the current added attribute needs to be maintained | ||
30 | - * in a list. | ||
31 | - * @param fileTypes types of files in which the attribute needs to be added. | ||
32 | - */ | ||
33 | - void addAttributeInfo(String attrType, String name, boolean isListAttr, GeneratedFileType fileTypes); | ||
34 | - | ||
35 | - /** | ||
36 | - * Flushes the cached contents to the target file, frees used resources. | ||
37 | - */ | ||
38 | - void close(); | ||
39 | -} |
... | @@ -33,9 +33,11 @@ import org.slf4j.Logger; | ... | @@ -33,9 +33,11 @@ import org.slf4j.Logger; |
33 | public final class CopyrightHeader { | 33 | public final class CopyrightHeader { |
34 | 34 | ||
35 | private static final Logger log = getLogger(CopyrightHeader.class); | 35 | private static final Logger log = getLogger(CopyrightHeader.class); |
36 | - private static final int NULL = -1; | 36 | + private static final int EOF = -1; |
37 | private static ClassLoader classLoader = CopyrightHeader.class.getClassLoader(); | 37 | private static ClassLoader classLoader = CopyrightHeader.class.getClassLoader(); |
38 | 38 | ||
39 | + private static String copyrightHeader; | ||
40 | + | ||
39 | /** | 41 | /** |
40 | * Default constructor. | 42 | * Default constructor. |
41 | */ | 43 | */ |
... | @@ -43,21 +45,30 @@ public final class CopyrightHeader { | ... | @@ -43,21 +45,30 @@ public final class CopyrightHeader { |
43 | } | 45 | } |
44 | 46 | ||
45 | /** | 47 | /** |
46 | - * Returns Copyright file header. | 48 | + * Returns copyright file header. |
47 | * | 49 | * |
48 | - * @return Copyright file header | 50 | + * @return copyright file header |
51 | + * @throws IOException when fails to parse copyright header. | ||
49 | */ | 52 | */ |
50 | - public static String getCopyrightHeader() { | 53 | + public static String getCopyrightHeader() throws IOException { |
51 | - return parseOnosHeader(); | 54 | + return copyrightHeader; |
55 | + } | ||
56 | + | ||
57 | + /** | ||
58 | + * Sets the copyright header. | ||
59 | + * | ||
60 | + * @param header copyright header | ||
61 | + */ | ||
62 | + private static void setCopyrightHeader(String header) { | ||
63 | + copyrightHeader = header; | ||
52 | } | 64 | } |
53 | 65 | ||
54 | /** | 66 | /** |
55 | * parse Copyright to the temporary file. | 67 | * parse Copyright to the temporary file. |
56 | * | 68 | * |
57 | - * @param file generated file | 69 | + * @throws IOException when fails to get the copyright header. |
58 | - * @param stream input stream | ||
59 | */ | 70 | */ |
60 | - private static String parseOnosHeader() { | 71 | + public static void parseCopyrightHeader() throws IOException { |
61 | 72 | ||
62 | File temp = new File("temp.txt"); | 73 | File temp = new File("temp.txt"); |
63 | 74 | ||
... | @@ -65,17 +76,18 @@ public final class CopyrightHeader { | ... | @@ -65,17 +76,18 @@ public final class CopyrightHeader { |
65 | InputStream stream = classLoader.getResourceAsStream("CopyrightHeader.txt"); | 76 | InputStream stream = classLoader.getResourceAsStream("CopyrightHeader.txt"); |
66 | OutputStream out = new FileOutputStream(temp); | 77 | OutputStream out = new FileOutputStream(temp); |
67 | int index; | 78 | int index; |
68 | - while ((index = stream.read()) != NULL) { | 79 | + while ((index = stream.read()) != EOF) { |
69 | out.write(index); | 80 | out.write(index); |
70 | } | 81 | } |
71 | out.close(); | 82 | out.close(); |
72 | - return convertToString(temp.toString()); | 83 | + stream.close(); |
84 | + getStringFileContent(temp); | ||
85 | + setCopyrightHeader(getStringFileContent(temp)); | ||
73 | } catch (IOException e) { | 86 | } catch (IOException e) { |
74 | - log.info("Failed to insert onos header in files."); | 87 | + throw new IOException("failed to parse the Copyright header"); |
75 | } finally { | 88 | } finally { |
76 | temp.delete(); | 89 | temp.delete(); |
77 | } | 90 | } |
78 | - return ""; | ||
79 | } | 91 | } |
80 | 92 | ||
81 | /** | 93 | /** |
... | @@ -85,7 +97,8 @@ public final class CopyrightHeader { | ... | @@ -85,7 +97,8 @@ public final class CopyrightHeader { |
85 | * @return string of file. | 97 | * @return string of file. |
86 | * @throws IOException when fails to convert to string | 98 | * @throws IOException when fails to convert to string |
87 | */ | 99 | */ |
88 | - private static String convertToString(String toAppend) throws IOException { | 100 | + private static String getStringFileContent(File toAppend) throws IOException { |
101 | + | ||
89 | BufferedReader bufferReader = new BufferedReader(new FileReader(toAppend)); | 102 | BufferedReader bufferReader = new BufferedReader(new FileReader(toAppend)); |
90 | try { | 103 | try { |
91 | StringBuilder stringBuilder = new StringBuilder(); | 104 | StringBuilder stringBuilder = new StringBuilder(); | ... | ... |
utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/FileSystemUtil.java
0 → 100644
1 | +/* | ||
2 | + * Copyright 2016 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.utils.io.impl; | ||
18 | + | ||
19 | +import java.io.BufferedReader; | ||
20 | +import java.io.File; | ||
21 | +import java.io.FileReader; | ||
22 | +import java.io.FileWriter; | ||
23 | +import java.io.IOException; | ||
24 | +import java.io.PrintWriter; | ||
25 | + | ||
26 | +import org.onosproject.yangutils.translator.CachedFileHandle; | ||
27 | +import org.onosproject.yangutils.translator.GeneratedFileType; | ||
28 | +import org.onosproject.yangutils.translator.tojava.CachedJavaFileHandle; | ||
29 | +import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax; | ||
30 | +import org.onosproject.yangutils.utils.UtilConstants; | ||
31 | + | ||
32 | +/** | ||
33 | + * Utility to handle file system operations. | ||
34 | + */ | ||
35 | +public final class FileSystemUtil { | ||
36 | + /** | ||
37 | + * Hiding constructor of a utility class. | ||
38 | + */ | ||
39 | + private FileSystemUtil() { | ||
40 | + } | ||
41 | + | ||
42 | + /** | ||
43 | + * Check if the package directory structure created. | ||
44 | + * | ||
45 | + * @param pkg Package to check if it is created. | ||
46 | + * @return existence status of package. | ||
47 | + */ | ||
48 | + public static boolean doesPackageExist(File pkg) { | ||
49 | + if (pkg.exists()) { | ||
50 | + return true; | ||
51 | + } | ||
52 | + return false; | ||
53 | + } | ||
54 | + | ||
55 | + /** | ||
56 | + * Create a package structure with package info java file if not present. | ||
57 | + * | ||
58 | + * @param pkg java package string | ||
59 | + * @param pkgInfo description of package | ||
60 | + * @throws IOException any IO exception | ||
61 | + */ | ||
62 | + public static void createPackage(String pkg, String pkgInfo) throws IOException { | ||
63 | + if (!doesPackageExist(new File(pkg))) { | ||
64 | + try { | ||
65 | + File pack = YangIoUtils | ||
66 | + .createDirectories(pkg.replace(UtilConstants.PERIOD, UtilConstants.SLASH)); | ||
67 | + YangIoUtils.addPackageInfo(pack, pkgInfo, pkg); | ||
68 | + } catch (IOException e) { | ||
69 | + throw new IOException("failed to create package-info file"); | ||
70 | + } | ||
71 | + } | ||
72 | + } | ||
73 | + | ||
74 | + /** | ||
75 | + * Create a java source file in the specified package. | ||
76 | + * | ||
77 | + * @param pkg java package under which the interface file needs to be created. | ||
78 | + * @param yangName YANG name of the node for which java file needs to be created. | ||
79 | + * @param types types of files to be created. | ||
80 | + * @throws IOException when fails to create interface file. | ||
81 | + * @return the cached java file handle, which can be used to further add methods. | ||
82 | + */ | ||
83 | + public static CachedFileHandle createSourceFiles(String pkg, String yangName, GeneratedFileType types) | ||
84 | + throws IOException { | ||
85 | + //if (!doesPackageExist(new File(pkg))) { | ||
86 | + // throw new IOException("package does not exist."); | ||
87 | + //} | ||
88 | + yangName = JavaIdentifierSyntax.getCamelCase(yangName); | ||
89 | + CachedFileHandle handler = new CachedJavaFileHandle(pkg, yangName, types); | ||
90 | + | ||
91 | + return handler; | ||
92 | + } | ||
93 | + | ||
94 | + /** | ||
95 | + * Read the contents from source file and append its contents to append | ||
96 | + * file. | ||
97 | + * | ||
98 | + * @param toAppend destination file in which the contents of source file is | ||
99 | + * appended. | ||
100 | + * @param srcFile source file from which data is read and added to to append | ||
101 | + * file. | ||
102 | + * @throws IOException any IO errors. | ||
103 | + */ | ||
104 | + public static void appendFileContents(File toAppend, File srcFile) throws IOException { | ||
105 | + | ||
106 | + insertStringInFile(srcFile, UtilConstants.NEW_LINE + readAppendFile(toAppend.toString())); | ||
107 | + //TODO: read the contents from src file and append its contents to append file. | ||
108 | + return; | ||
109 | + } | ||
110 | + | ||
111 | + /** | ||
112 | + * Reads file and convert it to string. | ||
113 | + * | ||
114 | + * @param toAppend file to be converted. | ||
115 | + * @return string of file. | ||
116 | + * @throws IOException when fails to convert to string | ||
117 | + */ | ||
118 | + private static String readAppendFile(String toAppend) throws IOException { | ||
119 | + BufferedReader bufferReader = new BufferedReader(new FileReader(toAppend)); | ||
120 | + try { | ||
121 | + StringBuilder stringBuilder = new StringBuilder(); | ||
122 | + String line = bufferReader.readLine(); | ||
123 | + | ||
124 | + while (line != null) { | ||
125 | + stringBuilder.append(UtilConstants.FOUR_SPACE_INDENTATION + line); | ||
126 | + stringBuilder.append("\n"); | ||
127 | + line = bufferReader.readLine(); | ||
128 | + } | ||
129 | + return stringBuilder.toString(); | ||
130 | + } finally { | ||
131 | + bufferReader.close(); | ||
132 | + } | ||
133 | + } | ||
134 | + | ||
135 | + /** | ||
136 | + * Insert content to the generated file. | ||
137 | + * | ||
138 | + * @param inputFile input file | ||
139 | + * @param contentTobeAdded content to be appended to the file. | ||
140 | + * @throws IOException when fails to append content to the file. | ||
141 | + */ | ||
142 | + public static void insertStringInFile(File inputFile, String contentTobeAdded) throws IOException { | ||
143 | + FileWriter fileWriter = new FileWriter(inputFile, true); | ||
144 | + PrintWriter outputPrintWriter = new PrintWriter(fileWriter); | ||
145 | + outputPrintWriter.write(contentTobeAdded); | ||
146 | + outputPrintWriter.flush(); | ||
147 | + outputPrintWriter.close(); | ||
148 | + | ||
149 | + } | ||
150 | +} |
1 | +/* | ||
2 | + * Copyright 2016 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.utils.io.impl; | ||
18 | + | ||
19 | +import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax; | ||
20 | +import org.onosproject.yangutils.utils.UtilConstants; | ||
21 | + | ||
22 | +/** | ||
23 | + * Provides javadoc for the generated classes. | ||
24 | + */ | ||
25 | +public final class JavaDocGen { | ||
26 | + | ||
27 | + /** | ||
28 | + * Default Constructor. | ||
29 | + */ | ||
30 | + private JavaDocGen() { | ||
31 | + } | ||
32 | + | ||
33 | + /** | ||
34 | + * JavaDocs types. | ||
35 | + */ | ||
36 | + public static enum JavaDocType { | ||
37 | + | ||
38 | + /** | ||
39 | + * For class. | ||
40 | + */ | ||
41 | + IMPL_CLASS, | ||
42 | + | ||
43 | + /** | ||
44 | + * For builder class. | ||
45 | + */ | ||
46 | + BUILDER_CLASS, | ||
47 | + | ||
48 | + /** | ||
49 | + * For interface. | ||
50 | + */ | ||
51 | + INTERFACE, | ||
52 | + | ||
53 | + /** | ||
54 | + * For builder interface. | ||
55 | + */ | ||
56 | + BUILDER_INTERFACE, | ||
57 | + | ||
58 | + /** | ||
59 | + * For package-info. | ||
60 | + */ | ||
61 | + PACKAGE_INFO, | ||
62 | + | ||
63 | + /** | ||
64 | + * For getters. | ||
65 | + */ | ||
66 | + GETTER, | ||
67 | + | ||
68 | + /** | ||
69 | + * For setters. | ||
70 | + */ | ||
71 | + SETTER, | ||
72 | + | ||
73 | + /** | ||
74 | + * For default constructor. | ||
75 | + */ | ||
76 | + DEFAULT_CONSTRUCTOR, | ||
77 | + | ||
78 | + /** | ||
79 | + * For constructor. | ||
80 | + */ | ||
81 | + CONSTRUCTOR, | ||
82 | + | ||
83 | + /** | ||
84 | + * For build. | ||
85 | + */ | ||
86 | + BUILD | ||
87 | + } | ||
88 | + | ||
89 | + /** | ||
90 | + * Returns java docs. | ||
91 | + * | ||
92 | + * @param type java doc type | ||
93 | + * @param name name of the YangNode | ||
94 | + * @return javadocs. | ||
95 | + */ | ||
96 | + public static String getJavaDoc(JavaDocType type, String name) { | ||
97 | + name = JavaIdentifierSyntax.getCamelCase(name); | ||
98 | + String javaDoc = ""; | ||
99 | + if (type.equals(JavaDocType.IMPL_CLASS)) { | ||
100 | + javaDoc = generateForImplClass(name); | ||
101 | + } else if (type.equals(JavaDocType.BUILDER_CLASS)) { | ||
102 | + javaDoc = generateForBuilderClass(name); | ||
103 | + } else if (type.equals(JavaDocType.INTERFACE)) { | ||
104 | + javaDoc = generateForInterface(name); | ||
105 | + } else if (type.equals(JavaDocType.BUILDER_INTERFACE)) { | ||
106 | + javaDoc = generateForBuilderInterface(name); | ||
107 | + } else if (type.equals(JavaDocType.PACKAGE_INFO)) { | ||
108 | + javaDoc = generateForPackage(name); | ||
109 | + } else if (type.equals(JavaDocType.GETTER)) { | ||
110 | + javaDoc = generateForGetters(name); | ||
111 | + } else if (type.equals(JavaDocType.SETTER)) { | ||
112 | + javaDoc = generateForSetters(name); | ||
113 | + } else if (type.equals(JavaDocType.DEFAULT_CONSTRUCTOR)) { | ||
114 | + javaDoc = generateForDefaultConstructors(); | ||
115 | + } else if (type.equals(JavaDocType.BUILD)) { | ||
116 | + javaDoc = generateForBuild(name); | ||
117 | + } else if (type.equals(JavaDocType.CONSTRUCTOR)) { | ||
118 | + javaDoc = generateForConstructors(name); | ||
119 | + } | ||
120 | + return javaDoc; | ||
121 | + } | ||
122 | + | ||
123 | + /** | ||
124 | + * Generate javaDocs for getter method. | ||
125 | + * | ||
126 | + * @param attribute attribute | ||
127 | + * @return javaDocs | ||
128 | + */ | ||
129 | + private static String generateForGetters(String attribute) { | ||
130 | + return (UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE | ||
131 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_GETTERS + attribute | ||
132 | + + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
133 | + + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_RETURN | ||
134 | + + attribute + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
135 | + + UtilConstants.JAVA_DOC_END_LINE); | ||
136 | + } | ||
137 | + | ||
138 | + /** | ||
139 | + * Generates javaDocs for setter method. | ||
140 | + * | ||
141 | + * @param attribute attribute | ||
142 | + * @return javaDocs | ||
143 | + */ | ||
144 | + private static String generateForSetters(String attribute) { | ||
145 | + return (UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE | ||
146 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_SETTERS + attribute | ||
147 | + + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
148 | + + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM | ||
149 | + + attribute + UtilConstants.SPACE + attribute + UtilConstants.NEW_LINE | ||
150 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_RETURN + UtilConstants.BUILDER_OBJECT | ||
151 | + + attribute + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
152 | + + UtilConstants.JAVA_DOC_END_LINE); | ||
153 | + } | ||
154 | + | ||
155 | + /** | ||
156 | + * Generate javaDocs for the impl class. | ||
157 | + * | ||
158 | + * @param className class name | ||
159 | + * @return javaDocs. | ||
160 | + */ | ||
161 | + private static String generateForImplClass(String className) { | ||
162 | + return (UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.IMPL_CLASS_JAVA_DOC + className + UtilConstants.PERIOD | ||
163 | + + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE); | ||
164 | + } | ||
165 | + | ||
166 | + /** | ||
167 | + * Generate javaDocs for the builder class. | ||
168 | + * | ||
169 | + * @param className class name | ||
170 | + * @return javaDocs. | ||
171 | + */ | ||
172 | + private static String generateForBuilderClass(String className) { | ||
173 | + return (UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.BUILDER_CLASS_JAVA_DOC | ||
174 | + + className + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE); | ||
175 | + } | ||
176 | + | ||
177 | + /** | ||
178 | + * Generate javaDoc for the interface. | ||
179 | + * | ||
180 | + * @param interfaceName interface name | ||
181 | + * @return javaDocs. | ||
182 | + */ | ||
183 | + private static String generateForInterface(String interfaceName) { | ||
184 | + return (UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.INTERFACE_JAVA_DOC | ||
185 | + + interfaceName + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE); | ||
186 | + } | ||
187 | + | ||
188 | + /** | ||
189 | + * Generate javaDoc for the builder interface. | ||
190 | + * | ||
191 | + * @param builderforName builder for name | ||
192 | + * @return javaDocs. | ||
193 | + */ | ||
194 | + private static String generateForBuilderInterface(String builderforName) { | ||
195 | + return (UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.BUILDER_INTERFACE_JAVA_DOC + builderforName | ||
196 | + + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE); | ||
197 | + } | ||
198 | + | ||
199 | + /** | ||
200 | + * Generate javaDocs for package-info. | ||
201 | + * | ||
202 | + * @param packageName package name | ||
203 | + * @return javaDocs | ||
204 | + */ | ||
205 | + private static String generateForPackage(String packageName) { | ||
206 | + return (UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.PACKAGE_INFO_JAVADOC + packageName | ||
207 | + + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE); | ||
208 | + } | ||
209 | + | ||
210 | + /** | ||
211 | + * Generate javaDocs for default constructor. | ||
212 | + * | ||
213 | + * @return javaDocs | ||
214 | + */ | ||
215 | + private static String generateForDefaultConstructors() { | ||
216 | + return (UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_DEFAULT_CONSTRUCTOR | ||
217 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE); | ||
218 | + } | ||
219 | + | ||
220 | + /** | ||
221 | + * Generate javaDocs for constructor with parameters. | ||
222 | + * | ||
223 | + * @param params list of parameters | ||
224 | + * @param className class name | ||
225 | + * @return javaDocs | ||
226 | + */ | ||
227 | + private static String generateForConstructors(String className) { | ||
228 | + return (UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
229 | + + UtilConstants.JAVA_DOC_SETTERS + className + UtilConstants.PERIOD + UtilConstants.NEW_LINE | ||
230 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.NEW_LINE_ESTRIC | ||
231 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM | ||
232 | + + (className.substring(0, 1).toLowerCase() + className.substring(1)) + UtilConstants.OBJECT | ||
233 | + + UtilConstants.SPACE + UtilConstants.BUILDER_OBJECT + UtilConstants.SPACE + className | ||
234 | + + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE); | ||
235 | + } | ||
236 | + | ||
237 | + /** | ||
238 | + * Generate javaDocs for build. | ||
239 | + * | ||
240 | + * @return javaDocs | ||
241 | + */ | ||
242 | + private static String generateForBuild(String buildName) { | ||
243 | + return (UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE | ||
244 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_BUILD + buildName + UtilConstants.PERIOD | ||
245 | + + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.NEW_LINE_ESTRIC | ||
246 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_RETURN | ||
247 | + + UtilConstants.JAVA_DOC_BUILD_RETURN + buildName + UtilConstants.PERIOD + UtilConstants.NEW_LINE | ||
248 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE); | ||
249 | + } | ||
250 | +} |
utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/SerializedDataStore.java
0 → 100644
1 | +/* | ||
2 | + * Copyright 2016 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.utils.io.impl; | ||
18 | + | ||
19 | +import java.io.BufferedInputStream; | ||
20 | +import java.io.BufferedOutputStream; | ||
21 | +import java.io.FileInputStream; | ||
22 | +import java.io.FileOutputStream; | ||
23 | +import java.io.IOException; | ||
24 | +import java.io.InputStream; | ||
25 | +import java.io.ObjectInput; | ||
26 | +import java.io.ObjectInputStream; | ||
27 | +import java.io.ObjectOutput; | ||
28 | +import java.io.ObjectOutputStream; | ||
29 | +import java.io.OutputStream; | ||
30 | +import java.util.List; | ||
31 | + | ||
32 | +/** | ||
33 | + * Provides storage for serialized data while traversing data model tree for code generation. | ||
34 | + */ | ||
35 | +public final class SerializedDataStore { | ||
36 | + | ||
37 | + /** | ||
38 | + * Data Store types. | ||
39 | + */ | ||
40 | + public static enum SerializedDataStoreType { | ||
41 | + | ||
42 | + /** | ||
43 | + * Methods. | ||
44 | + */ | ||
45 | + INTERFACE_METHODS, | ||
46 | + | ||
47 | + /** | ||
48 | + * Methods. | ||
49 | + */ | ||
50 | + BUILDER_METHODS, | ||
51 | + | ||
52 | + /** | ||
53 | + * Methods. | ||
54 | + */ | ||
55 | + BUILDER_INTERFACE_METHODS, | ||
56 | + | ||
57 | + /** | ||
58 | + * Methods. | ||
59 | + */ | ||
60 | + IMPL_METHODS, | ||
61 | + | ||
62 | + /** | ||
63 | + * Attributes. | ||
64 | + */ | ||
65 | + ATTRIBUTE, | ||
66 | + | ||
67 | + /** | ||
68 | + * Imports. | ||
69 | + */ | ||
70 | + IMPORT | ||
71 | + } | ||
72 | + | ||
73 | + /** | ||
74 | + * File name string for serialized files of methods. | ||
75 | + */ | ||
76 | + private static final String INTERFACE_METHOD_FILE_NAME = "SerializedInterfaceMethodDataStore"; | ||
77 | + | ||
78 | + /** | ||
79 | + * File name string for serialized files of methods. | ||
80 | + */ | ||
81 | + private static final String BUILDER_METHOD_FILE_NAME = "SerializedBuilderMethodDataStore"; | ||
82 | + | ||
83 | + /** | ||
84 | + * File name string for serialized files of methods. | ||
85 | + */ | ||
86 | + private static final String BUILDER_INTERFACE_METHOD_FILE_NAME = "SerializedBuilderInterfaceMethodDataStore"; | ||
87 | + | ||
88 | + /** | ||
89 | + * File name string for serialized files of methods. | ||
90 | + */ | ||
91 | + private static final String IMPL_METHOD_FILE_NAME = "SerializedImplMethodDataStore"; | ||
92 | + | ||
93 | + /** | ||
94 | + * File name string for serialized files of attributes. | ||
95 | + */ | ||
96 | + private static final String ATTRIBUTE_FILE_NAME = "SerializedAttributeDataStore"; | ||
97 | + | ||
98 | + /** | ||
99 | + * File name string for serialized files of imports. | ||
100 | + */ | ||
101 | + private static final String IMPORT_FILE_NAME = "SerializedImportDataStore"; | ||
102 | + | ||
103 | + /** | ||
104 | + * File extension of serialized files. | ||
105 | + */ | ||
106 | + private static final String SERIALIZE_FILE_EXTENSION = ".ser"; | ||
107 | + | ||
108 | + /** | ||
109 | + * Buffer size. | ||
110 | + */ | ||
111 | + private static final int BUFFER_SIZE = 8 * 1024; | ||
112 | + | ||
113 | + /** | ||
114 | + * Default constructor. | ||
115 | + */ | ||
116 | + private SerializedDataStore() { | ||
117 | + } | ||
118 | + | ||
119 | + /** | ||
120 | + * Writes specific info to a serialized file. | ||
121 | + * | ||
122 | + * @param data data to be stored | ||
123 | + * @param type type of serialized data store | ||
124 | + * @throws IOException when fails to create a serialized data file. | ||
125 | + */ | ||
126 | + public static void setSerializeData(String data, SerializedDataStoreType type) throws IOException { | ||
127 | + | ||
128 | + String fileName = ""; | ||
129 | + if (type.equals(SerializedDataStoreType.ATTRIBUTE)) { | ||
130 | + fileName = ATTRIBUTE_FILE_NAME; | ||
131 | + } else if (type.equals(SerializedDataStoreType.INTERFACE_METHODS)) { | ||
132 | + fileName = INTERFACE_METHOD_FILE_NAME; | ||
133 | + } else if (type.equals(SerializedDataStoreType.BUILDER_INTERFACE_METHODS)) { | ||
134 | + fileName = BUILDER_INTERFACE_METHOD_FILE_NAME; | ||
135 | + } else if (type.equals(SerializedDataStoreType.BUILDER_METHODS)) { | ||
136 | + fileName = BUILDER_METHOD_FILE_NAME; | ||
137 | + } else if (type.equals(SerializedDataStoreType.IMPL_METHODS)) { | ||
138 | + fileName = IMPL_METHOD_FILE_NAME; | ||
139 | + } else if (type.equals(SerializedDataStoreType.IMPORT)) { | ||
140 | + fileName = IMPORT_FILE_NAME; | ||
141 | + } else { | ||
142 | + throw new IOException("Unresolved file type."); | ||
143 | + } | ||
144 | + | ||
145 | + try { | ||
146 | + OutputStream file = new FileOutputStream(fileName + SERIALIZE_FILE_EXTENSION); | ||
147 | + OutputStream buffer = new BufferedOutputStream(file, BUFFER_SIZE); | ||
148 | + | ||
149 | + ObjectOutput output = new ObjectOutputStream(buffer); | ||
150 | + try { | ||
151 | + output.writeObject(data); | ||
152 | + } finally { | ||
153 | + output.close(); | ||
154 | + } | ||
155 | + } catch (IOException ex) { | ||
156 | + throw new IOException("failed to serialize data"); | ||
157 | + } | ||
158 | + } | ||
159 | + | ||
160 | + /** | ||
161 | + * Get the serialized data. | ||
162 | + * | ||
163 | + * @param type type of serialized data store | ||
164 | + * @return list of attribute info. | ||
165 | + * @throws IOException when fails to read from the file. | ||
166 | + * @throws ClassNotFoundException when file is missing. | ||
167 | + */ | ||
168 | + @SuppressWarnings("unchecked") | ||
169 | + public static List<String> getSerializeData(SerializedDataStoreType type) | ||
170 | + throws IOException, ClassNotFoundException { | ||
171 | + | ||
172 | + String fileName = ""; | ||
173 | + if (type.equals(SerializedDataStoreType.ATTRIBUTE)) { | ||
174 | + fileName = ATTRIBUTE_FILE_NAME; | ||
175 | + } else if (type.equals(SerializedDataStoreType.INTERFACE_METHODS)) { | ||
176 | + fileName = INTERFACE_METHOD_FILE_NAME; | ||
177 | + } else if (type.equals(SerializedDataStoreType.BUILDER_INTERFACE_METHODS)) { | ||
178 | + fileName = BUILDER_INTERFACE_METHOD_FILE_NAME; | ||
179 | + } else if (type.equals(SerializedDataStoreType.BUILDER_METHODS)) { | ||
180 | + fileName = BUILDER_METHOD_FILE_NAME; | ||
181 | + } else if (type.equals(SerializedDataStoreType.IMPL_METHODS)) { | ||
182 | + fileName = IMPL_METHOD_FILE_NAME; | ||
183 | + } else if (type.equals(SerializedDataStoreType.IMPORT)) { | ||
184 | + fileName = IMPORT_FILE_NAME; | ||
185 | + } else { | ||
186 | + throw new IOException("Unresolved file type."); | ||
187 | + } | ||
188 | + | ||
189 | + try { | ||
190 | + InputStream file = new FileInputStream(fileName + SERIALIZE_FILE_EXTENSION); | ||
191 | + InputStream buffer = new BufferedInputStream(file); | ||
192 | + ObjectInput input = new ObjectInputStream(buffer); | ||
193 | + try { | ||
194 | + List<String> recoveredData = (List<String>) input.readObject(); | ||
195 | + return recoveredData; | ||
196 | + } finally { | ||
197 | + input.close(); | ||
198 | + } | ||
199 | + } catch (ClassNotFoundException ex) { | ||
200 | + throw new ClassNotFoundException("failed to fetch the serialized data file."); | ||
201 | + } | ||
202 | + } | ||
203 | +} |
... | @@ -34,14 +34,39 @@ public final class YangFileScanner { | ... | @@ -34,14 +34,39 @@ public final class YangFileScanner { |
34 | } | 34 | } |
35 | 35 | ||
36 | /** | 36 | /** |
37 | - * Returns the list of yang files. | 37 | + * Returns the list of YANG files. |
38 | * | 38 | * |
39 | * @param root specified directory | 39 | * @param root specified directory |
40 | - * @return list of yang files. | 40 | + * @return list of YANG files. |
41 | - * @throws IOException when files get deleted while performing the operations. | 41 | + * @throws IOException when files get deleted while performing the |
42 | + * operations. | ||
42 | */ | 43 | */ |
43 | public static List<String> getYangFiles(String root) throws IOException { | 44 | public static List<String> getYangFiles(String root) throws IOException { |
45 | + return getFiles(root, ".yang"); | ||
46 | + } | ||
44 | 47 | ||
48 | + /** | ||
49 | + * Returns the list of java files. | ||
50 | + * | ||
51 | + * @param root specified directory | ||
52 | + * @return list of java files. | ||
53 | + * @throws IOException when files get deleted while performing the | ||
54 | + * operations. | ||
55 | + */ | ||
56 | + public static List<String> getJavaFiles(String root) throws IOException { | ||
57 | + return getFiles(root, ".java"); | ||
58 | + } | ||
59 | + | ||
60 | + /** | ||
61 | + * Returns the list of required files. | ||
62 | + * | ||
63 | + * @param root specified directory | ||
64 | + * @param extension file extension. | ||
65 | + * @return list of required files. | ||
66 | + * @throws IOException when files get deleted while performing the | ||
67 | + * operations. | ||
68 | + */ | ||
69 | + public static List<String> getFiles(String root, String extension) throws IOException { | ||
45 | List<String> store = new LinkedList<>(); | 70 | List<String> store = new LinkedList<>(); |
46 | Stack<String> stack = new Stack<>(); | 71 | Stack<String> stack = new Stack<>(); |
47 | stack.push(root); | 72 | stack.push(root); |
... | @@ -60,7 +85,7 @@ public final class YangFileScanner { | ... | @@ -60,7 +85,7 @@ public final class YangFileScanner { |
60 | stack.push(current.toString()); | 85 | stack.push(current.toString()); |
61 | } else { | 86 | } else { |
62 | String yangFile = current.getCanonicalPath(); | 87 | String yangFile = current.getCanonicalPath(); |
63 | - if (yangFile.endsWith(".yang")) { | 88 | + if (yangFile.endsWith(extension)) { |
64 | store.add(yangFile); | 89 | store.add(yangFile); |
65 | } | 90 | } |
66 | } | 91 | } | ... | ... |
1 | +/* | ||
2 | + * Copyright 2016 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.utils.io.impl; | ||
18 | + | ||
19 | +import java.io.BufferedWriter; | ||
20 | +import java.io.File; | ||
21 | +import java.io.FileWriter; | ||
22 | +import java.io.IOException; | ||
23 | +import java.util.List; | ||
24 | + | ||
25 | +import org.sonatype.plexus.build.incremental.BuildContext; | ||
26 | +import org.apache.maven.project.MavenProject; | ||
27 | +import org.apache.maven.model.Resource; | ||
28 | + | ||
29 | +import org.onosproject.yangutils.utils.UtilConstants; | ||
30 | + | ||
31 | +import static org.slf4j.LoggerFactory.getLogger; | ||
32 | +import org.slf4j.Logger; | ||
33 | + | ||
34 | +/** | ||
35 | + * Provides common utility functionalities for code generation. | ||
36 | + */ | ||
37 | +public final class YangIoUtils { | ||
38 | + | ||
39 | + private static final Logger log = getLogger(YangIoUtils.class); | ||
40 | + | ||
41 | + /** | ||
42 | + * Default constructor. | ||
43 | + */ | ||
44 | + private YangIoUtils() { | ||
45 | + } | ||
46 | + | ||
47 | + /** | ||
48 | + * Creates the directory structure. | ||
49 | + * | ||
50 | + * @param path directory path | ||
51 | + * @return directory structure | ||
52 | + */ | ||
53 | + public static File createDirectories(String path) { | ||
54 | + | ||
55 | + File generatedDir = new File(UtilConstants.YANG_GEN_DIR + File.separator + path); | ||
56 | + generatedDir.mkdirs(); | ||
57 | + return generatedDir; | ||
58 | + } | ||
59 | + | ||
60 | + /** | ||
61 | + * Adds package info file for the created directory. | ||
62 | + * | ||
63 | + * @param path directory path | ||
64 | + * @param classInfo class info for the package | ||
65 | + * @param pack package of the directory | ||
66 | + * @throws IOException when fails to create package info file. | ||
67 | + */ | ||
68 | + public static void addPackageInfo(File path, String classInfo, String pack) throws IOException { | ||
69 | + | ||
70 | + try { | ||
71 | + | ||
72 | + File packageInfo = new File(path + File.separator + "package-info.java"); | ||
73 | + packageInfo.createNewFile(); | ||
74 | + if (packageInfo.exists()) { | ||
75 | + | ||
76 | + FileWriter fileWriter = null; | ||
77 | + BufferedWriter bufferedWriter = null; | ||
78 | + fileWriter = new FileWriter(packageInfo); | ||
79 | + bufferedWriter = new BufferedWriter(fileWriter); | ||
80 | + bufferedWriter.write(CopyrightHeader.getCopyrightHeader()); | ||
81 | + bufferedWriter.write(JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.PACKAGE_INFO, classInfo)); | ||
82 | + bufferedWriter.write(UtilConstants.PACKAGE + UtilConstants.SPACE + pack + UtilConstants.SEMI_COLAN); | ||
83 | + bufferedWriter.close(); | ||
84 | + } | ||
85 | + } catch (IOException e) { | ||
86 | + throw new IOException("Exception occured while creating package info file."); | ||
87 | + } | ||
88 | + } | ||
89 | + | ||
90 | + /** | ||
91 | + * Cleans the generated directory if already exist in source folder. | ||
92 | + * | ||
93 | + * @param baseDir generated directory in previous build. | ||
94 | + */ | ||
95 | + public static void clean(String baseDir) { | ||
96 | + File generatedDirectory = new File(baseDir + File.separator + UtilConstants.YANG_GEN_DIR); | ||
97 | + if (generatedDirectory.exists()) { | ||
98 | + List<String> javafiles; | ||
99 | + try { | ||
100 | + javafiles = YangFileScanner.getJavaFiles(generatedDirectory.toString()); | ||
101 | + for (String file : javafiles) { | ||
102 | + File currentFile = new File(file); | ||
103 | + currentFile.delete(); | ||
104 | + } | ||
105 | + } catch (IOException e) { | ||
106 | + log.info("Failed to delete the generated files in " + generatedDirectory + " directory"); | ||
107 | + } | ||
108 | + generatedDirectory.delete(); | ||
109 | + } | ||
110 | + } | ||
111 | + | ||
112 | + /** | ||
113 | + * Adds generated source directory to the compilation root. | ||
114 | + * | ||
115 | + * @param source directory | ||
116 | + * @param project current maven project | ||
117 | + * @param context current build context | ||
118 | + */ | ||
119 | + public static void addToSource(String source, MavenProject project, BuildContext context) { | ||
120 | + | ||
121 | + project.addCompileSourceRoot(source); | ||
122 | + Resource rsc = new Resource(); | ||
123 | + rsc.setDirectory(source); | ||
124 | + project.addResource(rsc); | ||
125 | + context.refresh(project.getBasedir()); | ||
126 | + log.info("Source directory added to compilation root: " + source); | ||
127 | + } | ||
128 | + | ||
129 | +} |
... | @@ -66,8 +66,8 @@ public class ConfigListenerTest { | ... | @@ -66,8 +66,8 @@ public class ConfigListenerTest { |
66 | YangModule yangNode = (YangModule) node; | 66 | YangModule yangNode = (YangModule) node; |
67 | assertThat(yangNode.getName(), is("Test")); | 67 | assertThat(yangNode.getName(), is("Test")); |
68 | 68 | ||
69 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 69 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
70 | - YangLeaf leafInfo = leafIterator.next(); | 70 | + YangLeaf<?> leafInfo = leafIterator.next(); |
71 | 71 | ||
72 | // Check whether the Config value is set correctly. | 72 | // Check whether the Config value is set correctly. |
73 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 73 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
... | @@ -92,8 +92,8 @@ public class ConfigListenerTest { | ... | @@ -92,8 +92,8 @@ public class ConfigListenerTest { |
92 | YangModule yangNode = (YangModule) node; | 92 | YangModule yangNode = (YangModule) node; |
93 | assertThat(yangNode.getName(), is("Test")); | 93 | assertThat(yangNode.getName(), is("Test")); |
94 | 94 | ||
95 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 95 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
96 | - YangLeaf leafInfo = leafIterator.next(); | 96 | + YangLeaf<?> leafInfo = leafIterator.next(); |
97 | 97 | ||
98 | // Check whether the Config value is set correctly. | 98 | // Check whether the Config value is set correctly. |
99 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 99 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
... | @@ -136,10 +136,10 @@ public class ConfigListenerTest { | ... | @@ -136,10 +136,10 @@ public class ConfigListenerTest { |
136 | @Test | 136 | @Test |
137 | public void processModuleSubStatementConfig() throws IOException, ParserException { | 137 | public void processModuleSubStatementConfig() throws IOException, ParserException { |
138 | thrown.expect(ParserException.class); | 138 | thrown.expect(ParserException.class); |
139 | - thrown.expectMessage("mismatched input 'config' expecting {'augment', 'choice', 'contact', 'container'," + | 139 | + thrown.expectMessage("mismatched input 'config' expecting {'augment', 'choice', 'contact', 'container'," |
140 | - " 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include', " + | 140 | + + " 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include', " |
141 | - "'leaf', 'leaf-list', 'list', 'namespace', 'notification', 'organization', 'prefix', 'reference'," + | 141 | + + "'leaf', 'leaf-list', 'list', 'namespace', 'notification', 'organization', 'prefix', 'reference'," |
142 | - " 'revision', 'rpc', 'typedef', 'uses', 'yang-version', '}'}"); | 142 | + + " 'revision', 'rpc', 'typedef', 'uses', 'yang-version', '}'}"); |
143 | YangNode node = manager.getDataModel("src/test/resources/ModuleSubStatementConfig.yang"); | 143 | YangNode node = manager.getDataModel("src/test/resources/ModuleSubStatementConfig.yang"); |
144 | } | 144 | } |
145 | 145 | ||
... | @@ -167,8 +167,8 @@ public class ConfigListenerTest { | ... | @@ -167,8 +167,8 @@ public class ConfigListenerTest { |
167 | assertThat(container.isConfig(), is(true)); | 167 | assertThat(container.isConfig(), is(true)); |
168 | 168 | ||
169 | // Check whether leaf properties as set correctly. | 169 | // Check whether leaf properties as set correctly. |
170 | - ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator(); | 170 | + ListIterator<YangLeaf<?>> leafIterator = container.getListOfLeaf().listIterator(); |
171 | - YangLeaf leafInfo = leafIterator.next(); | 171 | + YangLeaf<?> leafInfo = leafIterator.next(); |
172 | 172 | ||
173 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 173 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
174 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 174 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); |
... | @@ -203,8 +203,8 @@ public class ConfigListenerTest { | ... | @@ -203,8 +203,8 @@ public class ConfigListenerTest { |
203 | assertThat(yangList.isConfig(), is(true)); | 203 | assertThat(yangList.isConfig(), is(true)); |
204 | 204 | ||
205 | // Check whether leaf properties as set correctly. | 205 | // Check whether leaf properties as set correctly. |
206 | - ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); | 206 | + ListIterator<YangLeaf<?>> leafIterator = yangList.getListOfLeaf().listIterator(); |
207 | - YangLeaf leafInfo = leafIterator.next(); | 207 | + YangLeaf<?> leafInfo = leafIterator.next(); |
208 | 208 | ||
209 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 209 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
210 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 210 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); |
... | @@ -234,8 +234,8 @@ public class ConfigListenerTest { | ... | @@ -234,8 +234,8 @@ public class ConfigListenerTest { |
234 | YangModule yangNode = (YangModule) node; | 234 | YangModule yangNode = (YangModule) node; |
235 | assertThat(yangNode.getName(), is("Test")); | 235 | assertThat(yangNode.getName(), is("Test")); |
236 | 236 | ||
237 | - ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); | 237 | + ListIterator<YangLeafList<?>> leafListIterator = yangNode.getListOfLeafList().listIterator(); |
238 | - YangLeafList leafListInfo = leafListIterator.next(); | 238 | + YangLeafList<?> leafListInfo = leafListIterator.next(); |
239 | 239 | ||
240 | // Check whether config value is set correctly. | 240 | // Check whether config value is set correctly. |
241 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | 241 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | ... | ... |
... | @@ -154,8 +154,8 @@ public class ContainerListenerTest { | ... | @@ -154,8 +154,8 @@ public class ContainerListenerTest { |
154 | assertThat(yangContainer.getReference(), is("\"container reference\"")); | 154 | assertThat(yangContainer.getReference(), is("\"container reference\"")); |
155 | 155 | ||
156 | // Check whether leaf properties as set correctly. | 156 | // Check whether leaf properties as set correctly. |
157 | - ListIterator<YangLeaf> leafIterator = yangContainer.getListOfLeaf().listIterator(); | 157 | + ListIterator<YangLeaf<?>> leafIterator = yangContainer.getListOfLeaf().listIterator(); |
158 | - YangLeaf leafInfo = leafIterator.next(); | 158 | + YangLeaf<?> leafInfo = leafIterator.next(); |
159 | 159 | ||
160 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 160 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
161 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 161 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | ... | ... |
... | @@ -66,8 +66,8 @@ public class DescriptionListenerTest { | ... | @@ -66,8 +66,8 @@ public class DescriptionListenerTest { |
66 | YangModule yangNode = (YangModule) node; | 66 | YangModule yangNode = (YangModule) node; |
67 | assertThat(yangNode.getName(), is("Test")); | 67 | assertThat(yangNode.getName(), is("Test")); |
68 | 68 | ||
69 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 69 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
70 | - YangLeaf leafInfo = leafIterator.next(); | 70 | + YangLeaf<?> leafInfo = leafIterator.next(); |
71 | 71 | ||
72 | // Check whether the description is set correctly. | 72 | // Check whether the description is set correctly. |
73 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 73 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
... | @@ -175,8 +175,8 @@ public class DescriptionListenerTest { | ... | @@ -175,8 +175,8 @@ public class DescriptionListenerTest { |
175 | assertThat(container.getDescription(), is("\"container description\"")); | 175 | assertThat(container.getDescription(), is("\"container description\"")); |
176 | 176 | ||
177 | // Check whether leaf properties as set correctly. | 177 | // Check whether leaf properties as set correctly. |
178 | - ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator(); | 178 | + ListIterator<YangLeaf<?>> leafIterator = container.getListOfLeaf().listIterator(); |
179 | - YangLeaf leafInfo = leafIterator.next(); | 179 | + YangLeaf<?> leafInfo = leafIterator.next(); |
180 | 180 | ||
181 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 181 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
182 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 182 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); |
... | @@ -212,8 +212,8 @@ public class DescriptionListenerTest { | ... | @@ -212,8 +212,8 @@ public class DescriptionListenerTest { |
212 | assertThat(yangList.getDescription(), is("\"list description\"")); | 212 | assertThat(yangList.getDescription(), is("\"list description\"")); |
213 | 213 | ||
214 | // Check whether leaf properties as set correctly. | 214 | // Check whether leaf properties as set correctly. |
215 | - ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); | 215 | + ListIterator<YangLeaf<?>> leafIterator = yangList.getListOfLeaf().listIterator(); |
216 | - YangLeaf leafInfo = leafIterator.next(); | 216 | + YangLeaf<?> leafInfo = leafIterator.next(); |
217 | 217 | ||
218 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 218 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
219 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 219 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); |
... | @@ -243,8 +243,8 @@ public class DescriptionListenerTest { | ... | @@ -243,8 +243,8 @@ public class DescriptionListenerTest { |
243 | YangModule yangNode = (YangModule) node; | 243 | YangModule yangNode = (YangModule) node; |
244 | assertThat(yangNode.getName(), is("Test")); | 244 | assertThat(yangNode.getName(), is("Test")); |
245 | 245 | ||
246 | - ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); | 246 | + ListIterator<YangLeafList<?>> leafListIterator = yangNode.getListOfLeafList().listIterator(); |
247 | - YangLeafList leafListInfo = leafListIterator.next(); | 247 | + YangLeafList<?> leafListInfo = leafListIterator.next(); |
248 | 248 | ||
249 | // Check whether description value is set correctly. | 249 | // Check whether description value is set correctly. |
250 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | 250 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | ... | ... |
... | @@ -66,8 +66,8 @@ public class LeafListListenerTest { | ... | @@ -66,8 +66,8 @@ public class LeafListListenerTest { |
66 | YangModule yangNode = (YangModule) node; | 66 | YangModule yangNode = (YangModule) node; |
67 | assertThat(yangNode.getName(), is("Test")); | 67 | assertThat(yangNode.getName(), is("Test")); |
68 | 68 | ||
69 | - ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); | 69 | + ListIterator<YangLeafList<?>> leafListIterator = yangNode.getListOfLeafList().listIterator(); |
70 | - YangLeafList leafListInfo = leafListIterator.next(); | 70 | + YangLeafList<?> leafListInfo = leafListIterator.next(); |
71 | 71 | ||
72 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | 72 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); |
73 | assertThat(leafListInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 73 | assertThat(leafListInfo.getDataType().getDataTypeName(), is("\"uint16\"")); |
... | @@ -98,10 +98,10 @@ public class LeafListListenerTest { | ... | @@ -98,10 +98,10 @@ public class LeafListListenerTest { |
98 | @Test | 98 | @Test |
99 | public void processLeafListInvalidStatement() throws IOException, ParserException { | 99 | public void processLeafListInvalidStatement() throws IOException, ParserException { |
100 | thrown.expect(ParserException.class); | 100 | thrown.expect(ParserException.class); |
101 | - thrown.expectMessage("mismatched input 'leaflist' expecting {'augment', 'choice', 'contact', 'container'," + | 101 | + thrown.expectMessage("mismatched input 'leaflist' expecting {'augment', 'choice', 'contact', 'container'," |
102 | - " 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include'," + | 102 | + + " 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include'," |
103 | - " 'leaf', 'leaf-list', 'list', 'namespace', 'notification', 'organization', 'prefix', 'reference'," + | 103 | + + " 'leaf', 'leaf-list', 'list', 'namespace', 'notification', 'organization', 'prefix', 'reference'," |
104 | - " 'revision', 'rpc', 'typedef', 'uses', 'yang-version', '}'}"); | 104 | + + " 'revision', 'rpc', 'typedef', 'uses', 'yang-version', '}'}"); |
105 | YangNode node = manager.getDataModel("src/test/resources/LeafListInvalidStatement.yang"); | 105 | YangNode node = manager.getDataModel("src/test/resources/LeafListInvalidStatement.yang"); |
106 | } | 106 | } |
107 | 107 | ||
... | @@ -161,8 +161,8 @@ public class LeafListListenerTest { | ... | @@ -161,8 +161,8 @@ public class LeafListListenerTest { |
161 | assertThat(container.getName(), is("valid")); | 161 | assertThat(container.getName(), is("valid")); |
162 | 162 | ||
163 | // Check whether leaf-list properties as set correctly. | 163 | // Check whether leaf-list properties as set correctly. |
164 | - ListIterator<YangLeafList> leafListIterator = container.getListOfLeafList().listIterator(); | 164 | + ListIterator<YangLeafList<?>> leafListIterator = container.getListOfLeafList().listIterator(); |
165 | - YangLeafList leafListInfo = leafListIterator.next(); | 165 | + YangLeafList<?> leafListInfo = leafListIterator.next(); |
166 | 166 | ||
167 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | 167 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); |
168 | assertThat(leafListInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 168 | assertThat(leafListInfo.getDataType().getDataTypeName(), is("\"uint16\"")); |
... | @@ -198,8 +198,8 @@ public class LeafListListenerTest { | ... | @@ -198,8 +198,8 @@ public class LeafListListenerTest { |
198 | assertThat(yangList.getName(), is("valid")); | 198 | assertThat(yangList.getName(), is("valid")); |
199 | 199 | ||
200 | // Check whether leaf-list properties as set correctly. | 200 | // Check whether leaf-list properties as set correctly. |
201 | - ListIterator<YangLeafList> leafListIterator = yangList.getListOfLeafList().listIterator(); | 201 | + ListIterator<YangLeafList<?>> leafListIterator = yangList.getListOfLeafList().listIterator(); |
202 | - YangLeafList leafListInfo = leafListIterator.next(); | 202 | + YangLeafList<?> leafListInfo = leafListIterator.next(); |
203 | 203 | ||
204 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | 204 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); |
205 | assertThat(leafListInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 205 | assertThat(leafListInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | ... | ... |
... | @@ -66,8 +66,8 @@ public class LeafListenerTest { | ... | @@ -66,8 +66,8 @@ public class LeafListenerTest { |
66 | YangModule yangNode = (YangModule) node; | 66 | YangModule yangNode = (YangModule) node; |
67 | assertThat(yangNode.getName(), is("Test")); | 67 | assertThat(yangNode.getName(), is("Test")); |
68 | 68 | ||
69 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 69 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
70 | - YangLeaf leafInfo = leafIterator.next(); | 70 | + YangLeaf<?> leafInfo = leafIterator.next(); |
71 | 71 | ||
72 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 72 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
73 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 73 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); |
... | @@ -98,10 +98,10 @@ public class LeafListenerTest { | ... | @@ -98,10 +98,10 @@ public class LeafListenerTest { |
98 | @Test | 98 | @Test |
99 | public void processLeafInvalidStatement() throws IOException, ParserException { | 99 | public void processLeafInvalidStatement() throws IOException, ParserException { |
100 | thrown.expect(ParserException.class); | 100 | thrown.expect(ParserException.class); |
101 | - thrown.expectMessage("mismatched input 'leafs' expecting {'augment', 'choice', 'contact', 'container'," + | 101 | + thrown.expectMessage("mismatched input 'leafs' expecting {'augment', 'choice', 'contact', 'container'," |
102 | - " 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include'," + | 102 | + + " 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include'," |
103 | - " 'leaf', 'leaf-list', 'list', 'namespace', 'notification', 'organization', 'prefix', 'reference'," + | 103 | + + " 'leaf', 'leaf-list', 'list', 'namespace', 'notification', 'organization', 'prefix', 'reference'," |
104 | - " 'revision', 'rpc', 'typedef', 'uses', 'yang-version', '}'}"); | 104 | + + " 'revision', 'rpc', 'typedef', 'uses', 'yang-version', '}'}"); |
105 | YangNode node = manager.getDataModel("src/test/resources/LeafInvalidStatement.yang"); | 105 | YangNode node = manager.getDataModel("src/test/resources/LeafInvalidStatement.yang"); |
106 | } | 106 | } |
107 | 107 | ||
... | @@ -161,8 +161,8 @@ public class LeafListenerTest { | ... | @@ -161,8 +161,8 @@ public class LeafListenerTest { |
161 | assertThat(container.getName(), is("valid")); | 161 | assertThat(container.getName(), is("valid")); |
162 | 162 | ||
163 | // Check whether leaf properties as set correctly. | 163 | // Check whether leaf properties as set correctly. |
164 | - ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator(); | 164 | + ListIterator<YangLeaf<?>> leafIterator = container.getListOfLeaf().listIterator(); |
165 | - YangLeaf leafInfo = leafIterator.next(); | 165 | + YangLeaf<?> leafInfo = leafIterator.next(); |
166 | 166 | ||
167 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 167 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
168 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 168 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); |
... | @@ -197,8 +197,8 @@ public class LeafListenerTest { | ... | @@ -197,8 +197,8 @@ public class LeafListenerTest { |
197 | assertThat(yangList.getName(), is("valid")); | 197 | assertThat(yangList.getName(), is("valid")); |
198 | 198 | ||
199 | // Check whether leaf properties as set correctly. | 199 | // Check whether leaf properties as set correctly. |
200 | - ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); | 200 | + ListIterator<YangLeaf<?>> leafIterator = yangList.getListOfLeaf().listIterator(); |
201 | - YangLeaf leafInfo = leafIterator.next(); | 201 | + YangLeaf<?> leafInfo = leafIterator.next(); |
202 | 202 | ||
203 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 203 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
204 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 204 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | ... | ... |
... | @@ -159,8 +159,8 @@ public class ListListenerTest { | ... | @@ -159,8 +159,8 @@ public class ListListenerTest { |
159 | assertThat(yangList.getReference(), is("\"list reference\"")); | 159 | assertThat(yangList.getReference(), is("\"list reference\"")); |
160 | 160 | ||
161 | // Check whether leaf properties as set correctly. | 161 | // Check whether leaf properties as set correctly. |
162 | - ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); | 162 | + ListIterator<YangLeaf<?>> leafIterator = yangList.getListOfLeaf().listIterator(); |
163 | - YangLeaf leafInfo = leafIterator.next(); | 163 | + YangLeaf<?> leafInfo = leafIterator.next(); |
164 | 164 | ||
165 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 165 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
166 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 166 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | ... | ... |
... | @@ -60,8 +60,8 @@ public class MandatoryListenerTest { | ... | @@ -60,8 +60,8 @@ public class MandatoryListenerTest { |
60 | YangModule yangNode = (YangModule) node; | 60 | YangModule yangNode = (YangModule) node; |
61 | assertThat(yangNode.getName(), is("Test")); | 61 | assertThat(yangNode.getName(), is("Test")); |
62 | 62 | ||
63 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 63 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
64 | - YangLeaf leafInfo = leafIterator.next(); | 64 | + YangLeaf<?> leafInfo = leafIterator.next(); |
65 | 65 | ||
66 | // Check whether the mandatory value is set correctly. | 66 | // Check whether the mandatory value is set correctly. |
67 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 67 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
... | @@ -86,8 +86,8 @@ public class MandatoryListenerTest { | ... | @@ -86,8 +86,8 @@ public class MandatoryListenerTest { |
86 | YangModule yangNode = (YangModule) node; | 86 | YangModule yangNode = (YangModule) node; |
87 | assertThat(yangNode.getName(), is("Test")); | 87 | assertThat(yangNode.getName(), is("Test")); |
88 | 88 | ||
89 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 89 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
90 | - YangLeaf leafInfo = leafIterator.next(); | 90 | + YangLeaf<?> leafInfo = leafIterator.next(); |
91 | 91 | ||
92 | // Check whether the mandatory value is set correctly. | 92 | // Check whether the mandatory value is set correctly. |
93 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 93 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
... | @@ -112,8 +112,8 @@ public class MandatoryListenerTest { | ... | @@ -112,8 +112,8 @@ public class MandatoryListenerTest { |
112 | YangModule yangNode = (YangModule) node; | 112 | YangModule yangNode = (YangModule) node; |
113 | assertThat(yangNode.getName(), is("Test")); | 113 | assertThat(yangNode.getName(), is("Test")); |
114 | 114 | ||
115 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 115 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
116 | - YangLeaf leafInfo = leafIterator.next(); | 116 | + YangLeaf<?> leafInfo = leafIterator.next(); |
117 | 117 | ||
118 | // Check whether the mandatory value is set correctly. | 118 | // Check whether the mandatory value is set correctly. |
119 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 119 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
... | @@ -146,10 +146,10 @@ public class MandatoryListenerTest { | ... | @@ -146,10 +146,10 @@ public class MandatoryListenerTest { |
146 | @Test | 146 | @Test |
147 | public void processModuleSubStatementMandatory() throws IOException, ParserException { | 147 | public void processModuleSubStatementMandatory() throws IOException, ParserException { |
148 | thrown.expect(ParserException.class); | 148 | thrown.expect(ParserException.class); |
149 | - thrown.expectMessage("mismatched input 'mandatory' expecting {'augment', 'choice', 'contact', 'container'," + | 149 | + thrown.expectMessage("mismatched input 'mandatory' expecting {'augment', 'choice', 'contact', 'container'," |
150 | - " 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include'," + | 150 | + + " 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include'," |
151 | - " 'leaf', 'leaf-list', 'list', 'namespace', 'notification', 'organization', 'prefix', 'reference'," + | 151 | + + " 'leaf', 'leaf-list', 'list', 'namespace', 'notification', 'organization', 'prefix', 'reference'," |
152 | - " 'revision', 'rpc', 'typedef', 'uses', 'yang-version', '}'}"); | 152 | + + " 'revision', 'rpc', 'typedef', 'uses', 'yang-version', '}'}"); |
153 | YangNode node = manager.getDataModel("src/test/resources/ModuleSubStatementMandatory.yang"); | 153 | YangNode node = manager.getDataModel("src/test/resources/ModuleSubStatementMandatory.yang"); |
154 | } | 154 | } |
155 | } | 155 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -62,8 +62,8 @@ public class MaxElementsListenerTest { | ... | @@ -62,8 +62,8 @@ public class MaxElementsListenerTest { |
62 | YangModule yangNode = (YangModule) node; | 62 | YangModule yangNode = (YangModule) node; |
63 | assertThat(yangNode.getName(), is("Test")); | 63 | assertThat(yangNode.getName(), is("Test")); |
64 | 64 | ||
65 | - ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); | 65 | + ListIterator<YangLeafList<?>> leafListIterator = yangNode.getListOfLeafList().listIterator(); |
66 | - YangLeafList leafListInfo = leafListIterator.next(); | 66 | + YangLeafList<?> leafListInfo = leafListIterator.next(); |
67 | 67 | ||
68 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | 68 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); |
69 | assertThat(leafListInfo.getMaxElelements(), is(3)); | 69 | assertThat(leafListInfo.getMaxElelements(), is(3)); |
... | @@ -99,9 +99,9 @@ public class MaxElementsListenerTest { | ... | @@ -99,9 +99,9 @@ public class MaxElementsListenerTest { |
99 | @Test | 99 | @Test |
100 | public void processMaxElementsInvalidStatement() throws IOException, ParserException { | 100 | public void processMaxElementsInvalidStatement() throws IOException, ParserException { |
101 | thrown.expect(ParserException.class); | 101 | thrown.expect(ParserException.class); |
102 | - thrown.expectMessage("extraneous input 'max-element' expecting {'config', 'description', 'if-feature'," + | 102 | + thrown.expectMessage("extraneous input 'max-element' expecting {'config', 'description', 'if-feature'," |
103 | - " 'max-elements', 'min-elements', 'must', 'ordered-by', 'reference', 'status', 'type', 'units', " + | 103 | + + " 'max-elements', 'min-elements', 'must', 'ordered-by', 'reference', 'status', 'type', 'units', " |
104 | - "'when', '}'}"); | 104 | + + "'when', '}'}"); |
105 | YangNode node = manager.getDataModel("src/test/resources/MaxElementsInvalidStatement.yang"); | 105 | YangNode node = manager.getDataModel("src/test/resources/MaxElementsInvalidStatement.yang"); |
106 | } | 106 | } |
107 | 107 | ||
... | @@ -145,8 +145,8 @@ public class MaxElementsListenerTest { | ... | @@ -145,8 +145,8 @@ public class MaxElementsListenerTest { |
145 | YangModule yangNode = (YangModule) node; | 145 | YangModule yangNode = (YangModule) node; |
146 | assertThat(yangNode.getName(), is("Test")); | 146 | assertThat(yangNode.getName(), is("Test")); |
147 | 147 | ||
148 | - ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); | 148 | + ListIterator<YangLeafList<?>> leafListIterator = yangNode.getListOfLeafList().listIterator(); |
149 | - YangLeafList leafListInfo = leafListIterator.next(); | 149 | + YangLeafList<?> leafListInfo = leafListIterator.next(); |
150 | 150 | ||
151 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | 151 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); |
152 | assertThat(leafListInfo.getMaxElelements(), is(2147483647)); | 152 | assertThat(leafListInfo.getMaxElelements(), is(2147483647)); | ... | ... |
... | @@ -62,8 +62,8 @@ public class MinElementsListenerTest { | ... | @@ -62,8 +62,8 @@ public class MinElementsListenerTest { |
62 | YangModule yangNode = (YangModule) node; | 62 | YangModule yangNode = (YangModule) node; |
63 | assertThat(yangNode.getName(), is("Test")); | 63 | assertThat(yangNode.getName(), is("Test")); |
64 | 64 | ||
65 | - ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); | 65 | + ListIterator<YangLeafList<?>> leafListIterator = yangNode.getListOfLeafList().listIterator(); |
66 | - YangLeafList leafListInfo = leafListIterator.next(); | 66 | + YangLeafList<?> leafListInfo = leafListIterator.next(); |
67 | 67 | ||
68 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | 68 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); |
69 | assertThat(leafListInfo.getMinElements(), is(3)); | 69 | assertThat(leafListInfo.getMinElements(), is(3)); |
... | @@ -99,9 +99,9 @@ public class MinElementsListenerTest { | ... | @@ -99,9 +99,9 @@ public class MinElementsListenerTest { |
99 | @Test | 99 | @Test |
100 | public void processMinElementsInvalidKeyword() throws IOException, ParserException { | 100 | public void processMinElementsInvalidKeyword() throws IOException, ParserException { |
101 | thrown.expect(ParserException.class); | 101 | thrown.expect(ParserException.class); |
102 | - thrown.expectMessage("extraneous input 'min-element' expecting {'config', 'description', 'if-feature'," + | 102 | + thrown.expectMessage("extraneous input 'min-element' expecting {'config', 'description', 'if-feature'," |
103 | - " 'max-elements', 'min-elements', 'must', 'ordered-by', 'reference', 'status', 'type', 'units'," + | 103 | + + " 'max-elements', 'min-elements', 'must', 'ordered-by', 'reference', 'status', 'type', 'units'," |
104 | - " 'when', '}'}"); | 104 | + + " 'when', '}'}"); |
105 | YangNode node = manager.getDataModel("src/test/resources/MinElementsInvalidKeyword.yang"); | 105 | YangNode node = manager.getDataModel("src/test/resources/MinElementsInvalidKeyword.yang"); |
106 | } | 106 | } |
107 | 107 | ||
... | @@ -134,8 +134,8 @@ public class MinElementsListenerTest { | ... | @@ -134,8 +134,8 @@ public class MinElementsListenerTest { |
134 | @Test | 134 | @Test |
135 | public void processMinElementsInvalidCardinality() throws IOException, ParserException { | 135 | public void processMinElementsInvalidCardinality() throws IOException, ParserException { |
136 | thrown.expect(ParserException.class); | 136 | thrown.expect(ParserException.class); |
137 | - thrown.expectMessage("Internal parser error detected: Invalid cardinality in" + | 137 | + thrown.expectMessage( |
138 | - " min-elements before processing."); | 138 | + "Internal parser error detected: Invalid cardinality in" + " min-elements before processing."); |
139 | YangNode node = manager.getDataModel("src/test/resources/MinElementsInvalidCardinality.yang"); | 139 | YangNode node = manager.getDataModel("src/test/resources/MinElementsInvalidCardinality.yang"); |
140 | } | 140 | } |
141 | } | 141 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -66,8 +66,8 @@ public class ReferenceListenerTest { | ... | @@ -66,8 +66,8 @@ public class ReferenceListenerTest { |
66 | YangModule yangNode = (YangModule) node; | 66 | YangModule yangNode = (YangModule) node; |
67 | assertThat(yangNode.getName(), is("Test")); | 67 | assertThat(yangNode.getName(), is("Test")); |
68 | 68 | ||
69 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 69 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
70 | - YangLeaf leafInfo = leafIterator.next(); | 70 | + YangLeaf<?> leafInfo = leafIterator.next(); |
71 | 71 | ||
72 | // Check whether the reference is set correctly. | 72 | // Check whether the reference is set correctly. |
73 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 73 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
... | @@ -174,8 +174,8 @@ public class ReferenceListenerTest { | ... | @@ -174,8 +174,8 @@ public class ReferenceListenerTest { |
174 | assertThat(container.getReference(), is("\"container reference\"")); | 174 | assertThat(container.getReference(), is("\"container reference\"")); |
175 | 175 | ||
176 | // Check whether leaf properties as set correctly. | 176 | // Check whether leaf properties as set correctly. |
177 | - ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator(); | 177 | + ListIterator<YangLeaf<?>> leafIterator = container.getListOfLeaf().listIterator(); |
178 | - YangLeaf leafInfo = leafIterator.next(); | 178 | + YangLeaf<?> leafInfo = leafIterator.next(); |
179 | 179 | ||
180 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 180 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
181 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 181 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); |
... | @@ -211,8 +211,8 @@ public class ReferenceListenerTest { | ... | @@ -211,8 +211,8 @@ public class ReferenceListenerTest { |
211 | assertThat(yangList.getReference(), is("\"list reference\"")); | 211 | assertThat(yangList.getReference(), is("\"list reference\"")); |
212 | 212 | ||
213 | // Check whether leaf properties as set correctly. | 213 | // Check whether leaf properties as set correctly. |
214 | - ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); | 214 | + ListIterator<YangLeaf<?>> leafIterator = yangList.getListOfLeaf().listIterator(); |
215 | - YangLeaf leafInfo = leafIterator.next(); | 215 | + YangLeaf<?> leafInfo = leafIterator.next(); |
216 | 216 | ||
217 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 217 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
218 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 218 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); |
... | @@ -242,8 +242,8 @@ public class ReferenceListenerTest { | ... | @@ -242,8 +242,8 @@ public class ReferenceListenerTest { |
242 | YangModule yangNode = (YangModule) node; | 242 | YangModule yangNode = (YangModule) node; |
243 | assertThat(yangNode.getName(), is("Test")); | 243 | assertThat(yangNode.getName(), is("Test")); |
244 | 244 | ||
245 | - ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); | 245 | + ListIterator<YangLeafList<?>> leafListIterator = yangNode.getListOfLeafList().listIterator(); |
246 | - YangLeafList leafListInfo = leafListIterator.next(); | 246 | + YangLeafList<?> leafListInfo = leafListIterator.next(); |
247 | 247 | ||
248 | // Check whether description value is set correctly. | 248 | // Check whether description value is set correctly. |
249 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | 249 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | ... | ... |
... | @@ -66,8 +66,8 @@ public class StatusListenerTest { | ... | @@ -66,8 +66,8 @@ public class StatusListenerTest { |
66 | YangModule yangNode = (YangModule) node; | 66 | YangModule yangNode = (YangModule) node; |
67 | assertThat(yangNode.getName(), is("Test")); | 67 | assertThat(yangNode.getName(), is("Test")); |
68 | 68 | ||
69 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 69 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
70 | - YangLeaf leafInfo = leafIterator.next(); | 70 | + YangLeaf<?> leafInfo = leafIterator.next(); |
71 | 71 | ||
72 | // Check whether the status is set correctly. | 72 | // Check whether the status is set correctly. |
73 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 73 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
... | @@ -92,8 +92,8 @@ public class StatusListenerTest { | ... | @@ -92,8 +92,8 @@ public class StatusListenerTest { |
92 | YangModule yangNode = (YangModule) node; | 92 | YangModule yangNode = (YangModule) node; |
93 | assertThat(yangNode.getName(), is("Test")); | 93 | assertThat(yangNode.getName(), is("Test")); |
94 | 94 | ||
95 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 95 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
96 | - YangLeaf leafInfo = leafIterator.next(); | 96 | + YangLeaf<?> leafInfo = leafIterator.next(); |
97 | 97 | ||
98 | // Check whether the status is set correctly. | 98 | // Check whether the status is set correctly. |
99 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 99 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
... | @@ -118,8 +118,8 @@ public class StatusListenerTest { | ... | @@ -118,8 +118,8 @@ public class StatusListenerTest { |
118 | YangModule yangNode = (YangModule) node; | 118 | YangModule yangNode = (YangModule) node; |
119 | assertThat(yangNode.getName(), is("Test")); | 119 | assertThat(yangNode.getName(), is("Test")); |
120 | 120 | ||
121 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 121 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
122 | - YangLeaf leafInfo = leafIterator.next(); | 122 | + YangLeaf<?> leafInfo = leafIterator.next(); |
123 | 123 | ||
124 | // Check whether the status is set correctly. | 124 | // Check whether the status is set correctly. |
125 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 125 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
... | @@ -152,10 +152,10 @@ public class StatusListenerTest { | ... | @@ -152,10 +152,10 @@ public class StatusListenerTest { |
152 | @Test | 152 | @Test |
153 | public void processModuleSubStatementStatus() throws IOException, ParserException { | 153 | public void processModuleSubStatementStatus() throws IOException, ParserException { |
154 | thrown.expect(ParserException.class); | 154 | thrown.expect(ParserException.class); |
155 | - thrown.expectMessage("mismatched input 'status' expecting {'augment', 'choice', 'contact', 'container', " + | 155 | + thrown.expectMessage("mismatched input 'status' expecting {'augment', 'choice', 'contact', 'container', " |
156 | - "'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include'," + | 156 | + + "'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include'," |
157 | - " 'leaf', 'leaf-list', 'list', 'namespace', 'notification', 'organization', 'prefix', 'reference', " + | 157 | + + " 'leaf', 'leaf-list', 'list', 'namespace', 'notification', 'organization', 'prefix', 'reference', " |
158 | - "'revision', 'rpc', 'typedef', 'uses', 'yang-version', '}'}"); | 158 | + + "'revision', 'rpc', 'typedef', 'uses', 'yang-version', '}'}"); |
159 | YangNode node = manager.getDataModel("src/test/resources/ModuleSubStatementStatus.yang"); | 159 | YangNode node = manager.getDataModel("src/test/resources/ModuleSubStatementStatus.yang"); |
160 | } | 160 | } |
161 | 161 | ||
... | @@ -184,8 +184,8 @@ public class StatusListenerTest { | ... | @@ -184,8 +184,8 @@ public class StatusListenerTest { |
184 | assertThat(container.getStatus(), is(YangStatusType.OBSOLETE)); | 184 | assertThat(container.getStatus(), is(YangStatusType.OBSOLETE)); |
185 | 185 | ||
186 | // Check whether leaf properties as set correctly. | 186 | // Check whether leaf properties as set correctly. |
187 | - ListIterator<YangLeaf> leafIterator = container.getListOfLeaf().listIterator(); | 187 | + ListIterator<YangLeaf<?>> leafIterator = container.getListOfLeaf().listIterator(); |
188 | - YangLeaf leafInfo = leafIterator.next(); | 188 | + YangLeaf<?> leafInfo = leafIterator.next(); |
189 | 189 | ||
190 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 190 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
191 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 191 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); |
... | @@ -221,8 +221,8 @@ public class StatusListenerTest { | ... | @@ -221,8 +221,8 @@ public class StatusListenerTest { |
221 | assertThat(yangList.getStatus(), is(YangStatusType.CURRENT)); | 221 | assertThat(yangList.getStatus(), is(YangStatusType.CURRENT)); |
222 | 222 | ||
223 | // Check whether leaf properties as set correctly. | 223 | // Check whether leaf properties as set correctly. |
224 | - ListIterator<YangLeaf> leafIterator = yangList.getListOfLeaf().listIterator(); | 224 | + ListIterator<YangLeaf<?>> leafIterator = yangList.getListOfLeaf().listIterator(); |
225 | - YangLeaf leafInfo = leafIterator.next(); | 225 | + YangLeaf<?> leafInfo = leafIterator.next(); |
226 | 226 | ||
227 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 227 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
228 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 228 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); |
... | @@ -252,8 +252,8 @@ public class StatusListenerTest { | ... | @@ -252,8 +252,8 @@ public class StatusListenerTest { |
252 | YangModule yangNode = (YangModule) node; | 252 | YangModule yangNode = (YangModule) node; |
253 | assertThat(yangNode.getName(), is("Test")); | 253 | assertThat(yangNode.getName(), is("Test")); |
254 | 254 | ||
255 | - ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); | 255 | + ListIterator<YangLeafList<?>> leafListIterator = yangNode.getListOfLeafList().listIterator(); |
256 | - YangLeafList leafListInfo = leafListIterator.next(); | 256 | + YangLeafList<?> leafListInfo = leafListIterator.next(); |
257 | 257 | ||
258 | // Check whether status is set correctly. | 258 | // Check whether status is set correctly. |
259 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | 259 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | ... | ... |
... | @@ -41,8 +41,8 @@ public class TypeListenerTest { | ... | @@ -41,8 +41,8 @@ public class TypeListenerTest { |
41 | YangModule yangNode = (YangModule) node; | 41 | YangModule yangNode = (YangModule) node; |
42 | assertThat(yangNode.getName(), is("Test")); | 42 | assertThat(yangNode.getName(), is("Test")); |
43 | 43 | ||
44 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 44 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
45 | - YangLeaf leafInfo = leafIterator.next(); | 45 | + YangLeaf<?> leafInfo = leafIterator.next(); |
46 | 46 | ||
47 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 47 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
48 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"hello\"")); | 48 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"hello\"")); |
... | @@ -67,8 +67,8 @@ public class TypeListenerTest { | ... | @@ -67,8 +67,8 @@ public class TypeListenerTest { |
67 | YangModule yangNode = (YangModule) node; | 67 | YangModule yangNode = (YangModule) node; |
68 | assertThat(yangNode.getName(), is("Test")); | 68 | assertThat(yangNode.getName(), is("Test")); |
69 | 69 | ||
70 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 70 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
71 | - YangLeaf leafInfo = leafIterator.next(); | 71 | + YangLeaf<?> leafInfo = leafIterator.next(); |
72 | 72 | ||
73 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 73 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
74 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 74 | assertThat(leafInfo.getDataType().getDataTypeName(), is("\"uint16\"")); |
... | @@ -93,8 +93,8 @@ public class TypeListenerTest { | ... | @@ -93,8 +93,8 @@ public class TypeListenerTest { |
93 | YangModule yangNode = (YangModule) node; | 93 | YangModule yangNode = (YangModule) node; |
94 | assertThat(yangNode.getName(), is("Test")); | 94 | assertThat(yangNode.getName(), is("Test")); |
95 | 95 | ||
96 | - ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); | 96 | + ListIterator<YangLeafList<?>> leafListIterator = yangNode.getListOfLeafList().listIterator(); |
97 | - YangLeafList leafListInfo = leafListIterator.next(); | 97 | + YangLeafList<?> leafListInfo = leafListIterator.next(); |
98 | 98 | ||
99 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | 99 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); |
100 | assertThat(leafListInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | 100 | assertThat(leafListInfo.getDataType().getDataTypeName(), is("\"uint16\"")); | ... | ... |
utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/UnitsListenerTest.java
... | @@ -64,8 +64,8 @@ public class UnitsListenerTest { | ... | @@ -64,8 +64,8 @@ public class UnitsListenerTest { |
64 | YangModule yangNode = (YangModule) node; | 64 | YangModule yangNode = (YangModule) node; |
65 | assertThat(yangNode.getName(), is("Test")); | 65 | assertThat(yangNode.getName(), is("Test")); |
66 | 66 | ||
67 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 67 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
68 | - YangLeaf leafInfo = leafIterator.next(); | 68 | + YangLeaf<?> leafInfo = leafIterator.next(); |
69 | 69 | ||
70 | // Check whether units value is set correctly. | 70 | // Check whether units value is set correctly. |
71 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 71 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
... | @@ -78,10 +78,10 @@ public class UnitsListenerTest { | ... | @@ -78,10 +78,10 @@ public class UnitsListenerTest { |
78 | @Test | 78 | @Test |
79 | public void processModuleSubStatementUnits() throws IOException, ParserException { | 79 | public void processModuleSubStatementUnits() throws IOException, ParserException { |
80 | thrown.expect(ParserException.class); | 80 | thrown.expect(ParserException.class); |
81 | - thrown.expectMessage("mismatched input 'type' expecting {'augment', 'choice', 'contact', 'container', " + | 81 | + thrown.expectMessage("mismatched input 'type' expecting {'augment', 'choice', 'contact', 'container', " |
82 | - "'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', " + | 82 | + + "'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', " |
83 | - "'include', 'leaf', 'leaf-list', 'list', 'namespace', 'notification', 'organization', " + | 83 | + + "'include', 'leaf', 'leaf-list', 'list', 'namespace', 'notification', 'organization', " |
84 | - "'prefix', 'reference', 'revision', 'rpc', 'typedef', 'uses', 'yang-version', '}'}"); | 84 | + + "'prefix', 'reference', 'revision', 'rpc', 'typedef', 'uses', 'yang-version', '}'}"); |
85 | YangNode node = manager.getDataModel("src/test/resources/ModuleSubStatementUnits.yang"); | 85 | YangNode node = manager.getDataModel("src/test/resources/ModuleSubStatementUnits.yang"); |
86 | } | 86 | } |
87 | 87 | ||
... | @@ -113,8 +113,8 @@ public class UnitsListenerTest { | ... | @@ -113,8 +113,8 @@ public class UnitsListenerTest { |
113 | YangModule yangNode = (YangModule) node; | 113 | YangModule yangNode = (YangModule) node; |
114 | assertThat(yangNode.getName(), is("Test")); | 114 | assertThat(yangNode.getName(), is("Test")); |
115 | 115 | ||
116 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 116 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
117 | - YangLeaf leafInfo = leafIterator.next(); | 117 | + YangLeaf<?> leafInfo = leafIterator.next(); |
118 | 118 | ||
119 | // Check whether leaf properties is set correctly. | 119 | // Check whether leaf properties is set correctly. |
120 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 120 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
... | @@ -145,8 +145,8 @@ public class UnitsListenerTest { | ... | @@ -145,8 +145,8 @@ public class UnitsListenerTest { |
145 | YangModule yangNode = (YangModule) node; | 145 | YangModule yangNode = (YangModule) node; |
146 | assertThat(yangNode.getName(), is("Test")); | 146 | assertThat(yangNode.getName(), is("Test")); |
147 | 147 | ||
148 | - ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator(); | 148 | + ListIterator<YangLeaf<?>> leafIterator = yangNode.getListOfLeaf().listIterator(); |
149 | - YangLeaf leafInfo = leafIterator.next(); | 149 | + YangLeaf<?> leafInfo = leafIterator.next(); |
150 | 150 | ||
151 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); | 151 | assertThat(leafInfo.getLeafName(), is("invalid-interval")); |
152 | assertThat(leafInfo.getUnits(), is(nullValue())); | 152 | assertThat(leafInfo.getUnits(), is(nullValue())); |
... | @@ -180,8 +180,8 @@ public class UnitsListenerTest { | ... | @@ -180,8 +180,8 @@ public class UnitsListenerTest { |
180 | YangModule yangNode = (YangModule) node; | 180 | YangModule yangNode = (YangModule) node; |
181 | assertThat(yangNode.getName(), is("Test")); | 181 | assertThat(yangNode.getName(), is("Test")); |
182 | 182 | ||
183 | - ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator(); | 183 | + ListIterator<YangLeafList<?>> leafListIterator = yangNode.getListOfLeafList().listIterator(); |
184 | - YangLeafList leafListInfo = leafListIterator.next(); | 184 | + YangLeafList<?> leafListInfo = leafListIterator.next(); |
185 | 185 | ||
186 | // Check whether units value is set correctly. | 186 | // Check whether units value is set correctly. |
187 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | 187 | assertThat(leafListInfo.getLeafName(), is("invalid-interval")); | ... | ... |
... | @@ -31,7 +31,7 @@ public class YangFileScannerTest { | ... | @@ -31,7 +31,7 @@ public class YangFileScannerTest { |
31 | 31 | ||
32 | private final Logger log = getLogger(getClass()); | 32 | private final Logger log = getLogger(getClass()); |
33 | 33 | ||
34 | - String baseDir = "target/UnitTestCase"; | 34 | + private static final String BASEDIR = "target/UnitTestCase"; |
35 | 35 | ||
36 | /** | 36 | /** |
37 | * Checks an empty directory. | 37 | * Checks an empty directory. |
... | @@ -39,9 +39,9 @@ public class YangFileScannerTest { | ... | @@ -39,9 +39,9 @@ public class YangFileScannerTest { |
39 | @Test | 39 | @Test |
40 | public void testWithSingleEmptyDirectoryInRoot() { | 40 | public void testWithSingleEmptyDirectoryInRoot() { |
41 | try { | 41 | try { |
42 | - File dir = new File(baseDir); | 42 | + File dir = new File(BASEDIR); |
43 | dir.mkdirs(); | 43 | dir.mkdirs(); |
44 | - List<String> list = YangFileScanner.getYangFiles(baseDir.toString()); | 44 | + List<String> list = YangFileScanner.getYangFiles(BASEDIR.toString()); |
45 | } catch (IOException e) { | 45 | } catch (IOException e) { |
46 | log.info("IO Exception throwed"); | 46 | log.info("IO Exception throwed"); |
47 | } | 47 | } |
... | @@ -63,7 +63,7 @@ public class YangFileScannerTest { | ... | @@ -63,7 +63,7 @@ public class YangFileScannerTest { |
63 | File firstpath2 = createDirectory(dir2); | 63 | File firstpath2 = createDirectory(dir2); |
64 | File firstpath3 = createDirectory(dir3); | 64 | File firstpath3 = createDirectory(dir3); |
65 | File firstpath4 = createDirectory(dir4); | 65 | File firstpath4 = createDirectory(dir4); |
66 | - List<String> list = YangFileScanner.getYangFiles(baseDir.toString()); | 66 | + List<String> list = YangFileScanner.getYangFiles(BASEDIR.toString()); |
67 | } catch (IOException e) { | 67 | } catch (IOException e) { |
68 | log.info("IO Exception throwed"); | 68 | log.info("IO Exception throwed"); |
69 | } | 69 | } |
... | @@ -79,7 +79,7 @@ public class YangFileScannerTest { | ... | @@ -79,7 +79,7 @@ public class YangFileScannerTest { |
79 | String firstFileName1 = "secondFile.yang"; | 79 | String firstFileName1 = "secondFile.yang"; |
80 | File firstpath1 = createDirectory(dir1); | 80 | File firstpath1 = createDirectory(dir1); |
81 | createFile(firstpath1, firstFileName1); | 81 | createFile(firstpath1, firstFileName1); |
82 | - List<String> list = YangFileScanner.getYangFiles(baseDir.toString()); | 82 | + List<String> list = YangFileScanner.getYangFiles(BASEDIR.toString()); |
83 | } catch (IOException e) { | 83 | } catch (IOException e) { |
84 | log.info("IO Exception throwed"); | 84 | log.info("IO Exception throwed"); |
85 | } | 85 | } |
... | @@ -101,7 +101,7 @@ public class YangFileScannerTest { | ... | @@ -101,7 +101,7 @@ public class YangFileScannerTest { |
101 | createFile(firstpath2, firstFileName3); | 101 | createFile(firstpath2, firstFileName3); |
102 | createFile(firstpath2, firstFileName4); | 102 | createFile(firstpath2, firstFileName4); |
103 | createFile(firstpath2, firstFileName5); | 103 | createFile(firstpath2, firstFileName5); |
104 | - List<String> list = YangFileScanner.getYangFiles(baseDir.toString()); | 104 | + List<String> list = YangFileScanner.getYangFiles(BASEDIR.toString()); |
105 | } catch (IOException e) { | 105 | } catch (IOException e) { |
106 | log.info("IO Exception throwed"); | 106 | log.info("IO Exception throwed"); |
107 | } | 107 | } |
... | @@ -143,7 +143,49 @@ public class YangFileScannerTest { | ... | @@ -143,7 +143,49 @@ public class YangFileScannerTest { |
143 | createFile(dir6, firstFileName3); | 143 | createFile(dir6, firstFileName3); |
144 | createFile(dir6, firstFileName4); | 144 | createFile(dir6, firstFileName4); |
145 | createFile(dir6, firstFileName5); | 145 | createFile(dir6, firstFileName5); |
146 | - List<String> list = YangFileScanner.getYangFiles(baseDir.toString()); | 146 | + List<String> list = YangFileScanner.getYangFiles(BASEDIR.toString()); |
147 | + } catch (IOException e) { | ||
148 | + log.info("IO Exception throwed"); | ||
149 | + } | ||
150 | + } | ||
151 | + | ||
152 | + /** | ||
153 | + * Checks multi directories with many .java file. | ||
154 | + */ | ||
155 | + @Test | ||
156 | + public void testWithMultiDirectoriesMultiJavaFiles() { | ||
157 | + try { | ||
158 | + String dir2 = "newDir1/newDir2/newDir3/newDir4"; | ||
159 | + File dir3 = new File("target/UnitTestCase/newDir1"); | ||
160 | + File dir4 = new File("target/UnitTestCase/newDir1/newDir2"); | ||
161 | + File dir5 = new File("target/UnitTestCase/newDir1/newDir2/newDir3"); | ||
162 | + File dir6 = new File("target/UnitTestCase/newDir1/newDir2/newDir3/newDir4"); | ||
163 | + String firstFileName2 = "thirdFile.java"; | ||
164 | + String firstFileName3 = "fourthFile.java"; | ||
165 | + String firstFileName4 = "fifthFile.java"; | ||
166 | + String firstFileName5 = "sixthFile.java"; | ||
167 | + File firstpath2 = createDirectory(dir2); | ||
168 | + createFile(firstpath2, firstFileName2); | ||
169 | + createFile(firstpath2, firstFileName3); | ||
170 | + createFile(firstpath2, firstFileName4); | ||
171 | + createFile(dir3, firstFileName5); | ||
172 | + createFile(dir3, firstFileName2); | ||
173 | + createFile(dir3, firstFileName3); | ||
174 | + createFile(dir3, firstFileName4); | ||
175 | + createFile(dir3, firstFileName5); | ||
176 | + createFile(dir4, firstFileName2); | ||
177 | + createFile(dir4, firstFileName3); | ||
178 | + createFile(dir4, firstFileName4); | ||
179 | + createFile(dir4, firstFileName5); | ||
180 | + createFile(dir5, firstFileName2); | ||
181 | + createFile(dir5, firstFileName3); | ||
182 | + createFile(dir5, firstFileName4); | ||
183 | + createFile(dir5, firstFileName5); | ||
184 | + createFile(dir6, firstFileName2); | ||
185 | + createFile(dir6, firstFileName3); | ||
186 | + createFile(dir6, firstFileName4); | ||
187 | + createFile(dir6, firstFileName5); | ||
188 | + List<String> list = YangFileScanner.getJavaFiles(BASEDIR.toString()); | ||
147 | } catch (IOException e) { | 189 | } catch (IOException e) { |
148 | log.info("IO Exception throwed"); | 190 | log.info("IO Exception throwed"); |
149 | } | 191 | } |
... | @@ -156,18 +198,18 @@ public class YangFileScannerTest { | ... | @@ -156,18 +198,18 @@ public class YangFileScannerTest { |
156 | * @return directory path | 198 | * @return directory path |
157 | */ | 199 | */ |
158 | public File createDirectory(String path) { | 200 | public File createDirectory(String path) { |
159 | - File myDir = new File(baseDir + File.separator + path); | 201 | + File myDir = new File(BASEDIR + File.separator + path); |
160 | myDir.mkdirs(); | 202 | myDir.mkdirs(); |
161 | return myDir; | 203 | return myDir; |
162 | } | 204 | } |
163 | 205 | ||
164 | /** | 206 | /** |
165 | - * Method used for creating file inside the specified directory. | 207 | + * Method used for creating file inside the specified directory. |
166 | - * | 208 | + * |
167 | - * @param myDir my current dirctory | 209 | + * @param myDir my current dirctory |
168 | - * @param fileName file name | 210 | + * @param fileName file name |
169 | - * @throws IOException io exception when fails to create a file. | 211 | + * @throws IOException io exception when fails to create a file. |
170 | - */ | 212 | + */ |
171 | public void createFile(File myDir, String fileName) throws IOException { | 213 | public void createFile(File myDir, String fileName) throws IOException { |
172 | File file = null; | 214 | File file = null; |
173 | try { | 215 | try { | ... | ... |
-
Please register or login to post a comment