Committed by
Gerrit Code Review
ST defect fixes and review comments fixes
Change-Id: Ib8c56a88c19cd9aa23918d0f9e37c89e74cb0d13
Showing
40 changed files
with
1775 additions
and
722 deletions
| ... | @@ -22,12 +22,12 @@ | ... | @@ -22,12 +22,12 @@ |
| 22 | <dependency> | 22 | <dependency> |
| 23 | <groupId>org.apache.maven</groupId> | 23 | <groupId>org.apache.maven</groupId> |
| 24 | <artifactId>maven-core</artifactId> | 24 | <artifactId>maven-core</artifactId> |
| 25 | - <version>3.2.5</version> | 25 | + <version>3.3.9</version> |
| 26 | </dependency> | 26 | </dependency> |
| 27 | <dependency> | 27 | <dependency> |
| 28 | <groupId>org.apache.maven</groupId> | 28 | <groupId>org.apache.maven</groupId> |
| 29 | <artifactId>maven-plugin-api</artifactId> | 29 | <artifactId>maven-plugin-api</artifactId> |
| 30 | - <version>3.2.5</version> | 30 | + <version>3.3.9</version> |
| 31 | </dependency> | 31 | </dependency> |
| 32 | <dependency> | 32 | <dependency> |
| 33 | <groupId>org.apache.maven.plugin-tools</groupId> | 33 | <groupId>org.apache.maven.plugin-tools</groupId> |
| ... | @@ -38,18 +38,18 @@ | ... | @@ -38,18 +38,18 @@ |
| 38 | <dependency> | 38 | <dependency> |
| 39 | <groupId>org.apache.felix</groupId> | 39 | <groupId>org.apache.felix</groupId> |
| 40 | <artifactId>maven-scr-plugin</artifactId> | 40 | <artifactId>maven-scr-plugin</artifactId> |
| 41 | - <version>1.9.0</version> | 41 | + <version>1.21.0</version> |
| 42 | <scope>compile</scope> | 42 | <scope>compile</scope> |
| 43 | </dependency> | 43 | </dependency> |
| 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>3.2.5</version> | 47 | + <version>3.3.9</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.2.1</version> | 52 | + <version>3.0-alpha-2</version> |
| 53 | </dependency> | 53 | </dependency> |
| 54 | <dependency> | 54 | <dependency> |
| 55 | <groupId>org.apache.maven.plugin-testing</groupId> | 55 | <groupId>org.apache.maven.plugin-testing</groupId> |
| ... | @@ -60,12 +60,12 @@ | ... | @@ -60,12 +60,12 @@ |
| 60 | <dependency> | 60 | <dependency> |
| 61 | <groupId>org.apache.maven</groupId> | 61 | <groupId>org.apache.maven</groupId> |
| 62 | <artifactId>maven-model</artifactId> | 62 | <artifactId>maven-model</artifactId> |
| 63 | - <version>3.2.5</version> | 63 | + <version>3.3.9</version> |
| 64 | </dependency> | 64 | </dependency> |
| 65 | <dependency> | 65 | <dependency> |
| 66 | <groupId>org.apache.maven</groupId> | 66 | <groupId>org.apache.maven</groupId> |
| 67 | <artifactId>maven-compat</artifactId> | 67 | <artifactId>maven-compat</artifactId> |
| 68 | - <version>3.2.5</version> | 68 | + <version>3.3.9</version> |
| 69 | <scope>test</scope> | 69 | <scope>test</scope> |
| 70 | </dependency> | 70 | </dependency> |
| 71 | 71 | ... | ... |
| ... | @@ -340,9 +340,11 @@ public class YangAugment extends YangNode implements YangLeavesHolder, YangCommo | ... | @@ -340,9 +340,11 @@ public class YangAugment extends YangNode implements YangLeavesHolder, YangCommo |
| 340 | /** | 340 | /** |
| 341 | * Prepare the information for java code generation corresponding to YANG | 341 | * Prepare the information for java code generation corresponding to YANG |
| 342 | * grouping info. | 342 | * grouping info. |
| 343 | + * | ||
| 344 | + * @param codeGenDir code generation directory | ||
| 343 | */ | 345 | */ |
| 344 | @Override | 346 | @Override |
| 345 | - public void generateJavaCodeEntry() { | 347 | + public void generateJavaCodeEntry(String codeGenDir) { |
| 346 | // TODO Auto-generated method stub | 348 | // TODO Auto-generated method stub |
| 347 | 349 | ||
| 348 | } | 350 | } | ... | ... |
| ... | @@ -337,9 +337,11 @@ public class YangCase extends YangNode | ... | @@ -337,9 +337,11 @@ public class YangCase extends YangNode |
| 337 | 337 | ||
| 338 | /** | 338 | /** |
| 339 | * Generate the code corresponding to YANG case info. | 339 | * Generate the code corresponding to YANG case info. |
| 340 | + * | ||
| 341 | + * @param codeGenDir code generation directory | ||
| 340 | */ | 342 | */ |
| 341 | @Override | 343 | @Override |
| 342 | - public void generateJavaCodeEntry() { | 344 | + public void generateJavaCodeEntry(String codeGenDir) { |
| 343 | // TODO Auto-generated method stub | 345 | // TODO Auto-generated method stub |
| 344 | 346 | ||
| 345 | } | 347 | } | ... | ... |
| ... | @@ -140,22 +140,11 @@ public class YangChoice extends YangNode implements YangCommonInfo, Parsable, Co | ... | @@ -140,22 +140,11 @@ public class YangChoice extends YangNode implements YangCommonInfo, Parsable, Co |
| 140 | super(YangNodeType.CHOICE_NODE); | 140 | super(YangNodeType.CHOICE_NODE); |
| 141 | } | 141 | } |
| 142 | 142 | ||
| 143 | - /* | ||
| 144 | - * (non-Javadoc) | ||
| 145 | - * | ||
| 146 | - * @see org.onosproject.yangutils.datamodel.YangNode#getName() | ||
| 147 | - */ | ||
| 148 | @Override | 143 | @Override |
| 149 | public String getName() { | 144 | public String getName() { |
| 150 | return name; | 145 | return name; |
| 151 | } | 146 | } |
| 152 | 147 | ||
| 153 | - /* | ||
| 154 | - * (non-Javadoc) | ||
| 155 | - * | ||
| 156 | - * @see | ||
| 157 | - * org.onosproject.yangutils.datamodel.YangNode#setName(java.lang.String) | ||
| 158 | - */ | ||
| 159 | @Override | 148 | @Override |
| 160 | public void setName(String name) { | 149 | public void setName(String name) { |
| 161 | this.name = name; | 150 | this.name = name; |
| ... | @@ -305,48 +294,24 @@ public class YangChoice extends YangNode implements YangCommonInfo, Parsable, Co | ... | @@ -305,48 +294,24 @@ public class YangChoice extends YangNode implements YangCommonInfo, Parsable, Co |
| 305 | // TODO auto-generated method stub, to be implemented by parser | 294 | // TODO auto-generated method stub, to be implemented by parser |
| 306 | } | 295 | } |
| 307 | 296 | ||
| 308 | - /* | ||
| 309 | - * (non-Javadoc) | ||
| 310 | - * | ||
| 311 | - * @see org.onosproject.yangutils.datamodel.YangNode#getPackage() | ||
| 312 | - */ | ||
| 313 | @Override | 297 | @Override |
| 314 | public String getPackage() { | 298 | public String getPackage() { |
| 315 | // TODO Auto-generated method stub | 299 | // TODO Auto-generated method stub |
| 316 | return null; | 300 | return null; |
| 317 | } | 301 | } |
| 318 | 302 | ||
| 319 | - /* | ||
| 320 | - * (non-Javadoc) | ||
| 321 | - * | ||
| 322 | - * @see | ||
| 323 | - * org.onosproject.yangutils.datamodel.YangNode#setPackage(java.lang.String) | ||
| 324 | - */ | ||
| 325 | @Override | 303 | @Override |
| 326 | public void setPackage(String pkg) { | 304 | public void setPackage(String pkg) { |
| 327 | // TODO Auto-generated method stub | 305 | // TODO Auto-generated method stub |
| 328 | 306 | ||
| 329 | } | 307 | } |
| 330 | 308 | ||
| 331 | - /* | ||
| 332 | - * (non-Javadoc) | ||
| 333 | - * | ||
| 334 | - * @see | ||
| 335 | - * org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry( | ||
| 336 | - * ) | ||
| 337 | - */ | ||
| 338 | @Override | 309 | @Override |
| 339 | - public void generateJavaCodeEntry() { | 310 | + public void generateJavaCodeEntry(String codeGenDir) { |
| 340 | // TODO Auto-generated method stub | 311 | // TODO Auto-generated method stub |
| 341 | 312 | ||
| 342 | } | 313 | } |
| 343 | 314 | ||
| 344 | - /* | ||
| 345 | - * (non-Javadoc) | ||
| 346 | - * | ||
| 347 | - * @see | ||
| 348 | - * org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit() | ||
| 349 | - */ | ||
| 350 | @Override | 315 | @Override |
| 351 | public void generateJavaCodeExit() { | 316 | public void generateJavaCodeExit() { |
| 352 | // TODO Auto-generated method stub | 317 | // TODO Auto-generated method stub | ... | ... |
| ... | @@ -16,18 +16,19 @@ | ... | @@ -16,18 +16,19 @@ |
| 16 | 16 | ||
| 17 | package org.onosproject.yangutils.datamodel; | 17 | package org.onosproject.yangutils.datamodel; |
| 18 | 18 | ||
| 19 | +import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.detectCollidingChildUtil; | ||
| 20 | + | ||
| 19 | import java.io.IOException; | 21 | import java.io.IOException; |
| 20 | import java.util.LinkedList; | 22 | import java.util.LinkedList; |
| 21 | import java.util.List; | 23 | import java.util.List; |
| 22 | 24 | ||
| 23 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 25 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 24 | -import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.detectCollidingChildUtil; | ||
| 25 | import org.onosproject.yangutils.parser.Parsable; | 26 | import org.onosproject.yangutils.parser.Parsable; |
| 26 | -import org.onosproject.yangutils.utils.YangConstructType; | ||
| 27 | import org.onosproject.yangutils.translator.CachedFileHandle; | 27 | import org.onosproject.yangutils.translator.CachedFileHandle; |
| 28 | import org.onosproject.yangutils.translator.GeneratedFileType; | 28 | import org.onosproject.yangutils.translator.GeneratedFileType; |
| 29 | import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax; | 29 | import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax; |
| 30 | import org.onosproject.yangutils.utils.UtilConstants; | 30 | import org.onosproject.yangutils.utils.UtilConstants; |
| 31 | +import org.onosproject.yangutils.utils.YangConstructType; | ||
| 31 | import org.onosproject.yangutils.utils.io.impl.FileSystemUtil; | 32 | import org.onosproject.yangutils.utils.io.impl.FileSystemUtil; |
| 32 | /*- | 33 | /*- |
| 33 | * Reference RFC 6020. | 34 | * Reference RFC 6020. |
| ... | @@ -476,20 +477,24 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom | ... | @@ -476,20 +477,24 @@ public class YangContainer extends YangNode implements YangLeavesHolder, YangCom |
| 476 | /** | 477 | /** |
| 477 | * Generate the java code corresponding to YANG container. | 478 | * Generate the java code corresponding to YANG container. |
| 478 | * | 479 | * |
| 479 | - * @throws IOException when fails to generate the source files | 480 | + * @param codeGenDir code generation directory |
| 481 | + * @throws IOException when fails to generate the source files. | ||
| 480 | */ | 482 | */ |
| 481 | @Override | 483 | @Override |
| 482 | - public void generateJavaCodeEntry() throws IOException { | 484 | + public void generateJavaCodeEntry(String codeGenDir) throws IOException { |
| 483 | YangNode parent = getParent(); | 485 | YangNode parent = getParent(); |
| 484 | String contPkg = JavaIdentifierSyntax.getPackageFromParent(parent.getPackage(), parent.getName()); | 486 | String contPkg = JavaIdentifierSyntax.getPackageFromParent(parent.getPackage(), parent.getName()); |
| 487 | + | ||
| 488 | + contPkg = JavaIdentifierSyntax.getCamelCase(contPkg).toLowerCase(); | ||
| 485 | setPackage(contPkg); | 489 | setPackage(contPkg); |
| 486 | 490 | ||
| 487 | CachedFileHandle handle = null; | 491 | CachedFileHandle handle = null; |
| 488 | try { | 492 | try { |
| 489 | - FileSystemUtil.createPackage(UtilConstants.YANG_GEN_DIR + getPackage(), getName()); | 493 | + FileSystemUtil.createPackage(codeGenDir + getPackage(), parent.getName() + UtilConstants.CHILDREN); |
| 490 | handle = FileSystemUtil.createSourceFiles(getPackage(), getName(), | 494 | handle = FileSystemUtil.createSourceFiles(getPackage(), getName(), |
| 491 | GeneratedFileType.GENERATE_INTERFACE_WITH_BUILDER); | 495 | GeneratedFileType.GENERATE_INTERFACE_WITH_BUILDER); |
| 492 | - handle.setRelativeFilePath(UtilConstants.YANG_GEN_DIR + getPackage().replace(".", "/")); | 496 | + handle.setRelativeFilePath(getPackage().replace(".", "/")); |
| 497 | + handle.setCodeGenFilePath(codeGenDir); | ||
| 493 | } catch (IOException e) { | 498 | } catch (IOException e) { |
| 494 | throw new IOException("Failed to create the source files."); | 499 | throw new IOException("Failed to create the source files."); |
| 495 | } | 500 | } | ... | ... |
| ... | @@ -299,9 +299,11 @@ public class YangGrouping extends YangNode | ... | @@ -299,9 +299,11 @@ public class YangGrouping extends YangNode |
| 299 | 299 | ||
| 300 | /** | 300 | /** |
| 301 | * Generate the code for YANG grouping. | 301 | * Generate the code for YANG grouping. |
| 302 | + * | ||
| 303 | + * @param codeGenDir code generated directory. | ||
| 302 | */ | 304 | */ |
| 303 | @Override | 305 | @Override |
| 304 | - public void generateJavaCodeEntry() { | 306 | + public void generateJavaCodeEntry(String codeGenDir) { |
| 305 | // TODO Auto-generated method stub | 307 | // TODO Auto-generated method stub |
| 306 | 308 | ||
| 307 | } | 309 | } | ... | ... |
| ... | @@ -622,9 +622,11 @@ public class YangList extends YangNode | ... | @@ -622,9 +622,11 @@ public class YangList extends YangNode |
| 622 | /** | 622 | /** |
| 623 | * Populate the cached handle with information about the list attributes to | 623 | * Populate the cached handle with information about the list attributes to |
| 624 | * generate java code. | 624 | * generate java code. |
| 625 | + * | ||
| 626 | + * @param codeGenDir code generated directory | ||
| 625 | */ | 627 | */ |
| 626 | @Override | 628 | @Override |
| 627 | - public void generateJavaCodeEntry() { | 629 | + public void generateJavaCodeEntry(String codeGenDir) { |
| 628 | // TODO Auto-generated method stub | 630 | // TODO Auto-generated method stub |
| 629 | 631 | ||
| 630 | } | 632 | } | ... | ... |
| ... | @@ -15,21 +15,21 @@ | ... | @@ -15,21 +15,21 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.yangutils.datamodel; | 16 | package org.onosproject.yangutils.datamodel; |
| 17 | 17 | ||
| 18 | -import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | ||
| 19 | import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.detectCollidingChildUtil; | 18 | import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.detectCollidingChildUtil; |
| 19 | + | ||
| 20 | +import java.io.IOException; | ||
| 21 | +import java.util.LinkedList; | ||
| 22 | +import java.util.List; | ||
| 23 | + | ||
| 24 | +import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | ||
| 20 | import org.onosproject.yangutils.parser.Parsable; | 25 | import org.onosproject.yangutils.parser.Parsable; |
| 21 | import org.onosproject.yangutils.translator.CachedFileHandle; | 26 | import org.onosproject.yangutils.translator.CachedFileHandle; |
| 22 | import org.onosproject.yangutils.translator.CodeGenerator; | 27 | import org.onosproject.yangutils.translator.CodeGenerator; |
| 23 | import org.onosproject.yangutils.translator.GeneratedFileType; | 28 | import org.onosproject.yangutils.translator.GeneratedFileType; |
| 24 | import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax; | 29 | import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax; |
| 25 | -import org.onosproject.yangutils.utils.UtilConstants; | ||
| 26 | import org.onosproject.yangutils.utils.YangConstructType; | 30 | import org.onosproject.yangutils.utils.YangConstructType; |
| 27 | import org.onosproject.yangutils.utils.io.impl.FileSystemUtil; | 31 | import org.onosproject.yangutils.utils.io.impl.FileSystemUtil; |
| 28 | 32 | ||
| 29 | -import java.io.IOException; | ||
| 30 | -import java.util.LinkedList; | ||
| 31 | -import java.util.List; | ||
| 32 | - | ||
| 33 | /*- | 33 | /*- |
| 34 | * Reference:RFC 6020. | 34 | * Reference:RFC 6020. |
| 35 | * The "module" statement defines the module's name, | 35 | * The "module" statement defines the module's name, |
| ... | @@ -211,7 +211,7 @@ public class YangModule extends YangNode | ... | @@ -211,7 +211,7 @@ public class YangModule extends YangNode |
| 211 | /** | 211 | /** |
| 212 | * Get name of the module. | 212 | * Get name of the module. |
| 213 | * | 213 | * |
| 214 | - * @return module name. | 214 | + * @return module name |
| 215 | */ | 215 | */ |
| 216 | @Override | 216 | @Override |
| 217 | public String getName() { | 217 | public String getName() { |
| ... | @@ -221,7 +221,7 @@ public class YangModule extends YangNode | ... | @@ -221,7 +221,7 @@ public class YangModule extends YangNode |
| 221 | /** | 221 | /** |
| 222 | * Set module name. | 222 | * Set module name. |
| 223 | * | 223 | * |
| 224 | - * @param moduleName module name. | 224 | + * @param moduleName module name |
| 225 | */ | 225 | */ |
| 226 | @Override | 226 | @Override |
| 227 | public void setName(String moduleName) { | 227 | public void setName(String moduleName) { |
| ... | @@ -231,7 +231,7 @@ public class YangModule extends YangNode | ... | @@ -231,7 +231,7 @@ public class YangModule extends YangNode |
| 231 | /** | 231 | /** |
| 232 | * Get the contact details of the module owner. | 232 | * Get the contact details of the module owner. |
| 233 | * | 233 | * |
| 234 | - * @return the contact details of YANG owner. | 234 | + * @return the contact details of YANG owner |
| 235 | */ | 235 | */ |
| 236 | public String getContact() { | 236 | public String getContact() { |
| 237 | return contact; | 237 | return contact; |
| ... | @@ -240,7 +240,7 @@ public class YangModule extends YangNode | ... | @@ -240,7 +240,7 @@ public class YangModule extends YangNode |
| 240 | /** | 240 | /** |
| 241 | * Set the contact details of the module owner. | 241 | * Set the contact details of the module owner. |
| 242 | * | 242 | * |
| 243 | - * @param contact the contact details of YANG owner. | 243 | + * @param contact the contact details of YANG owner |
| 244 | */ | 244 | */ |
| 245 | public void setContact(String contact) { | 245 | public void setContact(String contact) { |
| 246 | this.contact = contact; | 246 | this.contact = contact; |
| ... | @@ -249,7 +249,7 @@ public class YangModule extends YangNode | ... | @@ -249,7 +249,7 @@ public class YangModule extends YangNode |
| 249 | /** | 249 | /** |
| 250 | * Get the description of module. | 250 | * Get the description of module. |
| 251 | * | 251 | * |
| 252 | - * @return the description of YANG module. | 252 | + * @return the description of YANG module |
| 253 | */ | 253 | */ |
| 254 | @Override | 254 | @Override |
| 255 | public String getDescription() { | 255 | public String getDescription() { |
| ... | @@ -259,7 +259,7 @@ public class YangModule extends YangNode | ... | @@ -259,7 +259,7 @@ public class YangModule extends YangNode |
| 259 | /** | 259 | /** |
| 260 | * Set the description of module. | 260 | * Set the description of module. |
| 261 | * | 261 | * |
| 262 | - * @param description set the description of YANG module. | 262 | + * @param description set the description of YANG module |
| 263 | */ | 263 | */ |
| 264 | @Override | 264 | @Override |
| 265 | public void setDescription(String description) { | 265 | public void setDescription(String description) { |
| ... | @@ -269,7 +269,7 @@ public class YangModule extends YangNode | ... | @@ -269,7 +269,7 @@ public class YangModule extends YangNode |
| 269 | /** | 269 | /** |
| 270 | * Get the list of imported modules. | 270 | * Get the list of imported modules. |
| 271 | * | 271 | * |
| 272 | - * @return the list of imported modules. | 272 | + * @return the list of imported modules |
| 273 | */ | 273 | */ |
| 274 | public List<YangImport> getImportList() { | 274 | public List<YangImport> getImportList() { |
| 275 | return importList; | 275 | return importList; |
| ... | @@ -278,7 +278,7 @@ public class YangModule extends YangNode | ... | @@ -278,7 +278,7 @@ public class YangModule extends YangNode |
| 278 | /** | 278 | /** |
| 279 | * prevent setting the import list from outside. | 279 | * prevent setting the import list from outside. |
| 280 | * | 280 | * |
| 281 | - * @param importList the import list to set. | 281 | + * @param importList the import list to set |
| 282 | */ | 282 | */ |
| 283 | private void setImportList(List<YangImport> importList) { | 283 | private void setImportList(List<YangImport> importList) { |
| 284 | this.importList = importList; | 284 | this.importList = importList; |
| ... | @@ -287,7 +287,7 @@ public class YangModule extends YangNode | ... | @@ -287,7 +287,7 @@ public class YangModule extends YangNode |
| 287 | /** | 287 | /** |
| 288 | * Add the imported module information to the import list. | 288 | * Add the imported module information to the import list. |
| 289 | * | 289 | * |
| 290 | - * @param importedModule module being imported. | 290 | + * @param importedModule module being imported |
| 291 | */ | 291 | */ |
| 292 | public void addImportedInfo(YangImport importedModule) { | 292 | public void addImportedInfo(YangImport importedModule) { |
| 293 | 293 | ||
| ... | @@ -303,7 +303,7 @@ public class YangModule extends YangNode | ... | @@ -303,7 +303,7 @@ public class YangModule extends YangNode |
| 303 | /** | 303 | /** |
| 304 | * Get the list of included sub modules. | 304 | * Get the list of included sub modules. |
| 305 | * | 305 | * |
| 306 | - * @return the included list of sub modules. | 306 | + * @return the included list of sub modules |
| 307 | */ | 307 | */ |
| 308 | public List<YangInclude> getIncludeList() { | 308 | public List<YangInclude> getIncludeList() { |
| 309 | return includeList; | 309 | return includeList; |
| ... | @@ -312,7 +312,7 @@ public class YangModule extends YangNode | ... | @@ -312,7 +312,7 @@ public class YangModule extends YangNode |
| 312 | /** | 312 | /** |
| 313 | * Set the list of included sub modules. | 313 | * Set the list of included sub modules. |
| 314 | * | 314 | * |
| 315 | - * @param includeList the included list to set. | 315 | + * @param includeList the included list to set |
| 316 | */ | 316 | */ |
| 317 | private void setIncludeList(List<YangInclude> includeList) { | 317 | private void setIncludeList(List<YangInclude> includeList) { |
| 318 | this.includeList = includeList; | 318 | this.includeList = includeList; |
| ... | @@ -321,7 +321,7 @@ public class YangModule extends YangNode | ... | @@ -321,7 +321,7 @@ public class YangModule extends YangNode |
| 321 | /** | 321 | /** |
| 322 | * Add the included sub module information to the include list. | 322 | * Add the included sub module information to the include list. |
| 323 | * | 323 | * |
| 324 | - * @param includeModule submodule being included. | 324 | + * @param includeModule submodule being included |
| 325 | */ | 325 | */ |
| 326 | public void addIncludedInfo(YangInclude includeModule) { | 326 | public void addIncludedInfo(YangInclude includeModule) { |
| 327 | 327 | ||
| ... | @@ -336,7 +336,7 @@ public class YangModule extends YangNode | ... | @@ -336,7 +336,7 @@ public class YangModule extends YangNode |
| 336 | /** | 336 | /** |
| 337 | * Get the list of leaves in module. | 337 | * Get the list of leaves in module. |
| 338 | * | 338 | * |
| 339 | - * @return the list of leaves. | 339 | + * @return the list of leaves |
| 340 | */ | 340 | */ |
| 341 | @Override | 341 | @Override |
| 342 | public List<YangLeaf> getListOfLeaf() { | 342 | public List<YangLeaf> getListOfLeaf() { |
| ... | @@ -346,7 +346,7 @@ public class YangModule extends YangNode | ... | @@ -346,7 +346,7 @@ public class YangModule extends YangNode |
| 346 | /** | 346 | /** |
| 347 | * Set the list of leaf in module. | 347 | * Set the list of leaf in module. |
| 348 | * | 348 | * |
| 349 | - * @param leafsList the list of leaf to set. | 349 | + * @param leafsList the list of leaf to set |
| 350 | */ | 350 | */ |
| 351 | private void setListOfLeaf(List<YangLeaf> leafsList) { | 351 | private void setListOfLeaf(List<YangLeaf> leafsList) { |
| 352 | listOfLeaf = leafsList; | 352 | listOfLeaf = leafsList; |
| ... | @@ -355,7 +355,7 @@ public class YangModule extends YangNode | ... | @@ -355,7 +355,7 @@ public class YangModule extends YangNode |
| 355 | /** | 355 | /** |
| 356 | * Add a leaf in module. | 356 | * Add a leaf in module. |
| 357 | * | 357 | * |
| 358 | - * @param leaf the leaf to be added. | 358 | + * @param leaf the leaf to be added |
| 359 | */ | 359 | */ |
| 360 | @Override | 360 | @Override |
| 361 | public void addLeaf(YangLeaf leaf) { | 361 | public void addLeaf(YangLeaf leaf) { |
| ... | @@ -369,7 +369,7 @@ public class YangModule extends YangNode | ... | @@ -369,7 +369,7 @@ public class YangModule extends YangNode |
| 369 | /** | 369 | /** |
| 370 | * Get the list of leaf-list from module. | 370 | * Get the list of leaf-list from module. |
| 371 | * | 371 | * |
| 372 | - * @return the list of leaf-list. | 372 | + * @return the list of leaf-list |
| 373 | */ | 373 | */ |
| 374 | @Override | 374 | @Override |
| 375 | public List<YangLeafList> getListOfLeafList() { | 375 | public List<YangLeafList> getListOfLeafList() { |
| ... | @@ -379,7 +379,7 @@ public class YangModule extends YangNode | ... | @@ -379,7 +379,7 @@ public class YangModule extends YangNode |
| 379 | /** | 379 | /** |
| 380 | * Set the list of leaf-list in module. | 380 | * Set the list of leaf-list in module. |
| 381 | * | 381 | * |
| 382 | - * @param listOfLeafList the list of leaf-list to set. | 382 | + * @param listOfLeafList the list of leaf-list to set |
| 383 | */ | 383 | */ |
| 384 | private void setListOfLeafList(List<YangLeafList> listOfLeafList) { | 384 | private void setListOfLeafList(List<YangLeafList> listOfLeafList) { |
| 385 | this.listOfLeafList = listOfLeafList; | 385 | this.listOfLeafList = listOfLeafList; |
| ... | @@ -388,7 +388,7 @@ public class YangModule extends YangNode | ... | @@ -388,7 +388,7 @@ public class YangModule extends YangNode |
| 388 | /** | 388 | /** |
| 389 | * Add a leaf-list in module. | 389 | * Add a leaf-list in module. |
| 390 | * | 390 | * |
| 391 | - * @param leafList the leaf-list to be added. | 391 | + * @param leafList the leaf-list to be added |
| 392 | */ | 392 | */ |
| 393 | @Override | 393 | @Override |
| 394 | public void addLeafList(YangLeafList leafList) { | 394 | public void addLeafList(YangLeafList leafList) { |
| ... | @@ -402,7 +402,7 @@ public class YangModule extends YangNode | ... | @@ -402,7 +402,7 @@ public class YangModule extends YangNode |
| 402 | /** | 402 | /** |
| 403 | * Get the name space of module elements. | 403 | * Get the name space of module elements. |
| 404 | * | 404 | * |
| 405 | - * @return the nameSpace. | 405 | + * @return the nameSpace |
| 406 | */ | 406 | */ |
| 407 | public YangNameSpace getNameSpace() { | 407 | public YangNameSpace getNameSpace() { |
| 408 | return nameSpace; | 408 | return nameSpace; |
| ... | @@ -411,7 +411,7 @@ public class YangModule extends YangNode | ... | @@ -411,7 +411,7 @@ public class YangModule extends YangNode |
| 411 | /** | 411 | /** |
| 412 | * Set the name space of module elements. | 412 | * Set the name space of module elements. |
| 413 | * | 413 | * |
| 414 | - * @param nameSpace the nameSpace to set. | 414 | + * @param nameSpace the nameSpace to set |
| 415 | */ | 415 | */ |
| 416 | public void setNameSpace(YangNameSpace nameSpace) { | 416 | public void setNameSpace(YangNameSpace nameSpace) { |
| 417 | this.nameSpace = nameSpace; | 417 | this.nameSpace = nameSpace; |
| ... | @@ -420,7 +420,7 @@ public class YangModule extends YangNode | ... | @@ -420,7 +420,7 @@ public class YangModule extends YangNode |
| 420 | /** | 420 | /** |
| 421 | * Get the modules organization. | 421 | * Get the modules organization. |
| 422 | * | 422 | * |
| 423 | - * @return the organization. | 423 | + * @return the organization |
| 424 | */ | 424 | */ |
| 425 | public String getOrganization() { | 425 | public String getOrganization() { |
| 426 | return organization; | 426 | return organization; |
| ... | @@ -429,7 +429,7 @@ public class YangModule extends YangNode | ... | @@ -429,7 +429,7 @@ public class YangModule extends YangNode |
| 429 | /** | 429 | /** |
| 430 | * Set the modules organization. | 430 | * Set the modules organization. |
| 431 | * | 431 | * |
| 432 | - * @param org the organization to set. | 432 | + * @param org the organization to set |
| 433 | */ | 433 | */ |
| 434 | public void setOrganization(String org) { | 434 | public void setOrganization(String org) { |
| 435 | organization = org; | 435 | organization = org; |
| ... | @@ -447,7 +447,7 @@ public class YangModule extends YangNode | ... | @@ -447,7 +447,7 @@ public class YangModule extends YangNode |
| 447 | /** | 447 | /** |
| 448 | * Set the prefix. | 448 | * Set the prefix. |
| 449 | * | 449 | * |
| 450 | - * @param prefix the prefix to set. | 450 | + * @param prefix the prefix to set |
| 451 | */ | 451 | */ |
| 452 | public void setPrefix(String prefix) { | 452 | public void setPrefix(String prefix) { |
| 453 | this.prefix = prefix; | 453 | this.prefix = prefix; |
| ... | @@ -456,7 +456,7 @@ public class YangModule extends YangNode | ... | @@ -456,7 +456,7 @@ public class YangModule extends YangNode |
| 456 | /** | 456 | /** |
| 457 | * Get the textual reference. | 457 | * Get the textual reference. |
| 458 | * | 458 | * |
| 459 | - * @return the reference. | 459 | + * @return the reference |
| 460 | */ | 460 | */ |
| 461 | @Override | 461 | @Override |
| 462 | public String getReference() { | 462 | public String getReference() { |
| ... | @@ -466,7 +466,7 @@ public class YangModule extends YangNode | ... | @@ -466,7 +466,7 @@ public class YangModule extends YangNode |
| 466 | /** | 466 | /** |
| 467 | * Set the textual reference. | 467 | * Set the textual reference. |
| 468 | * | 468 | * |
| 469 | - * @param reference the reference to set. | 469 | + * @param reference the reference to set |
| 470 | */ | 470 | */ |
| 471 | @Override | 471 | @Override |
| 472 | public void setReference(String reference) { | 472 | public void setReference(String reference) { |
| ... | @@ -476,7 +476,7 @@ public class YangModule extends YangNode | ... | @@ -476,7 +476,7 @@ public class YangModule extends YangNode |
| 476 | /** | 476 | /** |
| 477 | * Get the revision. | 477 | * Get the revision. |
| 478 | * | 478 | * |
| 479 | - * @return the revision. | 479 | + * @return the revision |
| 480 | */ | 480 | */ |
| 481 | public YangRevision getRevision() { | 481 | public YangRevision getRevision() { |
| 482 | return revision; | 482 | return revision; |
| ... | @@ -485,7 +485,7 @@ public class YangModule extends YangNode | ... | @@ -485,7 +485,7 @@ public class YangModule extends YangNode |
| 485 | /** | 485 | /** |
| 486 | * Set the revision. | 486 | * Set the revision. |
| 487 | * | 487 | * |
| 488 | - * @param revision the revision to set. | 488 | + * @param revision the revision to set |
| 489 | */ | 489 | */ |
| 490 | public void setRevision(YangRevision revision) { | 490 | public void setRevision(YangRevision revision) { |
| 491 | this.revision = revision; | 491 | this.revision = revision; |
| ... | @@ -494,7 +494,7 @@ public class YangModule extends YangNode | ... | @@ -494,7 +494,7 @@ public class YangModule extends YangNode |
| 494 | /** | 494 | /** |
| 495 | * Get the version. | 495 | * Get the version. |
| 496 | * | 496 | * |
| 497 | - * @return the version. | 497 | + * @return the version |
| 498 | */ | 498 | */ |
| 499 | public byte getVersion() { | 499 | public byte getVersion() { |
| 500 | return version; | 500 | return version; |
| ... | @@ -503,7 +503,7 @@ public class YangModule extends YangNode | ... | @@ -503,7 +503,7 @@ public class YangModule extends YangNode |
| 503 | /** | 503 | /** |
| 504 | * Set the version. | 504 | * Set the version. |
| 505 | * | 505 | * |
| 506 | - * @param version the version to set. | 506 | + * @param version the version to set |
| 507 | */ | 507 | */ |
| 508 | public void setVersion(byte version) { | 508 | public void setVersion(byte version) { |
| 509 | this.version = version; | 509 | this.version = version; |
| ... | @@ -558,7 +558,7 @@ public class YangModule extends YangNode | ... | @@ -558,7 +558,7 @@ public class YangModule extends YangNode |
| 558 | /** | 558 | /** |
| 559 | * Get the list of nested reference's which required resolution. | 559 | * Get the list of nested reference's which required resolution. |
| 560 | * | 560 | * |
| 561 | - * @return list of nested reference's which required resolution. | 561 | + * @return list of nested reference's which required resolution |
| 562 | */ | 562 | */ |
| 563 | public List<YangNode> getNestedReferenceResoulutionList() { | 563 | public List<YangNode> getNestedReferenceResoulutionList() { |
| 564 | return nestedReferenceResoulutionList; | 564 | return nestedReferenceResoulutionList; |
| ... | @@ -568,7 +568,7 @@ public class YangModule extends YangNode | ... | @@ -568,7 +568,7 @@ public class YangModule extends YangNode |
| 568 | * Set list of nested reference's which requires resolution. | 568 | * Set list of nested reference's which requires resolution. |
| 569 | * | 569 | * |
| 570 | * @param nestedReferenceResoulutionList list of nested reference's which | 570 | * @param nestedReferenceResoulutionList list of nested reference's which |
| 571 | - * requires resolution. | 571 | + * requires resolution |
| 572 | */ | 572 | */ |
| 573 | private void setNestedReferenceResoulutionList(List<YangNode> nestedReferenceResoulutionList) { | 573 | private void setNestedReferenceResoulutionList(List<YangNode> nestedReferenceResoulutionList) { |
| 574 | this.nestedReferenceResoulutionList = nestedReferenceResoulutionList; | 574 | this.nestedReferenceResoulutionList = nestedReferenceResoulutionList; |
| ... | @@ -577,7 +577,7 @@ public class YangModule extends YangNode | ... | @@ -577,7 +577,7 @@ public class YangModule extends YangNode |
| 577 | /** | 577 | /** |
| 578 | * Set list of nested reference's which requires resolution. | 578 | * Set list of nested reference's which requires resolution. |
| 579 | * | 579 | * |
| 580 | - * @param nestedReference nested reference which requires resolution. | 580 | + * @param nestedReference nested reference which requires resolution |
| 581 | */ | 581 | */ |
| 582 | public void addToNestedReferenceResoulutionList(YangNode nestedReference) { | 582 | public void addToNestedReferenceResoulutionList(YangNode nestedReference) { |
| 583 | if (getNestedReferenceResoulutionList() == null) { | 583 | if (getNestedReferenceResoulutionList() == null) { |
| ... | @@ -589,7 +589,7 @@ public class YangModule extends YangNode | ... | @@ -589,7 +589,7 @@ public class YangModule extends YangNode |
| 589 | /** | 589 | /** |
| 590 | * Returns the type of the parsed data. | 590 | * Returns the type of the parsed data. |
| 591 | * | 591 | * |
| 592 | - * @return returns MODULE_DATA. | 592 | + * @return returns MODULE_DATA |
| 593 | */ | 593 | */ |
| 594 | @Override | 594 | @Override |
| 595 | public YangConstructType getYangConstructType() { | 595 | public YangConstructType getYangConstructType() { |
| ... | @@ -625,18 +625,21 @@ public class YangModule extends YangNode | ... | @@ -625,18 +625,21 @@ public class YangModule extends YangNode |
| 625 | /** | 625 | /** |
| 626 | * Generates java code for module. | 626 | * Generates java code for module. |
| 627 | * | 627 | * |
| 628 | - * @throws IOException when fails to generate the source files. | 628 | + * @param codeGenDir code generation directory |
| 629 | + * @throws IOException when fails to generate the source files | ||
| 629 | */ | 630 | */ |
| 630 | @Override | 631 | @Override |
| 631 | - public void generateJavaCodeEntry() throws IOException { | 632 | + public void generateJavaCodeEntry(String codeGenDir) throws IOException { |
| 632 | String modPkg = JavaIdentifierSyntax.getRootPackage(getVersion(), getNameSpace().getUri(), | 633 | String modPkg = JavaIdentifierSyntax.getRootPackage(getVersion(), getNameSpace().getUri(), |
| 633 | getRevision().getRevDate()); | 634 | getRevision().getRevDate()); |
| 634 | 635 | ||
| 636 | + modPkg = JavaIdentifierSyntax.getCamelCase(modPkg); | ||
| 635 | CachedFileHandle handle = null; | 637 | CachedFileHandle handle = null; |
| 636 | try { | 638 | try { |
| 637 | - FileSystemUtil.createPackage(UtilConstants.YANG_GEN_DIR + modPkg, getName()); | 639 | + FileSystemUtil.createPackage(codeGenDir + modPkg, getName()); |
| 638 | handle = FileSystemUtil.createSourceFiles(modPkg, getName(), | 640 | handle = FileSystemUtil.createSourceFiles(modPkg, getName(), |
| 639 | GeneratedFileType.GENERATE_INTERFACE_WITH_BUILDER); | 641 | GeneratedFileType.GENERATE_INTERFACE_WITH_BUILDER); |
| 642 | + handle.setCodeGenFilePath(codeGenDir); | ||
| 640 | } catch (IOException e) { | 643 | } catch (IOException e) { |
| 641 | throw new IOException("Failed to create the source files."); | 644 | throw new IOException("Failed to create the source files."); |
| 642 | } | 645 | } |
| ... | @@ -680,8 +683,8 @@ public class YangModule extends YangNode | ... | @@ -680,8 +683,8 @@ public class YangModule extends YangNode |
| 680 | /** | 683 | /** |
| 681 | * Add a type to resolve the nested references. | 684 | * Add a type to resolve the nested references. |
| 682 | * | 685 | * |
| 683 | - * @param node grouping or typedef node which needs to be resolved. | 686 | + * @param node grouping or typedef node which needs to be resolved |
| 684 | - * @throws DataModelException data model exception. | 687 | + * @throws DataModelException data model exception |
| 685 | */ | 688 | */ |
| 686 | public static void addToResolveList(YangNode node) throws DataModelException { | 689 | public static void addToResolveList(YangNode node) throws DataModelException { |
| 687 | /* get the module node to add maintain the list of nested reference */ | 690 | /* get the module node to add maintain the list of nested reference */ | ... | ... |
| ... | @@ -470,9 +470,11 @@ public class YangSubModule extends YangNode | ... | @@ -470,9 +470,11 @@ public class YangSubModule extends YangNode |
| 470 | 470 | ||
| 471 | /** | 471 | /** |
| 472 | * Generates java code for sub-module. | 472 | * Generates java code for sub-module. |
| 473 | + * | ||
| 474 | + * @param codeGenDir code generation directory. | ||
| 473 | */ | 475 | */ |
| 474 | @Override | 476 | @Override |
| 475 | - public void generateJavaCodeEntry() { | 477 | + public void generateJavaCodeEntry(String codeGenDir) { |
| 476 | // TODO Auto-generated method stub | 478 | // TODO Auto-generated method stub |
| 477 | } | 479 | } |
| 478 | 480 | ... | ... |
| ... | @@ -47,7 +47,7 @@ import org.onosproject.yangutils.utils.YangConstructType; | ... | @@ -47,7 +47,7 @@ import org.onosproject.yangutils.utils.YangConstructType; |
| 47 | /** | 47 | /** |
| 48 | * Maintains the data type information. | 48 | * Maintains the data type information. |
| 49 | * | 49 | * |
| 50 | - * @param <T> YANG data type info. | 50 | + * @param <T> YANG data type info |
| 51 | */ | 51 | */ |
| 52 | public class YangType<T> implements Parsable { | 52 | public class YangType<T> implements Parsable { |
| 53 | 53 | ||
| ... | @@ -57,6 +57,11 @@ public class YangType<T> implements Parsable { | ... | @@ -57,6 +57,11 @@ public class YangType<T> implements Parsable { |
| 57 | private String dataTypeName; | 57 | private String dataTypeName; |
| 58 | 58 | ||
| 59 | /** | 59 | /** |
| 60 | + * Java package in which the Java type is defined. | ||
| 61 | + */ | ||
| 62 | + private String javaPackage; | ||
| 63 | + | ||
| 64 | + /** | ||
| 60 | * YANG data type. | 65 | * YANG data type. |
| 61 | */ | 66 | */ |
| 62 | private YangDataTypes dataType; | 67 | private YangDataTypes dataType; |
| ... | @@ -93,6 +98,24 @@ public class YangType<T> implements Parsable { | ... | @@ -93,6 +98,24 @@ public class YangType<T> implements Parsable { |
| 93 | } | 98 | } |
| 94 | 99 | ||
| 95 | /** | 100 | /** |
| 101 | + * Get the Java package where the type is defined. | ||
| 102 | + * | ||
| 103 | + * @return Java package where the type is defined | ||
| 104 | + */ | ||
| 105 | + public String getJavaPackage() { | ||
| 106 | + return javaPackage; | ||
| 107 | + } | ||
| 108 | + | ||
| 109 | + /** | ||
| 110 | + * Set Java package where the type is defined. | ||
| 111 | + * | ||
| 112 | + * @param javaPackage Java package where the type is defined | ||
| 113 | + */ | ||
| 114 | + public void setJavaPackage(String javaPackage) { | ||
| 115 | + this.javaPackage = javaPackage; | ||
| 116 | + } | ||
| 117 | + | ||
| 118 | + /** | ||
| 96 | * Get the type of data. | 119 | * Get the type of data. |
| 97 | * | 120 | * |
| 98 | * @return the data type | 121 | * @return the data type | ... | ... |
| ... | @@ -15,10 +15,16 @@ | ... | @@ -15,10 +15,16 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.yangutils.datamodel; | 16 | package org.onosproject.yangutils.datamodel; |
| 17 | 17 | ||
| 18 | +import java.io.IOException; | ||
| 19 | + | ||
| 18 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; | 20 | import org.onosproject.yangutils.datamodel.exceptions.DataModelException; |
| 19 | import org.onosproject.yangutils.parser.Parsable; | 21 | import org.onosproject.yangutils.parser.Parsable; |
| 20 | import org.onosproject.yangutils.translator.CachedFileHandle; | 22 | import org.onosproject.yangutils.translator.CachedFileHandle; |
| 23 | +import org.onosproject.yangutils.translator.GeneratedFileType; | ||
| 24 | +import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax; | ||
| 25 | +import org.onosproject.yangutils.utils.UtilConstants; | ||
| 21 | import org.onosproject.yangutils.utils.YangConstructType; | 26 | import org.onosproject.yangutils.utils.YangConstructType; |
| 27 | +import org.onosproject.yangutils.utils.io.impl.FileSystemUtil; | ||
| 22 | 28 | ||
| 23 | /*- | 29 | /*- |
| 24 | * Reference RFC 6020. | 30 | * Reference RFC 6020. |
| ... | @@ -91,6 +97,11 @@ public class YangTypeDef extends YangNode implements YangCommonInfo, Parsable { | ... | @@ -91,6 +97,11 @@ public class YangTypeDef extends YangNode implements YangCommonInfo, Parsable { |
| 91 | private String pkg; | 97 | private String pkg; |
| 92 | 98 | ||
| 93 | /** | 99 | /** |
| 100 | + * Cached Java File Handle. | ||
| 101 | + */ | ||
| 102 | + private CachedFileHandle fileHandle; | ||
| 103 | + | ||
| 104 | + /** | ||
| 94 | * Create a typedef node. | 105 | * Create a typedef node. |
| 95 | */ | 106 | */ |
| 96 | public YangTypeDef() { | 107 | public YangTypeDef() { |
| ... | @@ -298,20 +309,60 @@ public class YangTypeDef extends YangNode implements YangCommonInfo, Parsable { | ... | @@ -298,20 +309,60 @@ public class YangTypeDef extends YangNode implements YangCommonInfo, Parsable { |
| 298 | 309 | ||
| 299 | /** | 310 | /** |
| 300 | * Generate java code snippet corresponding to YANG typedef. | 311 | * Generate java code snippet corresponding to YANG typedef. |
| 312 | + * | ||
| 313 | + * @param codeGenDir code generation directory | ||
| 314 | + * @throws IOException when fails to generate files for typedef | ||
| 301 | */ | 315 | */ |
| 302 | @Override | 316 | @Override |
| 303 | - public void generateJavaCodeEntry() { | 317 | + public void generateJavaCodeEntry(String codeGenDir) throws IOException { |
| 304 | - // TODO Auto-generated method stub | 318 | + |
| 319 | + YangNode parent = getParent(); | ||
| 320 | + String typeDefPkg = JavaIdentifierSyntax.getPackageFromParent(parent.getPackage(), parent.getName()); | ||
| 321 | + | ||
| 322 | + typeDefPkg = JavaIdentifierSyntax.getCamelCase(typeDefPkg).toLowerCase(); | ||
| 323 | + setPackage(typeDefPkg); | ||
| 324 | + | ||
| 325 | + CachedFileHandle handle = null; | ||
| 326 | + try { | ||
| 327 | + FileSystemUtil.createPackage(codeGenDir + getPackage(), parent.getName() + UtilConstants.CHILDREN); | ||
| 328 | + handle = FileSystemUtil.createSourceFiles(getPackage(), getName(), | ||
| 329 | + GeneratedFileType.GENERATE_TYPEDEF_CLASS); | ||
| 330 | + handle.setRelativeFilePath(getPackage().replace(".", "/")); | ||
| 331 | + handle.setCodeGenFilePath(codeGenDir); | ||
| 332 | + } catch (IOException e) { | ||
| 333 | + throw new IOException("Failed to create the source files."); | ||
| 334 | + } | ||
| 335 | + setFileHandle(handle); | ||
| 336 | + addAttributeInfo(); | ||
| 337 | + addAttributeInParent(); | ||
| 338 | + } | ||
| 339 | + | ||
| 340 | + /** | ||
| 341 | + * Adds current node attribute to parent file. | ||
| 342 | + */ | ||
| 343 | + private void addAttributeInParent() { | ||
| 344 | + if (getParent() != null) { | ||
| 345 | + getParent().getFileHandle().addAttributeInfo(null, getName(), false); | ||
| 346 | + } | ||
| 347 | + } | ||
| 305 | 348 | ||
| 349 | + /** | ||
| 350 | + * Adds attribute to file handle. | ||
| 351 | + */ | ||
| 352 | + private void addAttributeInfo() { | ||
| 353 | + getFileHandle().addAttributeInfo(getDerivedType().getDataTypeExtendedInfo().getBaseType(), | ||
| 354 | + JavaIdentifierSyntax.getCamelCase(getName()), false); | ||
| 306 | } | 355 | } |
| 307 | 356 | ||
| 308 | /** | 357 | /** |
| 309 | * Free resource used for code generation of YANG typedef. | 358 | * Free resource used for code generation of YANG typedef. |
| 359 | + * | ||
| 360 | + * @throws IOException when fails to generate files | ||
| 310 | */ | 361 | */ |
| 311 | @Override | 362 | @Override |
| 312 | - public void generateJavaCodeExit() { | 363 | + public void generateJavaCodeExit() throws IOException { |
| 313 | - // TODO Auto-generated method stub | 364 | + getFileHandle().close(); |
| 314 | - | 365 | + return; |
| 315 | } | 366 | } |
| 316 | 367 | ||
| 317 | /** | 368 | /** |
| ... | @@ -342,18 +393,16 @@ public class YangTypeDef extends YangNode implements YangCommonInfo, Parsable { | ... | @@ -342,18 +393,16 @@ public class YangTypeDef extends YangNode implements YangCommonInfo, Parsable { |
| 342 | */ | 393 | */ |
| 343 | @Override | 394 | @Override |
| 344 | public CachedFileHandle getFileHandle() { | 395 | public CachedFileHandle getFileHandle() { |
| 345 | - // TODO Auto-generated method stub | 396 | + return fileHandle; |
| 346 | - return null; | ||
| 347 | } | 397 | } |
| 348 | 398 | ||
| 349 | /** | 399 | /** |
| 350 | * Set the file handle to be used used for code generation. | 400 | * Set the file handle to be used used for code generation. |
| 351 | * | 401 | * |
| 352 | - * @param fileHandle cached file handle | 402 | + * @param handle cached file handle |
| 353 | */ | 403 | */ |
| 354 | @Override | 404 | @Override |
| 355 | - public void setFileHandle(CachedFileHandle fileHandle) { | 405 | + public void setFileHandle(CachedFileHandle handle) { |
| 356 | - // TODO Auto-generated method stub | 406 | + fileHandle = handle; |
| 357 | - | ||
| 358 | } | 407 | } |
| 359 | } | 408 | } | ... | ... |
| ... | @@ -213,54 +213,36 @@ public class YangUses extends YangNode implements YangCommonInfo, Parsable { | ... | @@ -213,54 +213,36 @@ public class YangUses extends YangNode implements YangCommonInfo, Parsable { |
| 213 | // TODO auto-generated method stub, to be implemented by parser | 213 | // TODO auto-generated method stub, to be implemented by parser |
| 214 | } | 214 | } |
| 215 | 215 | ||
| 216 | - /* (non-Javadoc) | ||
| 217 | - * @see org.onosproject.yangutils.datamodel.YangNode#getName() | ||
| 218 | - */ | ||
| 219 | @Override | 216 | @Override |
| 220 | public String getName() { | 217 | public String getName() { |
| 221 | // TODO Auto-generated method stub | 218 | // TODO Auto-generated method stub |
| 222 | return null; | 219 | return null; |
| 223 | } | 220 | } |
| 224 | 221 | ||
| 225 | - /* (non-Javadoc) | ||
| 226 | - * @see org.onosproject.yangutils.datamodel.YangNode#setName(java.lang.String) | ||
| 227 | - */ | ||
| 228 | @Override | 222 | @Override |
| 229 | public void setName(String name) { | 223 | public void setName(String name) { |
| 230 | // TODO Auto-generated method stub | 224 | // TODO Auto-generated method stub |
| 231 | 225 | ||
| 232 | } | 226 | } |
| 233 | 227 | ||
| 234 | - /* (non-Javadoc) | ||
| 235 | - * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry() | ||
| 236 | - */ | ||
| 237 | @Override | 228 | @Override |
| 238 | - public void generateJavaCodeEntry() { | 229 | + public void generateJavaCodeEntry(String codeGenDir) { |
| 239 | // TODO Auto-generated method stub | 230 | // TODO Auto-generated method stub |
| 240 | 231 | ||
| 241 | } | 232 | } |
| 242 | 233 | ||
| 243 | - /* (non-Javadoc) | ||
| 244 | - * @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit() | ||
| 245 | - */ | ||
| 246 | @Override | 234 | @Override |
| 247 | public void generateJavaCodeExit() { | 235 | public void generateJavaCodeExit() { |
| 248 | // TODO Auto-generated method stub | 236 | // TODO Auto-generated method stub |
| 249 | 237 | ||
| 250 | } | 238 | } |
| 251 | 239 | ||
| 252 | - /* (non-Javadoc) | ||
| 253 | - * @see org.onosproject.yangutils.datamodel.YangNode#getPackage() | ||
| 254 | - */ | ||
| 255 | @Override | 240 | @Override |
| 256 | public String getPackage() { | 241 | public String getPackage() { |
| 257 | // TODO Auto-generated method stub | 242 | // TODO Auto-generated method stub |
| 258 | return null; | 243 | return null; |
| 259 | } | 244 | } |
| 260 | 245 | ||
| 261 | - /* (non-Javadoc) | ||
| 262 | - * @see org.onosproject.yangutils.datamodel.YangNode#setPackage(java.lang.String) | ||
| 263 | - */ | ||
| 264 | @Override | 246 | @Override |
| 265 | public void setPackage(String pkg) { | 247 | public void setPackage(String pkg) { |
| 266 | // TODO Auto-generated method stub | 248 | // TODO Auto-generated method stub | ... | ... |
| ... | @@ -43,7 +43,7 @@ import org.sonatype.plexus.build.incremental.BuildContext; | ... | @@ -43,7 +43,7 @@ import org.sonatype.plexus.build.incremental.BuildContext; |
| 43 | 43 | ||
| 44 | /** | 44 | /** |
| 45 | * ONOS YANG utility maven plugin. Goal of plugin is yang2java Execution phase | 45 | * ONOS YANG utility maven plugin. Goal of plugin is yang2java Execution phase |
| 46 | - * in generate-sources requiresDependencyResolution at compile time | 46 | + * in generate-sources requiresDependencyResolution at compile time. |
| 47 | */ | 47 | */ |
| 48 | @Mojo(name = "yang2java", defaultPhase = LifecyclePhase.GENERATE_SOURCES, | 48 | @Mojo(name = "yang2java", defaultPhase = LifecyclePhase.GENERATE_SOURCES, |
| 49 | requiresDependencyResolution = ResolutionScope.COMPILE, requiresProject = true) | 49 | requiresDependencyResolution = ResolutionScope.COMPILE, requiresProject = true) |
| ... | @@ -56,6 +56,12 @@ public class YangUtilManager extends AbstractMojo { | ... | @@ -56,6 +56,12 @@ public class YangUtilManager extends AbstractMojo { |
| 56 | private String yangFilesDir; | 56 | private String yangFilesDir; |
| 57 | 57 | ||
| 58 | /** | 58 | /** |
| 59 | + * Base directory for project. | ||
| 60 | + */ | ||
| 61 | + @Parameter(property = "basedir", defaultValue = "${basedir}") | ||
| 62 | + private String baseDir; | ||
| 63 | + | ||
| 64 | + /** | ||
| 59 | * Output directory. | 65 | * Output directory. |
| 60 | */ | 66 | */ |
| 61 | @Parameter(property = "project.build.outputDirectory", required = true, defaultValue = "target/classes") | 67 | @Parameter(property = "project.build.outputDirectory", required = true, defaultValue = "target/classes") |
| ... | @@ -74,13 +80,13 @@ public class YangUtilManager extends AbstractMojo { | ... | @@ -74,13 +80,13 @@ public class YangUtilManager extends AbstractMojo { |
| 74 | private BuildContext context; | 80 | private BuildContext context; |
| 75 | 81 | ||
| 76 | private YangUtilsParser yangUtilsParser = new YangUtilsParserManager(); | 82 | private YangUtilsParser yangUtilsParser = new YangUtilsParserManager(); |
| 77 | - private String baseDir; | ||
| 78 | private String searchDir; | 83 | private String searchDir; |
| 84 | + private String codeGenDir; | ||
| 79 | 85 | ||
| 80 | /** | 86 | /** |
| 81 | * Set current project. | 87 | * Set current project. |
| 82 | * | 88 | * |
| 83 | - * @param curProject maven project. | 89 | + * @param curProject maven project |
| 84 | */ | 90 | */ |
| 85 | public void setCurrentProject(final MavenProject curProject) { | 91 | public void setCurrentProject(final MavenProject curProject) { |
| 86 | project = curProject; | 92 | project = curProject; |
| ... | @@ -92,7 +98,6 @@ public class YangUtilManager extends AbstractMojo { | ... | @@ -92,7 +98,6 @@ public class YangUtilManager extends AbstractMojo { |
| 92 | try { | 98 | try { |
| 93 | 99 | ||
| 94 | CopyrightHeader.parseCopyrightHeader(); | 100 | CopyrightHeader.parseCopyrightHeader(); |
| 95 | - baseDir = project.getBasedir().toString(); | ||
| 96 | 101 | ||
| 97 | /** | 102 | /** |
| 98 | * For deleting the generated code in previous build. | 103 | * For deleting the generated code in previous build. |
| ... | @@ -100,6 +105,7 @@ public class YangUtilManager extends AbstractMojo { | ... | @@ -100,6 +105,7 @@ public class YangUtilManager extends AbstractMojo { |
| 100 | YangIoUtils.clean(baseDir); | 105 | YangIoUtils.clean(baseDir); |
| 101 | 106 | ||
| 102 | searchDir = baseDir + File.separator + yangFilesDir; | 107 | searchDir = baseDir + File.separator + yangFilesDir; |
| 108 | + codeGenDir = baseDir + File.separator + UtilConstants.YANG_GEN_DIR; | ||
| 103 | 109 | ||
| 104 | List<String> yangFiles = YangFileScanner.getYangFiles(searchDir); | 110 | List<String> yangFiles = YangFileScanner.getYangFiles(searchDir); |
| 105 | Iterator<String> yangFileIterator = yangFiles.iterator(); | 111 | Iterator<String> yangFileIterator = yangFiles.iterator(); |
| ... | @@ -107,7 +113,7 @@ public class YangUtilManager extends AbstractMojo { | ... | @@ -107,7 +113,7 @@ public class YangUtilManager extends AbstractMojo { |
| 107 | String yangFile = yangFileIterator.next(); | 113 | String yangFile = yangFileIterator.next(); |
| 108 | try { | 114 | try { |
| 109 | YangNode yangNode = yangUtilsParser.getDataModel(yangFile); | 115 | YangNode yangNode = yangUtilsParser.getDataModel(yangFile); |
| 110 | - JavaCodeGenerator.generateJavaCode(yangNode); | 116 | + JavaCodeGenerator.generateJavaCode(yangNode, codeGenDir); |
| 111 | } catch (ParserException e) { | 117 | } catch (ParserException e) { |
| 112 | String logInfo = "Error in file: " + e.getFileName(); | 118 | String logInfo = "Error in file: " + e.getFileName(); |
| 113 | if (e.getLineNumber() != 0) { | 119 | if (e.getLineNumber() != 0) { | ... | ... |
| ... | @@ -16,9 +16,11 @@ | ... | @@ -16,9 +16,11 @@ |
| 16 | 16 | ||
| 17 | package org.onosproject.yangutils.translator; | 17 | package org.onosproject.yangutils.translator; |
| 18 | 18 | ||
| 19 | +import java.io.FileNotFoundException; | ||
| 19 | import java.io.IOException; | 20 | import java.io.IOException; |
| 20 | 21 | ||
| 21 | import org.onosproject.yangutils.datamodel.YangType; | 22 | import org.onosproject.yangutils.datamodel.YangType; |
| 23 | +import org.onosproject.yangutils.translator.tojava.utils.TempDataStoreTypes; | ||
| 22 | 24 | ||
| 23 | /** | 25 | /** |
| 24 | * Cached java file handle, which supports the addition of member attributes and | 26 | * Cached java file handle, which supports the addition of member attributes and |
| ... | @@ -56,4 +58,43 @@ public interface CachedFileHandle { | ... | @@ -56,4 +58,43 @@ public interface CachedFileHandle { |
| 56 | * @return directory package path for code generation | 58 | * @return directory package path for code generation |
| 57 | */ | 59 | */ |
| 58 | String getRelativeFilePath(); | 60 | String getRelativeFilePath(); |
| 61 | + | ||
| 62 | + /** | ||
| 63 | + * Gets base directory package path for code generation. | ||
| 64 | + * | ||
| 65 | + * @return directory package path for code generation | ||
| 66 | + */ | ||
| 67 | + String getCodeGenFilePath(); | ||
| 68 | + | ||
| 69 | + /** | ||
| 70 | + * Sets base directory package path for code generation. | ||
| 71 | + * | ||
| 72 | + * @param path base directory path | ||
| 73 | + */ | ||
| 74 | + void setCodeGenFilePath(String path); | ||
| 75 | + | ||
| 76 | + /** | ||
| 77 | + * Writes specific info to a Temp file. | ||
| 78 | + * | ||
| 79 | + * @param data data to be stored | ||
| 80 | + * @param type type of Temp data store | ||
| 81 | + * @param className class name | ||
| 82 | + * @param genDir generated directory | ||
| 83 | + * @throws IOException when fails to create a Temp data file | ||
| 84 | + */ | ||
| 85 | + void setTempData(String data, TempDataStoreTypes type, String className, String genDir) throws IOException; | ||
| 86 | + | ||
| 87 | + /** | ||
| 88 | + * Get the Temp data. | ||
| 89 | + * | ||
| 90 | + * @param type type of Temp data store | ||
| 91 | + * @param className name of the class | ||
| 92 | + * @param genDir generated directory | ||
| 93 | + * @return temp data | ||
| 94 | + * @throws IOException when fails to read from the file | ||
| 95 | + * @throws ClassNotFoundException when class is missing | ||
| 96 | + * @throws FileNotFoundException when file is missing | ||
| 97 | + */ | ||
| 98 | + String getTempData(TempDataStoreTypes type, String className, String genDir) | ||
| 99 | + throws IOException, FileNotFoundException, ClassNotFoundException; | ||
| 59 | } | 100 | } | ... | ... |
| ... | @@ -26,9 +26,10 @@ public interface CodeGenerator { | ... | @@ -26,9 +26,10 @@ public interface CodeGenerator { |
| 26 | /** | 26 | /** |
| 27 | * Traverse the schema of application and generate corresponding code. | 27 | * Traverse the schema of application and generate corresponding code. |
| 28 | * | 28 | * |
| 29 | + * @param codeGenDir code generation directory | ||
| 29 | * @throws IOException when fails to translate the data model tree | 30 | * @throws IOException when fails to translate the data model tree |
| 30 | */ | 31 | */ |
| 31 | - void generateJavaCodeEntry() throws IOException; | 32 | + void generateJavaCodeEntry(String codeGenDir) throws IOException; |
| 32 | 33 | ||
| 33 | /** | 34 | /** |
| 34 | * Traverse the schema of application and generate corresponding code. | 35 | * Traverse the schema of application and generate corresponding code. | ... | ... |
| ... | @@ -41,7 +41,7 @@ public class AttributeInfo { | ... | @@ -41,7 +41,7 @@ public class AttributeInfo { |
| 41 | /** | 41 | /** |
| 42 | * If the added attribute has to be accessed in a fully qualified manner. | 42 | * If the added attribute has to be accessed in a fully qualified manner. |
| 43 | */ | 43 | */ |
| 44 | - private boolean isQualifiedName; | 44 | + private boolean isQualifiedName = false; |
| 45 | 45 | ||
| 46 | /** | 46 | /** |
| 47 | * The class info will be used to set the attribute type and package info | 47 | * The class info will be used to set the attribute type and package info | ... | ... |
| ... | @@ -16,21 +16,26 @@ | ... | @@ -16,21 +16,26 @@ |
| 16 | 16 | ||
| 17 | package org.onosproject.yangutils.translator.tojava; | 17 | package org.onosproject.yangutils.translator.tojava; |
| 18 | 18 | ||
| 19 | +import java.io.BufferedReader; | ||
| 19 | import java.io.File; | 20 | import java.io.File; |
| 21 | +import java.io.FileNotFoundException; | ||
| 22 | +import java.io.FileReader; | ||
| 20 | import java.io.IOException; | 23 | import java.io.IOException; |
| 24 | +import java.util.ArrayList; | ||
| 21 | import java.util.LinkedList; | 25 | import java.util.LinkedList; |
| 22 | import java.util.List; | 26 | import java.util.List; |
| 23 | import java.util.SortedSet; | 27 | import java.util.SortedSet; |
| 24 | import java.util.TreeSet; | 28 | import java.util.TreeSet; |
| 25 | 29 | ||
| 26 | import org.onosproject.yangutils.datamodel.YangType; | 30 | import org.onosproject.yangutils.datamodel.YangType; |
| 27 | -import org.onosproject.yangutils.datamodel.YangTypeDef; | ||
| 28 | import org.onosproject.yangutils.translator.CachedFileHandle; | 31 | import org.onosproject.yangutils.translator.CachedFileHandle; |
| 29 | import org.onosproject.yangutils.translator.GeneratedFileType; | 32 | import org.onosproject.yangutils.translator.GeneratedFileType; |
| 30 | import org.onosproject.yangutils.translator.tojava.utils.AttributesJavaDataType; | 33 | import org.onosproject.yangutils.translator.tojava.utils.AttributesJavaDataType; |
| 31 | import org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator; | 34 | import org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator; |
| 32 | import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax; | 35 | import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax; |
| 36 | +import org.onosproject.yangutils.translator.tojava.utils.TempDataStoreTypes; | ||
| 33 | import org.onosproject.yangutils.utils.UtilConstants; | 37 | import org.onosproject.yangutils.utils.UtilConstants; |
| 38 | +import org.onosproject.yangutils.utils.io.impl.FileSystemUtil; | ||
| 34 | 39 | ||
| 35 | /** | 40 | /** |
| 36 | * Maintain the information about the java file to be generated. | 41 | * Maintain the information about the java file to be generated. |
| ... | @@ -40,6 +45,17 @@ public class CachedJavaFileHandle implements CachedFileHandle { | ... | @@ -40,6 +45,17 @@ public class CachedJavaFileHandle implements CachedFileHandle { |
| 40 | private static final int MAX_CACHABLE_ATTR = 64; | 45 | private static final int MAX_CACHABLE_ATTR = 64; |
| 41 | private static final String JAVA_FILE_EXTENSION = ".java"; | 46 | private static final String JAVA_FILE_EXTENSION = ".java"; |
| 42 | private static final String TEMP_FILE_EXTENSION = ".tmp"; | 47 | private static final String TEMP_FILE_EXTENSION = ".tmp"; |
| 48 | + private static final String GETTER_METHOD_FILE_NAME = "GetterMethod"; | ||
| 49 | + private static final String SETTER_METHOD_FILE_NAME = "SetterMethod"; | ||
| 50 | + private static final String GETTER_METHOD_IMPL_FILE_NAME = "GetterMethodImpl"; | ||
| 51 | + private static final String SETTER_METHOD_IMPL_FILE_NAME = "SetterMethodImpl"; | ||
| 52 | + private static final String CONSTRUCTOR_FILE_NAME = "Constructor"; | ||
| 53 | + private static final String ATTRIBUTE_FILE_NAME = "Attributes"; | ||
| 54 | + private static final String TO_STRING_METHOD_FILE_NAME = "ToString"; | ||
| 55 | + private static final String HASH_CODE_METHOD_FILE_NAME = "HashCode"; | ||
| 56 | + private static final String EQUALS_METHOD_FILE_NAME = "Equals"; | ||
| 57 | + private static final String TYPE_DEF_FILE_NAME = "TypeDef"; | ||
| 58 | + private static final String TEMP_FOLDER_NAME_SUFIX = "-Temp"; | ||
| 43 | 59 | ||
| 44 | /** | 60 | /** |
| 45 | * The type(s) of java source file(s) to be generated when the cached file | 61 | * The type(s) of java source file(s) to be generated when the cached file |
| ... | @@ -69,9 +85,9 @@ public class CachedJavaFileHandle implements CachedFileHandle { | ... | @@ -69,9 +85,9 @@ public class CachedJavaFileHandle implements CachedFileHandle { |
| 69 | private String relativeFilePath; | 85 | private String relativeFilePath; |
| 70 | 86 | ||
| 71 | /** | 87 | /** |
| 72 | - * Typedef Info. | 88 | + * File generation base directory path. |
| 73 | */ | 89 | */ |
| 74 | - private YangTypeDef typedefInfo; | 90 | + private String codeGenDirFilePath; |
| 75 | 91 | ||
| 76 | /** | 92 | /** |
| 77 | * Prevent invoking default constructor. | 93 | * Prevent invoking default constructor. |
| ... | @@ -185,33 +201,34 @@ public class CachedJavaFileHandle implements CachedFileHandle { | ... | @@ -185,33 +201,34 @@ public class CachedJavaFileHandle implements CachedFileHandle { |
| 185 | attributeList = attrList; | 201 | attributeList = attrList; |
| 186 | } | 202 | } |
| 187 | 203 | ||
| 188 | - /** | ||
| 189 | - * Set the package relative path. | ||
| 190 | - * | ||
| 191 | - * @param path package relative path | ||
| 192 | - */ | ||
| 193 | @Override | 204 | @Override |
| 194 | public void setRelativeFilePath(String path) { | 205 | public void setRelativeFilePath(String path) { |
| 195 | relativeFilePath = path; | 206 | relativeFilePath = path; |
| 196 | } | 207 | } |
| 197 | 208 | ||
| 198 | - /** | ||
| 199 | - * Get the package relative path. | ||
| 200 | - * | ||
| 201 | - * @return package relative path | ||
| 202 | - */ | ||
| 203 | @Override | 209 | @Override |
| 204 | public String getRelativeFilePath() { | 210 | public String getRelativeFilePath() { |
| 205 | return relativeFilePath; | 211 | return relativeFilePath; |
| 206 | } | 212 | } |
| 207 | 213 | ||
| 214 | + @Override | ||
| 215 | + public String getCodeGenFilePath() { | ||
| 216 | + return codeGenDirFilePath; | ||
| 217 | + } | ||
| 218 | + | ||
| 219 | + @Override | ||
| 220 | + public void setCodeGenFilePath(String path) { | ||
| 221 | + codeGenDirFilePath = path; | ||
| 222 | + } | ||
| 223 | + | ||
| 208 | /** | 224 | /** |
| 209 | * Flush the cached attribute list to the corresponding temporary file. | 225 | * Flush the cached attribute list to the corresponding temporary file. |
| 210 | */ | 226 | */ |
| 211 | private void flushCacheAttrToTempFile() { | 227 | private void flushCacheAttrToTempFile() { |
| 212 | 228 | ||
| 213 | for (AttributeInfo attr : getCachedAttributeList()) { | 229 | for (AttributeInfo attr : getCachedAttributeList()) { |
| 214 | - JavaFileGenerator.parseAttributeInfo(attr, getGeneratedFileTypes(), getYangName()); | 230 | + JavaFileGenerator.parseAttributeInfo(attr, getGeneratedFileTypes(), getYangName(), getCodeGenFilePath() + |
| 231 | + getRelativeFilePath().replace(UtilConstants.PERIOD, UtilConstants.SLASH), this); | ||
| 215 | } | 232 | } |
| 216 | 233 | ||
| 217 | /* | 234 | /* |
| ... | @@ -220,14 +237,6 @@ public class CachedJavaFileHandle implements CachedFileHandle { | ... | @@ -220,14 +237,6 @@ public class CachedJavaFileHandle implements CachedFileHandle { |
| 220 | getCachedAttributeList().clear(); | 237 | getCachedAttributeList().clear(); |
| 221 | } | 238 | } |
| 222 | 239 | ||
| 223 | - /** | ||
| 224 | - * Add a new attribute to the file(s). | ||
| 225 | - * | ||
| 226 | - * @param attrType data type of the added attribute | ||
| 227 | - * @param name name of the attribute | ||
| 228 | - * @param isListAttr if the current added attribute needs to be maintained | ||
| 229 | - * in a list | ||
| 230 | - */ | ||
| 231 | @Override | 240 | @Override |
| 232 | public void addAttributeInfo(YangType<?> attrType, String name, boolean isListAttr) { | 241 | public void addAttributeInfo(YangType<?> attrType, String name, boolean isListAttr) { |
| 233 | /* YANG name is mapped to java name */ | 242 | /* YANG name is mapped to java name */ |
| ... | @@ -256,16 +265,29 @@ public class CachedJavaFileHandle implements CachedFileHandle { | ... | @@ -256,16 +265,29 @@ public class CachedJavaFileHandle implements CachedFileHandle { |
| 256 | 265 | ||
| 257 | } else { | 266 | } else { |
| 258 | importInfo.setClassInfo(JavaIdentifierSyntax.getCaptialCase(name)); | 267 | importInfo.setClassInfo(JavaIdentifierSyntax.getCaptialCase(name)); |
| 259 | - | ||
| 260 | importInfo.setPkgInfo(getRelativeFilePath().replace('/', '.') | 268 | importInfo.setPkgInfo(getRelativeFilePath().replace('/', '.') |
| 261 | - + "." + getYangName()); | 269 | + + "." + getYangName().toLowerCase()); |
| 262 | isImport = true; | 270 | isImport = true; |
| 263 | } | 271 | } |
| 264 | 272 | ||
| 265 | newAttr.setQualifiedName(false); | 273 | newAttr.setQualifiedName(false); |
| 266 | if (isImport) { | 274 | if (isImport) { |
| 267 | - boolean isNewImport = addImportInfo(importInfo); | 275 | + addImportInfo(importInfo); |
| 268 | - if (!isNewImport) { | 276 | + } |
| 277 | + | ||
| 278 | + if (isListAttr) { | ||
| 279 | + ImportInfo listImportInfo = new ImportInfo(); | ||
| 280 | + listImportInfo.setPkgInfo(UtilConstants.COLLECTION_IMPORTS); | ||
| 281 | + listImportInfo.setClassInfo(UtilConstants.LIST); | ||
| 282 | + addImportInfo(listImportInfo); | ||
| 283 | + } | ||
| 284 | + | ||
| 285 | + /** | ||
| 286 | + * If two classes with different packages have same class info for import than use qualified name. | ||
| 287 | + */ | ||
| 288 | + for (ImportInfo imports : getImportSet()) { | ||
| 289 | + if (imports.getClassInfo().equals(importInfo.getClassInfo()) | ||
| 290 | + && !imports.getPkgInfo().equals(importInfo.getPkgInfo())) { | ||
| 269 | newAttr.setQualifiedName(true); | 291 | newAttr.setQualifiedName(true); |
| 270 | } | 292 | } |
| 271 | } | 293 | } |
| ... | @@ -280,9 +302,6 @@ public class CachedJavaFileHandle implements CachedFileHandle { | ... | @@ -280,9 +302,6 @@ public class CachedJavaFileHandle implements CachedFileHandle { |
| 280 | getCachedAttributeList().add(newAttr); | 302 | getCachedAttributeList().add(newAttr); |
| 281 | } | 303 | } |
| 282 | 304 | ||
| 283 | - /** | ||
| 284 | - * Flushes the cached contents to the target file, frees used resources. | ||
| 285 | - */ | ||
| 286 | @Override | 305 | @Override |
| 287 | public void close() throws IOException { | 306 | public void close() throws IOException { |
| 288 | 307 | ||
| ... | @@ -298,17 +317,18 @@ public class CachedJavaFileHandle implements CachedFileHandle { | ... | @@ -298,17 +317,18 @@ public class CachedJavaFileHandle implements CachedFileHandle { |
| 298 | * JavaCodeSnippetGen.getFileHeaderComment | 317 | * JavaCodeSnippetGen.getFileHeaderComment |
| 299 | */ | 318 | */ |
| 300 | 319 | ||
| 301 | - List<String> imports = new LinkedList<>(); | 320 | + List<String> imports = new ArrayList<>(); |
| 302 | String importString; | 321 | String importString; |
| 303 | 322 | ||
| 304 | - for (ImportInfo importInfo : getImportSet()) { | 323 | + for (ImportInfo importInfo : new ArrayList<ImportInfo>(getImportSet())) { |
| 305 | - importString = ""; | 324 | + importString = UtilConstants.IMPORT; |
| 306 | if (importInfo.getPkgInfo() != null) { | 325 | if (importInfo.getPkgInfo() != null) { |
| 307 | importString = importString + importInfo.getPkgInfo() + "."; | 326 | importString = importString + importInfo.getPkgInfo() + "."; |
| 308 | } | 327 | } |
| 309 | - importString = importString + importInfo.getClassInfo(); | 328 | + importString = importString + importInfo.getClassInfo() + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE; |
| 310 | imports.add(importString); | 329 | imports.add(importString); |
| 311 | } | 330 | } |
| 331 | + java.util.Collections.sort(imports); | ||
| 312 | 332 | ||
| 313 | /** | 333 | /** |
| 314 | * Start generation of files. | 334 | * Start generation of files. |
| ... | @@ -320,25 +340,28 @@ public class CachedJavaFileHandle implements CachedFileHandle { | ... | @@ -320,25 +340,28 @@ public class CachedJavaFileHandle implements CachedFileHandle { |
| 320 | * Create interface file. | 340 | * Create interface file. |
| 321 | */ | 341 | */ |
| 322 | String interfaceFileName = className; | 342 | String interfaceFileName = className; |
| 323 | - File interfaceFile = JavaFileGenerator.getFileObject(path, interfaceFileName, JAVA_FILE_EXTENSION); | 343 | + File interfaceFile = JavaFileGenerator.getFileObject(path, interfaceFileName, JAVA_FILE_EXTENSION, this); |
| 324 | interfaceFile = JavaFileGenerator.generateInterfaceFile(interfaceFile, className, imports, | 344 | interfaceFile = JavaFileGenerator.generateInterfaceFile(interfaceFile, className, imports, |
| 325 | - getCachedAttributeList(), path.replace('/', '.')); | 345 | + getCachedAttributeList(), path.replace('/', '.'), this); |
| 326 | - | ||
| 327 | /** | 346 | /** |
| 328 | * Create temp builder interface file. | 347 | * Create temp builder interface file. |
| 329 | */ | 348 | */ |
| 330 | String builderInterfaceFileName = className + UtilConstants.BUILDER + UtilConstants.INTERFACE; | 349 | String builderInterfaceFileName = className + UtilConstants.BUILDER + UtilConstants.INTERFACE; |
| 331 | File builderInterfaceFile = JavaFileGenerator.getFileObject(path, builderInterfaceFileName, | 350 | File builderInterfaceFile = JavaFileGenerator.getFileObject(path, builderInterfaceFileName, |
| 332 | - TEMP_FILE_EXTENSION); | 351 | + TEMP_FILE_EXTENSION, this); |
| 333 | builderInterfaceFile = JavaFileGenerator.generateBuilderInterfaceFile(builderInterfaceFile, className, | 352 | builderInterfaceFile = JavaFileGenerator.generateBuilderInterfaceFile(builderInterfaceFile, className, |
| 334 | - path.replace('/', '.'), getCachedAttributeList()); | 353 | + path.replace('/', '.'), getCachedAttributeList(), this); |
| 335 | - | ||
| 336 | /** | 354 | /** |
| 337 | * Append builder interface file to interface file and close it. | 355 | * Append builder interface file to interface file and close it. |
| 338 | */ | 356 | */ |
| 339 | JavaFileGenerator.appendFileContents(builderInterfaceFile, interfaceFile); | 357 | JavaFileGenerator.appendFileContents(builderInterfaceFile, interfaceFile); |
| 340 | JavaFileGenerator.insert(interfaceFile, | 358 | JavaFileGenerator.insert(interfaceFile, |
| 341 | JavaFileGenerator.closeFile(GeneratedFileType.INTERFACE_MASK, interfaceFileName)); | 359 | JavaFileGenerator.closeFile(GeneratedFileType.INTERFACE_MASK, interfaceFileName)); |
| 360 | + /** | ||
| 361 | + * Close file handle for interface files. | ||
| 362 | + */ | ||
| 363 | + JavaFileGenerator.closeFileHandles(builderInterfaceFile); | ||
| 364 | + JavaFileGenerator.closeFileHandles(interfaceFile); | ||
| 342 | 365 | ||
| 343 | /** | 366 | /** |
| 344 | * Remove temp files. | 367 | * Remove temp files. |
| ... | @@ -346,6 +369,10 @@ public class CachedJavaFileHandle implements CachedFileHandle { | ... | @@ -346,6 +369,10 @@ public class CachedJavaFileHandle implements CachedFileHandle { |
| 346 | JavaFileGenerator.clean(builderInterfaceFile); | 369 | JavaFileGenerator.clean(builderInterfaceFile); |
| 347 | } | 370 | } |
| 348 | 371 | ||
| 372 | + imports.add(UtilConstants.MORE_OBJECT_IMPORT); | ||
| 373 | + imports.add(UtilConstants.JAVA_UTIL_OBJECTS_IMPORT); | ||
| 374 | + java.util.Collections.sort(imports); | ||
| 375 | + | ||
| 349 | if ((fileType & GeneratedFileType.BUILDER_CLASS_MASK) != 0 | 376 | if ((fileType & GeneratedFileType.BUILDER_CLASS_MASK) != 0 |
| 350 | || fileType == GeneratedFileType.GENERATE_INTERFACE_WITH_BUILDER) { | 377 | || fileType == GeneratedFileType.GENERATE_INTERFACE_WITH_BUILDER) { |
| 351 | 378 | ||
| ... | @@ -353,19 +380,17 @@ public class CachedJavaFileHandle implements CachedFileHandle { | ... | @@ -353,19 +380,17 @@ public class CachedJavaFileHandle implements CachedFileHandle { |
| 353 | * Create builder class file. | 380 | * Create builder class file. |
| 354 | */ | 381 | */ |
| 355 | String builderFileName = className + UtilConstants.BUILDER; | 382 | String builderFileName = className + UtilConstants.BUILDER; |
| 356 | - File builderFile = JavaFileGenerator.getFileObject(path, builderFileName, JAVA_FILE_EXTENSION); | 383 | + File builderFile = JavaFileGenerator.getFileObject(path, builderFileName, JAVA_FILE_EXTENSION, this); |
| 357 | builderFile = JavaFileGenerator.generateBuilderClassFile(builderFile, className, imports, | 384 | builderFile = JavaFileGenerator.generateBuilderClassFile(builderFile, className, imports, |
| 358 | - path.replace('/', '.'), getCachedAttributeList()); | 385 | + path.replace('/', '.'), getCachedAttributeList(), this); |
| 359 | - | ||
| 360 | /** | 386 | /** |
| 361 | * Create temp impl class file. | 387 | * Create temp impl class file. |
| 362 | */ | 388 | */ |
| 363 | 389 | ||
| 364 | String implFileName = className + UtilConstants.IMPL; | 390 | String implFileName = className + UtilConstants.IMPL; |
| 365 | - File implTempFile = JavaFileGenerator.getFileObject(path, implFileName, TEMP_FILE_EXTENSION); | 391 | + File implTempFile = JavaFileGenerator.getFileObject(path, implFileName, TEMP_FILE_EXTENSION, this); |
| 366 | implTempFile = JavaFileGenerator.generateImplClassFile(implTempFile, className, | 392 | implTempFile = JavaFileGenerator.generateImplClassFile(implTempFile, className, |
| 367 | - path.replace('/', '.'), getCachedAttributeList()); | 393 | + path.replace('/', '.'), getCachedAttributeList(), this); |
| 368 | - | ||
| 369 | /** | 394 | /** |
| 370 | * Append impl class to builder class and close it. | 395 | * Append impl class to builder class and close it. |
| 371 | */ | 396 | */ |
| ... | @@ -374,17 +399,210 @@ public class CachedJavaFileHandle implements CachedFileHandle { | ... | @@ -374,17 +399,210 @@ public class CachedJavaFileHandle implements CachedFileHandle { |
| 374 | JavaFileGenerator.closeFile(GeneratedFileType.BUILDER_CLASS_MASK, builderFileName)); | 399 | JavaFileGenerator.closeFile(GeneratedFileType.BUILDER_CLASS_MASK, builderFileName)); |
| 375 | 400 | ||
| 376 | /** | 401 | /** |
| 402 | + * Close file handle for classes files. | ||
| 403 | + */ | ||
| 404 | + JavaFileGenerator.closeFileHandles(implTempFile); | ||
| 405 | + JavaFileGenerator.closeFileHandles(builderFile); | ||
| 406 | + | ||
| 407 | + /** | ||
| 377 | * Remove temp files. | 408 | * Remove temp files. |
| 378 | */ | 409 | */ |
| 379 | JavaFileGenerator.clean(implTempFile); | 410 | JavaFileGenerator.clean(implTempFile); |
| 380 | } | 411 | } |
| 412 | + | ||
| 413 | + if ((fileType & GeneratedFileType.GENERATE_TYPEDEF_CLASS) != 0) { | ||
| 414 | + | ||
| 415 | + /** | ||
| 416 | + * Create builder class file. | ||
| 417 | + */ | ||
| 418 | + String typeDefFileName = className; | ||
| 419 | + File typeDefFile = JavaFileGenerator.getFileObject(path, typeDefFileName, JAVA_FILE_EXTENSION, this); | ||
| 420 | + typeDefFile = JavaFileGenerator.generateTypeDefClassFile(typeDefFile, className, imports, | ||
| 421 | + path.replace('/', '.'), getCachedAttributeList(), this); | ||
| 422 | + JavaFileGenerator.insert(typeDefFile, | ||
| 423 | + JavaFileGenerator.closeFile(GeneratedFileType.GENERATE_TYPEDEF_CLASS, typeDefFileName)); | ||
| 424 | + | ||
| 425 | + /** | ||
| 426 | + * Close file handle for classes files. | ||
| 427 | + */ | ||
| 428 | + JavaFileGenerator.closeFileHandles(typeDefFile); | ||
| 429 | + } | ||
| 430 | + | ||
| 431 | + closeTempDataFileHandles(className, getCodeGenFilePath() + getRelativeFilePath()); | ||
| 432 | + JavaFileGenerator | ||
| 433 | + .cleanTempFiles(new File(getCodeGenFilePath() + getRelativeFilePath() + File.separator + className | ||
| 434 | + + TEMP_FOLDER_NAME_SUFIX)); | ||
| 381 | } | 435 | } |
| 382 | 436 | ||
| 383 | - public YangTypeDef getTypedefInfo() { | 437 | + @Override |
| 384 | - return typedefInfo; | 438 | + public void setTempData(String data, TempDataStoreTypes type, String className, String genDir) |
| 439 | + throws IOException { | ||
| 440 | + | ||
| 441 | + String fileName = ""; | ||
| 442 | + if (type.equals(TempDataStoreTypes.ATTRIBUTE)) { | ||
| 443 | + fileName = ATTRIBUTE_FILE_NAME; | ||
| 444 | + } else if (type.equals(TempDataStoreTypes.GETTER_METHODS)) { | ||
| 445 | + fileName = GETTER_METHOD_FILE_NAME; | ||
| 446 | + } else if (type.equals(TempDataStoreTypes.GETTER_METHODS_IMPL)) { | ||
| 447 | + fileName = GETTER_METHOD_IMPL_FILE_NAME; | ||
| 448 | + } else if (type.equals(TempDataStoreTypes.SETTER_METHODS)) { | ||
| 449 | + fileName = SETTER_METHOD_FILE_NAME; | ||
| 450 | + } else if (type.equals(TempDataStoreTypes.SETTER_METHODS_IMPL)) { | ||
| 451 | + fileName = SETTER_METHOD_IMPL_FILE_NAME; | ||
| 452 | + } else if (type.equals(TempDataStoreTypes.TYPE_DEF)) { | ||
| 453 | + fileName = TYPE_DEF_FILE_NAME; | ||
| 454 | + } else if (type.equals(TempDataStoreTypes.TO_STRING)) { | ||
| 455 | + fileName = TO_STRING_METHOD_FILE_NAME; | ||
| 456 | + } else if (type.equals(TempDataStoreTypes.HASH_CODE)) { | ||
| 457 | + fileName = HASH_CODE_METHOD_FILE_NAME; | ||
| 458 | + } else if (type.equals(TempDataStoreTypes.EQUALS)) { | ||
| 459 | + fileName = EQUALS_METHOD_FILE_NAME; | ||
| 460 | + } else { | ||
| 461 | + fileName = CONSTRUCTOR_FILE_NAME; | ||
| 462 | + } | ||
| 463 | + | ||
| 464 | + String path = genDir.replace(UtilConstants.PERIOD, UtilConstants.SLASH) | ||
| 465 | + + File.separator + className | ||
| 466 | + + TEMP_FOLDER_NAME_SUFIX + File.separator; | ||
| 467 | + File dir = new File(path); | ||
| 468 | + if (!dir.exists()) { | ||
| 469 | + dir.mkdirs(); | ||
| 470 | + } | ||
| 471 | + File file = new File(path + fileName + TEMP_FILE_EXTENSION); | ||
| 472 | + try { | ||
| 473 | + if (!file.exists()) { | ||
| 474 | + file.createNewFile(); | ||
| 475 | + JavaFileGenerator.insert(file, data); | ||
| 476 | + } else { | ||
| 477 | + JavaFileGenerator.insert(file, data); | ||
| 478 | + } | ||
| 479 | + } catch (IOException ex) { | ||
| 480 | + throw new IOException("failed to write in temp file."); | ||
| 481 | + } | ||
| 482 | + } | ||
| 483 | + | ||
| 484 | + @Override | ||
| 485 | + public String getTempData(TempDataStoreTypes type, String className, String genDir) | ||
| 486 | + throws IOException, FileNotFoundException, ClassNotFoundException { | ||
| 487 | + | ||
| 488 | + String fileName = ""; | ||
| 489 | + if (type.equals(TempDataStoreTypes.ATTRIBUTE)) { | ||
| 490 | + fileName = ATTRIBUTE_FILE_NAME; | ||
| 491 | + } else if (type.equals(TempDataStoreTypes.GETTER_METHODS)) { | ||
| 492 | + fileName = GETTER_METHOD_FILE_NAME; | ||
| 493 | + } else if (type.equals(TempDataStoreTypes.GETTER_METHODS_IMPL)) { | ||
| 494 | + fileName = GETTER_METHOD_IMPL_FILE_NAME; | ||
| 495 | + } else if (type.equals(TempDataStoreTypes.SETTER_METHODS)) { | ||
| 496 | + fileName = SETTER_METHOD_FILE_NAME; | ||
| 497 | + } else if (type.equals(TempDataStoreTypes.SETTER_METHODS_IMPL)) { | ||
| 498 | + fileName = SETTER_METHOD_IMPL_FILE_NAME; | ||
| 499 | + } else if (type.equals(TempDataStoreTypes.TYPE_DEF)) { | ||
| 500 | + fileName = TYPE_DEF_FILE_NAME; | ||
| 501 | + } else if (type.equals(TempDataStoreTypes.TO_STRING)) { | ||
| 502 | + fileName = TO_STRING_METHOD_FILE_NAME; | ||
| 503 | + } else if (type.equals(TempDataStoreTypes.HASH_CODE)) { | ||
| 504 | + fileName = HASH_CODE_METHOD_FILE_NAME; | ||
| 505 | + } else if (type.equals(TempDataStoreTypes.EQUALS)) { | ||
| 506 | + fileName = EQUALS_METHOD_FILE_NAME; | ||
| 507 | + } else { | ||
| 508 | + fileName = CONSTRUCTOR_FILE_NAME; | ||
| 509 | + } | ||
| 510 | + | ||
| 511 | + String path = genDir.replace(UtilConstants.PERIOD, UtilConstants.SLASH) | ||
| 512 | + + File.separator + className + TEMP_FOLDER_NAME_SUFIX + File.separator; | ||
| 513 | + | ||
| 514 | + try { | ||
| 515 | + return readFile(path + fileName + TEMP_FILE_EXTENSION); | ||
| 516 | + | ||
| 517 | + } catch (FileNotFoundException e) { | ||
| 518 | + throw new FileNotFoundException("No such file or directory."); | ||
| 519 | + } | ||
| 520 | + } | ||
| 521 | + | ||
| 522 | + /** | ||
| 523 | + * Reads file and convert it to string. | ||
| 524 | + * | ||
| 525 | + * @param toAppend file to be converted | ||
| 526 | + * @return string of file | ||
| 527 | + * @throws IOException when fails to convert to string | ||
| 528 | + */ | ||
| 529 | + private static String readFile(String toAppend) throws IOException { | ||
| 530 | + BufferedReader bufferReader = new BufferedReader(new FileReader(toAppend)); | ||
| 531 | + try { | ||
| 532 | + StringBuilder stringBuilder = new StringBuilder(); | ||
| 533 | + String line = bufferReader.readLine(); | ||
| 534 | + | ||
| 535 | + while (line != null) { | ||
| 536 | + stringBuilder.append(line); | ||
| 537 | + stringBuilder.append("\n"); | ||
| 538 | + line = bufferReader.readLine(); | ||
| 539 | + } | ||
| 540 | + return stringBuilder.toString(); | ||
| 541 | + } finally { | ||
| 542 | + bufferReader.close(); | ||
| 543 | + } | ||
| 544 | + } | ||
| 545 | + | ||
| 546 | + /** | ||
| 547 | + * Closes the temp file handles. | ||
| 548 | + * | ||
| 549 | + * @param className class name | ||
| 550 | + * @param genDir generated directory | ||
| 551 | + * @throws IOException when failes to close file handle | ||
| 552 | + */ | ||
| 553 | + private void closeTempDataFileHandles(String className, String genDir) | ||
| 554 | + throws IOException { | ||
| 555 | + | ||
| 556 | + String path = genDir.replace(UtilConstants.PERIOD, UtilConstants.SLASH) + File.separator + className | ||
| 557 | + + TEMP_FOLDER_NAME_SUFIX + File.separator; | ||
| 558 | + | ||
| 559 | + String fileName = ""; | ||
| 560 | + fileName = ATTRIBUTE_FILE_NAME; | ||
| 561 | + closeTempFile(fileName, path); | ||
| 562 | + | ||
| 563 | + fileName = GETTER_METHOD_FILE_NAME; | ||
| 564 | + closeTempFile(fileName, path); | ||
| 565 | + | ||
| 566 | + fileName = GETTER_METHOD_IMPL_FILE_NAME; | ||
| 567 | + closeTempFile(fileName, path); | ||
| 568 | + | ||
| 569 | + fileName = SETTER_METHOD_FILE_NAME; | ||
| 570 | + closeTempFile(fileName, path); | ||
| 571 | + | ||
| 572 | + fileName = SETTER_METHOD_IMPL_FILE_NAME; | ||
| 573 | + closeTempFile(fileName, path); | ||
| 574 | + | ||
| 575 | + fileName = TYPE_DEF_FILE_NAME; | ||
| 576 | + closeTempFile(fileName, path); | ||
| 577 | + | ||
| 578 | + fileName = TO_STRING_METHOD_FILE_NAME; | ||
| 579 | + closeTempFile(fileName, path); | ||
| 580 | + | ||
| 581 | + fileName = HASH_CODE_METHOD_FILE_NAME; | ||
| 582 | + closeTempFile(fileName, path); | ||
| 583 | + | ||
| 584 | + fileName = EQUALS_METHOD_FILE_NAME; | ||
| 585 | + closeTempFile(fileName, path); | ||
| 586 | + | ||
| 587 | + fileName = CONSTRUCTOR_FILE_NAME; | ||
| 588 | + closeTempFile(fileName, path); | ||
| 385 | } | 589 | } |
| 386 | 590 | ||
| 387 | - public void setTypedefInfo(YangTypeDef typedefInfo) { | 591 | + /** |
| 388 | - this.typedefInfo = typedefInfo; | 592 | + * Closes the specific temp file. |
| 593 | + * | ||
| 594 | + * @param fileName temp file name | ||
| 595 | + * @param path path | ||
| 596 | + * @throws IOException when failed to close file handle | ||
| 597 | + */ | ||
| 598 | + private void closeTempFile(String fileName, String path) throws IOException { | ||
| 599 | + File file = new File(path + fileName + TEMP_FILE_EXTENSION); | ||
| 600 | + try { | ||
| 601 | + if (!file.exists()) { | ||
| 602 | + FileSystemUtil.updateFileHandle(file, null, true); | ||
| 603 | + } | ||
| 604 | + } catch (IOException ex) { | ||
| 605 | + throw new IOException("failed to close the temp file handle."); | ||
| 606 | + } | ||
| 389 | } | 607 | } |
| 390 | } | 608 | } | ... | ... |
| ... | @@ -35,16 +35,16 @@ public final class JavaCodeGenerator { | ... | @@ -35,16 +35,16 @@ public final class JavaCodeGenerator { |
| 35 | * Generate Java code files corresponding to the YANG schema. | 35 | * Generate Java code files corresponding to the YANG schema. |
| 36 | * | 36 | * |
| 37 | * @param rootNode root node of the data model tree | 37 | * @param rootNode root node of the data model tree |
| 38 | - * @throws IOException when fails to generate java code file the current | 38 | + * @param codeGenDir code generation directory |
| 39 | - * node | 39 | + * @throws IOException when fails to generate java code file the current node |
| 40 | */ | 40 | */ |
| 41 | - public static void generateJavaCode(YangNode rootNode) throws IOException { | 41 | + public static void generateJavaCode(YangNode rootNode, String codeGenDir) throws IOException { |
| 42 | YangNode curNode = rootNode; | 42 | YangNode curNode = rootNode; |
| 43 | TraversalType curTraversal = TraversalType.ROOT; | 43 | TraversalType curTraversal = TraversalType.ROOT; |
| 44 | 44 | ||
| 45 | while (!(curNode == null)) { | 45 | while (!(curNode == null)) { |
| 46 | if (curTraversal != TraversalType.PARENT) { | 46 | if (curTraversal != TraversalType.PARENT) { |
| 47 | - curNode.generateJavaCodeEntry(); | 47 | + curNode.generateJavaCodeEntry(codeGenDir); |
| 48 | } | 48 | } |
| 49 | if (curTraversal != TraversalType.PARENT && curNode.getChild() != null) { | 49 | if (curTraversal != TraversalType.PARENT && curNode.getChild() != null) { |
| 50 | curTraversal = TraversalType.CHILD; | 50 | curTraversal = TraversalType.CHILD; | ... | ... |
| ... | @@ -79,7 +79,7 @@ public final class AttributesJavaDataType { | ... | @@ -79,7 +79,7 @@ public final class AttributesJavaDataType { |
| 79 | } else if (type.equals(YangDataTypes.INSTANCE_IDENTIFIER)) { | 79 | } else if (type.equals(YangDataTypes.INSTANCE_IDENTIFIER)) { |
| 80 | //TODO:INSTANCE_IDENTIFIER | 80 | //TODO:INSTANCE_IDENTIFIER |
| 81 | } else if (type.equals(YangDataTypes.DERIVED)) { | 81 | } else if (type.equals(YangDataTypes.DERIVED)) { |
| 82 | - //TODO:DERIVED | 82 | + return yangType.getDataTypeName(); |
| 83 | } | 83 | } |
| 84 | return null; | 84 | return null; |
| 85 | } | 85 | } | ... | ... |
| ... | @@ -56,6 +56,9 @@ public final class ClassDefinitionGenerator { | ... | @@ -56,6 +56,9 @@ public final class ClassDefinitionGenerator { |
| 56 | } else if ((genFileTypes & GeneratedFileType.BUILDER_INTERFACE_MASK) != 0) { | 56 | } else if ((genFileTypes & GeneratedFileType.BUILDER_INTERFACE_MASK) != 0) { |
| 57 | 57 | ||
| 58 | return getBuilderInterfaceDefinition(yangName); | 58 | return getBuilderInterfaceDefinition(yangName); |
| 59 | + } else if ((genFileTypes & GeneratedFileType.GENERATE_TYPEDEF_CLASS) != 0) { | ||
| 60 | + | ||
| 61 | + return getTypeDefClassDefinition(yangName); | ||
| 59 | } | 62 | } |
| 60 | return null; | 63 | return null; |
| 61 | } | 64 | } |
| ... | @@ -94,7 +97,7 @@ public final class ClassDefinitionGenerator { | ... | @@ -94,7 +97,7 @@ public final class ClassDefinitionGenerator { |
| 94 | 97 | ||
| 95 | return UtilConstants.PUBLIC + UtilConstants.SPACE + UtilConstants.CLASS + UtilConstants.SPACE + yangName | 98 | return UtilConstants.PUBLIC + UtilConstants.SPACE + UtilConstants.CLASS + UtilConstants.SPACE + yangName |
| 96 | + UtilConstants.BUILDER + UtilConstants.SPACE + UtilConstants.IMPLEMENTS + UtilConstants.SPACE | 99 | + UtilConstants.BUILDER + UtilConstants.SPACE + UtilConstants.IMPLEMENTS + UtilConstants.SPACE |
| 97 | - + yangName + UtilConstants.PERIOD + UtilConstants.BUILDER + UtilConstants.SPACE | 100 | + + yangName + UtilConstants.PERIOD + yangName + UtilConstants.BUILDER + UtilConstants.SPACE |
| 98 | + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE; | 101 | + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE; |
| 99 | } | 102 | } |
| 100 | 103 | ||
| ... | @@ -108,8 +111,22 @@ public final class ClassDefinitionGenerator { | ... | @@ -108,8 +111,22 @@ public final class ClassDefinitionGenerator { |
| 108 | 111 | ||
| 109 | return UtilConstants.PUBLIC + UtilConstants.SPACE + UtilConstants.FINAL + UtilConstants.SPACE | 112 | return UtilConstants.PUBLIC + UtilConstants.SPACE + UtilConstants.FINAL + UtilConstants.SPACE |
| 110 | + UtilConstants.CLASS + UtilConstants.SPACE + yangName + UtilConstants.IMPL + UtilConstants.SPACE | 113 | + UtilConstants.CLASS + UtilConstants.SPACE + yangName + UtilConstants.IMPL + UtilConstants.SPACE |
| 111 | - + UtilConstants.IMPLEMENTS + UtilConstants.SPACE + yangName + UtilConstants.OPEN_CURLY_BRACKET | 114 | + + UtilConstants.IMPLEMENTS + UtilConstants.SPACE + yangName + UtilConstants.SPACE |
| 115 | + + UtilConstants.OPEN_CURLY_BRACKET | ||
| 112 | + UtilConstants.SPACE + UtilConstants.NEW_LINE; | 116 | + UtilConstants.SPACE + UtilConstants.NEW_LINE; |
| 113 | } | 117 | } |
| 114 | 118 | ||
| 119 | + /** | ||
| 120 | + * Returns typeDef file class definition. | ||
| 121 | + * | ||
| 122 | + * @param yangName file name | ||
| 123 | + * @return definition | ||
| 124 | + */ | ||
| 125 | + private static String getTypeDefClassDefinition(String yangName) { | ||
| 126 | + | ||
| 127 | + return UtilConstants.PUBLIC + UtilConstants.SPACE + UtilConstants.FINAL + UtilConstants.SPACE | ||
| 128 | + + UtilConstants.CLASS + UtilConstants.SPACE + yangName + UtilConstants.SPACE | ||
| 129 | + + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.SPACE + UtilConstants.NEW_LINE; | ||
| 130 | + } | ||
| 131 | + | ||
| 115 | } | 132 | } | ... | ... |
| ... | @@ -78,25 +78,37 @@ public final class JavaCodeSnippetGen { | ... | @@ -78,25 +78,37 @@ public final class JavaCodeSnippetGen { |
| 78 | * @param javaAttributeTypePkg Package of the attribute type | 78 | * @param javaAttributeTypePkg Package of the attribute type |
| 79 | * @param javaAttributeType java attribute type | 79 | * @param javaAttributeType java attribute type |
| 80 | * @param javaAttributeName name of the attribute | 80 | * @param javaAttributeName name of the attribute |
| 81 | + * @param isList is list attribute | ||
| 81 | * @return the textual java code for attribute definition in class | 82 | * @return the textual java code for attribute definition in class |
| 82 | */ | 83 | */ |
| 83 | public static String getJavaAttributeDefination(String javaAttributeTypePkg, String javaAttributeType, | 84 | public static String getJavaAttributeDefination(String javaAttributeTypePkg, String javaAttributeType, |
| 84 | - String javaAttributeName) { | 85 | + String javaAttributeName, boolean isList) { |
| 85 | 86 | ||
| 86 | String attributeDefination = UtilConstants.PRIVATE | 87 | String attributeDefination = UtilConstants.PRIVATE |
| 87 | + UtilConstants.SPACE; | 88 | + UtilConstants.SPACE; |
| 88 | 89 | ||
| 89 | - if (javaAttributeTypePkg != null) { | 90 | + if (!isList) { |
| 90 | - attributeDefination = attributeDefination | 91 | + if (javaAttributeTypePkg != null) { |
| 91 | - + javaAttributeTypePkg + "."; | 92 | + attributeDefination = attributeDefination |
| 92 | - } | 93 | + + javaAttributeTypePkg + "."; |
| 94 | + } | ||
| 93 | 95 | ||
| 94 | - attributeDefination = attributeDefination | 96 | + attributeDefination = attributeDefination |
| 95 | - + javaAttributeType | 97 | + + javaAttributeType |
| 96 | - + UtilConstants.SPACE | 98 | + + UtilConstants.SPACE |
| 97 | - + javaAttributeName | 99 | + + javaAttributeName |
| 98 | - + UtilConstants.SEMI_COLAN; | 100 | + + UtilConstants.SEMI_COLAN; |
| 101 | + } else { | ||
| 102 | + attributeDefination = attributeDefination + UtilConstants.LIST + UtilConstants.DIAMOND_OPEN_BRACKET; | ||
| 103 | + if (javaAttributeTypePkg != null) { | ||
| 104 | + attributeDefination = attributeDefination | ||
| 105 | + + javaAttributeTypePkg + "."; | ||
| 106 | + } | ||
| 99 | 107 | ||
| 108 | + attributeDefination = attributeDefination | ||
| 109 | + + javaAttributeType + UtilConstants.DIAMOND_CLOSE_BRACKET + UtilConstants.SPACE | ||
| 110 | + + javaAttributeName + UtilConstants.SEMI_COLAN; | ||
| 111 | + } | ||
| 100 | return attributeDefination; | 112 | return attributeDefination; |
| 101 | } | 113 | } |
| 102 | 114 | ||
| ... | @@ -126,6 +138,9 @@ public final class JavaCodeSnippetGen { | ... | @@ -126,6 +138,9 @@ public final class JavaCodeSnippetGen { |
| 126 | } else if ((genFileTypes & GeneratedFileType.BUILDER_CLASS_MASK) != 0) { | 138 | } else if ((genFileTypes & GeneratedFileType.BUILDER_CLASS_MASK) != 0) { |
| 127 | 139 | ||
| 128 | return UtilConstants.CLOSE_CURLY_BRACKET; | 140 | return UtilConstants.CLOSE_CURLY_BRACKET; |
| 141 | + } else if ((genFileTypes & GeneratedFileType.GENERATE_TYPEDEF_CLASS) != 0) { | ||
| 142 | + | ||
| 143 | + return UtilConstants.CLOSE_CURLY_BRACKET; | ||
| 129 | } | 144 | } |
| 130 | return null; | 145 | return null; |
| 131 | } | 146 | } | ... | ... |
| ... | @@ -16,26 +16,28 @@ | ... | @@ -16,26 +16,28 @@ |
| 16 | 16 | ||
| 17 | package org.onosproject.yangutils.translator.tojava.utils; | 17 | package org.onosproject.yangutils.translator.tojava.utils; |
| 18 | 18 | ||
| 19 | +import static org.onosproject.yangutils.translator.GeneratedFileType.BUILDER_CLASS_MASK; | ||
| 20 | +import static org.onosproject.yangutils.translator.GeneratedFileType.BUILDER_INTERFACE_MASK; | ||
| 21 | +import static org.onosproject.yangutils.translator.GeneratedFileType.GENERATE_TYPEDEF_CLASS; | ||
| 22 | +import static org.onosproject.yangutils.translator.GeneratedFileType.IMPL_CLASS_MASK; | ||
| 23 | +import static org.onosproject.yangutils.translator.GeneratedFileType.INTERFACE_MASK; | ||
| 24 | +import static org.slf4j.LoggerFactory.getLogger; | ||
| 25 | + | ||
| 19 | import java.io.File; | 26 | import java.io.File; |
| 20 | import java.io.IOException; | 27 | import java.io.IOException; |
| 28 | +import java.util.ArrayList; | ||
| 21 | import java.util.List; | 29 | import java.util.List; |
| 22 | 30 | ||
| 31 | +import org.apache.commons.io.FileUtils; | ||
| 32 | +import org.onosproject.yangutils.translator.CachedFileHandle; | ||
| 23 | import org.onosproject.yangutils.translator.tojava.AttributeInfo; | 33 | import org.onosproject.yangutils.translator.tojava.AttributeInfo; |
| 24 | import org.onosproject.yangutils.utils.UtilConstants; | 34 | import org.onosproject.yangutils.utils.UtilConstants; |
| 25 | import org.onosproject.yangutils.utils.io.impl.CopyrightHeader; | 35 | import org.onosproject.yangutils.utils.io.impl.CopyrightHeader; |
| 26 | import org.onosproject.yangutils.utils.io.impl.FileSystemUtil; | 36 | import org.onosproject.yangutils.utils.io.impl.FileSystemUtil; |
| 27 | import org.onosproject.yangutils.utils.io.impl.JavaDocGen; | 37 | import org.onosproject.yangutils.utils.io.impl.JavaDocGen; |
| 28 | import org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType; | 38 | import org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType; |
| 29 | -import org.onosproject.yangutils.utils.io.impl.TempDataStore; | ||
| 30 | -import org.onosproject.yangutils.utils.io.impl.TempDataStore.TempDataStoreType; | ||
| 31 | import org.slf4j.Logger; | 39 | import org.slf4j.Logger; |
| 32 | 40 | ||
| 33 | -import static org.onosproject.yangutils.translator.GeneratedFileType.BUILDER_CLASS_MASK; | ||
| 34 | -import static org.onosproject.yangutils.translator.GeneratedFileType.BUILDER_INTERFACE_MASK; | ||
| 35 | -import static org.onosproject.yangutils.translator.GeneratedFileType.IMPL_CLASS_MASK; | ||
| 36 | -import static org.onosproject.yangutils.translator.GeneratedFileType.INTERFACE_MASK; | ||
| 37 | -import static org.slf4j.LoggerFactory.getLogger; | ||
| 38 | - | ||
| 39 | /** | 41 | /** |
| 40 | * Generates java file. | 42 | * Generates java file. |
| 41 | */ | 43 | */ |
| ... | @@ -55,10 +57,11 @@ public final class JavaFileGenerator { | ... | @@ -55,10 +57,11 @@ public final class JavaFileGenerator { |
| 55 | * @param fileName file name | 57 | * @param fileName file name |
| 56 | * @param filePath file package path | 58 | * @param filePath file package path |
| 57 | * @param extension file extension | 59 | * @param extension file extension |
| 60 | + * @param handle cached file handle | ||
| 58 | * @return file object | 61 | * @return file object |
| 59 | */ | 62 | */ |
| 60 | - public static File getFileObject(String filePath, String fileName, String extension) { | 63 | + public static File getFileObject(String filePath, String fileName, String extension, CachedFileHandle handle) { |
| 61 | - return new File(UtilConstants.YANG_GEN_DIR + filePath + File.separator + fileName + extension); | 64 | + return new File(handle.getCodeGenFilePath() + filePath + File.separator + fileName + extension); |
| 62 | } | 65 | } |
| 63 | 66 | ||
| 64 | /** | 67 | /** |
| ... | @@ -69,17 +72,18 @@ public final class JavaFileGenerator { | ... | @@ -69,17 +72,18 @@ public final class JavaFileGenerator { |
| 69 | * @param imports imports for the file | 72 | * @param imports imports for the file |
| 70 | * @param attrList attribute info | 73 | * @param attrList attribute info |
| 71 | * @param pkg generated file package | 74 | * @param pkg generated file package |
| 75 | + * @param handle cached file handle | ||
| 72 | * @return interface file | 76 | * @return interface file |
| 73 | * @throws IOException when fails to write in file | 77 | * @throws IOException when fails to write in file |
| 74 | */ | 78 | */ |
| 75 | public static File generateInterfaceFile(File file, String className, List<String> imports, | 79 | public static File generateInterfaceFile(File file, String className, List<String> imports, |
| 76 | - List<AttributeInfo> attrList, String pkg) throws IOException { | 80 | + List<AttributeInfo> attrList, String pkg, CachedFileHandle handle) throws IOException { |
| 77 | - | 81 | + String path = handle.getCodeGenFilePath() + pkg.replace(UtilConstants.PERIOD, UtilConstants.SLASH); |
| 78 | initiateFile(file, className, INTERFACE_MASK, imports, pkg); | 82 | initiateFile(file, className, INTERFACE_MASK, imports, pkg); |
| 79 | 83 | ||
| 80 | - List<String> methods; | 84 | + List<String> methods = new ArrayList<>(); |
| 81 | try { | 85 | try { |
| 82 | - methods = TempDataStore.getTempData(TempDataStoreType.GETTER_METHODS, className); | 86 | + methods.add(handle.getTempData(TempDataStoreTypes.GETTER_METHODS, className, path)); |
| 83 | } catch (ClassNotFoundException | IOException e) { | 87 | } catch (ClassNotFoundException | IOException e) { |
| 84 | log.info("There is no attribute info of " + className + " YANG file in the temporary files."); | 88 | log.info("There is no attribute info of " + className + " YANG file in the temporary files."); |
| 85 | throw new IOException("Fail to read data from temp file."); | 89 | throw new IOException("Fail to read data from temp file."); |
| ... | @@ -101,17 +105,19 @@ public final class JavaFileGenerator { | ... | @@ -101,17 +105,19 @@ public final class JavaFileGenerator { |
| 101 | * @param className class name | 105 | * @param className class name |
| 102 | * @param pkg generated file package | 106 | * @param pkg generated file package |
| 103 | * @param attrList attribute info | 107 | * @param attrList attribute info |
| 108 | + * @param handle cached file handle | ||
| 104 | * @return builder interface file | 109 | * @return builder interface file |
| 105 | * @throws IOException when fails to write in file | 110 | * @throws IOException when fails to write in file |
| 106 | */ | 111 | */ |
| 107 | public static File generateBuilderInterfaceFile(File file, String className, String pkg, | 112 | public static File generateBuilderInterfaceFile(File file, String className, String pkg, |
| 108 | - List<AttributeInfo> attrList) throws IOException { | 113 | + List<AttributeInfo> attrList, CachedFileHandle handle) throws IOException { |
| 109 | - | 114 | + String path = handle.getCodeGenFilePath() + pkg.replace(UtilConstants.PERIOD, UtilConstants.SLASH); |
| 110 | initiateFile(file, className, BUILDER_INTERFACE_MASK, null, pkg); | 115 | initiateFile(file, className, BUILDER_INTERFACE_MASK, null, pkg); |
| 111 | - List<String> methods; | 116 | + List<String> methods = new ArrayList<>(); |
| 117 | + | ||
| 112 | try { | 118 | try { |
| 113 | - methods = TempDataStore.getTempData(TempDataStoreType.BUILDER_INTERFACE_METHODS, | 119 | + methods.add(handle.getTempData(TempDataStoreTypes.GETTER_METHODS, className, path)); |
| 114 | - className + UtilConstants.BUILDER + UtilConstants.INTERFACE); | 120 | + methods.add(handle.getTempData(TempDataStoreTypes.SETTER_METHODS, className, path)); |
| 115 | } catch (ClassNotFoundException | IOException e) { | 121 | } catch (ClassNotFoundException | IOException e) { |
| 116 | log.info("There is no attribute info of " + className + " YANG file in the temporary files."); | 122 | log.info("There is no attribute info of " + className + " YANG file in the temporary files."); |
| 117 | throw new IOException("Fail to read data from temp file."); | 123 | throw new IOException("Fail to read data from temp file."); |
| ... | @@ -126,7 +132,7 @@ public final class JavaFileGenerator { | ... | @@ -126,7 +132,7 @@ public final class JavaFileGenerator { |
| 126 | * Add getters and setters in builder interface. | 132 | * Add getters and setters in builder interface. |
| 127 | */ | 133 | */ |
| 128 | for (String method : methods) { | 134 | for (String method : methods) { |
| 129 | - appendMethod(file, UtilConstants.FOUR_SPACE_INDENTATION + method + UtilConstants.NEW_LINE); | 135 | + appendMethod(file, UtilConstants.FOUR_SPACE_INDENTATION + method); |
| 130 | } | 136 | } |
| 131 | 137 | ||
| 132 | insert(file, UtilConstants.CLOSE_CURLY_BRACKET + UtilConstants.NEW_LINE); | 138 | insert(file, UtilConstants.CLOSE_CURLY_BRACKET + UtilConstants.NEW_LINE); |
| ... | @@ -141,20 +147,21 @@ public final class JavaFileGenerator { | ... | @@ -141,20 +147,21 @@ public final class JavaFileGenerator { |
| 141 | * @param imports imports for the file | 147 | * @param imports imports for the file |
| 142 | * @param pkg generated file package | 148 | * @param pkg generated file package |
| 143 | * @param attrList attribute info | 149 | * @param attrList attribute info |
| 150 | + * @param handle cached file handle | ||
| 144 | * @return builder class file | 151 | * @return builder class file |
| 145 | * @throws IOException when fails to write in file | 152 | * @throws IOException when fails to write in file |
| 146 | */ | 153 | */ |
| 147 | public static File generateBuilderClassFile(File file, String className, List<String> imports, String pkg, | 154 | public static File generateBuilderClassFile(File file, String className, List<String> imports, String pkg, |
| 148 | - List<AttributeInfo> attrList) throws IOException { | 155 | + List<AttributeInfo> attrList, CachedFileHandle handle) throws IOException { |
| 149 | - | 156 | + String path = handle.getCodeGenFilePath() + pkg.replace(UtilConstants.PERIOD, UtilConstants.SLASH); |
| 150 | initiateFile(file, className, BUILDER_CLASS_MASK, imports, pkg); | 157 | initiateFile(file, className, BUILDER_CLASS_MASK, imports, pkg); |
| 151 | 158 | ||
| 152 | /** | 159 | /** |
| 153 | * Add attribute strings. | 160 | * Add attribute strings. |
| 154 | */ | 161 | */ |
| 155 | - List<String> attributes; | 162 | + List<String> attributes = new ArrayList<>(); |
| 156 | try { | 163 | try { |
| 157 | - attributes = TempDataStore.getTempData(TempDataStoreType.ATTRIBUTE, className); | 164 | + attributes.add(handle.getTempData(TempDataStoreTypes.ATTRIBUTE, className, path)); |
| 158 | } catch (ClassNotFoundException | IOException e) { | 165 | } catch (ClassNotFoundException | IOException e) { |
| 159 | log.info("There is no attribute info of " + className + " YANG file in the temporary files."); | 166 | log.info("There is no attribute info of " + className + " YANG file in the temporary files."); |
| 160 | throw new IOException("Fail to read data from temp file."); | 167 | throw new IOException("Fail to read data from temp file."); |
| ... | @@ -165,11 +172,11 @@ public final class JavaFileGenerator { | ... | @@ -165,11 +172,11 @@ public final class JavaFileGenerator { |
| 165 | for (String attribute : attributes) { | 172 | for (String attribute : attributes) { |
| 166 | insert(file, UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + attribute); | 173 | insert(file, UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + attribute); |
| 167 | } | 174 | } |
| 168 | - insert(file, UtilConstants.NEW_LINE); | ||
| 169 | 175 | ||
| 170 | - List<String> methods; | 176 | + List<String> methods = new ArrayList<>(); |
| 171 | try { | 177 | try { |
| 172 | - methods = TempDataStore.getTempData(TempDataStoreType.BUILDER_METHODS, className + UtilConstants.BUILDER); | 178 | + methods.add(handle.getTempData(TempDataStoreTypes.GETTER_METHODS_IMPL, className, path)); |
| 179 | + methods.add(handle.getTempData(TempDataStoreTypes.SETTER_METHODS_IMPL, className, path)); | ||
| 173 | } catch (ClassNotFoundException | IOException e) { | 180 | } catch (ClassNotFoundException | IOException e) { |
| 174 | log.info("There is no attribute info of " + className + " YANG file in the temporary files."); | 181 | log.info("There is no attribute info of " + className + " YANG file in the temporary files."); |
| 175 | throw new IOException("Fail to read data from temp file."); | 182 | throw new IOException("Fail to read data from temp file."); |
| ... | @@ -179,7 +186,8 @@ public final class JavaFileGenerator { | ... | @@ -179,7 +186,8 @@ public final class JavaFileGenerator { |
| 179 | * Add default constructor and build method impl. | 186 | * Add default constructor and build method impl. |
| 180 | */ | 187 | */ |
| 181 | methods.add(UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE | 188 | methods.add(UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE |
| 182 | - + MethodsGenerator.getDefaultConstructorString(BUILDER_CLASS_MASK, className)); | 189 | + + MethodsGenerator.getDefaultConstructorString(className + UtilConstants.BUILDER, |
| 190 | + UtilConstants.PUBLIC)); | ||
| 183 | methods.add(MethodsGenerator.getBuildString(className)); | 191 | methods.add(MethodsGenerator.getBuildString(className)); |
| 184 | 192 | ||
| 185 | /** | 193 | /** |
| ... | @@ -198,17 +206,19 @@ public final class JavaFileGenerator { | ... | @@ -198,17 +206,19 @@ public final class JavaFileGenerator { |
| 198 | * @param className class name | 206 | * @param className class name |
| 199 | * @param pkg generated file package | 207 | * @param pkg generated file package |
| 200 | * @param attrList attribute's info | 208 | * @param attrList attribute's info |
| 209 | + * @param handle cached file handle | ||
| 201 | * @return impl class file | 210 | * @return impl class file |
| 202 | * @throws IOException when fails to write in file | 211 | * @throws IOException when fails to write in file |
| 203 | */ | 212 | */ |
| 204 | - public static File generateImplClassFile(File file, String className, String pkg, List<AttributeInfo> attrList) | 213 | + public static File generateImplClassFile(File file, String className, String pkg, List<AttributeInfo> attrList, |
| 205 | - throws IOException { | 214 | + CachedFileHandle handle) |
| 215 | + throws IOException { | ||
| 216 | + String path = handle.getCodeGenFilePath() + pkg.replace(UtilConstants.PERIOD, UtilConstants.SLASH); | ||
| 217 | + initiateFile(file, className, IMPL_CLASS_MASK, null, path); | ||
| 206 | 218 | ||
| 207 | - initiateFile(file, className, IMPL_CLASS_MASK, null, pkg); | 219 | + List<String> attributes = new ArrayList<>(); |
| 208 | - | ||
| 209 | - List<String> attributes; | ||
| 210 | try { | 220 | try { |
| 211 | - attributes = TempDataStore.getTempData(TempDataStoreType.ATTRIBUTE, className); | 221 | + attributes.add(handle.getTempData(TempDataStoreTypes.ATTRIBUTE, className, path)); |
| 212 | } catch (ClassNotFoundException | IOException e) { | 222 | } catch (ClassNotFoundException | IOException e) { |
| 213 | log.info("There is no attribute info of " + className + " YANG file in the temporary files."); | 223 | log.info("There is no attribute info of " + className + " YANG file in the temporary files."); |
| 214 | throw new IOException("Fail to read data from temp file."); | 224 | throw new IOException("Fail to read data from temp file."); |
| ... | @@ -220,24 +230,34 @@ public final class JavaFileGenerator { | ... | @@ -220,24 +230,34 @@ public final class JavaFileGenerator { |
| 220 | for (String attribute : attributes) { | 230 | for (String attribute : attributes) { |
| 221 | insert(file, UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + attribute); | 231 | insert(file, UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + attribute); |
| 222 | } | 232 | } |
| 223 | - insert(file, UtilConstants.NEW_LINE); | ||
| 224 | 233 | ||
| 225 | - List<String> methods; | 234 | + List<String> methods = new ArrayList<>(); |
| 226 | try { | 235 | try { |
| 227 | - methods = TempDataStore.getTempData(TempDataStoreType.IMPL_METHODS, className + UtilConstants.IMPL); | 236 | + |
| 237 | + methods.add(handle.getTempData(TempDataStoreTypes.GETTER_METHODS_IMPL, className, path)); | ||
| 238 | + | ||
| 239 | + methods.add(getConstructorString(className) | ||
| 240 | + + handle.getTempData(TempDataStoreTypes.CONSTRUCTOR, className, path) | ||
| 241 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.CLOSE_CURLY_BRACKET); | ||
| 242 | + | ||
| 243 | + methods.add(MethodsGenerator.getHashCodeMethodClose(MethodsGenerator.getHashCodeMethodOpen() | ||
| 244 | + + handle.getTempData(TempDataStoreTypes.HASH_CODE, className, path).replace(UtilConstants.NEW_LINE, | ||
| 245 | + ""))); | ||
| 246 | + | ||
| 247 | + methods.add(MethodsGenerator | ||
| 248 | + .getEqualsMethodClose(MethodsGenerator.getEqualsMethodOpen(className + UtilConstants.IMPL) | ||
| 249 | + + handle.getTempData(TempDataStoreTypes.EQUALS, className, path))); | ||
| 250 | + | ||
| 251 | + methods.add(MethodsGenerator.getToStringMethodOpen() | ||
| 252 | + + handle.getTempData(TempDataStoreTypes.TO_STRING, className, path) | ||
| 253 | + + MethodsGenerator.getToStringMethodClose()); | ||
| 254 | + | ||
| 228 | } catch (ClassNotFoundException | IOException e) { | 255 | } catch (ClassNotFoundException | IOException e) { |
| 229 | log.info("There is no attribute info of " + className + " YANG file in the temporary files."); | 256 | log.info("There is no attribute info of " + className + " YANG file in the temporary files."); |
| 230 | throw new IOException("Fail to read data from temp file."); | 257 | throw new IOException("Fail to read data from temp file."); |
| 231 | } | 258 | } |
| 232 | 259 | ||
| 233 | /** | 260 | /** |
| 234 | - * Add default constructor and constructor methods. | ||
| 235 | - */ | ||
| 236 | - methods.add(UtilConstants.JAVA_DOC_FIRST_LINE | ||
| 237 | - + MethodsGenerator.getDefaultConstructorString(IMPL_CLASS_MASK, className)); | ||
| 238 | - methods.add(MethodsGenerator.getConstructorString(className)); | ||
| 239 | - | ||
| 240 | - /** | ||
| 241 | * Add methods in impl class. | 261 | * Add methods in impl class. |
| 242 | */ | 262 | */ |
| 243 | for (String method : methods) { | 263 | for (String method : methods) { |
| ... | @@ -249,6 +269,58 @@ public final class JavaFileGenerator { | ... | @@ -249,6 +269,58 @@ public final class JavaFileGenerator { |
| 249 | } | 269 | } |
| 250 | 270 | ||
| 251 | /** | 271 | /** |
| 272 | + * Generate class file for type def. | ||
| 273 | + * | ||
| 274 | + * @param file generated file | ||
| 275 | + * @param className file name | ||
| 276 | + * @param imports imports for file | ||
| 277 | + * @param pkg package path | ||
| 278 | + * @param cachedAttributeList attribute list | ||
| 279 | + * @param handle cached file handle | ||
| 280 | + * @return type def class file | ||
| 281 | + * @throws IOException when fails to generate class file | ||
| 282 | + */ | ||
| 283 | + public static File generateTypeDefClassFile(File file, String className, List<String> imports, | ||
| 284 | + String pkg, List<AttributeInfo> cachedAttributeList, CachedFileHandle handle) throws IOException { | ||
| 285 | + String path = handle.getCodeGenFilePath() + pkg.replace(UtilConstants.PERIOD, UtilConstants.SLASH); | ||
| 286 | + initiateFile(file, className, GENERATE_TYPEDEF_CLASS, imports, pkg); | ||
| 287 | + | ||
| 288 | + List<String> typeDef = new ArrayList<>(); | ||
| 289 | + try { | ||
| 290 | + typeDef.add(handle.getTempData(TempDataStoreTypes.TYPE_DEF, className, path)); | ||
| 291 | + } catch (ClassNotFoundException | IOException e) { | ||
| 292 | + log.info("There is no attribute info of " + className + " YANG file in the temporary files."); | ||
| 293 | + throw new IOException("Fail to read data from temp file."); | ||
| 294 | + } | ||
| 295 | + | ||
| 296 | + /** | ||
| 297 | + * Add attributes to the file. | ||
| 298 | + */ | ||
| 299 | + for (String attribute : typeDef) { | ||
| 300 | + insert(file, UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + attribute); | ||
| 301 | + } | ||
| 302 | + | ||
| 303 | + return file; | ||
| 304 | + } | ||
| 305 | + | ||
| 306 | + /** | ||
| 307 | + * Returns constructor string for impl class. | ||
| 308 | + * | ||
| 309 | + * @param yangName class name | ||
| 310 | + * @return constructor string | ||
| 311 | + */ | ||
| 312 | + private static String getConstructorString(String yangName) { | ||
| 313 | + | ||
| 314 | + String builderAttribute = yangName.substring(0, 1).toLowerCase() + yangName.substring(1); | ||
| 315 | + String javadoc = MethodsGenerator.getConstructorString(yangName); | ||
| 316 | + String constructor = UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE | ||
| 317 | + + yangName + UtilConstants.IMPL + UtilConstants.OPEN_PARENTHESIS + yangName + UtilConstants.BUILDER | ||
| 318 | + + UtilConstants.SPACE + builderAttribute + UtilConstants.OBJECT + UtilConstants.CLOSE_PARENTHESIS | ||
| 319 | + + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE; | ||
| 320 | + return javadoc + constructor; | ||
| 321 | + } | ||
| 322 | + | ||
| 323 | + /** | ||
| 252 | * Initiate generation of file based on generated file type. | 324 | * Initiate generation of file based on generated file type. |
| 253 | * | 325 | * |
| 254 | * @param file generated file | 326 | * @param file generated file |
| ... | @@ -288,7 +360,6 @@ public final class JavaFileGenerator { | ... | @@ -288,7 +360,6 @@ public final class JavaFileGenerator { |
| 288 | * | 360 | * |
| 289 | * @param file file in which method needs to be appended | 361 | * @param file file in which method needs to be appended |
| 290 | * @param method method which needs to be appended | 362 | * @param method method which needs to be appended |
| 291 | - * @exception IOException file operation exceptions | ||
| 292 | */ | 363 | */ |
| 293 | private static void appendMethod(File file, String method) throws IOException { | 364 | private static void appendMethod(File file, String method) throws IOException { |
| 294 | insert(file, method); | 365 | insert(file, method); |
| ... | @@ -309,17 +380,30 @@ public final class JavaFileGenerator { | ... | @@ -309,17 +380,30 @@ public final class JavaFileGenerator { |
| 309 | * Parses attribute info and fetch specific data and creates serialized | 380 | * Parses attribute info and fetch specific data and creates serialized |
| 310 | * files of it. | 381 | * files of it. |
| 311 | * | 382 | * |
| 312 | - * @param attr attribute info | 383 | + * @param attr attribute info. |
| 313 | * @param genFileType generated file type | 384 | * @param genFileType generated file type |
| 314 | * @param className class name | 385 | * @param className class name |
| 386 | + * @param path file path | ||
| 387 | + * @param handle cached file handle | ||
| 315 | */ | 388 | */ |
| 316 | - public static void parseAttributeInfo(AttributeInfo attr, int genFileType, String className) { | 389 | + public static void parseAttributeInfo(AttributeInfo attr, int genFileType, String className, String path, |
| 390 | + CachedFileHandle handle) { | ||
| 317 | 391 | ||
| 318 | String attrString = ""; | 392 | String attrString = ""; |
| 319 | - String builderInterfaceMethodString = ""; | 393 | + |
| 320 | - String builderClassMethodString = ""; | ||
| 321 | - String implClassMethodString = ""; | ||
| 322 | String getterString = ""; | 394 | String getterString = ""; |
| 395 | + String getterImplString = ""; | ||
| 396 | + | ||
| 397 | + String setterString = ""; | ||
| 398 | + String setterImplString = ""; | ||
| 399 | + | ||
| 400 | + String constructorString = ""; | ||
| 401 | + String typeDefString = ""; | ||
| 402 | + | ||
| 403 | + String toString = ""; | ||
| 404 | + String hashCodeString = ""; | ||
| 405 | + String equalsString = ""; | ||
| 406 | + | ||
| 323 | className = JavaIdentifierSyntax.getCaptialCase(className); | 407 | className = JavaIdentifierSyntax.getCaptialCase(className); |
| 324 | 408 | ||
| 325 | try { | 409 | try { |
| ... | @@ -327,33 +411,124 @@ public final class JavaFileGenerator { | ... | @@ -327,33 +411,124 @@ public final class JavaFileGenerator { |
| 327 | * Get the attribute definition and save attributes to temporary | 411 | * Get the attribute definition and save attributes to temporary |
| 328 | * file. | 412 | * file. |
| 329 | */ | 413 | */ |
| 330 | - attrString = JavaCodeSnippetGen.getJavaAttributeDefination(attr.getImportInfo().getPkgInfo(), | 414 | + |
| 331 | - attr.getImportInfo().getClassInfo(), | 415 | + boolean isList = attr.isListAttr(); |
| 332 | - attr.getAttributeName()); | 416 | + String attributeName = JavaIdentifierSyntax.getLowerCase(attr.getAttributeName()); |
| 333 | - TempDataStore.setTempData(attrString, TempDataStore.TempDataStoreType.ATTRIBUTE, className); | 417 | + if (attr.isQualifiedName()) { |
| 418 | + attrString = JavaCodeSnippetGen.getJavaAttributeDefination(attr.getImportInfo().getPkgInfo(), | ||
| 419 | + attr.getImportInfo().getClassInfo(), | ||
| 420 | + attributeName, attr.isListAttr()); | ||
| 421 | + } else { | ||
| 422 | + attrString = JavaCodeSnippetGen.getJavaAttributeDefination(null, attr.getImportInfo().getClassInfo(), | ||
| 423 | + attributeName, attr.isListAttr()); | ||
| 424 | + } | ||
| 425 | + handle.setTempData(attrString + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION, | ||
| 426 | + TempDataStoreTypes.ATTRIBUTE, className, | ||
| 427 | + path); | ||
| 334 | 428 | ||
| 335 | if ((genFileType & INTERFACE_MASK) != 0) { | 429 | if ((genFileType & INTERFACE_MASK) != 0) { |
| 336 | getterString = MethodsGenerator.getGetterString(attr); | 430 | getterString = MethodsGenerator.getGetterString(attr); |
| 337 | - TempDataStore.setTempData(getterString, TempDataStore.TempDataStoreType.GETTER_METHODS, className); | 431 | + handle.setTempData(getterString + UtilConstants.NEW_LINE, |
| 432 | + TempDataStoreTypes.GETTER_METHODS, | ||
| 433 | + className, | ||
| 434 | + path); | ||
| 435 | + | ||
| 338 | } | 436 | } |
| 339 | 437 | ||
| 340 | if ((genFileType & BUILDER_INTERFACE_MASK) != 0) { | 438 | if ((genFileType & BUILDER_INTERFACE_MASK) != 0) { |
| 341 | - builderInterfaceMethodString = MethodsGenerator.parseBuilderInterfaceMethodString(attr, className); | 439 | + setterString = MethodsGenerator.getSetterString(attr, className); |
| 342 | - TempDataStore.setTempData(builderInterfaceMethodString, | 440 | + handle.setTempData(setterString + UtilConstants.NEW_LINE, |
| 343 | - TempDataStore.TempDataStoreType.BUILDER_INTERFACE_METHODS, | 441 | + TempDataStoreTypes.SETTER_METHODS, |
| 344 | - className + UtilConstants.BUILDER + UtilConstants.INTERFACE); | 442 | + className, |
| 443 | + path); | ||
| 345 | } | 444 | } |
| 346 | 445 | ||
| 347 | if ((genFileType & BUILDER_CLASS_MASK) != 0) { | 446 | if ((genFileType & BUILDER_CLASS_MASK) != 0) { |
| 348 | - builderClassMethodString = MethodsGenerator.parseBuilderMethodString(attr, className); | 447 | + getterImplString = MethodsGenerator.getGetterForClass(attr); |
| 349 | - TempDataStore.setTempData(builderClassMethodString, TempDataStore.TempDataStoreType.BUILDER_METHODS, | 448 | + handle.setTempData( |
| 350 | - className + UtilConstants.BUILDER); | 449 | + MethodsGenerator.getOverRideString() + getterImplString + UtilConstants.NEW_LINE, |
| 450 | + TempDataStoreTypes.GETTER_METHODS_IMPL, className, | ||
| 451 | + path); | ||
| 452 | + setterImplString = MethodsGenerator.getSetterForClass(attr, className); | ||
| 453 | + handle.setTempData( | ||
| 454 | + MethodsGenerator.getOverRideString() + setterImplString + UtilConstants.NEW_LINE, | ||
| 455 | + TempDataStoreTypes.SETTER_METHODS_IMPL, className, | ||
| 456 | + path); | ||
| 351 | } | 457 | } |
| 352 | 458 | ||
| 353 | if ((genFileType & IMPL_CLASS_MASK) != 0) { | 459 | if ((genFileType & IMPL_CLASS_MASK) != 0) { |
| 354 | - implClassMethodString = MethodsGenerator.parseImplMethodString(attr); | 460 | + constructorString = MethodsGenerator.getConstructor(className, attr); |
| 355 | - TempDataStore.setTempData(implClassMethodString, TempDataStore.TempDataStoreType.IMPL_METHODS, | 461 | + handle.setTempData(constructorString, TempDataStoreTypes.CONSTRUCTOR, className, |
| 356 | - className + UtilConstants.IMPL); | 462 | + path); |
| 463 | + | ||
| 464 | + hashCodeString = MethodsGenerator.getHashCodeMethod(attr); | ||
| 465 | + handle.setTempData(hashCodeString + UtilConstants.NEW_LINE, | ||
| 466 | + TempDataStoreTypes.HASH_CODE, | ||
| 467 | + className, | ||
| 468 | + path); | ||
| 469 | + equalsString = MethodsGenerator.getEqualsMethod(attr); | ||
| 470 | + handle.setTempData(equalsString + UtilConstants.NEW_LINE, | ||
| 471 | + TempDataStoreTypes.EQUALS, | ||
| 472 | + className, | ||
| 473 | + path); | ||
| 474 | + | ||
| 475 | + toString = MethodsGenerator.getToStringMethod(attr); | ||
| 476 | + handle.setTempData(toString + UtilConstants.NEW_LINE, | ||
| 477 | + TempDataStoreTypes.TO_STRING, | ||
| 478 | + className, | ||
| 479 | + path); | ||
| 480 | + | ||
| 481 | + } | ||
| 482 | + | ||
| 483 | + if ((genFileType & GENERATE_TYPEDEF_CLASS) != 0) { | ||
| 484 | + | ||
| 485 | + if (attr.isQualifiedName()) { | ||
| 486 | + typeDefString = JavaCodeSnippetGen.getJavaAttributeDefination(attr.getImportInfo().getPkgInfo(), | ||
| 487 | + attr.getImportInfo().getClassInfo(), | ||
| 488 | + attributeName, attr.isListAttr()) + UtilConstants.NEW_LINE; | ||
| 489 | + } else { | ||
| 490 | + typeDefString = JavaCodeSnippetGen.getJavaAttributeDefination(null, | ||
| 491 | + attr.getImportInfo().getClassInfo(), | ||
| 492 | + attributeName, attr.isListAttr()) + UtilConstants.NEW_LINE; | ||
| 493 | + } | ||
| 494 | + | ||
| 495 | + typeDefString = typeDefString + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
| 496 | + + UtilConstants.JAVA_DOC_FIRST_LINE; | ||
| 497 | + | ||
| 498 | + typeDefString = typeDefString | ||
| 499 | + + MethodsGenerator.getDefaultConstructorString(className, UtilConstants.PRIVATE) | ||
| 500 | + + UtilConstants.NEW_LINE; | ||
| 501 | + | ||
| 502 | + typeDefString = typeDefString | ||
| 503 | + + JavaDocGen.getJavaDoc(JavaDocType.TYPE_DEF_CONSTRUCTOR, className, isList) | ||
| 504 | + + MethodsGenerator.getTypeDefConstructor(attr, className) | ||
| 505 | + + UtilConstants.NEW_LINE; | ||
| 506 | + | ||
| 507 | + typeDefString = typeDefString + JavaDocGen.getJavaDoc(JavaDocType.OF, className, isList) | ||
| 508 | + + MethodsGenerator.getOfMethod(className, attr) + UtilConstants.NEW_LINE; | ||
| 509 | + | ||
| 510 | + typeDefString = typeDefString + JavaDocGen.getJavaDoc(JavaDocType.GETTER, className, isList) | ||
| 511 | + + MethodsGenerator.getGetterForClass(attr) + UtilConstants.NEW_LINE; | ||
| 512 | + | ||
| 513 | + typeDefString = typeDefString + JavaDocGen.getJavaDoc(JavaDocType.TYPE_DEF_SETTER, className, isList) | ||
| 514 | + + MethodsGenerator.getSetterForTypeDefClass(attr) | ||
| 515 | + + UtilConstants.NEW_LINE; | ||
| 516 | + | ||
| 517 | + hashCodeString = hashCodeString + MethodsGenerator.getHashCodeMethodOpen() | ||
| 518 | + + MethodsGenerator.getHashCodeMethod(attr).replace(UtilConstants.NEW_LINE, ""); | ||
| 519 | + hashCodeString = MethodsGenerator.getHashCodeMethodClose(hashCodeString) + UtilConstants.NEW_LINE; | ||
| 520 | + | ||
| 521 | + equalsString = equalsString + MethodsGenerator.getEqualsMethodOpen(className) + UtilConstants.NEW_LINE | ||
| 522 | + + MethodsGenerator.getEqualsMethod(attr); | ||
| 523 | + equalsString = MethodsGenerator.getEqualsMethodClose(equalsString) + UtilConstants.NEW_LINE; | ||
| 524 | + | ||
| 525 | + toString = toString + MethodsGenerator.getToStringMethodOpen() | ||
| 526 | + + MethodsGenerator.getToStringMethod(attr) + UtilConstants.NEW_LINE | ||
| 527 | + + MethodsGenerator.getToStringMethodClose() | ||
| 528 | + + UtilConstants.NEW_LINE; | ||
| 529 | + typeDefString = typeDefString + hashCodeString + equalsString + toString; | ||
| 530 | + handle.setTempData(typeDefString, TempDataStoreTypes.TYPE_DEF, className, | ||
| 531 | + path); | ||
| 357 | } | 532 | } |
| 358 | } catch (IOException e) { | 533 | } catch (IOException e) { |
| 359 | log.info("Failed to set data for " + attr.getAttributeName() + " in temp data files."); | 534 | log.info("Failed to set data for " + attr.getAttributeName() + " in temp data files."); |
| ... | @@ -368,18 +543,34 @@ public final class JavaFileGenerator { | ... | @@ -368,18 +543,34 @@ public final class JavaFileGenerator { |
| 368 | * @param fileName generated file name | 543 | * @param fileName generated file name |
| 369 | * @param type generated file type | 544 | * @param type generated file type |
| 370 | * @param pkg generated file package | 545 | * @param pkg generated file package |
| 371 | - * @param importsList list of java imports | 546 | + * @param importsList list of java imports. |
| 372 | * @throws IOException when fails to append contents | 547 | * @throws IOException when fails to append contents |
| 373 | */ | 548 | */ |
| 374 | private static void appendContents(File file, String fileName, int type, List<String> importsList, | 549 | private static void appendContents(File file, String fileName, int type, List<String> importsList, |
| 375 | String pkg) throws IOException { | 550 | String pkg) throws IOException { |
| 376 | 551 | ||
| 552 | + if (pkg.contains(UtilConstants.YANG_GEN_DIR)) { | ||
| 553 | + String[] strArray = pkg.split(UtilConstants.YANG_GEN_DIR); | ||
| 554 | + pkg = strArray[1].replace(UtilConstants.SLASH, UtilConstants.PERIOD); | ||
| 555 | + } | ||
| 556 | + | ||
| 377 | if ((type & IMPL_CLASS_MASK) != 0) { | 557 | if ((type & IMPL_CLASS_MASK) != 0) { |
| 378 | 558 | ||
| 379 | write(file, fileName, type, JavaDocType.IMPL_CLASS); | 559 | write(file, fileName, type, JavaDocType.IMPL_CLASS); |
| 380 | } else if ((type & BUILDER_INTERFACE_MASK) != 0) { | 560 | } else if ((type & BUILDER_INTERFACE_MASK) != 0) { |
| 381 | 561 | ||
| 382 | write(file, fileName, type, JavaDocType.BUILDER_INTERFACE); | 562 | write(file, fileName, type, JavaDocType.BUILDER_INTERFACE); |
| 563 | + } else if ((type & GENERATE_TYPEDEF_CLASS) != 0) { | ||
| 564 | + insert(file, CopyrightHeader.getCopyrightHeader()); | ||
| 565 | + insert(file, "package" + UtilConstants.SPACE + pkg + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE); | ||
| 566 | + if (importsList != null) { | ||
| 567 | + insert(file, UtilConstants.NEW_LINE); | ||
| 568 | + for (String imports : importsList) { | ||
| 569 | + insert(file, imports); | ||
| 570 | + } | ||
| 571 | + insert(file, UtilConstants.NEW_LINE); | ||
| 572 | + } | ||
| 573 | + write(file, fileName, type, JavaDocType.IMPL_CLASS); | ||
| 383 | } else { | 574 | } else { |
| 384 | 575 | ||
| 385 | if ((type & INTERFACE_MASK) != 0) { | 576 | if ((type & INTERFACE_MASK) != 0) { |
| ... | @@ -420,7 +611,7 @@ public final class JavaFileGenerator { | ... | @@ -420,7 +611,7 @@ public final class JavaFileGenerator { |
| 420 | private static void write(File file, String fileName, int genType, JavaDocGen.JavaDocType javaDocType) | 611 | private static void write(File file, String fileName, int genType, JavaDocGen.JavaDocType javaDocType) |
| 421 | throws IOException { | 612 | throws IOException { |
| 422 | 613 | ||
| 423 | - insert(file, JavaDocGen.getJavaDoc(javaDocType, fileName)); | 614 | + insert(file, JavaDocGen.getJavaDoc(javaDocType, fileName, false)); |
| 424 | insert(file, JavaCodeSnippetGen.getJavaClassDefStart(genType, fileName)); | 615 | insert(file, JavaCodeSnippetGen.getJavaClassDefStart(genType, fileName)); |
| 425 | } | 616 | } |
| 426 | 617 | ||
| ... | @@ -433,13 +624,27 @@ public final class JavaFileGenerator { | ... | @@ -433,13 +624,27 @@ public final class JavaFileGenerator { |
| 433 | */ | 624 | */ |
| 434 | public static void insert(File file, String data) throws IOException { | 625 | public static void insert(File file, String data) throws IOException { |
| 435 | try { | 626 | try { |
| 436 | - FileSystemUtil.insertStringInFile(file, data); | 627 | + FileSystemUtil.updateFileHandle(file, data, false); |
| 437 | } catch (IOException e) { | 628 | } catch (IOException e) { |
| 438 | throw new IOException("Failed to insert in " + file + "file"); | 629 | throw new IOException("Failed to insert in " + file + "file"); |
| 439 | } | 630 | } |
| 440 | } | 631 | } |
| 441 | 632 | ||
| 442 | /** | 633 | /** |
| 634 | + * Closes the files handle for generate files. | ||
| 635 | + * | ||
| 636 | + * @param file generate files | ||
| 637 | + * @throws IOException when failed to close the file handle | ||
| 638 | + */ | ||
| 639 | + public static void closeFileHandles(File file) throws IOException { | ||
| 640 | + try { | ||
| 641 | + FileSystemUtil.updateFileHandle(file, null, true); | ||
| 642 | + } catch (IOException e) { | ||
| 643 | + throw new IOException("Failed to close file handle for " + file + "file"); | ||
| 644 | + } | ||
| 645 | + } | ||
| 646 | + | ||
| 647 | + /** | ||
| 443 | * Removes temp files. | 648 | * Removes temp files. |
| 444 | * | 649 | * |
| 445 | * @param file file to be removed | 650 | * @param file file to be removed |
| ... | @@ -449,4 +654,14 @@ public final class JavaFileGenerator { | ... | @@ -449,4 +654,14 @@ public final class JavaFileGenerator { |
| 449 | file.delete(); | 654 | file.delete(); |
| 450 | } | 655 | } |
| 451 | } | 656 | } |
| 657 | + | ||
| 658 | + /** | ||
| 659 | + * Removes temp files. | ||
| 660 | + * | ||
| 661 | + * @param tempDir temp directory | ||
| 662 | + * @throws IOException when fails to delete the directory | ||
| 663 | + */ | ||
| 664 | + public static void cleanTempFiles(File tempDir) throws IOException { | ||
| 665 | + FileUtils.deleteDirectory(tempDir); | ||
| 666 | + } | ||
| 452 | } | 667 | } | ... | ... |
| ... | @@ -31,7 +31,6 @@ public final class JavaIdentifierSyntax { | ... | @@ -31,7 +31,6 @@ public final class JavaIdentifierSyntax { |
| 31 | private static final int INDEX_ZERO = 0; | 31 | private static final int INDEX_ZERO = 0; |
| 32 | private static final int INDEX_ONE = 1; | 32 | private static final int INDEX_ONE = 1; |
| 33 | private static final int INDEX_TWO = 2; | 33 | private static final int INDEX_TWO = 2; |
| 34 | - private static final int INDEX_THREE = 3; | ||
| 35 | 34 | ||
| 36 | /** | 35 | /** |
| 37 | * Default constructor. | 36 | * Default constructor. |
| ... | @@ -100,9 +99,7 @@ public final class JavaIdentifierSyntax { | ... | @@ -100,9 +99,7 @@ public final class JavaIdentifierSyntax { |
| 100 | String[] revisionArr = date.split(UtilConstants.HYPHEN); | 99 | String[] revisionArr = date.split(UtilConstants.HYPHEN); |
| 101 | 100 | ||
| 102 | String rev = "rev"; | 101 | String rev = "rev"; |
| 103 | - String year = revisionArr[INDEX_ZERO]; | 102 | + rev = rev + revisionArr[INDEX_ZERO]; |
| 104 | - char[] yearBytes = year.toCharArray(); | ||
| 105 | - rev = rev + yearBytes[INDEX_TWO] + yearBytes[INDEX_THREE]; | ||
| 106 | 103 | ||
| 107 | if ((Integer.parseInt(revisionArr[INDEX_ONE]) <= MAX_MONTHS) | 104 | if ((Integer.parseInt(revisionArr[INDEX_ONE]) <= MAX_MONTHS) |
| 108 | && Integer.parseInt(revisionArr[INDEX_TWO]) <= MAX_DAYS) { | 105 | && Integer.parseInt(revisionArr[INDEX_TWO]) <= MAX_DAYS) { | ... | ... |
| ... | @@ -19,6 +19,7 @@ package org.onosproject.yangutils.translator.tojava.utils; | ... | @@ -19,6 +19,7 @@ package org.onosproject.yangutils.translator.tojava.utils; |
| 19 | import org.onosproject.yangutils.translator.tojava.AttributeInfo; | 19 | import org.onosproject.yangutils.translator.tojava.AttributeInfo; |
| 20 | import org.onosproject.yangutils.utils.UtilConstants; | 20 | import org.onosproject.yangutils.utils.UtilConstants; |
| 21 | import org.onosproject.yangutils.utils.io.impl.JavaDocGen; | 21 | import org.onosproject.yangutils.utils.io.impl.JavaDocGen; |
| 22 | +import org.onosproject.yangutils.utils.io.impl.YangIoUtils; | ||
| 22 | 23 | ||
| 23 | /** | 24 | /** |
| 24 | * Generated methods for generated files based on the file type. | 25 | * Generated methods for generated files based on the file type. |
| ... | @@ -32,45 +33,6 @@ public final class MethodsGenerator { | ... | @@ -32,45 +33,6 @@ public final class MethodsGenerator { |
| 32 | } | 33 | } |
| 33 | 34 | ||
| 34 | /** | 35 | /** |
| 35 | - * Returns the methods strings for builder class. | ||
| 36 | - * | ||
| 37 | - * @param attr attribute info | ||
| 38 | - * @param className java class name | ||
| 39 | - * @return method string for builder class | ||
| 40 | - */ | ||
| 41 | - static String parseBuilderMethodString(AttributeInfo attr, String className) { | ||
| 42 | - String attrQuaifiedType = ""; | ||
| 43 | - if (attr.getImportInfo().getPkgInfo() != null) { | ||
| 44 | - attrQuaifiedType = attr.getImportInfo().getPkgInfo() + "."; | ||
| 45 | - } | ||
| 46 | - attrQuaifiedType = attrQuaifiedType + attr.getImportInfo().getClassInfo(); | ||
| 47 | - | ||
| 48 | - String overrideString = UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
| 49 | - + UtilConstants.OVERRIDE + UtilConstants.NEW_LINE; | ||
| 50 | - String getterString = getGetterForClass(attr.getAttributeName(), attrQuaifiedType); | ||
| 51 | - String setterString = getSetterForClass(attr.getAttributeName(), attrQuaifiedType, className); | ||
| 52 | - return overrideString + getterString + UtilConstants.NEW_LINE + overrideString + setterString; | ||
| 53 | - } | ||
| 54 | - | ||
| 55 | - /** | ||
| 56 | - * Returns the methods strings for builder class. | ||
| 57 | - * | ||
| 58 | - * @param attr attribute info | ||
| 59 | - * @return method string for builder class | ||
| 60 | - */ | ||
| 61 | - static String parseImplMethodString(AttributeInfo attr) { | ||
| 62 | - | ||
| 63 | - String attrQuaifiedType = ""; | ||
| 64 | - if (attr.getImportInfo().getPkgInfo() != null) { | ||
| 65 | - attrQuaifiedType = attr.getImportInfo().getPkgInfo() + "."; | ||
| 66 | - } | ||
| 67 | - attrQuaifiedType = attrQuaifiedType + attr.getImportInfo().getClassInfo(); | ||
| 68 | - | ||
| 69 | - return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.OVERRIDE | ||
| 70 | - + UtilConstants.NEW_LINE + getGetterForClass(attr.getAttributeName(), attrQuaifiedType); | ||
| 71 | - } | ||
| 72 | - | ||
| 73 | - /** | ||
| 74 | * Returns the methods strings for builder interface. | 36 | * Returns the methods strings for builder interface. |
| 75 | * | 37 | * |
| 76 | * @param attr attribute info | 38 | * @param attr attribute info |
| ... | @@ -90,7 +52,7 @@ public final class MethodsGenerator { | ... | @@ -90,7 +52,7 @@ public final class MethodsGenerator { |
| 90 | */ | 52 | */ |
| 91 | public static String parseBuilderInterfaceBuildMethodString(String name) { | 53 | public static String parseBuilderInterfaceBuildMethodString(String name) { |
| 92 | 54 | ||
| 93 | - return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.BUILD, name) | 55 | + return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.BUILD, name, false) |
| 94 | + getBuildForInterface(name); | 56 | + getBuildForInterface(name); |
| 95 | } | 57 | } |
| 96 | 58 | ||
| ... | @@ -103,14 +65,17 @@ public final class MethodsGenerator { | ... | @@ -103,14 +65,17 @@ public final class MethodsGenerator { |
| 103 | public static String getGetterString(AttributeInfo attr) { | 65 | public static String getGetterString(AttributeInfo attr) { |
| 104 | 66 | ||
| 105 | String returnType = ""; | 67 | String returnType = ""; |
| 106 | - if (attr.getImportInfo().getPkgInfo() != null) { | 68 | + boolean isList = attr.isListAttr(); |
| 69 | + if (attr.isQualifiedName() && (attr.getImportInfo().getPkgInfo() != null)) { | ||
| 107 | returnType = attr.getImportInfo().getPkgInfo() + "."; | 70 | returnType = attr.getImportInfo().getPkgInfo() + "."; |
| 108 | } | 71 | } |
| 109 | 72 | ||
| 110 | returnType = returnType + attr.getImportInfo().getClassInfo(); | 73 | returnType = returnType + attr.getImportInfo().getClassInfo(); |
| 74 | + String attributeName = JavaIdentifierSyntax.getLowerCase(attr.getAttributeName()); | ||
| 75 | + | ||
| 76 | + return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.GETTER, attributeName, isList) + | ||
| 111 | 77 | ||
| 112 | - return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.GETTER, attr.getAttributeName()) | 78 | + getGetterForInterface(attributeName, returnType, attr.isListAttr()) |
| 113 | - + getGetterForInterface(attr.getAttributeName(), returnType) | ||
| 114 | + UtilConstants.NEW_LINE; | 79 | + UtilConstants.NEW_LINE; |
| 115 | } | 80 | } |
| 116 | 81 | ||
| ... | @@ -121,17 +86,20 @@ public final class MethodsGenerator { | ... | @@ -121,17 +86,20 @@ public final class MethodsGenerator { |
| 121 | * @param className java class name | 86 | * @param className java class name |
| 122 | * @return setter string | 87 | * @return setter string |
| 123 | */ | 88 | */ |
| 124 | - private static String getSetterString(AttributeInfo attr, String className) { | 89 | + public static String getSetterString(AttributeInfo attr, String className) { |
| 125 | 90 | ||
| 126 | String attrType = ""; | 91 | String attrType = ""; |
| 127 | - if (attr.getImportInfo().getPkgInfo() != null) { | 92 | + boolean isList = attr.isListAttr(); |
| 93 | + if (attr.isQualifiedName() && (attr.getImportInfo().getPkgInfo() != null)) { | ||
| 128 | attrType = attr.getImportInfo().getPkgInfo() + "."; | 94 | attrType = attr.getImportInfo().getPkgInfo() + "."; |
| 129 | } | 95 | } |
| 130 | 96 | ||
| 131 | attrType = attrType + attr.getImportInfo().getClassInfo(); | 97 | attrType = attrType + attr.getImportInfo().getClassInfo(); |
| 98 | + String attributeName = JavaIdentifierSyntax.getLowerCase(attr.getAttributeName()); | ||
| 132 | 99 | ||
| 133 | - return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.SETTER, attr.getAttributeName()) | 100 | + return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.SETTER, attributeName, isList) |
| 134 | - + getSetterForInterface(attr.getAttributeName(), attrType, className); | 101 | + + getSetterForInterface(attributeName, attrType, className, attr.isListAttr()) |
| 102 | + + UtilConstants.NEW_LINE; | ||
| 135 | } | 103 | } |
| 136 | 104 | ||
| 137 | /** | 105 | /** |
| ... | @@ -142,21 +110,75 @@ public final class MethodsGenerator { | ... | @@ -142,21 +110,75 @@ public final class MethodsGenerator { |
| 142 | */ | 110 | */ |
| 143 | public static String getConstructorString(String name) { | 111 | public static String getConstructorString(String name) { |
| 144 | 112 | ||
| 145 | - return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.CONSTRUCTOR, name) | 113 | + return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.CONSTRUCTOR, name, false); |
| 146 | - + getConstructor(name); | ||
| 147 | } | 114 | } |
| 148 | 115 | ||
| 149 | /** | 116 | /** |
| 150 | * Returns default constructor method string. | 117 | * Returns default constructor method string. |
| 151 | * | 118 | * |
| 152 | - * @param type generated file type | ||
| 153 | * @param name class name | 119 | * @param name class name |
| 120 | + * @param modifierType modifier type | ||
| 154 | * @return default constructor string | 121 | * @return default constructor string |
| 155 | */ | 122 | */ |
| 156 | - public static String getDefaultConstructorString(int type, String name) { | 123 | + public static String getDefaultConstructorString(String name, String modifierType) { |
| 157 | 124 | ||
| 158 | - return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.DEFAULT_CONSTRUCTOR, name) | 125 | + return JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.DEFAULT_CONSTRUCTOR, name, false) |
| 159 | - + getDefaultConstructor(name + UtilConstants.BUILDER); | 126 | + + getDefaultConstructor(name, modifierType); |
| 127 | + } | ||
| 128 | + | ||
| 129 | + /** | ||
| 130 | + * Returns default constructor method string. | ||
| 131 | + * | ||
| 132 | + * @param attr attribute info | ||
| 133 | + * @param className class name | ||
| 134 | + * @return default constructor string | ||
| 135 | + */ | ||
| 136 | + public static String getTypeDefConstructor(AttributeInfo attr, String className) { | ||
| 137 | + | ||
| 138 | + String attrQuaifiedType = ""; | ||
| 139 | + if (attr.isQualifiedName() && (attr.getImportInfo().getPkgInfo() != null)) { | ||
| 140 | + attrQuaifiedType = attr.getImportInfo().getPkgInfo() + "."; | ||
| 141 | + } | ||
| 142 | + attrQuaifiedType = attrQuaifiedType + attr.getImportInfo().getClassInfo(); | ||
| 143 | + String attributeName = JavaIdentifierSyntax.getLowerCase(attr.getAttributeName()); | ||
| 144 | + | ||
| 145 | + if (!attr.isListAttr()) { | ||
| 146 | + return getTypeDefConstructorString(attrQuaifiedType, attributeName, className); | ||
| 147 | + } | ||
| 148 | + String listAttr = getListString() + attrQuaifiedType + UtilConstants.DIAMOND_CLOSE_BRACKET; | ||
| 149 | + return getTypeDefConstructorString(listAttr, attributeName, className); | ||
| 150 | + } | ||
| 151 | + | ||
| 152 | + /** | ||
| 153 | + * Returns type def's constructor for attribute. | ||
| 154 | + * | ||
| 155 | + * @param type data type | ||
| 156 | + * @param name attribute name | ||
| 157 | + * @param className class name | ||
| 158 | + * @return setter for type def's attribute | ||
| 159 | + */ | ||
| 160 | + private static String getTypeDefConstructorString(String type, String name, String className) { | ||
| 161 | + | ||
| 162 | + return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE | ||
| 163 | + + className + UtilConstants.OPEN_PARENTHESIS | ||
| 164 | + + type + UtilConstants.SPACE + "value" + UtilConstants.CLOSE_PARENTHESIS | ||
| 165 | + + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE | ||
| 166 | + + UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.THIS | ||
| 167 | + + UtilConstants.PERIOD + name + UtilConstants.SPACE + UtilConstants.EQUAL + UtilConstants.SPACE | ||
| 168 | + + "value" + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
| 169 | + + UtilConstants.CLOSE_CURLY_BRACKET; | ||
| 170 | + } | ||
| 171 | + | ||
| 172 | + /** | ||
| 173 | + * Returns check not null string. | ||
| 174 | + * | ||
| 175 | + * @param name attribute name | ||
| 176 | + * @return check not null string | ||
| 177 | + */ | ||
| 178 | + public static String getCheckNotNull(String name) { | ||
| 179 | + return UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.CHECK_NOT_NULL_STRING | ||
| 180 | + + UtilConstants.OPEN_PARENTHESIS + name + UtilConstants.COMMA + UtilConstants.SPACE + name | ||
| 181 | + + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE; | ||
| 160 | } | 182 | } |
| 161 | 183 | ||
| 162 | /** | 184 | /** |
| ... | @@ -174,56 +196,171 @@ public final class MethodsGenerator { | ... | @@ -174,56 +196,171 @@ public final class MethodsGenerator { |
| 174 | /** | 196 | /** |
| 175 | * Returns the getter method strings for class file. | 197 | * Returns the getter method strings for class file. |
| 176 | * | 198 | * |
| 177 | - * @param attrName name of the attribute | 199 | + * @param attr attribute info |
| 178 | - * @param attrType return type of attribute | ||
| 179 | * @return getter method for class | 200 | * @return getter method for class |
| 180 | */ | 201 | */ |
| 181 | - private static String getGetterForClass(String attrName, String attrType) { | 202 | + public static String getGetterForClass(AttributeInfo attr) { |
| 203 | + | ||
| 204 | + String attrQuaifiedType = ""; | ||
| 205 | + if (attr.isQualifiedName() && (attr.getImportInfo().getPkgInfo() != null)) { | ||
| 206 | + attrQuaifiedType = attr.getImportInfo().getPkgInfo() + "."; | ||
| 207 | + } | ||
| 208 | + attrQuaifiedType = attrQuaifiedType + attr.getImportInfo().getClassInfo(); | ||
| 209 | + String attributeName = JavaIdentifierSyntax.getLowerCase(attr.getAttributeName()); | ||
| 210 | + | ||
| 211 | + if (!attr.isListAttr()) { | ||
| 212 | + return getGetter(attrQuaifiedType, attributeName); | ||
| 213 | + } | ||
| 214 | + String listAttr = getListString() + attrQuaifiedType + UtilConstants.DIAMOND_CLOSE_BRACKET; | ||
| 215 | + return getGetter(listAttr, attributeName); | ||
| 216 | + } | ||
| 217 | + | ||
| 218 | + /** | ||
| 219 | + * Returns getter for attribute. | ||
| 220 | + * | ||
| 221 | + * @param type return type | ||
| 222 | + * @param name attribute name | ||
| 223 | + * @return getter for attribute | ||
| 224 | + */ | ||
| 225 | + private static String getGetter(String type, String name) { | ||
| 182 | 226 | ||
| 183 | return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE | 227 | return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE |
| 184 | - + attrType + UtilConstants.SPACE + UtilConstants.GET_METHOD_PREFIX | 228 | + + type + UtilConstants.SPACE + UtilConstants.GET_METHOD_PREFIX |
| 185 | - + JavaIdentifierSyntax.getCaptialCase(attrName) + UtilConstants.OPEN_PARENTHESIS | 229 | + + JavaIdentifierSyntax.getCaptialCase(name) + UtilConstants.OPEN_PARENTHESIS |
| 186 | + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET | 230 | + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET |
| 187 | + UtilConstants.NEW_LINE + UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.RETURN | 231 | + UtilConstants.NEW_LINE + UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.RETURN |
| 188 | - + UtilConstants.SPACE + attrName + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE | 232 | + + UtilConstants.SPACE + name + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE |
| 189 | + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.CLOSE_CURLY_BRACKET; | 233 | + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.CLOSE_CURLY_BRACKET; |
| 190 | } | 234 | } |
| 191 | 235 | ||
| 192 | /** | 236 | /** |
| 193 | * Returns the setter method strings for class file. | 237 | * Returns the setter method strings for class file. |
| 194 | * | 238 | * |
| 195 | - * @param attrName name of the attribute | 239 | + * @param attr attribute info |
| 196 | - * @param attrType return type of attribute | ||
| 197 | * @param className name of the class | 240 | * @param className name of the class |
| 198 | * @return setter method for class | 241 | * @return setter method for class |
| 199 | */ | 242 | */ |
| 200 | - private static String getSetterForClass(String attrName, String attrType, String className) { | 243 | + public static String getSetterForClass(AttributeInfo attr, String className) { |
| 244 | + | ||
| 245 | + String attrQuaifiedType = ""; | ||
| 246 | + if (attr.isQualifiedName() && (attr.getImportInfo().getPkgInfo() != null)) { | ||
| 247 | + attrQuaifiedType = attr.getImportInfo().getPkgInfo() + "."; | ||
| 248 | + } | ||
| 249 | + attrQuaifiedType = attrQuaifiedType + attr.getImportInfo().getClassInfo(); | ||
| 250 | + String attributeName = JavaIdentifierSyntax.getLowerCase(attr.getAttributeName()); | ||
| 251 | + if (!attr.isListAttr()) { | ||
| 252 | + return getSetter(className, attributeName, attrQuaifiedType); | ||
| 253 | + } | ||
| 254 | + String listAttr = getListString() + attrQuaifiedType + UtilConstants.DIAMOND_CLOSE_BRACKET; | ||
| 255 | + return getSetter(className, attributeName, listAttr); | ||
| 256 | + } | ||
| 257 | + | ||
| 258 | + /** | ||
| 259 | + * Returns setter for attribute. | ||
| 260 | + * | ||
| 261 | + * @param className class name | ||
| 262 | + * @param name attribute name | ||
| 263 | + * @param type return type | ||
| 264 | + * @return setter for attribute | ||
| 265 | + */ | ||
| 266 | + private static String getSetter(String className, String name, String type) { | ||
| 201 | 267 | ||
| 202 | return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE | 268 | return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE |
| 203 | + className + UtilConstants.BUILDER + UtilConstants.SPACE + UtilConstants.SET_METHOD_PREFIX | 269 | + className + UtilConstants.BUILDER + UtilConstants.SPACE + UtilConstants.SET_METHOD_PREFIX |
| 204 | - + JavaIdentifierSyntax.getCaptialCase(attrName) + UtilConstants.OPEN_PARENTHESIS | 270 | + + JavaIdentifierSyntax.getCaptialCase(name) + UtilConstants.OPEN_PARENTHESIS |
| 205 | - + attrType + UtilConstants.SPACE + attrName + UtilConstants.CLOSE_PARENTHESIS | 271 | + + type + UtilConstants.SPACE + name + UtilConstants.CLOSE_PARENTHESIS |
| 206 | + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE | 272 | + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE |
| 207 | + UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.THIS + UtilConstants.PERIOD | 273 | + UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.THIS + UtilConstants.PERIOD |
| 208 | - + attrName + UtilConstants.SPACE + UtilConstants.EQUAL + UtilConstants.SPACE + attrName | 274 | + + name + UtilConstants.SPACE + UtilConstants.EQUAL + UtilConstants.SPACE |
| 209 | - + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE + UtilConstants.EIGHT_SPACE_INDENTATION | 275 | + + name + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE + UtilConstants.EIGHT_SPACE_INDENTATION |
| 210 | + UtilConstants.RETURN + UtilConstants.SPACE + UtilConstants.THIS + UtilConstants.SEMI_COLAN | 276 | + UtilConstants.RETURN + UtilConstants.SPACE + UtilConstants.THIS + UtilConstants.SEMI_COLAN |
| 211 | + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.CLOSE_CURLY_BRACKET; | 277 | + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.CLOSE_CURLY_BRACKET; |
| 212 | } | 278 | } |
| 213 | 279 | ||
| 214 | /** | 280 | /** |
| 281 | + * Returns the setter method strings for class file. | ||
| 282 | + * | ||
| 283 | + * @param attr attribute info | ||
| 284 | + * @return setter method for class | ||
| 285 | + */ | ||
| 286 | + public static String getSetterForTypeDefClass(AttributeInfo attr) { | ||
| 287 | + | ||
| 288 | + String attrQuaifiedType = ""; | ||
| 289 | + if (attr.isQualifiedName() && (attr.getImportInfo().getPkgInfo() != null)) { | ||
| 290 | + attrQuaifiedType = attr.getImportInfo().getPkgInfo() + "."; | ||
| 291 | + } | ||
| 292 | + attrQuaifiedType = attrQuaifiedType + attr.getImportInfo().getClassInfo(); | ||
| 293 | + String attributeName = JavaIdentifierSyntax.getLowerCase(attr.getAttributeName()); | ||
| 294 | + | ||
| 295 | + if (!attr.isListAttr()) { | ||
| 296 | + return getTypeDefSetter(attrQuaifiedType, attributeName); | ||
| 297 | + } | ||
| 298 | + String listAttr = getListString() + attrQuaifiedType + UtilConstants.DIAMOND_CLOSE_BRACKET; | ||
| 299 | + return getTypeDefSetter(listAttr, attributeName); | ||
| 300 | + } | ||
| 301 | + | ||
| 302 | + /** | ||
| 303 | + * Returns type def's setter for attribute. | ||
| 304 | + * | ||
| 305 | + * @param type data type | ||
| 306 | + * @param name attribute name | ||
| 307 | + * @return setter for type def's attribute | ||
| 308 | + */ | ||
| 309 | + private static String getTypeDefSetter(String type, String name) { | ||
| 310 | + | ||
| 311 | + return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE | ||
| 312 | + + UtilConstants.VOID + UtilConstants.SPACE + UtilConstants.SET_METHOD_PREFIX | ||
| 313 | + + JavaIdentifierSyntax.getCaptialCase(name) + UtilConstants.OPEN_PARENTHESIS | ||
| 314 | + + type + UtilConstants.SPACE + "value" + UtilConstants.CLOSE_PARENTHESIS | ||
| 315 | + + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE | ||
| 316 | + + UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.THIS + UtilConstants.PERIOD | ||
| 317 | + + name + UtilConstants.SPACE + UtilConstants.EQUAL + UtilConstants.SPACE | ||
| 318 | + + "value" + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
| 319 | + + UtilConstants.CLOSE_CURLY_BRACKET; | ||
| 320 | + } | ||
| 321 | + | ||
| 322 | + /** | ||
| 323 | + * Returns override string. | ||
| 324 | + * | ||
| 325 | + * @return override string | ||
| 326 | + */ | ||
| 327 | + public static String getOverRideString() { | ||
| 328 | + return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
| 329 | + + UtilConstants.OVERRIDE + UtilConstants.NEW_LINE; | ||
| 330 | + } | ||
| 331 | + | ||
| 332 | + /** | ||
| 215 | * Returns the getter method strings for interface file. | 333 | * Returns the getter method strings for interface file. |
| 216 | * | 334 | * |
| 217 | * @param yangName name of the attribute | 335 | * @param yangName name of the attribute |
| 218 | * @param returnType return type of attribute | 336 | * @param returnType return type of attribute |
| 337 | + * @param isList is list attribute | ||
| 219 | * @return getter method for interface | 338 | * @return getter method for interface |
| 220 | */ | 339 | */ |
| 221 | - private static String getGetterForInterface(String yangName, String returnType) { | 340 | + public static String getGetterForInterface(String yangName, String returnType, boolean isList) { |
| 341 | + | ||
| 342 | + if (!isList) { | ||
| 343 | + return getGetterInterfaceString(returnType, yangName); | ||
| 344 | + } | ||
| 345 | + String listAttr = getListString() + returnType + UtilConstants.DIAMOND_CLOSE_BRACKET; | ||
| 346 | + return getGetterInterfaceString(listAttr, yangName); | ||
| 347 | + } | ||
| 348 | + | ||
| 349 | + /** | ||
| 350 | + * Returns getter for attribute in interface. | ||
| 351 | + * | ||
| 352 | + * @param returnType return type | ||
| 353 | + * @param yangName attribute name | ||
| 354 | + * @return getter for interface | ||
| 355 | + */ | ||
| 356 | + private static String getGetterInterfaceString(String returnType, String yangName) { | ||
| 357 | + | ||
| 222 | return UtilConstants.FOUR_SPACE_INDENTATION + returnType | 358 | return UtilConstants.FOUR_SPACE_INDENTATION + returnType |
| 223 | + UtilConstants.SPACE + UtilConstants.GET_METHOD_PREFIX | 359 | + UtilConstants.SPACE + UtilConstants.GET_METHOD_PREFIX |
| 224 | + JavaIdentifierSyntax.getCaptialCase(yangName) | 360 | + JavaIdentifierSyntax.getCaptialCase(yangName) |
| 225 | + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS | 361 | + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS |
| 226 | + UtilConstants.SEMI_COLAN; | 362 | + UtilConstants.SEMI_COLAN; |
| 363 | + | ||
| 227 | } | 364 | } |
| 228 | 365 | ||
| 229 | /** | 366 | /** |
| ... | @@ -232,9 +369,28 @@ public final class MethodsGenerator { | ... | @@ -232,9 +369,28 @@ public final class MethodsGenerator { |
| 232 | * @param attrName name of the attribute | 369 | * @param attrName name of the attribute |
| 233 | * @param attrType return type of attribute | 370 | * @param attrType return type of attribute |
| 234 | * @param className name of the java class being generated | 371 | * @param className name of the java class being generated |
| 372 | + * @param isList is list attribute | ||
| 235 | * @return setter method for interface | 373 | * @return setter method for interface |
| 236 | */ | 374 | */ |
| 237 | - private static String getSetterForInterface(String attrName, String attrType, String className) { | 375 | + public static String getSetterForInterface(String attrName, String attrType, String className, boolean isList) { |
| 376 | + | ||
| 377 | + if (!isList) { | ||
| 378 | + return getSetterInterfaceString(className, attrName, attrType); | ||
| 379 | + } | ||
| 380 | + String listAttr = getListString() + attrType + UtilConstants.DIAMOND_CLOSE_BRACKET; | ||
| 381 | + return getSetterInterfaceString(className, attrName, listAttr); | ||
| 382 | + } | ||
| 383 | + | ||
| 384 | + /** | ||
| 385 | + * Returns setter string for interface. | ||
| 386 | + * | ||
| 387 | + * @param className class name | ||
| 388 | + * @param attrName attribute name | ||
| 389 | + * @param attrType attribute type | ||
| 390 | + * @return setter string | ||
| 391 | + */ | ||
| 392 | + private static String getSetterInterfaceString(String className, String attrName, String attrType) { | ||
| 393 | + | ||
| 238 | return UtilConstants.FOUR_SPACE_INDENTATION + className + UtilConstants.BUILDER | 394 | return UtilConstants.FOUR_SPACE_INDENTATION + className + UtilConstants.BUILDER |
| 239 | + UtilConstants.SPACE + UtilConstants.SET_METHOD_PREFIX | 395 | + UtilConstants.SPACE + UtilConstants.SET_METHOD_PREFIX |
| 240 | + JavaIdentifierSyntax.getCaptialCase(attrName) + UtilConstants.OPEN_PARENTHESIS | 396 | + JavaIdentifierSyntax.getCaptialCase(attrName) + UtilConstants.OPEN_PARENTHESIS |
| ... | @@ -243,48 +399,47 @@ public final class MethodsGenerator { | ... | @@ -243,48 +399,47 @@ public final class MethodsGenerator { |
| 243 | } | 399 | } |
| 244 | 400 | ||
| 245 | /** | 401 | /** |
| 402 | + * Returns list string. | ||
| 403 | + * | ||
| 404 | + * @return list string | ||
| 405 | + */ | ||
| 406 | + private static String getListString() { | ||
| 407 | + return UtilConstants.LIST + UtilConstants.DIAMOND_OPEN_BRACKET; | ||
| 408 | + } | ||
| 409 | + | ||
| 410 | + /** | ||
| 246 | * Returns the build method strings for interface file. | 411 | * Returns the build method strings for interface file. |
| 247 | * | 412 | * |
| 248 | * @param yangName name of the interface | 413 | * @param yangName name of the interface |
| 249 | * @return build method for interface | 414 | * @return build method for interface |
| 250 | */ | 415 | */ |
| 251 | - private static String getBuildForInterface(String yangName) { | 416 | + public static String getBuildForInterface(String yangName) { |
| 252 | 417 | ||
| 253 | return UtilConstants.FOUR_SPACE_INDENTATION + yangName + UtilConstants.SPACE + UtilConstants.BUILD | 418 | return UtilConstants.FOUR_SPACE_INDENTATION + yangName + UtilConstants.SPACE + UtilConstants.BUILD |
| 254 | - + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SEMI_COLAN; | 419 | + + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SEMI_COLAN |
| 420 | + + UtilConstants.NEW_LINE; | ||
| 255 | } | 421 | } |
| 256 | 422 | ||
| 257 | /** | 423 | /** |
| 258 | * Returns the constructor strings for class file. | 424 | * Returns the constructor strings for class file. |
| 259 | * | 425 | * |
| 260 | * @param yangName name of the class | 426 | * @param yangName name of the class |
| 427 | + * @param attr attribute info | ||
| 261 | * @return constructor for class | 428 | * @return constructor for class |
| 262 | */ | 429 | */ |
| 263 | - private static String getConstructor(String yangName) { | 430 | + public static String getConstructor(String yangName, AttributeInfo attr) { |
| 264 | - | 431 | + |
| 265 | - String builderAttribute = yangName.substring(0, 1).toLowerCase() + yangName.substring(1); | 432 | + String builderAttribute = JavaIdentifierSyntax.getLowerCase(yangName); |
| 266 | - String constructor = UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE | 433 | + String attributeName = JavaIdentifierSyntax.getLowerCase(attr.getAttributeName()); |
| 267 | - + yangName + UtilConstants.IMPL + UtilConstants.OPEN_PARENTHESIS + yangName + UtilConstants.BUILDER | 434 | + String constructor = UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.THIS |
| 268 | - + UtilConstants.SPACE + builderAttribute + UtilConstants.OBJECT + UtilConstants.CLOSE_PARENTHESIS | 435 | + + UtilConstants.PERIOD + JavaIdentifierSyntax.getCamelCase(attributeName) |
| 269 | - + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE; | 436 | + + UtilConstants.SPACE + UtilConstants.EQUAL + UtilConstants.SPACE + builderAttribute |
| 270 | - | 437 | + + UtilConstants.OBJECT + UtilConstants.PERIOD + UtilConstants.GET_METHOD_PREFIX |
| 271 | - // TODO: need to get the partial constructor from constructor temp file. | 438 | + + JavaIdentifierSyntax.getCaptialCase(JavaIdentifierSyntax.getCamelCase(attributeName)) |
| 272 | - // if (getAttrInfo() != null) { | 439 | + + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SEMI_COLAN |
| 273 | - // for (AttributeInfo attribute : getAttrInfo()) { | 440 | + + UtilConstants.NEW_LINE; |
| 274 | - // attribute.setAttributeName(JavaIdentifierSyntax.getCamelCase(attribute.getAttributeName())); | ||
| 275 | - // constructor = constructor + UtilConstants.TWELVE_SPACE_INDENTATION + UtilConstants.THIS | ||
| 276 | - // + UtilConstants.PERIOD + attribute.getAttributeName() + UtilConstants.SPACE | ||
| 277 | - // + UtilConstants.EQUAL + UtilConstants.SPACE + builderAttribute + UtilConstants.OBJECT | ||
| 278 | - // + UtilConstants.PERIOD + UtilConstants.GET_METHOD_PREFIX | ||
| 279 | - // + JavaIdentifierSyntax.getCaptialCase(attribute.getAttributeName()) | ||
| 280 | - // + UtilConstants.OPEN_PARENTHESIS | ||
| 281 | - // + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SEMI_COLAN | ||
| 282 | - // + UtilConstants.NEW_LINE; | ||
| 283 | - // } | ||
| 284 | - // getAttrInfo().clear(); | ||
| 285 | - // } | ||
| 286 | 441 | ||
| 287 | - return constructor + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.CLOSE_CURLY_BRACKET; | 442 | + return constructor; |
| 288 | } | 443 | } |
| 289 | 444 | ||
| 290 | /** | 445 | /** |
| ... | @@ -293,10 +448,10 @@ public final class MethodsGenerator { | ... | @@ -293,10 +448,10 @@ public final class MethodsGenerator { |
| 293 | * @param yangName class name | 448 | * @param yangName class name |
| 294 | * @return build method string for class | 449 | * @return build method string for class |
| 295 | */ | 450 | */ |
| 296 | - private static String getBuild(String yangName) { | 451 | + public static String getBuild(String yangName) { |
| 297 | 452 | ||
| 298 | - return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE + yangName | 453 | + return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE |
| 299 | - + UtilConstants.SPACE + UtilConstants.BUILD + UtilConstants.OPEN_PARENTHESIS | 454 | + + yangName + UtilConstants.SPACE + UtilConstants.BUILD + UtilConstants.OPEN_PARENTHESIS |
| 300 | + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET | 455 | + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET |
| 301 | + UtilConstants.NEW_LINE + UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.RETURN | 456 | + UtilConstants.NEW_LINE + UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.RETURN |
| 302 | + UtilConstants.SPACE + UtilConstants.NEW + UtilConstants.SPACE + yangName + UtilConstants.IMPL | 457 | + UtilConstants.SPACE + UtilConstants.NEW + UtilConstants.SPACE + yangName + UtilConstants.IMPL |
| ... | @@ -309,14 +464,205 @@ public final class MethodsGenerator { | ... | @@ -309,14 +464,205 @@ public final class MethodsGenerator { |
| 309 | * Returns the Default constructor strings for class file. | 464 | * Returns the Default constructor strings for class file. |
| 310 | * | 465 | * |
| 311 | * @param name name of the class | 466 | * @param name name of the class |
| 467 | + * @param modifierType modifier type for default constructor | ||
| 312 | * @return Default constructor for class | 468 | * @return Default constructor for class |
| 313 | */ | 469 | */ |
| 314 | - private static String getDefaultConstructor(String name) { | 470 | + private static String getDefaultConstructor(String name, String modifierType) { |
| 315 | 471 | ||
| 316 | - return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE + name | 472 | + return UtilConstants.FOUR_SPACE_INDENTATION + modifierType + UtilConstants.SPACE + name |
| 317 | + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE | 473 | + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE |
| 318 | + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | 474 | + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION |
| 319 | + UtilConstants.CLOSE_CURLY_BRACKET + UtilConstants.NEW_LINE; | 475 | + UtilConstants.CLOSE_CURLY_BRACKET + UtilConstants.NEW_LINE; |
| 320 | } | 476 | } |
| 321 | 477 | ||
| 478 | + /** | ||
| 479 | + * Returns to string method open strings. | ||
| 480 | + * | ||
| 481 | + * @return to string method open string | ||
| 482 | + */ | ||
| 483 | + public static String getToStringMethodOpen() { | ||
| 484 | + | ||
| 485 | + return getOverRideString() + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE | ||
| 486 | + + UtilConstants.STRING + UtilConstants.SPACE + "to" + UtilConstants.STRING | ||
| 487 | + + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE | ||
| 488 | + + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE + UtilConstants.EIGHT_SPACE_INDENTATION | ||
| 489 | + + UtilConstants.RETURN + " MoreObjects.toStringHelper(getClass())" + UtilConstants.NEW_LINE; | ||
| 490 | + } | ||
| 491 | + | ||
| 492 | + /** | ||
| 493 | + * Returns to string methods close string. | ||
| 494 | + * | ||
| 495 | + * @return to string method close string | ||
| 496 | + */ | ||
| 497 | + public static String getToStringMethodClose() { | ||
| 498 | + return UtilConstants.TWELVE_SPACE_INDENTATION + ".to" + UtilConstants.STRING | ||
| 499 | + + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SEMI_COLAN | ||
| 500 | + + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
| 501 | + + UtilConstants.CLOSE_CURLY_BRACKET; | ||
| 502 | + } | ||
| 503 | + | ||
| 504 | + /** | ||
| 505 | + * To string method for class. | ||
| 506 | + * | ||
| 507 | + * @param attr attribute info | ||
| 508 | + * @return to string method | ||
| 509 | + */ | ||
| 510 | + public static String getToStringMethod(AttributeInfo attr) { | ||
| 511 | + String attributeName = JavaIdentifierSyntax.getLowerCase(attr.getAttributeName()); | ||
| 512 | + return UtilConstants.TWELVE_SPACE_INDENTATION + UtilConstants.PERIOD + UtilConstants.ADD_STRING | ||
| 513 | + + UtilConstants.OPEN_PARENTHESIS + UtilConstants.QUOTES | ||
| 514 | + + attributeName + UtilConstants.QUOTES + UtilConstants.COMMA + UtilConstants.SPACE + attributeName | ||
| 515 | + + UtilConstants.CLOSE_PARENTHESIS; | ||
| 516 | + | ||
| 517 | + } | ||
| 518 | + | ||
| 519 | + /** | ||
| 520 | + * Returns to hash code method open strings. | ||
| 521 | + * | ||
| 522 | + * @return to hash code method open string | ||
| 523 | + */ | ||
| 524 | + public static String getHashCodeMethodOpen() { | ||
| 525 | + | ||
| 526 | + return getOverRideString() + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE | ||
| 527 | + + UtilConstants.INT + UtilConstants.SPACE + UtilConstants.HASH_CODE_STRING | ||
| 528 | + + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE | ||
| 529 | + + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE + UtilConstants.EIGHT_SPACE_INDENTATION | ||
| 530 | + + UtilConstants.RETURN + " Objects.hash" + UtilConstants.OPEN_PARENTHESIS; | ||
| 531 | + } | ||
| 532 | + | ||
| 533 | + /** | ||
| 534 | + * Returns to hash code methods close string. | ||
| 535 | + * | ||
| 536 | + * @param hashcodeString hash code string | ||
| 537 | + * @return to hash code method close string | ||
| 538 | + */ | ||
| 539 | + public static String getHashCodeMethodClose(String hashcodeString) { | ||
| 540 | + hashcodeString = YangIoUtils.trimAtLast(hashcodeString, UtilConstants.COMMA); | ||
| 541 | + hashcodeString = YangIoUtils.trimAtLast(hashcodeString, UtilConstants.SPACE); | ||
| 542 | + hashcodeString = YangIoUtils.partString(hashcodeString); | ||
| 543 | + return hashcodeString + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE | ||
| 544 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.CLOSE_CURLY_BRACKET; | ||
| 545 | + } | ||
| 546 | + | ||
| 547 | + /** | ||
| 548 | + * Hash code method for class. | ||
| 549 | + * | ||
| 550 | + * @param attr attribute info | ||
| 551 | + * @return hash code method | ||
| 552 | + */ | ||
| 553 | + public static String getHashCodeMethod(AttributeInfo attr) { | ||
| 554 | + String attributeName = JavaIdentifierSyntax.getLowerCase(attr.getAttributeName()); | ||
| 555 | + return attributeName | ||
| 556 | + + UtilConstants.COMMA + UtilConstants.SPACE; | ||
| 557 | + | ||
| 558 | + } | ||
| 559 | + | ||
| 560 | + /** | ||
| 561 | + * Returns to equals method open strings. | ||
| 562 | + * | ||
| 563 | + * @param className class name | ||
| 564 | + * @return to equals method open string | ||
| 565 | + */ | ||
| 566 | + public static String getEqualsMethodOpen(String className) { | ||
| 567 | + | ||
| 568 | + return getOverRideString() + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE | ||
| 569 | + + UtilConstants.BOOLEAN + UtilConstants.SPACE + UtilConstants.EQUALS_STRING | ||
| 570 | + + UtilConstants.OPEN_PARENTHESIS + UtilConstants.OBJECT_STRING + UtilConstants.SPACE + "obj" | ||
| 571 | + + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET | ||
| 572 | + + UtilConstants.NEW_LINE + getEqualsMethodsCommonIfCondition() | ||
| 573 | + + getEqualsMethodsSpecificIfCondition(className); | ||
| 574 | + } | ||
| 575 | + | ||
| 576 | + /** | ||
| 577 | + * Returns equal methods if condition string. | ||
| 578 | + * | ||
| 579 | + * @return if condition string | ||
| 580 | + */ | ||
| 581 | + private static String getEqualsMethodsCommonIfCondition() { | ||
| 582 | + return UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.IF + UtilConstants.SPACE | ||
| 583 | + + UtilConstants.OPEN_PARENTHESIS + UtilConstants.THIS | ||
| 584 | + + UtilConstants.SPACE + UtilConstants.EQUAL + UtilConstants.EQUAL + UtilConstants.SPACE + "obj" | ||
| 585 | + + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET | ||
| 586 | + + UtilConstants.NEW_LINE + UtilConstants.TWELVE_SPACE_INDENTATION + UtilConstants.RETURN | ||
| 587 | + + UtilConstants.SPACE + UtilConstants.TRUE + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE | ||
| 588 | + + UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.CLOSE_CURLY_BRACKET + UtilConstants.NEW_LINE; | ||
| 589 | + } | ||
| 590 | + | ||
| 591 | + /** | ||
| 592 | + * Returns if condition for specific class object in equals method. | ||
| 593 | + * | ||
| 594 | + * @param className class name | ||
| 595 | + * @return if condition string | ||
| 596 | + */ | ||
| 597 | + private static String getEqualsMethodsSpecificIfCondition(String className) { | ||
| 598 | + return UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.IF + UtilConstants.SPACE | ||
| 599 | + + UtilConstants.OPEN_PARENTHESIS + "obj" + UtilConstants.INSTANCE_OF + className | ||
| 600 | + + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET | ||
| 601 | + + UtilConstants.NEW_LINE + UtilConstants.TWELVE_SPACE_INDENTATION + className + UtilConstants.SPACE | ||
| 602 | + + "other " + UtilConstants.EQUAL + UtilConstants.SPACE + UtilConstants.OPEN_PARENTHESIS + className | ||
| 603 | + + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SPACE + "obj" + UtilConstants.SEMI_COLAN | ||
| 604 | + + UtilConstants.NEW_LINE + UtilConstants.TWELVE_SPACE_INDENTATION + UtilConstants.RETURN | ||
| 605 | + + UtilConstants.NEW_LINE; | ||
| 606 | + } | ||
| 607 | + | ||
| 608 | + /** | ||
| 609 | + * Returns to equals methods close string. | ||
| 610 | + * | ||
| 611 | + * @param equalMethodString equal method string | ||
| 612 | + * @return to equals method close string | ||
| 613 | + */ | ||
| 614 | + public static String getEqualsMethodClose(String equalMethodString) { | ||
| 615 | + equalMethodString = YangIoUtils.trimAtLast(equalMethodString, UtilConstants.AND); | ||
| 616 | + equalMethodString = YangIoUtils.trimAtLast(equalMethodString, UtilConstants.AND); | ||
| 617 | + equalMethodString = YangIoUtils.trimAtLast(equalMethodString, UtilConstants.SPACE); | ||
| 618 | + equalMethodString = YangIoUtils.trimAtLast(equalMethodString, UtilConstants.NEW_LINE) + UtilConstants.SEMI_COLAN | ||
| 619 | + + UtilConstants.NEW_LINE; | ||
| 620 | + return equalMethodString + UtilConstants.EIGHT_SPACE_INDENTATION | ||
| 621 | + + UtilConstants.CLOSE_CURLY_BRACKET + UtilConstants.NEW_LINE | ||
| 622 | + + UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.RETURN + UtilConstants.SPACE | ||
| 623 | + + UtilConstants.FALSE + UtilConstants.SEMI_COLAN | ||
| 624 | + + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
| 625 | + + UtilConstants.CLOSE_CURLY_BRACKET; | ||
| 626 | + } | ||
| 627 | + | ||
| 628 | + /** | ||
| 629 | + * Equals method for class. | ||
| 630 | + * | ||
| 631 | + * @param attr attribute info | ||
| 632 | + * @return equals method | ||
| 633 | + */ | ||
| 634 | + public static String getEqualsMethod(AttributeInfo attr) { | ||
| 635 | + String attributeName = JavaIdentifierSyntax.getLowerCase(attr.getAttributeName()); | ||
| 636 | + return UtilConstants.SIXTEEN_SPACE_INDENTATION + UtilConstants.SPACE + UtilConstants.OBJECT_STRING + "s" | ||
| 637 | + + UtilConstants.PERIOD + UtilConstants.EQUALS_STRING + UtilConstants.OPEN_PARENTHESIS + attributeName | ||
| 638 | + + UtilConstants.COMMA + UtilConstants.SPACE + "other." + attributeName + UtilConstants.CLOSE_PARENTHESIS | ||
| 639 | + + UtilConstants.SPACE + UtilConstants.AND + UtilConstants.AND; | ||
| 640 | + | ||
| 641 | + } | ||
| 642 | + | ||
| 643 | + /** | ||
| 644 | + * Returns of method string for class. | ||
| 645 | + * | ||
| 646 | + * @param name class name | ||
| 647 | + * @param attr attribute info | ||
| 648 | + * @return of method string | ||
| 649 | + */ | ||
| 650 | + public static String getOfMethod(String name, AttributeInfo attr) { | ||
| 651 | + | ||
| 652 | + String attrQuaifiedType = ""; | ||
| 653 | + if (attr.isQualifiedName() && (attr.getImportInfo().getPkgInfo() != null)) { | ||
| 654 | + attrQuaifiedType = attr.getImportInfo().getPkgInfo() + "."; | ||
| 655 | + } | ||
| 656 | + attrQuaifiedType = attrQuaifiedType + attr.getImportInfo().getClassInfo(); | ||
| 657 | + | ||
| 658 | + return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.PUBLIC + UtilConstants.SPACE + UtilConstants.STATIC | ||
| 659 | + + UtilConstants.SPACE + name + UtilConstants.SPACE + UtilConstants.OF + UtilConstants.OPEN_PARENTHESIS | ||
| 660 | + + attrQuaifiedType + UtilConstants.SPACE + UtilConstants.VALUE + UtilConstants.CLOSE_PARENTHESIS | ||
| 661 | + + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET + UtilConstants.NEW_LINE | ||
| 662 | + + UtilConstants.EIGHT_SPACE_INDENTATION + UtilConstants.RETURN + UtilConstants.SPACE + UtilConstants.NEW | ||
| 663 | + + UtilConstants.SPACE + name + UtilConstants.OPEN_PARENTHESIS + UtilConstants.VALUE | ||
| 664 | + + UtilConstants.CLOSE_PARENTHESIS + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE | ||
| 665 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.CLOSE_CURLY_BRACKET + UtilConstants.NEW_LINE; | ||
| 666 | + } | ||
| 667 | + | ||
| 322 | } | 668 | } | ... | ... |
| 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 | +/** | ||
| 20 | + * Data Store types. | ||
| 21 | + */ | ||
| 22 | +public enum TempDataStoreTypes { | ||
| 23 | + | ||
| 24 | + /** | ||
| 25 | + * Getter methods for interfaces. | ||
| 26 | + */ | ||
| 27 | + GETTER_METHODS, | ||
| 28 | + | ||
| 29 | + /** | ||
| 30 | + * Getter methods impl for classes. | ||
| 31 | + */ | ||
| 32 | + GETTER_METHODS_IMPL, | ||
| 33 | + | ||
| 34 | + /** | ||
| 35 | + * Setter methods for interfaces. | ||
| 36 | + */ | ||
| 37 | + SETTER_METHODS, | ||
| 38 | + | ||
| 39 | + /** | ||
| 40 | + * Setter methods impl for classes. | ||
| 41 | + */ | ||
| 42 | + SETTER_METHODS_IMPL, | ||
| 43 | + | ||
| 44 | + /** | ||
| 45 | + * Constructor for impl class. | ||
| 46 | + */ | ||
| 47 | + CONSTRUCTOR, | ||
| 48 | + | ||
| 49 | + /** | ||
| 50 | + * Attributes. | ||
| 51 | + */ | ||
| 52 | + ATTRIBUTE, | ||
| 53 | + | ||
| 54 | + /** | ||
| 55 | + * TypeDef. | ||
| 56 | + */ | ||
| 57 | + TYPE_DEF, | ||
| 58 | + | ||
| 59 | + /** | ||
| 60 | + * ToString method. | ||
| 61 | + */ | ||
| 62 | + TO_STRING, | ||
| 63 | + | ||
| 64 | + /** | ||
| 65 | + * HashCode method. | ||
| 66 | + */ | ||
| 67 | + HASH_CODE, | ||
| 68 | + | ||
| 69 | + /** | ||
| 70 | + * Equals method. | ||
| 71 | + */ | ||
| 72 | + EQUALS | ||
| 73 | +} |
| ... | @@ -256,6 +256,7 @@ public final class UtilConstants { | ... | @@ -256,6 +256,7 @@ public final class UtilConstants { |
| 256 | public static final String BUILD = "build"; | 256 | public static final String BUILD = "build"; |
| 257 | public static final String OBJECT = "Object"; | 257 | public static final String OBJECT = "Object"; |
| 258 | public static final String OVERRIDE = "@Override"; | 258 | public static final String OVERRIDE = "@Override"; |
| 259 | + public static final String CHILDREN = "'s children"; | ||
| 259 | 260 | ||
| 260 | /** | 261 | /** |
| 261 | * For collections. | 262 | * For collections. | ... | ... |
| ... | @@ -104,7 +104,7 @@ public final class FileSystemUtil { | ... | @@ -104,7 +104,7 @@ public final class FileSystemUtil { |
| 104 | */ | 104 | */ |
| 105 | public static void appendFileContents(File toAppend, File srcFile) throws IOException { | 105 | public static void appendFileContents(File toAppend, File srcFile) throws IOException { |
| 106 | 106 | ||
| 107 | - insertStringInFile(srcFile, UtilConstants.NEW_LINE + readAppendFile(toAppend.toString())); | 107 | + updateFileHandle(srcFile, UtilConstants.NEW_LINE + readAppendFile(toAppend.toString()), false); |
| 108 | return; | 108 | return; |
| 109 | } | 109 | } |
| 110 | 110 | ||
| ... | @@ -133,18 +133,23 @@ public final class FileSystemUtil { | ... | @@ -133,18 +133,23 @@ public final class FileSystemUtil { |
| 133 | } | 133 | } |
| 134 | 134 | ||
| 135 | /** | 135 | /** |
| 136 | - * Insert content to the generated file. | 136 | + * Update the generated file handle. |
| 137 | * | 137 | * |
| 138 | * @param inputFile input file | 138 | * @param inputFile input file |
| 139 | * @param contentTobeAdded content to be appended to the file | 139 | * @param contentTobeAdded content to be appended to the file |
| 140 | + * @param isClose when close of file is called. | ||
| 140 | * @throws IOException when fails to append content to the file | 141 | * @throws IOException when fails to append content to the file |
| 141 | */ | 142 | */ |
| 142 | - public static void insertStringInFile(File inputFile, String contentTobeAdded) throws IOException { | 143 | + public static void updateFileHandle(File inputFile, String contentTobeAdded, boolean isClose) throws IOException { |
| 143 | FileWriter fileWriter = new FileWriter(inputFile, true); | 144 | FileWriter fileWriter = new FileWriter(inputFile, true); |
| 144 | PrintWriter outputPrintWriter = new PrintWriter(fileWriter); | 145 | PrintWriter outputPrintWriter = new PrintWriter(fileWriter); |
| 145 | - outputPrintWriter.write(contentTobeAdded); | 146 | + if (!isClose) { |
| 146 | - outputPrintWriter.flush(); | 147 | + outputPrintWriter.write(contentTobeAdded); |
| 147 | - outputPrintWriter.close(); | 148 | + outputPrintWriter.flush(); |
| 148 | - | 149 | + outputPrintWriter.close(); |
| 150 | + } else { | ||
| 151 | + fileWriter.flush(); | ||
| 152 | + fileWriter.close(); | ||
| 153 | + } | ||
| 149 | } | 154 | } |
| 150 | } | 155 | } | ... | ... |
| ... | @@ -71,6 +71,21 @@ public final class JavaDocGen { | ... | @@ -71,6 +71,21 @@ public final class JavaDocGen { |
| 71 | SETTER, | 71 | SETTER, |
| 72 | 72 | ||
| 73 | /** | 73 | /** |
| 74 | + * For type def's setters. | ||
| 75 | + */ | ||
| 76 | + TYPE_DEF_SETTER, | ||
| 77 | + | ||
| 78 | + /** | ||
| 79 | + * For type def's constructor. | ||
| 80 | + */ | ||
| 81 | + TYPE_DEF_CONSTRUCTOR, | ||
| 82 | + | ||
| 83 | + /** | ||
| 84 | + * For of method. | ||
| 85 | + */ | ||
| 86 | + OF, | ||
| 87 | + | ||
| 88 | + /** | ||
| 74 | * For default constructor. | 89 | * For default constructor. |
| 75 | */ | 90 | */ |
| 76 | DEFAULT_CONSTRUCTOR, | 91 | DEFAULT_CONSTRUCTOR, |
| ... | @@ -91,10 +106,11 @@ public final class JavaDocGen { | ... | @@ -91,10 +106,11 @@ public final class JavaDocGen { |
| 91 | * | 106 | * |
| 92 | * @param type java doc type | 107 | * @param type java doc type |
| 93 | * @param name name of the YangNode | 108 | * @param name name of the YangNode |
| 94 | - * @return javadocs | 109 | + * @param isList is list attribute |
| 110 | + * @return javadocs. | ||
| 95 | */ | 111 | */ |
| 96 | - public static String getJavaDoc(JavaDocType type, String name) { | 112 | + public static String getJavaDoc(JavaDocType type, String name, boolean isList) { |
| 97 | - name = JavaIdentifierSyntax.getCamelCase(name); | 113 | + name = JavaIdentifierSyntax.getLowerCase(JavaIdentifierSyntax.getCamelCase(name)); |
| 98 | String javaDoc = ""; | 114 | String javaDoc = ""; |
| 99 | if (type.equals(JavaDocType.IMPL_CLASS)) { | 115 | if (type.equals(JavaDocType.IMPL_CLASS)) { |
| 100 | javaDoc = generateForImplClass(name); | 116 | javaDoc = generateForImplClass(name); |
| ... | @@ -107,9 +123,15 @@ public final class JavaDocGen { | ... | @@ -107,9 +123,15 @@ public final class JavaDocGen { |
| 107 | } else if (type.equals(JavaDocType.PACKAGE_INFO)) { | 123 | } else if (type.equals(JavaDocType.PACKAGE_INFO)) { |
| 108 | javaDoc = generateForPackage(name); | 124 | javaDoc = generateForPackage(name); |
| 109 | } else if (type.equals(JavaDocType.GETTER)) { | 125 | } else if (type.equals(JavaDocType.GETTER)) { |
| 110 | - javaDoc = generateForGetters(name); | 126 | + javaDoc = generateForGetters(name, isList); |
| 127 | + } else if (type.equals(JavaDocType.TYPE_DEF_SETTER)) { | ||
| 128 | + javaDoc = generateForTypeDefSetter(name); | ||
| 129 | + } else if (type.equals(JavaDocType.TYPE_DEF_CONSTRUCTOR)) { | ||
| 130 | + javaDoc = generateForTypeDefConstructor(name); | ||
| 111 | } else if (type.equals(JavaDocType.SETTER)) { | 131 | } else if (type.equals(JavaDocType.SETTER)) { |
| 112 | - javaDoc = generateForSetters(name); | 132 | + javaDoc = generateForSetters(name, isList); |
| 133 | + } else if (type.equals(JavaDocType.OF)) { | ||
| 134 | + javaDoc = generateForOf(name); | ||
| 113 | } else if (type.equals(JavaDocType.DEFAULT_CONSTRUCTOR)) { | 135 | } else if (type.equals(JavaDocType.DEFAULT_CONSTRUCTOR)) { |
| 114 | javaDoc = generateForDefaultConstructors(); | 136 | javaDoc = generateForDefaultConstructors(); |
| 115 | } else if (type.equals(JavaDocType.BUILD)) { | 137 | } else if (type.equals(JavaDocType.BUILD)) { |
| ... | @@ -124,32 +146,96 @@ public final class JavaDocGen { | ... | @@ -124,32 +146,96 @@ public final class JavaDocGen { |
| 124 | * Generate javaDocs for getter method. | 146 | * Generate javaDocs for getter method. |
| 125 | * | 147 | * |
| 126 | * @param attribute attribute | 148 | * @param attribute attribute |
| 149 | + * @param isList is list attribute | ||
| 127 | * @return javaDocs | 150 | * @return javaDocs |
| 128 | */ | 151 | */ |
| 129 | - private static String generateForGetters(String attribute) { | 152 | + private static String generateForGetters(String attribute, boolean isList) { |
| 130 | - return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE | 153 | + String getter = UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION |
| 154 | + + UtilConstants.JAVA_DOC_FIRST_LINE | ||
| 131 | + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_GETTERS + attribute | 155 | + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_GETTERS + attribute |
| 132 | + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | 156 | + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION |
| 133 | - + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_RETURN | 157 | + + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_RETURN; |
| 134 | - + attribute + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | 158 | + if (isList) { |
| 159 | + attribute = UtilConstants.LIST.toLowerCase() + UtilConstants.SPACE + UtilConstants.OF + UtilConstants.SPACE | ||
| 160 | + + attribute; | ||
| 161 | + } | ||
| 162 | + | ||
| 163 | + getter = getter + attribute + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
| 135 | + UtilConstants.JAVA_DOC_END_LINE; | 164 | + UtilConstants.JAVA_DOC_END_LINE; |
| 165 | + return getter; | ||
| 136 | } | 166 | } |
| 137 | 167 | ||
| 138 | /** | 168 | /** |
| 139 | * Generates javaDocs for setter method. | 169 | * Generates javaDocs for setter method. |
| 140 | * | 170 | * |
| 141 | * @param attribute attribute | 171 | * @param attribute attribute |
| 172 | + * @param isList is list attribute | ||
| 142 | * @return javaDocs | 173 | * @return javaDocs |
| 143 | */ | 174 | */ |
| 144 | - private static String generateForSetters(String attribute) { | 175 | + private static String generateForSetters(String attribute, boolean isList) { |
| 145 | - return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE | 176 | + String setter = UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION |
| 177 | + + UtilConstants.JAVA_DOC_FIRST_LINE | ||
| 146 | + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_SETTERS + attribute | 178 | + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_SETTERS + attribute |
| 147 | + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | 179 | + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION |
| 148 | + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM | 180 | + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM |
| 149 | - + attribute + UtilConstants.SPACE + attribute + UtilConstants.NEW_LINE | 181 | + + attribute + UtilConstants.SPACE; |
| 182 | + if (isList) { | ||
| 183 | + attribute = UtilConstants.LIST.toLowerCase() + UtilConstants.SPACE + UtilConstants.OF + UtilConstants.SPACE | ||
| 184 | + + attribute; | ||
| 185 | + } | ||
| 186 | + | ||
| 187 | + setter = setter + attribute + UtilConstants.NEW_LINE | ||
| 150 | + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_RETURN + UtilConstants.BUILDER_OBJECT | 188 | + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_RETURN + UtilConstants.BUILDER_OBJECT |
| 151 | + attribute + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | 189 | + attribute + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION |
| 152 | + UtilConstants.JAVA_DOC_END_LINE; | 190 | + UtilConstants.JAVA_DOC_END_LINE; |
| 191 | + return setter; | ||
| 192 | + } | ||
| 193 | + | ||
| 194 | + /** | ||
| 195 | + * Generates javaDocs for of method. | ||
| 196 | + * | ||
| 197 | + * @param attribute attribute | ||
| 198 | + * @return javaDocs | ||
| 199 | + */ | ||
| 200 | + private static String generateForOf(String attribute) { | ||
| 201 | + return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE | ||
| 202 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_OF + attribute | ||
| 203 | + + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
| 204 | + + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM | ||
| 205 | + + UtilConstants.VALUE + UtilConstants.SPACE + UtilConstants.VALUE + UtilConstants.NEW_LINE | ||
| 206 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_RETURN + UtilConstants.OBJECT | ||
| 207 | + + UtilConstants.SPACE + UtilConstants.OF + UtilConstants.SPACE + attribute + UtilConstants.NEW_LINE | ||
| 208 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE; | ||
| 209 | + } | ||
| 210 | + | ||
| 211 | + /** | ||
| 212 | + * Generates javaDocs for typedef setter method. | ||
| 213 | + * | ||
| 214 | + * @param attribute attribute | ||
| 215 | + * @return javaDocs | ||
| 216 | + */ | ||
| 217 | + private static String generateForTypeDefSetter(String attribute) { | ||
| 218 | + return (UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE | ||
| 219 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_SETTERS_COMMON + attribute | ||
| 220 | + + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
| 221 | + + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM | ||
| 222 | + + UtilConstants.VALUE + UtilConstants.SPACE + UtilConstants.VALUE + UtilConstants.NEW_LINE | ||
| 223 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE); | ||
| 224 | + } | ||
| 225 | + | ||
| 226 | + /** | ||
| 227 | + * Generates javaDocs for typedef constructor. | ||
| 228 | + * | ||
| 229 | + * @param attribute attribute | ||
| 230 | + * @return javaDocs | ||
| 231 | + */ | ||
| 232 | + private static String generateForTypeDefConstructor(String attribute) { | ||
| 233 | + return (UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE | ||
| 234 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_CONSTRUCTOR + attribute | ||
| 235 | + + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION | ||
| 236 | + + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM | ||
| 237 | + + UtilConstants.VALUE + UtilConstants.SPACE + UtilConstants.VALUE + UtilConstants.NEW_LINE | ||
| 238 | + + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE); | ||
| 153 | } | 239 | } |
| 154 | 240 | ||
| 155 | /** | 241 | /** |
| ... | @@ -170,8 +256,8 @@ public final class JavaDocGen { | ... | @@ -170,8 +256,8 @@ public final class JavaDocGen { |
| 170 | * @return javaDocs | 256 | * @return javaDocs |
| 171 | */ | 257 | */ |
| 172 | private static String generateForBuilderClass(String className) { | 258 | private static String generateForBuilderClass(String className) { |
| 173 | - return UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.BUILDER_CLASS_JAVA_DOC + className | 259 | + return UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.BUILDER_CLASS_JAVA_DOC |
| 174 | - + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE; | 260 | + + className + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE; |
| 175 | } | 261 | } |
| 176 | 262 | ||
| 177 | /** | 263 | /** |
| ... | @@ -181,8 +267,8 @@ public final class JavaDocGen { | ... | @@ -181,8 +267,8 @@ public final class JavaDocGen { |
| 181 | * @return javaDocs | 267 | * @return javaDocs |
| 182 | */ | 268 | */ |
| 183 | private static String generateForInterface(String interfaceName) { | 269 | private static String generateForInterface(String interfaceName) { |
| 184 | - return UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.INTERFACE_JAVA_DOC + interfaceName | 270 | + return UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.INTERFACE_JAVA_DOC |
| 185 | - + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE; | 271 | + + interfaceName + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE; |
| 186 | } | 272 | } |
| 187 | 273 | ||
| 188 | /** | 274 | /** | ... | ... |
| ... | @@ -38,7 +38,7 @@ public final class YangFileScanner { | ... | @@ -38,7 +38,7 @@ public final class YangFileScanner { |
| 38 | * | 38 | * |
| 39 | * @param root specified directory | 39 | * @param root specified directory |
| 40 | * @return list of java files | 40 | * @return list of java files |
| 41 | - * @throws NullPointerException when no files are there | 41 | + * @throws NullPointerException when no files are there. |
| 42 | * @throws IOException when files get deleted while performing the | 42 | * @throws IOException when files get deleted while performing the |
| 43 | * operations | 43 | * operations |
| 44 | */ | 44 | */ |
| ... | @@ -67,9 +67,8 @@ public final class YangFileScanner { | ... | @@ -67,9 +67,8 @@ public final class YangFileScanner { |
| 67 | * @return list of required files | 67 | * @return list of required files |
| 68 | * @throws IOException when files get deleted while performing the | 68 | * @throws IOException when files get deleted while performing the |
| 69 | * operations | 69 | * operations |
| 70 | - * @throws NullPointerException null pointer access | ||
| 71 | */ | 70 | */ |
| 72 | - public static List<String> getFiles(String root, String extension) throws NullPointerException, IOException { | 71 | + public static List<String> getFiles(String root, String extension) throws NullPointerException, IOException { |
| 73 | List<String> store = new LinkedList<>(); | 72 | List<String> store = new LinkedList<>(); |
| 74 | Stack<String> stack = new Stack<>(); | 73 | Stack<String> stack = new Stack<>(); |
| 75 | stack.push(root); | 74 | stack.push(root); | ... | ... |
| ... | @@ -16,6 +16,8 @@ | ... | @@ -16,6 +16,8 @@ |
| 16 | 16 | ||
| 17 | package org.onosproject.yangutils.utils.io.impl; | 17 | package org.onosproject.yangutils.utils.io.impl; |
| 18 | 18 | ||
| 19 | +import static org.slf4j.LoggerFactory.getLogger; | ||
| 20 | + | ||
| 19 | import java.io.BufferedWriter; | 21 | import java.io.BufferedWriter; |
| 20 | import java.io.File; | 22 | import java.io.File; |
| 21 | import java.io.FileWriter; | 23 | import java.io.FileWriter; |
| ... | @@ -29,8 +31,6 @@ import org.onosproject.yangutils.utils.UtilConstants; | ... | @@ -29,8 +31,6 @@ import org.onosproject.yangutils.utils.UtilConstants; |
| 29 | import org.slf4j.Logger; | 31 | import org.slf4j.Logger; |
| 30 | import org.sonatype.plexus.build.incremental.BuildContext; | 32 | import org.sonatype.plexus.build.incremental.BuildContext; |
| 31 | 33 | ||
| 32 | -import static org.slf4j.LoggerFactory.getLogger; | ||
| 33 | - | ||
| 34 | /** | 34 | /** |
| 35 | * Provides common utility functionalities for code generation. | 35 | * Provides common utility functionalities for code generation. |
| 36 | */ | 36 | */ |
| ... | @@ -80,7 +80,7 @@ public final class YangIoUtils { | ... | @@ -80,7 +80,7 @@ public final class YangIoUtils { |
| 80 | fileWriter = new FileWriter(packageInfo); | 80 | fileWriter = new FileWriter(packageInfo); |
| 81 | bufferedWriter = new BufferedWriter(fileWriter); | 81 | bufferedWriter = new BufferedWriter(fileWriter); |
| 82 | bufferedWriter.write(CopyrightHeader.getCopyrightHeader()); | 82 | bufferedWriter.write(CopyrightHeader.getCopyrightHeader()); |
| 83 | - bufferedWriter.write(JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.PACKAGE_INFO, classInfo)); | 83 | + bufferedWriter.write(JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.PACKAGE_INFO, classInfo, false)); |
| 84 | bufferedWriter.write(UtilConstants.PACKAGE + UtilConstants.SPACE + pack + UtilConstants.SEMI_COLAN); | 84 | bufferedWriter.write(UtilConstants.PACKAGE + UtilConstants.SPACE + pack + UtilConstants.SEMI_COLAN); |
| 85 | bufferedWriter.close(); | 85 | bufferedWriter.close(); |
| 86 | } catch (IOException e) { | 86 | } catch (IOException e) { |
| ... | @@ -127,4 +127,38 @@ public final class YangIoUtils { | ... | @@ -127,4 +127,38 @@ public final class YangIoUtils { |
| 127 | log.info("Source directory added to compilation root: " + source); | 127 | log.info("Source directory added to compilation root: " + source); |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | + /** | ||
| 131 | + * Removes extra char from the string. | ||
| 132 | + * | ||
| 133 | + * @param valueString string to be trimmed | ||
| 134 | + * @param removealStirng extra chars | ||
| 135 | + * @return new string | ||
| 136 | + */ | ||
| 137 | + public static String trimAtLast(String valueString, String removealStirng) { | ||
| 138 | + StringBuilder stringBuilder = new StringBuilder(valueString); | ||
| 139 | + int index = valueString.lastIndexOf(removealStirng); | ||
| 140 | + stringBuilder.deleteCharAt(index); | ||
| 141 | + return stringBuilder.toString(); | ||
| 142 | + } | ||
| 143 | + | ||
| 144 | + /** | ||
| 145 | + * Returns new parted string. | ||
| 146 | + * | ||
| 147 | + * @param partString string to be parted | ||
| 148 | + * @return parted string | ||
| 149 | + */ | ||
| 150 | + public static String partString(String partString) { | ||
| 151 | + String[] strArray = partString.split(UtilConstants.COMMA); | ||
| 152 | + String newString = ""; | ||
| 153 | + for (int i = 0; i < strArray.length; i++) { | ||
| 154 | + if (i % 4 != 0) { | ||
| 155 | + newString = newString + strArray[i] + UtilConstants.COMMA; | ||
| 156 | + } else { | ||
| 157 | + newString = newString + UtilConstants.NEW_LINE + UtilConstants.TWELVE_SPACE_INDENTATION + strArray[i] | ||
| 158 | + + UtilConstants.COMMA; | ||
| 159 | + } | ||
| 160 | + } | ||
| 161 | + return trimAtLast(newString, UtilConstants.COMMA); | ||
| 162 | + } | ||
| 163 | + | ||
| 130 | } | 164 | } | ... | ... |
| ... | @@ -20,6 +20,10 @@ import java.io.File; | ... | @@ -20,6 +20,10 @@ import java.io.File; |
| 20 | import java.io.IOException; | 20 | import java.io.IOException; |
| 21 | 21 | ||
| 22 | import org.junit.Test; | 22 | import org.junit.Test; |
| 23 | + | ||
| 24 | +import static org.hamcrest.MatcherAssert.assertThat; | ||
| 25 | +import static org.hamcrest.core.Is.is; | ||
| 26 | + | ||
| 23 | import org.onosproject.yangutils.datamodel.YangDataTypes; | 27 | import org.onosproject.yangutils.datamodel.YangDataTypes; |
| 24 | import org.onosproject.yangutils.datamodel.YangType; | 28 | import org.onosproject.yangutils.datamodel.YangType; |
| 25 | import org.onosproject.yangutils.translator.CachedFileHandle; | 29 | import org.onosproject.yangutils.translator.CachedFileHandle; |
| ... | @@ -33,7 +37,7 @@ import org.onosproject.yangutils.utils.io.impl.FileSystemUtil; | ... | @@ -33,7 +37,7 @@ import org.onosproject.yangutils.utils.io.impl.FileSystemUtil; |
| 33 | */ | 37 | */ |
| 34 | public class CachedJavaFileHandleTest { | 38 | public class CachedJavaFileHandleTest { |
| 35 | 39 | ||
| 36 | - private static final String DIR_PKG = "target/unit/cachedfile/"; | 40 | + private static final String DIR_PKG = "target/unit/cachedfile/yangmodel/"; |
| 37 | private static final String PKG = "org.onosproject.unittest"; | 41 | private static final String PKG = "org.onosproject.unittest"; |
| 38 | private static final String CHILD_PKG = "target/unit/cachedfile/child"; | 42 | private static final String CHILD_PKG = "target/unit/cachedfile/child"; |
| 39 | private static final String YANG_NAME = "Test1"; | 43 | private static final String YANG_NAME = "Test1"; |
| ... | @@ -42,7 +46,7 @@ public class CachedJavaFileHandleTest { | ... | @@ -42,7 +46,7 @@ public class CachedJavaFileHandleTest { |
| 42 | /** | 46 | /** |
| 43 | * Unit test case for add attribute info. | 47 | * Unit test case for add attribute info. |
| 44 | * | 48 | * |
| 45 | - * @throws IOException when fails to add an attribute. | 49 | + * @throws IOException when fails to add an attribute |
| 46 | */ | 50 | */ |
| 47 | @Test | 51 | @Test |
| 48 | public void testForAddAttributeInfo() throws IOException { | 52 | public void testForAddAttributeInfo() throws IOException { |
| ... | @@ -55,39 +59,23 @@ public class CachedJavaFileHandleTest { | ... | @@ -55,39 +59,23 @@ public class CachedJavaFileHandleTest { |
| 55 | /** | 59 | /** |
| 56 | * Unit test case for close of cached files. | 60 | * Unit test case for close of cached files. |
| 57 | * | 61 | * |
| 58 | - * @throws IOException when fails to generate files. | 62 | + * @throws IOException when fails to generate files |
| 59 | */ | 63 | */ |
| 60 | @Test | 64 | @Test |
| 61 | public void testForClose() throws IOException { | 65 | public void testForClose() throws IOException { |
| 62 | 66 | ||
| 63 | - // TODO: update to new framework. | 67 | + CopyrightHeader.parseCopyrightHeader(); |
| 64 | - // CopyrightHeader.parseCopyrightHeader(); | ||
| 65 | - // | ||
| 66 | - // AttributeInfo attr = getAttr(); | ||
| 67 | - // attr.setListAttr(false); | ||
| 68 | - // CachedFileHandle handle = getFileHandle(); | ||
| 69 | - // handle.addAttributeInfo(attr.getAttributeType(), attr.getAttributeName(), attr.isListAttr()); | ||
| 70 | - // handle.close(); | ||
| 71 | - // | ||
| 72 | - // assertThat(true, is(getStubDir().exists())); | ||
| 73 | - // assertThat(true, is(getStubPkgInfo().exists())); | ||
| 74 | - // assertThat(true, is(getStubInterfaceFile().exists())); | ||
| 75 | - // assertThat(true, is(getStubBuilderFile().exists())); | ||
| 76 | - } | ||
| 77 | - | ||
| 78 | - /** | ||
| 79 | - * Unit test case for setting child's package. | ||
| 80 | - * | ||
| 81 | - * @throws IOException when fails to add child's package | ||
| 82 | - */ | ||
| 83 | - @Test | ||
| 84 | - public void testForSetChildsPackage() throws IOException { | ||
| 85 | 68 | ||
| 86 | AttributeInfo attr = getAttr(); | 69 | AttributeInfo attr = getAttr(); |
| 87 | attr.setListAttr(false); | 70 | attr.setListAttr(false); |
| 88 | CachedFileHandle handle = getFileHandle(); | 71 | CachedFileHandle handle = getFileHandle(); |
| 89 | handle.addAttributeInfo(attr.getAttributeType(), attr.getAttributeName(), attr.isListAttr()); | 72 | handle.addAttributeInfo(attr.getAttributeType(), attr.getAttributeName(), attr.isListAttr()); |
| 73 | + handle.close(); | ||
| 90 | 74 | ||
| 75 | + assertThat(true, is(getStubDir().exists())); | ||
| 76 | + assertThat(true, is(getStubPkgInfo().exists())); | ||
| 77 | + assertThat(true, is(getStubInterfaceFile().exists())); | ||
| 78 | + assertThat(true, is(getStubBuilderFile().exists())); | ||
| 91 | } | 79 | } |
| 92 | 80 | ||
| 93 | /** | 81 | /** |
| ... | @@ -113,14 +101,14 @@ public class CachedJavaFileHandleTest { | ... | @@ -113,14 +101,14 @@ public class CachedJavaFileHandleTest { |
| 113 | /** | 101 | /** |
| 114 | * Returns cached java file handle. | 102 | * Returns cached java file handle. |
| 115 | * | 103 | * |
| 116 | - * @return java file handle. | 104 | + * @return java file handle |
| 117 | */ | 105 | */ |
| 118 | private CachedFileHandle getFileHandle() throws IOException { | 106 | private CachedFileHandle getFileHandle() throws IOException { |
| 119 | CopyrightHeader.parseCopyrightHeader(); | 107 | CopyrightHeader.parseCopyrightHeader(); |
| 120 | FileSystemUtil.createPackage(DIR_PKG + File.separator + PKG, YANG_NAME); | 108 | FileSystemUtil.createPackage(DIR_PKG + File.separator + PKG, YANG_NAME); |
| 121 | CachedFileHandle fileHandle = FileSystemUtil.createSourceFiles(PKG, YANG_NAME, GEN_TYPE); | 109 | CachedFileHandle fileHandle = FileSystemUtil.createSourceFiles(PKG, YANG_NAME, GEN_TYPE); |
| 122 | - fileHandle.setRelativeFilePath(DIR_PKG + PKG.replace(".", "/")); | 110 | + fileHandle.setRelativeFilePath(PKG.replace(".", "/")); |
| 123 | - | 111 | + fileHandle.setCodeGenFilePath(DIR_PKG); |
| 124 | return fileHandle; | 112 | return fileHandle; |
| 125 | } | 113 | } |
| 126 | 114 | ... | ... |
| ... | @@ -16,17 +16,16 @@ | ... | @@ -16,17 +16,16 @@ |
| 16 | 16 | ||
| 17 | package org.onosproject.yangutils.translator.tojava.utils; | 17 | package org.onosproject.yangutils.translator.tojava.utils; |
| 18 | 18 | ||
| 19 | -import java.lang.reflect.Constructor; | ||
| 20 | -import java.lang.reflect.InvocationTargetException; | ||
| 21 | - | ||
| 22 | import org.junit.Test; | 19 | import org.junit.Test; |
| 23 | import org.onosproject.yangutils.translator.GeneratedFileType; | 20 | import org.onosproject.yangutils.translator.GeneratedFileType; |
| 24 | import org.onosproject.yangutils.translator.tojava.GeneratedMethodTypes; | 21 | import org.onosproject.yangutils.translator.tojava.GeneratedMethodTypes; |
| 25 | import org.onosproject.yangutils.translator.tojava.TraversalType; | 22 | import org.onosproject.yangutils.translator.tojava.TraversalType; |
| 26 | import org.onosproject.yangutils.utils.UtilConstants; | 23 | import org.onosproject.yangutils.utils.UtilConstants; |
| 27 | 24 | ||
| 28 | -import static org.hamcrest.core.Is.is; | 25 | +import java.lang.reflect.Constructor; |
| 26 | +import java.lang.reflect.InvocationTargetException; | ||
| 29 | import static org.junit.Assert.assertNotNull; | 27 | import static org.junit.Assert.assertNotNull; |
| 28 | +import static org.hamcrest.core.Is.is; | ||
| 30 | import static org.junit.Assert.assertThat; | 29 | import static org.junit.Assert.assertThat; |
| 31 | 30 | ||
| 32 | /** | 31 | /** |
| ... | @@ -40,18 +39,14 @@ public final class ClassDefinitionGeneratorTest { | ... | @@ -40,18 +39,14 @@ public final class ClassDefinitionGeneratorTest { |
| 40 | * @throws SecurityException if any security violation is observed | 39 | * @throws SecurityException if any security violation is observed |
| 41 | * @throws NoSuchMethodException if when the method is not found | 40 | * @throws NoSuchMethodException if when the method is not found |
| 42 | * @throws IllegalArgumentException if there is illegal argument found | 41 | * @throws IllegalArgumentException if there is illegal argument found |
| 43 | - * @throws InstantiationException if instantiation is provoked for the | 42 | + * @throws InstantiationException if instantiation is provoked for the private constructor |
| 44 | - * private constructor | 43 | + * @throws IllegalAccessException if instance is provoked or a method is provoked |
| 45 | - * @throws IllegalAccessException if instance is provoked or a method is | 44 | + * @throws InvocationTargetException when an exception occurs by the method or constructor |
| 46 | - * provoked | ||
| 47 | - * @throws InvocationTargetException when an exception occurs by the method | ||
| 48 | - * or constructor | ||
| 49 | */ | 45 | */ |
| 50 | @Test | 46 | @Test |
| 51 | - public void callPrivateConstructors() throws SecurityException, NoSuchMethodException, | 47 | + public void callPrivateConstructors() throws SecurityException, NoSuchMethodException, IllegalArgumentException, |
| 52 | - IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException { | 48 | + InstantiationException, IllegalAccessException, InvocationTargetException { |
| 53 | - Class<?>[] classesToConstruct = { | 49 | + Class<?>[] classesToConstruct = {ClassDefinitionGenerator.class }; |
| 54 | - ClassDefinitionGenerator.class }; | ||
| 55 | for (Class<?> clazz : classesToConstruct) { | 50 | for (Class<?> clazz : classesToConstruct) { |
| 56 | Constructor<?> constructor = clazz.getDeclaredConstructor(); | 51 | Constructor<?> constructor = clazz.getDeclaredConstructor(); |
| 57 | constructor.setAccessible(true); | 52 | constructor.setAccessible(true); |
| ... | @@ -105,14 +100,14 @@ public final class ClassDefinitionGeneratorTest { | ... | @@ -105,14 +100,14 @@ public final class ClassDefinitionGeneratorTest { |
| 105 | } | 100 | } |
| 106 | 101 | ||
| 107 | /** | 102 | /** |
| 108 | - * Unit test for invalid generated type. | 103 | + * Unit test for typedef generated type. |
| 109 | */ | 104 | */ |
| 110 | @Test | 105 | @Test |
| 111 | - public void generateInvalidDefinitionTest() { | 106 | + public void generateTypeDefTest() { |
| 112 | 107 | ||
| 113 | - // String invalidDefinition = ClassDefinitionGenerator | 108 | + String typeDef = ClassDefinitionGenerator.generateClassDefinition(GeneratedFileType.GENERATE_TYPEDEF_CLASS, |
| 114 | - // .generateClassDefinition(GeneratedFileType.GENERATE_INTERFACE_WITH_BUILDER, "invalid"); | 109 | + "invalid"); |
| 115 | - // assertThat(true, is(invalidDefinition == null)); | 110 | + assertThat(true, is(typeDef.contains(UtilConstants.CLASS))); |
| 116 | } | 111 | } |
| 117 | 112 | ||
| 118 | /** | 113 | /** |
| ... | @@ -123,5 +118,6 @@ public final class ClassDefinitionGeneratorTest { | ... | @@ -123,5 +118,6 @@ public final class ClassDefinitionGeneratorTest { |
| 123 | 118 | ||
| 124 | TraversalType.valueOf(TraversalType.CHILD.toString()); | 119 | TraversalType.valueOf(TraversalType.CHILD.toString()); |
| 125 | GeneratedMethodTypes.valueOf(GeneratedMethodTypes.CONSTRUCTOR.toString()); | 120 | GeneratedMethodTypes.valueOf(GeneratedMethodTypes.CONSTRUCTOR.toString()); |
| 121 | + TempDataStoreTypes.valueOf(TempDataStoreTypes.CONSTRUCTOR.toString()); | ||
| 126 | } | 122 | } |
| 127 | } | 123 | } | ... | ... |
| ... | @@ -25,8 +25,12 @@ import org.onosproject.yangutils.translator.tojava.ImportInfo; | ... | @@ -25,8 +25,12 @@ import org.onosproject.yangutils.translator.tojava.ImportInfo; |
| 25 | import org.onosproject.yangutils.utils.UtilConstants; | 25 | import org.onosproject.yangutils.utils.UtilConstants; |
| 26 | 26 | ||
| 27 | import static org.hamcrest.MatcherAssert.assertThat; | 27 | import static org.hamcrest.MatcherAssert.assertThat; |
| 28 | +import static org.junit.Assert.assertNotNull; | ||
| 28 | import static org.hamcrest.core.Is.is; | 29 | import static org.hamcrest.core.Is.is; |
| 29 | 30 | ||
| 31 | +import java.lang.reflect.Constructor; | ||
| 32 | +import java.lang.reflect.InvocationTargetException; | ||
| 33 | + | ||
| 30 | /** | 34 | /** |
| 31 | * Unit test cases for java code snippet generator. | 35 | * Unit test cases for java code snippet generator. |
| 32 | */ | 36 | */ |
| ... | @@ -40,6 +44,27 @@ public class JavaCodeSnippetGenTest { | ... | @@ -40,6 +44,27 @@ public class JavaCodeSnippetGenTest { |
| 40 | private static final String STRING = "String"; | 44 | private static final String STRING = "String"; |
| 41 | 45 | ||
| 42 | /** | 46 | /** |
| 47 | + * Unit test for private constructor. | ||
| 48 | + * | ||
| 49 | + * @throws SecurityException if any security violation is observed | ||
| 50 | + * @throws NoSuchMethodException if when the method is not found | ||
| 51 | + * @throws IllegalArgumentException if there is illegal argument found | ||
| 52 | + * @throws InstantiationException if instantiation is provoked for the private constructor | ||
| 53 | + * @throws IllegalAccessException if instance is provoked or a method is provoked | ||
| 54 | + * @throws InvocationTargetException when an exception occurs by the method or constructor | ||
| 55 | + */ | ||
| 56 | + @Test | ||
| 57 | + public void callPrivateConstructors() throws SecurityException, NoSuchMethodException, IllegalArgumentException, | ||
| 58 | + InstantiationException, IllegalAccessException, InvocationTargetException { | ||
| 59 | + Class<?>[] classesToConstruct = {JavaCodeSnippetGen.class }; | ||
| 60 | + for (Class<?> clazz : classesToConstruct) { | ||
| 61 | + Constructor<?> constructor = clazz.getDeclaredConstructor(); | ||
| 62 | + constructor.setAccessible(true); | ||
| 63 | + assertNotNull(constructor.newInstance()); | ||
| 64 | + } | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + /** | ||
| 43 | * Unit test case for import text. | 68 | * Unit test case for import text. |
| 44 | */ | 69 | */ |
| 45 | @Test | 70 | @Test |
| ... | @@ -64,27 +89,6 @@ public class JavaCodeSnippetGenTest { | ... | @@ -64,27 +89,6 @@ public class JavaCodeSnippetGenTest { |
| 64 | is(classDef.equals(UtilConstants.PUBLIC + UtilConstants.SPACE + UtilConstants.INTERFACE | 89 | is(classDef.equals(UtilConstants.PUBLIC + UtilConstants.SPACE + UtilConstants.INTERFACE |
| 65 | + UtilConstants.SPACE + YANG_NAME + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET | 90 | + UtilConstants.SPACE + YANG_NAME + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET |
| 66 | + UtilConstants.NEW_LINE))); | 91 | + UtilConstants.NEW_LINE))); |
| 67 | - } | ||
| 68 | - | ||
| 69 | - /** | ||
| 70 | - * Unit test case for java attribute info. | ||
| 71 | - */ | ||
| 72 | - @SuppressWarnings("rawtypes") | ||
| 73 | - @Test | ||
| 74 | - public void testForJavaAttributeInfo() { | ||
| 75 | - // TODO: need to update for new framework | ||
| 76 | - // String attributeWithType | ||
| 77 | - // = JavaCodeSnippetGen.getJavaAttributeDefination(FILE_GEN_TYPE, YANG_NAME, getType()); | ||
| 78 | - // assertThat(true, is(attributeWithType.equals(UtilConstants.PRIVATE + UtilConstants.SPACE | ||
| 79 | - // + getType().getDataTypeName() + UtilConstants.SPACE + YANG_NAME + UtilConstants.SEMI_COLAN))); | ||
| 80 | - // | ||
| 81 | - // String attributeWithoutType | ||
| 82 | - // = JavaCodeSnippetGen.getJavaAttributeDefination(FILE_GEN_TYPE, YANG_NAME, null); | ||
| 83 | - // assertThat(true, | ||
| 84 | - // is(attributeWithoutType.equals( | ||
| 85 | - // UtilConstants.PRIVATE | ||
| 86 | - // + UtilConstants.SPACE + JavaIdentifierSyntax.getCaptialCase(YANG_NAME) | ||
| 87 | - // + UtilConstants.SPACE + YANG_NAME + UtilConstants.SEMI_COLAN))); | ||
| 88 | 92 | ||
| 89 | } | 93 | } |
| 90 | 94 | ||
| ... | @@ -99,29 +103,62 @@ public class JavaCodeSnippetGenTest { | ... | @@ -99,29 +103,62 @@ public class JavaCodeSnippetGenTest { |
| 99 | } | 103 | } |
| 100 | 104 | ||
| 101 | /** | 105 | /** |
| 102 | - * Unit test case for java method info. | 106 | + * Unit test case for java class interface definition close. |
| 103 | */ | 107 | */ |
| 104 | @Test | 108 | @Test |
| 105 | - public void testForJavaMethodInfo() { | 109 | + public void testForJavaClassDefInterfaceClose() { |
| 106 | - //TODO: update to new framework. | 110 | + String interfaceDef = JavaCodeSnippetGen.getJavaClassDefClose(FILE_GEN_TYPE, YANG_NAME); |
| 107 | - // String method | 111 | + assertThat(true, is(interfaceDef.equals(UtilConstants.CLOSE_CURLY_BRACKET))); |
| 108 | - // = JavaCodeSnippetGen.getJavaMethodInfo(FILE_GEN_TYPE, YANG_NAME, METHOD_GEN_TYPE, getType()); | ||
| 109 | - // assertThat(true, | ||
| 110 | - // is(method.equals(UtilConstants.FOUR_SPACE_INDENTATION | ||
| 111 | - // + JavaIdentifierSyntax.getCaptialCase(getType().getDataTypeName()) | ||
| 112 | - // + UtilConstants.SPACE | ||
| 113 | - // + UtilConstants.GET_METHOD_PREFIX + JavaIdentifierSyntax.getCaptialCase(YANG_NAME) | ||
| 114 | - // + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS | ||
| 115 | - // + UtilConstants.SEMI_COLAN))); | ||
| 116 | } | 112 | } |
| 117 | 113 | ||
| 118 | /** | 114 | /** |
| 119 | - * Unit test case for java class definition close. | 115 | + * Unit test case for java class builder class definition close. |
| 120 | */ | 116 | */ |
| 121 | @Test | 117 | @Test |
| 122 | - public void testForJavaClassDefClose() { | 118 | + public void testForJavaClassDefBuilderClassClose() { |
| 123 | - String classDef = JavaCodeSnippetGen.getJavaClassDefClose(FILE_GEN_TYPE, YANG_NAME); | 119 | + String builderClassDef = JavaCodeSnippetGen.getJavaClassDefClose(GeneratedFileType.BUILDER_CLASS_MASK, |
| 124 | - assertThat(true, is(classDef.equals(UtilConstants.CLOSE_CURLY_BRACKET))); | 120 | + YANG_NAME); |
| 121 | + assertThat(true, is(builderClassDef.equals(UtilConstants.CLOSE_CURLY_BRACKET))); | ||
| 122 | + } | ||
| 123 | + | ||
| 124 | + /** | ||
| 125 | + * Unit test case for java class typedef definition close. | ||
| 126 | + */ | ||
| 127 | + @Test | ||
| 128 | + public void testForJavaClassDefTypeDefClose() { | ||
| 129 | + String typeDef = JavaCodeSnippetGen.getJavaClassDefClose(GeneratedFileType.GENERATE_TYPEDEF_CLASS, YANG_NAME); | ||
| 130 | + assertThat(true, is(typeDef.equals(UtilConstants.CLOSE_CURLY_BRACKET))); | ||
| 131 | + } | ||
| 132 | + | ||
| 133 | + /** | ||
| 134 | + * Unit test case for java attribute info. | ||
| 135 | + */ | ||
| 136 | + @SuppressWarnings("rawtypes") | ||
| 137 | + @Test | ||
| 138 | + public void testForJavaAttributeInfo() { | ||
| 139 | + | ||
| 140 | + String attributeWithoutTypePkg = JavaCodeSnippetGen.getJavaAttributeDefination(null, "String", YANG_NAME, | ||
| 141 | + false); | ||
| 142 | + assertThat(true, is(attributeWithoutTypePkg.equals(UtilConstants.PRIVATE + UtilConstants.SPACE + "String" | ||
| 143 | + + UtilConstants.SPACE + YANG_NAME + UtilConstants.SEMI_COLAN))); | ||
| 144 | + String attributeWithTypePkg = JavaCodeSnippetGen.getJavaAttributeDefination("java.lang", "String", YANG_NAME, | ||
| 145 | + false); | ||
| 146 | + assertThat(true, is(attributeWithTypePkg.equals(UtilConstants.PRIVATE + UtilConstants.SPACE + "java.lang." | ||
| 147 | + + "String" + UtilConstants.SPACE + YANG_NAME + UtilConstants.SEMI_COLAN))); | ||
| 148 | + String attributeWithListPkg = JavaCodeSnippetGen.getJavaAttributeDefination("java.lang", "String", YANG_NAME, | ||
| 149 | + true); | ||
| 150 | + assertThat(true, | ||
| 151 | + is(attributeWithListPkg.equals(UtilConstants.PRIVATE + UtilConstants.SPACE + UtilConstants.LIST | ||
| 152 | + + UtilConstants.DIAMOND_OPEN_BRACKET + "java.lang." | ||
| 153 | + + "String" + UtilConstants.DIAMOND_CLOSE_BRACKET + UtilConstants.SPACE + YANG_NAME | ||
| 154 | + + UtilConstants.SEMI_COLAN))); | ||
| 155 | + String attributeWithListWithoutPkg = JavaCodeSnippetGen.getJavaAttributeDefination(null, "String", YANG_NAME, | ||
| 156 | + true); | ||
| 157 | + assertThat(true, | ||
| 158 | + is(attributeWithListWithoutPkg.equals(UtilConstants.PRIVATE + UtilConstants.SPACE + UtilConstants.LIST | ||
| 159 | + + UtilConstants.DIAMOND_OPEN_BRACKET + "String" | ||
| 160 | + + UtilConstants.DIAMOND_CLOSE_BRACKET + UtilConstants.SPACE + YANG_NAME | ||
| 161 | + + UtilConstants.SEMI_COLAN))); | ||
| 125 | } | 162 | } |
| 126 | 163 | ||
| 127 | /** | 164 | /** | ... | ... |
| ... | @@ -36,8 +36,8 @@ public final class JavaIdentifierSyntaxTest { | ... | @@ -36,8 +36,8 @@ public final class JavaIdentifierSyntaxTest { |
| 36 | public static final String DATE2 = "1992-01-25"; | 36 | public static final String DATE2 = "1992-01-25"; |
| 37 | public static final String PARENT_WITH_PERIOD = "test5.test6.test7"; | 37 | public static final String PARENT_WITH_PERIOD = "test5.test6.test7"; |
| 38 | public static final String CHILD_WITH_PERIOD = "test1.test2.test3"; | 38 | public static final String CHILD_WITH_PERIOD = "test1.test2.test3"; |
| 39 | - public static final String DATE_WITH_REV1 = "rev000105"; | 39 | + public static final String DATE_WITH_REV1 = "rev20000105"; |
| 40 | - public static final String DATE_WITH_REV2 = "rev920125"; | 40 | + public static final String DATE_WITH_REV2 = "rev19920125"; |
| 41 | public static final String VERSION_NUMBER = "v1"; | 41 | public static final String VERSION_NUMBER = "v1"; |
| 42 | public static final String INVALID_NAME_SPACE1 = "byte:#test2:9test3"; | 42 | public static final String INVALID_NAME_SPACE1 = "byte:#test2:9test3"; |
| 43 | public static final String INVALID_NAME_SPACE2 = "const:#test2://9test3"; | 43 | public static final String INVALID_NAME_SPACE2 = "const:#test2://9test3"; | ... | ... |
| ... | @@ -16,17 +16,17 @@ | ... | @@ -16,17 +16,17 @@ |
| 16 | 16 | ||
| 17 | package org.onosproject.yangutils.translator.tojava.utils; | 17 | package org.onosproject.yangutils.translator.tojava.utils; |
| 18 | 18 | ||
| 19 | -import java.lang.reflect.Constructor; | ||
| 20 | -import java.lang.reflect.InvocationTargetException; | ||
| 21 | - | ||
| 22 | import org.junit.Test; | 19 | import org.junit.Test; |
| 23 | -import org.onosproject.yangutils.datamodel.YangType; | ||
| 24 | -import org.onosproject.yangutils.translator.GeneratedFileType; | ||
| 25 | -import org.onosproject.yangutils.translator.tojava.AttributeInfo; | ||
| 26 | - | ||
| 27 | import static org.hamcrest.core.Is.is; | 20 | import static org.hamcrest.core.Is.is; |
| 28 | -import static org.junit.Assert.assertNotNull; | ||
| 29 | import static org.junit.Assert.assertThat; | 21 | import static org.junit.Assert.assertThat; |
| 22 | +import static org.junit.Assert.assertNotNull; | ||
| 23 | +import org.onosproject.yangutils.datamodel.YangDataTypes; | ||
| 24 | +import org.onosproject.yangutils.datamodel.YangType; | ||
| 25 | +import org.onosproject.yangutils.translator.tojava.AttributeInfo; | ||
| 26 | +import org.onosproject.yangutils.translator.tojava.ImportInfo; | ||
| 27 | +import org.onosproject.yangutils.utils.UtilConstants; | ||
| 28 | +import java.lang.reflect.Constructor; | ||
| 29 | +import java.lang.reflect.InvocationTargetException; | ||
| 30 | 30 | ||
| 31 | /** | 31 | /** |
| 32 | * Unit tests for generated methods from the file type. | 32 | * Unit tests for generated methods from the file type. |
| ... | @@ -42,19 +42,15 @@ public final class MethodsGeneratorTest { | ... | @@ -42,19 +42,15 @@ public final class MethodsGeneratorTest { |
| 42 | * @throws SecurityException if any security violation is observed | 42 | * @throws SecurityException if any security violation is observed |
| 43 | * @throws NoSuchMethodException if when the method is not found | 43 | * @throws NoSuchMethodException if when the method is not found |
| 44 | * @throws IllegalArgumentException if there is illegal argument found | 44 | * @throws IllegalArgumentException if there is illegal argument found |
| 45 | - * @throws InstantiationException if instantiation is provoked for the | 45 | + * @throws InstantiationException if instantiation is provoked for the private constructor |
| 46 | - * private constructor | 46 | + * @throws IllegalAccessException if instance is provoked or a method is provoked |
| 47 | - * @throws IllegalAccessException if instance is provoked or a method is | 47 | + * @throws InvocationTargetException when an exception occurs by the method or constructor |
| 48 | - * provoked | ||
| 49 | - * @throws InvocationTargetException when an exception occurs by the method | ||
| 50 | - * or constructor | ||
| 51 | */ | 48 | */ |
| 52 | @Test | 49 | @Test |
| 53 | public void callPrivateConstructors() throws SecurityException, NoSuchMethodException, IllegalArgumentException, | 50 | public void callPrivateConstructors() throws SecurityException, NoSuchMethodException, IllegalArgumentException, |
| 54 | - InstantiationException, IllegalAccessException, InvocationTargetException { | 51 | + InstantiationException, IllegalAccessException, InvocationTargetException { |
| 55 | 52 | ||
| 56 | - Class<?>[] classesToConstruct = { | 53 | + Class<?>[] classesToConstruct = {MethodsGenerator.class }; |
| 57 | - MethodsGenerator.class }; | ||
| 58 | for (Class<?> clazz : classesToConstruct) { | 54 | for (Class<?> clazz : classesToConstruct) { |
| 59 | Constructor<?> constructor = clazz.getDeclaredConstructor(); | 55 | Constructor<?> constructor = clazz.getDeclaredConstructor(); |
| 60 | constructor.setAccessible(true); | 56 | constructor.setAccessible(true); |
| ... | @@ -63,27 +59,100 @@ public final class MethodsGeneratorTest { | ... | @@ -63,27 +59,100 @@ public final class MethodsGeneratorTest { |
| 63 | } | 59 | } |
| 64 | 60 | ||
| 65 | /** | 61 | /** |
| 66 | - * Unit test for checking the values received from constructor, default | 62 | + * Unit test case for checking the parse builder and typedef constructor. |
| 67 | - * constructor and build string formation. | 63 | + */ |
| 64 | + @Test | ||
| 65 | + public void getParseBuilderInterfaceMethodConstructorTest() { | ||
| 66 | + ImportInfo forSetter = new ImportInfo(); | ||
| 67 | + attrType.setDataTypeName("binary"); | ||
| 68 | + attrType.getDataTypeName(); | ||
| 69 | + attrType.setDataType(YangDataTypes.BINARY); | ||
| 70 | + attrType.getDataType(); | ||
| 71 | + testAttr.setAttributeName("attributeTest"); | ||
| 72 | + testAttr.setAttributeType(attrType); | ||
| 73 | + forSetter.setPkgInfo("test1/test3"); | ||
| 74 | + forSetter.setClassInfo("This class contains"); | ||
| 75 | + testAttr.setImportInfo(forSetter); | ||
| 76 | + String parseBuilderInterface = MethodsGenerator.parseBuilderInterfaceMethodString(testAttr, "newTestName"); | ||
| 77 | + assertThat(parseBuilderInterface.contains("attributeTest") && parseBuilderInterface.contains("newTestName"), | ||
| 78 | + is(true)); | ||
| 79 | + String parseBuilderInterfaceBuild = MethodsGenerator.parseBuilderInterfaceBuildMethodString("testname7"); | ||
| 80 | + assertThat(parseBuilderInterfaceBuild.contains("Builds object of") | ||
| 81 | + && parseBuilderInterfaceBuild.contains("testname7"), is(true)); | ||
| 82 | + String stringTypeDef = MethodsGenerator.getTypeDefConstructor(testAttr, "Testname"); | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + /** | ||
| 86 | + * Unit test case for checking the values received from constructor, default constructor and build string formation. | ||
| 68 | */ | 87 | */ |
| 69 | @Test | 88 | @Test |
| 70 | public void getValuesTest() { | 89 | public void getValuesTest() { |
| 71 | String stringConstructor = MethodsGenerator.getConstructorString("testname"); | 90 | String stringConstructor = MethodsGenerator.getConstructorString("testname"); |
| 72 | - assertThat( | 91 | + assertThat(stringConstructor.contains(UtilConstants.JAVA_DOC_CONSTRUCTOR) |
| 73 | - stringConstructor.contains("Construct the object of testnameImpl.") | 92 | + && stringConstructor.contains(UtilConstants.JAVA_DOC_PARAM) |
| 74 | - && stringConstructor.contains("@param testnameObject builder object of testname") | 93 | + && stringConstructor.contains(UtilConstants.BUILDER_OBJECT), is(true)); |
| 75 | - && stringConstructor.contains("public testnameImpl(testnameBuilder testnameObject) {"), | 94 | + String stringDefaultConstructor = MethodsGenerator.getDefaultConstructorString("testnameBuilder", "public"); |
| 76 | - is(true)); | 95 | + assertThat(stringDefaultConstructor.contains(UtilConstants.JAVA_DOC_DEFAULT_CONSTRUCTOR) |
| 77 | - String stringDefaultConstructor = MethodsGenerator.getDefaultConstructorString( | 96 | + && stringDefaultConstructor.contains(UtilConstants.BUILDER) |
| 78 | - GeneratedFileType.BUILDER_CLASS_MASK, | 97 | + && stringDefaultConstructor.contains("testname"), is(true)); |
| 79 | - "testname"); | ||
| 80 | - assertThat(stringDefaultConstructor.contains("Default Constructor.") | ||
| 81 | - && stringDefaultConstructor.contains("public testnameBuilder() {") | ||
| 82 | - && stringDefaultConstructor.contains("}"), is(true)); | ||
| 83 | String stringBuild = MethodsGenerator.getBuildString("testname"); | 98 | String stringBuild = MethodsGenerator.getBuildString("testname"); |
| 84 | - assertThat( | 99 | + assertThat(stringBuild.contains(UtilConstants.OVERRIDE) && stringBuild.contains(UtilConstants.BUILD) |
| 85 | - stringBuild.contains("public testname build() {") | 100 | + && stringBuild.contains(UtilConstants.RETURN), is(true)); |
| 86 | - && stringBuild.contains("return new testnameImpl(this);") && stringBuild.contains("}"), | 101 | + |
| 102 | + } | ||
| 103 | + | ||
| 104 | + /** | ||
| 105 | + * Unit test for checking the values received for class getter, class and typedef setters with list data type. | ||
| 106 | + */ | ||
| 107 | + @Test | ||
| 108 | + public void getGetterSetterTest() { | ||
| 109 | + | ||
| 110 | + ImportInfo forGetterSetter = new ImportInfo(); | ||
| 111 | + attrType.setDataTypeName("int"); | ||
| 112 | + attrType.getDataTypeName(); | ||
| 113 | + attrType.setDataType(YangDataTypes.UINT8); | ||
| 114 | + attrType.getDataType(); | ||
| 115 | + testAttr.setAttributeName("AttributeTest1"); | ||
| 116 | + testAttr.setAttributeType(attrType); | ||
| 117 | + forGetterSetter.setPkgInfo(null); | ||
| 118 | + forGetterSetter.setClassInfo("This class contains"); | ||
| 119 | + testAttr.setImportInfo(forGetterSetter); | ||
| 120 | + testAttr.setListAttr(true); | ||
| 121 | + String getterForClass = MethodsGenerator.getGetterForClass(testAttr); | ||
| 122 | + assertThat(getterForClass.contains(UtilConstants.GET_METHOD_PREFIX) && getterForClass.contains("List<") | ||
| 123 | + && getterForClass.contains("attributeTest1"), is(true)); | ||
| 124 | + String setterForClass = MethodsGenerator.getSetterForClass(testAttr, "TestThis"); | ||
| 125 | + assertThat(setterForClass.contains(UtilConstants.SET_METHOD_PREFIX) && setterForClass.contains("List<") | ||
| 126 | + && setterForClass.contains("attributeTest1"), is(true)); | ||
| 127 | + String typeDefSetter = MethodsGenerator.getSetterForTypeDefClass(testAttr); | ||
| 128 | + assertThat(typeDefSetter.contains(UtilConstants.SET_METHOD_PREFIX) && typeDefSetter.contains("List<") | ||
| 129 | + && typeDefSetter.contains("attributeTest1") && typeDefSetter.contains("this."), is(true)); | ||
| 130 | + } | ||
| 131 | + | ||
| 132 | + /** | ||
| 133 | + * Unit test case for checking the parse builder and typedef constructor with list data type. | ||
| 134 | + */ | ||
| 135 | + @Test | ||
| 136 | + public void getConstructorWithListTypeTest() { | ||
| 137 | + ImportInfo forSetter = new ImportInfo(); | ||
| 138 | + attrType.setDataTypeName("binary"); | ||
| 139 | + attrType.getDataTypeName(); | ||
| 140 | + attrType.setDataType(YangDataTypes.BINARY); | ||
| 141 | + attrType.getDataType(); | ||
| 142 | + testAttr.setAttributeName("attributeTest"); | ||
| 143 | + testAttr.setAttributeType(attrType); | ||
| 144 | + forSetter.setPkgInfo(null); | ||
| 145 | + forSetter.setClassInfo("This class contains"); | ||
| 146 | + testAttr.setImportInfo(forSetter); | ||
| 147 | + testAttr.setListAttr(true); | ||
| 148 | + String parseBuilderInterface = MethodsGenerator.parseBuilderInterfaceMethodString(testAttr, "newTestName"); | ||
| 149 | + assertThat(parseBuilderInterface.contains("attributeTest") && parseBuilderInterface.contains("List<"), | ||
| 87 | is(true)); | 150 | is(true)); |
| 151 | + String parseBuilderInterfaceBuild = MethodsGenerator.parseBuilderInterfaceBuildMethodString("testname7"); | ||
| 152 | + assertThat(parseBuilderInterfaceBuild.contains("Builds object of") | ||
| 153 | + && parseBuilderInterfaceBuild.contains("testname7"), is(true)); | ||
| 154 | + String stringTypeDef = MethodsGenerator.getTypeDefConstructor(testAttr, "Testname"); | ||
| 155 | + assertThat(stringTypeDef.contains("(List<") && stringTypeDef.contains("Testname") | ||
| 156 | + && stringTypeDef.contains(UtilConstants.THIS), is(true)); | ||
| 88 | } | 157 | } |
| 89 | -} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 158 | +} | ... | ... |
| ... | @@ -16,22 +16,25 @@ | ... | @@ -16,22 +16,25 @@ |
| 16 | 16 | ||
| 17 | package org.onosproject.yangutils.utils.io.impl; | 17 | package org.onosproject.yangutils.utils.io.impl; |
| 18 | 18 | ||
| 19 | +import static org.slf4j.LoggerFactory.getLogger; | ||
| 20 | + | ||
| 19 | import org.junit.Test; | 21 | import org.junit.Test; |
| 20 | import org.junit.Rule; | 22 | import org.junit.Rule; |
| 21 | import org.junit.rules.ExpectedException; | 23 | import org.junit.rules.ExpectedException; |
| 22 | -import org.onosproject.yangutils.translator.GeneratedFileType; | 24 | + |
| 23 | -import org.onosproject.yangutils.utils.UtilConstants; | 25 | +import static org.junit.Assert.assertNotNull; |
| 26 | +import static org.junit.Assert.assertTrue; | ||
| 27 | +import static org.junit.Assert.assertFalse; | ||
| 24 | 28 | ||
| 25 | import java.io.File; | 29 | import java.io.File; |
| 26 | import java.io.IOException; | 30 | import java.io.IOException; |
| 27 | import java.lang.reflect.Constructor; | 31 | import java.lang.reflect.Constructor; |
| 28 | import java.lang.reflect.InvocationTargetException; | 32 | import java.lang.reflect.InvocationTargetException; |
| 29 | 33 | ||
| 34 | +import org.onosproject.yangutils.translator.GeneratedFileType; | ||
| 35 | +import org.onosproject.yangutils.utils.UtilConstants; | ||
| 30 | import org.slf4j.Logger; | 36 | import org.slf4j.Logger; |
| 31 | -import static org.slf4j.LoggerFactory.getLogger; | 37 | + |
| 32 | -import static org.junit.Assert.assertNotNull; | ||
| 33 | -import static org.junit.Assert.assertTrue; | ||
| 34 | -import static org.junit.Assert.assertFalse; | ||
| 35 | 38 | ||
| 36 | /** | 39 | /** |
| 37 | * Tests the file handle utilities. | 40 | * Tests the file handle utilities. |
| ... | @@ -50,12 +53,12 @@ public final class FileSystemUtilTest { | ... | @@ -50,12 +53,12 @@ public final class FileSystemUtilTest { |
| 50 | /** | 53 | /** |
| 51 | * A private constructor is tested. | 54 | * A private constructor is tested. |
| 52 | * | 55 | * |
| 53 | - * @throws SecurityException if any security violation is observed. | 56 | + * @throws SecurityException if any security violation is observed |
| 54 | - * @throws NoSuchMethodException if when the method is not found. | 57 | + * @throws NoSuchMethodException if when the method is not found |
| 55 | - * @throws IllegalArgumentException if there is illegal argument found. | 58 | + * @throws IllegalArgumentException if there is illegal argument found |
| 56 | - * @throws InstantiationException if instantiation is provoked for the private constructor. | 59 | + * @throws InstantiationException if instantiation is provoked for the private constructor |
| 57 | - * @throws IllegalAccessException if instance is provoked or a method is provoked. | 60 | + * @throws IllegalAccessException if instance is provoked or a method is provoked |
| 58 | - * @throws InvocationTargetException when an exception occurs by the method or constructor. | 61 | + * @throws InvocationTargetException when an exception occurs by the method or constructor |
| 59 | */ | 62 | */ |
| 60 | @Test | 63 | @Test |
| 61 | public void callPrivateConstructors() throws SecurityException, NoSuchMethodException, IllegalArgumentException, | 64 | public void callPrivateConstructors() throws SecurityException, NoSuchMethodException, IllegalArgumentException, |
| ... | @@ -82,17 +85,18 @@ public final class FileSystemUtilTest { | ... | @@ -82,17 +85,18 @@ public final class FileSystemUtilTest { |
| 82 | * This test case checks the contents to be written in the file. | 85 | * This test case checks the contents to be written in the file. |
| 83 | */ | 86 | */ |
| 84 | @Test | 87 | @Test |
| 85 | - public void insertStringInFileTest() throws IOException { | 88 | + public void updateFileHandleTest() throws IOException { |
| 86 | File dir = new File(baseDir + File.separator + "File1"); | 89 | File dir = new File(baseDir + File.separator + "File1"); |
| 87 | dir.mkdirs(); | 90 | dir.mkdirs(); |
| 88 | File createFile = new File(dir + "testFile"); | 91 | File createFile = new File(dir + "testFile"); |
| 89 | createFile.createNewFile(); | 92 | createFile.createNewFile(); |
| 90 | File createSourceFile = new File(dir + "sourceTestFile"); | 93 | File createSourceFile = new File(dir + "sourceTestFile"); |
| 91 | createSourceFile.createNewFile(); | 94 | createSourceFile.createNewFile(); |
| 92 | - FileSystemUtil.insertStringInFile(createFile, "This is to append a text to the file first1\n"); | 95 | + FileSystemUtil.updateFileHandle(createFile, "This is to append a text to the file first1\n", false); |
| 93 | - FileSystemUtil.insertStringInFile(createFile, "This is next second line\n"); | 96 | + FileSystemUtil.updateFileHandle(createFile, "This is next second line\n", false); |
| 94 | - FileSystemUtil.insertStringInFile(createFile, "This is next third line in the file"); | 97 | + FileSystemUtil.updateFileHandle(createFile, "This is next third line in the file", false); |
| 95 | FileSystemUtil.appendFileContents(createFile, createSourceFile); | 98 | FileSystemUtil.appendFileContents(createFile, createSourceFile); |
| 99 | + FileSystemUtil.updateFileHandle(createFile, null, true); | ||
| 96 | } | 100 | } |
| 97 | 101 | ||
| 98 | /** | 102 | /** | ... | ... |
| ... | @@ -41,7 +41,7 @@ public final class JavaDocGenTest { | ... | @@ -41,7 +41,7 @@ public final class JavaDocGenTest { |
| 41 | @Test | 41 | @Test |
| 42 | public void builderClassGenerationTest() { | 42 | public void builderClassGenerationTest() { |
| 43 | 43 | ||
| 44 | - String builderClassJavaDoc = JavaDocGen.getJavaDoc(JavaDocType.BUILDER_CLASS, "testGeneration1"); | 44 | + String builderClassJavaDoc = JavaDocGen.getJavaDoc(JavaDocType.BUILDER_CLASS, "testGeneration1", false); |
| 45 | assertTrue(builderClassJavaDoc.contains("Provides the builder implementation of") | 45 | assertTrue(builderClassJavaDoc.contains("Provides the builder implementation of") |
| 46 | && builderClassJavaDoc.contains(" */\n")); | 46 | && builderClassJavaDoc.contains(" */\n")); |
| 47 | } | 47 | } |
| ... | @@ -52,7 +52,7 @@ public final class JavaDocGenTest { | ... | @@ -52,7 +52,7 @@ public final class JavaDocGenTest { |
| 52 | @Test | 52 | @Test |
| 53 | public void builderInterfaceGenerationTest() { | 53 | public void builderInterfaceGenerationTest() { |
| 54 | 54 | ||
| 55 | - String builderInterfaceJavaDoc = JavaDocGen.getJavaDoc(JavaDocType.BUILDER_INTERFACE, "testGeneration1"); | 55 | + String builderInterfaceJavaDoc = JavaDocGen.getJavaDoc(JavaDocType.BUILDER_INTERFACE, "testGeneration1", false); |
| 56 | assertTrue(builderInterfaceJavaDoc.contains("Builder for") && builderInterfaceJavaDoc.contains(" */\n")); | 56 | assertTrue(builderInterfaceJavaDoc.contains("Builder for") && builderInterfaceJavaDoc.contains(" */\n")); |
| 57 | } | 57 | } |
| 58 | 58 | ||
| ... | @@ -62,19 +62,19 @@ public final class JavaDocGenTest { | ... | @@ -62,19 +62,19 @@ public final class JavaDocGenTest { |
| 62 | @Test | 62 | @Test |
| 63 | public void buildGenerationTest() { | 63 | public void buildGenerationTest() { |
| 64 | 64 | ||
| 65 | - String buildDoc = JavaDocGen.getJavaDoc(JavaDocType.BUILD, "testGeneration1"); | 65 | + String buildDoc = JavaDocGen.getJavaDoc(JavaDocType.BUILD, "testGeneration1", false); |
| 66 | assertTrue(buildDoc.contains("Builds object of") && buildDoc.contains(" */\n")); | 66 | assertTrue(buildDoc.contains("Builds object of") && buildDoc.contains(" */\n")); |
| 67 | } | 67 | } |
| 68 | 68 | ||
| 69 | /** | 69 | /** |
| 70 | * A private constructor is tested. | 70 | * A private constructor is tested. |
| 71 | * | 71 | * |
| 72 | - * @throws SecurityException if any security violation is observed. | 72 | + * @throws SecurityException if any security violation is observed |
| 73 | - * @throws NoSuchMethodException if when the method is not found. | 73 | + * @throws NoSuchMethodException if when the method is not found |
| 74 | - * @throws IllegalArgumentException if there is illegal argument found. | 74 | + * @throws IllegalArgumentException if there is illegal argument found |
| 75 | - * @throws InstantiationException if instantiation is provoked for the private constructor. | 75 | + * @throws InstantiationException if instantiation is provoked for the private constructor |
| 76 | - * @throws IllegalAccessException if instance is provoked or a method is provoked. | 76 | + * @throws IllegalAccessException if instance is provoked or a method is provoked |
| 77 | - * @throws InvocationTargetException when an exception occurs by the method or constructor. | 77 | + * @throws InvocationTargetException when an exception occurs by the method or constructor |
| 78 | */ | 78 | */ |
| 79 | @Test | 79 | @Test |
| 80 | public void callPrivateConstructors() throws SecurityException, NoSuchMethodException, IllegalArgumentException, | 80 | public void callPrivateConstructors() throws SecurityException, NoSuchMethodException, IllegalArgumentException, |
| ... | @@ -94,7 +94,7 @@ public final class JavaDocGenTest { | ... | @@ -94,7 +94,7 @@ public final class JavaDocGenTest { |
| 94 | @Test | 94 | @Test |
| 95 | public void constructorGenerationTest() { | 95 | public void constructorGenerationTest() { |
| 96 | 96 | ||
| 97 | - String constructorDoc = JavaDocGen.getJavaDoc(JavaDocType.CONSTRUCTOR, "testGeneration1"); | 97 | + String constructorDoc = JavaDocGen.getJavaDoc(JavaDocType.CONSTRUCTOR, "testGeneration1", false); |
| 98 | assertTrue( | 98 | assertTrue( |
| 99 | constructorDoc.contains("Construct the object of") && constructorDoc.contains("builder object of") | 99 | constructorDoc.contains("Construct the object of") && constructorDoc.contains("builder object of") |
| 100 | && constructorDoc.contains("@param") && constructorDoc.contains("*/\n")); | 100 | && constructorDoc.contains("@param") && constructorDoc.contains("*/\n")); |
| ... | @@ -107,7 +107,7 @@ public final class JavaDocGenTest { | ... | @@ -107,7 +107,7 @@ public final class JavaDocGenTest { |
| 107 | @Test | 107 | @Test |
| 108 | public void defaultConstructorGenerationTest() { | 108 | public void defaultConstructorGenerationTest() { |
| 109 | 109 | ||
| 110 | - String defaultConstructorDoc = JavaDocGen.getJavaDoc(JavaDocType.DEFAULT_CONSTRUCTOR, "testGeneration1"); | 110 | + String defaultConstructorDoc = JavaDocGen.getJavaDoc(JavaDocType.DEFAULT_CONSTRUCTOR, "testGeneration1", false); |
| 111 | assertTrue(defaultConstructorDoc.contains("Default Constructor") && defaultConstructorDoc.contains(" */\n")); | 111 | assertTrue(defaultConstructorDoc.contains("Default Constructor") && defaultConstructorDoc.contains(" */\n")); |
| 112 | } | 112 | } |
| 113 | 113 | ||
| ... | @@ -117,7 +117,7 @@ public final class JavaDocGenTest { | ... | @@ -117,7 +117,7 @@ public final class JavaDocGenTest { |
| 117 | @Test | 117 | @Test |
| 118 | public void getterGenerationTest() { | 118 | public void getterGenerationTest() { |
| 119 | 119 | ||
| 120 | - String getterJavaDoc = JavaDocGen.getJavaDoc(JavaDocType.GETTER, "testGeneration1"); | 120 | + String getterJavaDoc = JavaDocGen.getJavaDoc(JavaDocType.GETTER, "testGeneration1", false); |
| 121 | assertTrue(getterJavaDoc.contains("Returns the attribute") && getterJavaDoc.contains(" */\n")); | 121 | assertTrue(getterJavaDoc.contains("Returns the attribute") && getterJavaDoc.contains(" */\n")); |
| 122 | } | 122 | } |
| 123 | 123 | ||
| ... | @@ -126,7 +126,7 @@ public final class JavaDocGenTest { | ... | @@ -126,7 +126,7 @@ public final class JavaDocGenTest { |
| 126 | */ | 126 | */ |
| 127 | @Test | 127 | @Test |
| 128 | public void implClassGenerationTest() { | 128 | public void implClassGenerationTest() { |
| 129 | - String implClassJavaDoc = JavaDocGen.getJavaDoc(JavaDocType.IMPL_CLASS, "testGeneration1"); | 129 | + String implClassJavaDoc = JavaDocGen.getJavaDoc(JavaDocType.IMPL_CLASS, "testGeneration1", false); |
| 130 | assertTrue(implClassJavaDoc.contains("Provides the implementation of") && implClassJavaDoc.contains(" */\n")); | 130 | assertTrue(implClassJavaDoc.contains("Provides the implementation of") && implClassJavaDoc.contains(" */\n")); |
| 131 | } | 131 | } |
| 132 | 132 | ||
| ... | @@ -136,7 +136,7 @@ public final class JavaDocGenTest { | ... | @@ -136,7 +136,7 @@ public final class JavaDocGenTest { |
| 136 | @Test | 136 | @Test |
| 137 | public void interfaceGenerationTest() { | 137 | public void interfaceGenerationTest() { |
| 138 | 138 | ||
| 139 | - String interfaceJavaDoc = JavaDocGen.getJavaDoc(JavaDocType.INTERFACE, "testGeneration1"); | 139 | + String interfaceJavaDoc = JavaDocGen.getJavaDoc(JavaDocType.INTERFACE, "testGeneration1", false); |
| 140 | assertTrue(interfaceJavaDoc.contains("Abstraction of an entity which provides functionalities of") | 140 | assertTrue(interfaceJavaDoc.contains("Abstraction of an entity which provides functionalities of") |
| 141 | && interfaceJavaDoc.contains(" */\n")); | 141 | && interfaceJavaDoc.contains(" */\n")); |
| 142 | } | 142 | } |
| ... | @@ -146,10 +146,9 @@ public final class JavaDocGenTest { | ... | @@ -146,10 +146,9 @@ public final class JavaDocGenTest { |
| 146 | */ | 146 | */ |
| 147 | @Test | 147 | @Test |
| 148 | public void packageInfoGenerationTest() { | 148 | public void packageInfoGenerationTest() { |
| 149 | - // TODO: udpate to new framework. | 149 | + |
| 150 | - // String packageInfo = JavaDocGen.getJavaDoc(JavaDocType.PACKAGE_INFO, "testGeneration1"); | 150 | + String packageInfo = JavaDocGen.getJavaDoc(JavaDocType.PACKAGE_INFO, "testGeneration1", false); |
| 151 | - // assertTrue(packageInfo.contains( | 151 | + assertTrue(packageInfo.contains("Generated java code corresponding to YANG") && packageInfo.contains(" */\n")); |
| 152 | - // "Generated java code for the YANG file") && packageInfo.contains(" */\n")); | ||
| 153 | } | 152 | } |
| 154 | 153 | ||
| 155 | /** | 154 | /** |
| ... | @@ -158,7 +157,17 @@ public final class JavaDocGenTest { | ... | @@ -158,7 +157,17 @@ public final class JavaDocGenTest { |
| 158 | @Test | 157 | @Test |
| 159 | public void setterGenerationTest() { | 158 | public void setterGenerationTest() { |
| 160 | 159 | ||
| 161 | - String setterJavaDoc = JavaDocGen.getJavaDoc(JavaDocType.SETTER, "testGeneration1"); | 160 | + String setterJavaDoc = JavaDocGen.getJavaDoc(JavaDocType.SETTER, "testGeneration1", false); |
| 162 | assertTrue(setterJavaDoc.contains("Returns the builder object of") && setterJavaDoc.contains(" */\n")); | 161 | assertTrue(setterJavaDoc.contains("Returns the builder object of") && setterJavaDoc.contains(" */\n")); |
| 163 | } | 162 | } |
| 163 | + | ||
| 164 | + /** | ||
| 165 | + * This test case checks the content received for the typedef setter java doc. | ||
| 166 | + */ | ||
| 167 | + @Test | ||
| 168 | + public void typeDefSetterGenerationTest() { | ||
| 169 | + | ||
| 170 | + String typeDefSetter = JavaDocGen.getJavaDoc(JavaDocType.TYPE_DEF_SETTER, "testGeneration1", false); | ||
| 171 | + assertTrue(typeDefSetter.contains("Sets the value of") && typeDefSetter.contains(" */\n")); | ||
| 172 | + } | ||
| 164 | } | 173 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
utils/yangutils/src/test/java/org/onosproject/yangutils/utils/io/impl/TempDataStoreTest.java
deleted
100644 → 0
| 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.junit.Test; | ||
| 20 | -import org.junit.Rule; | ||
| 21 | -import org.junit.rules.ExpectedException; | ||
| 22 | -import org.onosproject.yangutils.utils.io.impl.TempDataStore.TempDataStoreType; | ||
| 23 | - | ||
| 24 | -import java.io.FileNotFoundException; | ||
| 25 | -import java.io.IOException; | ||
| 26 | -import java.lang.reflect.Constructor; | ||
| 27 | -import java.lang.reflect.InvocationTargetException; | ||
| 28 | -import java.util.LinkedList; | ||
| 29 | -import java.util.List; | ||
| 30 | - | ||
| 31 | -import org.slf4j.Logger; | ||
| 32 | -import static org.slf4j.LoggerFactory.getLogger; | ||
| 33 | - | ||
| 34 | -import static org.hamcrest.core.Is.is; | ||
| 35 | -import static org.junit.Assert.assertThat; | ||
| 36 | -import static org.junit.Assert.assertNotNull; | ||
| 37 | - | ||
| 38 | -/** | ||
| 39 | - * Unit tests for the Tempd data store for its contents. | ||
| 40 | - */ | ||
| 41 | -public final class TempDataStoreTest { | ||
| 42 | - | ||
| 43 | - private final Logger log = getLogger(getClass()); | ||
| 44 | - private static final String CLASS_NAME = "YANG"; | ||
| 45 | - | ||
| 46 | - @Rule | ||
| 47 | - public ExpectedException thrown = ExpectedException.none(); | ||
| 48 | - | ||
| 49 | - /** | ||
| 50 | - * A private constructor is tested. | ||
| 51 | - * | ||
| 52 | - * @throws SecurityException if any security violation is observed. | ||
| 53 | - * @throws NoSuchMethodException if when the method is not found. | ||
| 54 | - * @throws IllegalArgumentException if there is illegal argument found. | ||
| 55 | - * @throws InstantiationException if instantiation is provoked for the private constructor. | ||
| 56 | - * @throws IllegalAccessException if instance is provoked or a method is provoked. | ||
| 57 | - * @throws InvocationTargetException when an exception occurs by the method or constructor. | ||
| 58 | - */ | ||
| 59 | - @Test | ||
| 60 | - public void callPrivateConstructors() throws SecurityException, NoSuchMethodException, IllegalArgumentException, | ||
| 61 | - InstantiationException, IllegalAccessException, InvocationTargetException { | ||
| 62 | - | ||
| 63 | - Class<?>[] classesToConstruct = {TempDataStore.class }; | ||
| 64 | - for (Class<?> clazz : classesToConstruct) { | ||
| 65 | - Constructor<?> constructor = clazz.getDeclaredConstructor(); | ||
| 66 | - constructor.setAccessible(true); | ||
| 67 | - assertNotNull(constructor.newInstance()); | ||
| 68 | - } | ||
| 69 | - } | ||
| 70 | - | ||
| 71 | - /** | ||
| 72 | - * This test case checks the attribute info that is read and put into the list. | ||
| 73 | - */ | ||
| 74 | - @Test | ||
| 75 | - public void insertAttributeDataTest() throws IOException, ClassNotFoundException, FileNotFoundException { | ||
| 76 | - | ||
| 77 | - String attributeData = "attribute content lists this"; | ||
| 78 | - TempDataStore.setTempData(attributeData, TempDataStoreType.ATTRIBUTE, CLASS_NAME); | ||
| 79 | - List<String> attributeInfo = TempDataStore.getTempData(TempDataStoreType.ATTRIBUTE, CLASS_NAME); | ||
| 80 | - List<String> expectedinfo = new LinkedList<>(); | ||
| 81 | - expectedinfo.add(attributeData); | ||
| 82 | - assertThat(true, is(attributeInfo.equals(expectedinfo))); | ||
| 83 | - TempDataStoreType.valueOf(TempDataStoreType.ATTRIBUTE.toString()); | ||
| 84 | - } | ||
| 85 | - | ||
| 86 | - /** | ||
| 87 | - * This test case checks the builder interface that is read and put into the list. | ||
| 88 | - */ | ||
| 89 | - @Test | ||
| 90 | - public void insertBuilderInterfaceMethodsTest() throws IOException, ClassNotFoundException, FileNotFoundException { | ||
| 91 | - | ||
| 92 | - String builderInterfaceMethodsData = "builder interface methods content lists this"; | ||
| 93 | - TempDataStore.setTempData(builderInterfaceMethodsData, TempDataStoreType.BUILDER_INTERFACE_METHODS, CLASS_NAME); | ||
| 94 | - List<String> attributeInfo = TempDataStore.getTempData(TempDataStoreType.BUILDER_INTERFACE_METHODS, CLASS_NAME); | ||
| 95 | - List<String> expectedinfo = new LinkedList<>(); | ||
| 96 | - expectedinfo.add(builderInterfaceMethodsData); | ||
| 97 | - assertThat(true, is(attributeInfo.equals(expectedinfo))); | ||
| 98 | - } | ||
| 99 | - | ||
| 100 | - /** | ||
| 101 | - * This test case checks the builder methods that is read and put into the list. | ||
| 102 | - */ | ||
| 103 | - @Test | ||
| 104 | - public void insertBuilderMethodsTest() throws IOException, ClassNotFoundException, FileNotFoundException { | ||
| 105 | - | ||
| 106 | - String builderMethodsData = "builder methods content lists this"; | ||
| 107 | - TempDataStore.setTempData(builderMethodsData, TempDataStoreType.BUILDER_METHODS, CLASS_NAME); | ||
| 108 | - List<String> attributeInfo = TempDataStore.getTempData(TempDataStoreType.BUILDER_METHODS, CLASS_NAME); | ||
| 109 | - List<String> expectedinfo = new LinkedList<>(); | ||
| 110 | - expectedinfo.add(builderMethodsData); | ||
| 111 | - assertThat(true, is(attributeInfo.equals(expectedinfo))); | ||
| 112 | - } | ||
| 113 | - | ||
| 114 | - /** | ||
| 115 | - * This test case checks the impl methods that is read and put into the list. | ||
| 116 | - */ | ||
| 117 | - @Test | ||
| 118 | - public void insertImplMethodsTest() throws IOException, ClassNotFoundException, FileNotFoundException { | ||
| 119 | - | ||
| 120 | - String implMethodsData = "impl methods content lists this"; | ||
| 121 | - TempDataStore.setTempData(implMethodsData, TempDataStoreType.IMPL_METHODS, CLASS_NAME); | ||
| 122 | - List<String> attributeInfo = TempDataStore.getTempData(TempDataStoreType.IMPL_METHODS, CLASS_NAME); | ||
| 123 | - List<String> expectedinfo = new LinkedList<>(); | ||
| 124 | - expectedinfo.add(implMethodsData); | ||
| 125 | - assertThat(true, is(attributeInfo.equals(expectedinfo))); | ||
| 126 | - } | ||
| 127 | - | ||
| 128 | - /** | ||
| 129 | - * This test case checks the import methods that is read and put into the list. | ||
| 130 | - */ | ||
| 131 | - @Test | ||
| 132 | - public void insertImportTest() throws IOException, ClassNotFoundException, FileNotFoundException { | ||
| 133 | - | ||
| 134 | - String importData = "interface methods content lists this"; | ||
| 135 | - TempDataStore.setTempData(importData, TempDataStoreType.IMPORT, CLASS_NAME); | ||
| 136 | - List<String> attributeInfo = TempDataStore.getTempData(TempDataStoreType.IMPORT, CLASS_NAME); | ||
| 137 | - List<String> expectedinfo = new LinkedList<>(); | ||
| 138 | - expectedinfo.add(importData); | ||
| 139 | - assertThat(true, is(attributeInfo.equals(expectedinfo))); | ||
| 140 | - } | ||
| 141 | - | ||
| 142 | - /** | ||
| 143 | - * This test case checks the interface methods that is read and put into the list. | ||
| 144 | - */ | ||
| 145 | - @Test | ||
| 146 | - public void insertInterfaceMethodsTest() throws IOException, ClassNotFoundException, FileNotFoundException { | ||
| 147 | - | ||
| 148 | - String interfaceMethodsData = "interface methods content lists this"; | ||
| 149 | - TempDataStore.setTempData(interfaceMethodsData, TempDataStoreType.GETTER_METHODS, CLASS_NAME); | ||
| 150 | - List<String> attributeInfo = TempDataStore.getTempData(TempDataStoreType.GETTER_METHODS, CLASS_NAME); | ||
| 151 | - List<String> expectedinfo = new LinkedList<>(); | ||
| 152 | - expectedinfo.add(interfaceMethodsData); | ||
| 153 | - assertThat(true, is(attributeInfo.equals(expectedinfo))); | ||
| 154 | - } | ||
| 155 | -} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -84,8 +84,8 @@ public final class YangFileScannerTest { | ... | @@ -84,8 +84,8 @@ public final class YangFileScannerTest { |
| 84 | /** | 84 | /** |
| 85 | * Method used for creating multiple directories inside the target file. | 85 | * Method used for creating multiple directories inside the target file. |
| 86 | * | 86 | * |
| 87 | - * @param path where directories should be created. | 87 | + * @param path where directories should be created |
| 88 | - * @return | 88 | + * @return the directory path that is created |
| 89 | */ | 89 | */ |
| 90 | public File createDirectory(String path) { | 90 | public File createDirectory(String path) { |
| 91 | 91 | ... | ... |
| ... | @@ -37,7 +37,7 @@ import java.lang.reflect.Constructor; | ... | @@ -37,7 +37,7 @@ import java.lang.reflect.Constructor; |
| 37 | import java.lang.reflect.InvocationTargetException; | 37 | import java.lang.reflect.InvocationTargetException; |
| 38 | 38 | ||
| 39 | /** | 39 | /** |
| 40 | - * Unit tests for adding package-info, creating directories, cleaning the folder and to add sources. | 40 | + * Unit tests for YANG io utils. |
| 41 | */ | 41 | */ |
| 42 | public final class YangIoUtilsTest { | 42 | public final class YangIoUtilsTest { |
| 43 | 43 | ||
| ... | @@ -65,6 +65,20 @@ public final class YangIoUtilsTest { | ... | @@ -65,6 +65,20 @@ public final class YangIoUtilsTest { |
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | /** | 67 | /** |
| 68 | + * This test case checks with an additional info in the path. | ||
| 69 | + */ | ||
| 70 | + @Test | ||
| 71 | + public void addPackageInfoWithPathTest() throws IOException { | ||
| 72 | + | ||
| 73 | + File dirPath = new File(createPath); | ||
| 74 | + dirPath.mkdirs(); | ||
| 75 | + CopyrightHeader.parseCopyrightHeader(); | ||
| 76 | + YangIoUtils.addPackageInfo(dirPath, "check1", "src/main/yangmodel/" + createPath); | ||
| 77 | + File filePath = new File(dirPath + File.separator + "package-info.java"); | ||
| 78 | + assertThat(filePath.isFile(), is(true)); | ||
| 79 | + } | ||
| 80 | + | ||
| 81 | + /** | ||
| 68 | * This test case checks whether the package-info file is created when invalid path is given. | 82 | * This test case checks whether the package-info file is created when invalid path is given. |
| 69 | */ | 83 | */ |
| 70 | @Test | 84 | @Test |
| ... | @@ -81,12 +95,12 @@ public final class YangIoUtilsTest { | ... | @@ -81,12 +95,12 @@ public final class YangIoUtilsTest { |
| 81 | /** | 95 | /** |
| 82 | * A private constructor is tested. | 96 | * A private constructor is tested. |
| 83 | * | 97 | * |
| 84 | - * @throws SecurityException if any security violation is observed. | 98 | + * @throws SecurityException if any security violation is observed |
| 85 | - * @throws NoSuchMethodException if when the method is not found. | 99 | + * @throws NoSuchMethodException if when the method is not found |
| 86 | - * @throws IllegalArgumentException if there is illegal argument found. | 100 | + * @throws IllegalArgumentException if there is illegal argument found |
| 87 | - * @throws InstantiationException if instantiation is provoked for the private constructor. | 101 | + * @throws InstantiationException if instantiation is provoked for the private constructor |
| 88 | - * @throws IllegalAccessException if instance is provoked or a method is provoked. | 102 | + * @throws IllegalAccessException if instance is provoked or a method is provoked |
| 89 | - * @throws InvocationTargetException when an exception occurs by the method or constructor. | 103 | + * @throws InvocationTargetException when an exception occurs by the method or constructor |
| 90 | */ | 104 | */ |
| 91 | @Test | 105 | @Test |
| 92 | public void callPrivateConstructors() throws SecurityException, NoSuchMethodException, IllegalArgumentException, | 106 | public void callPrivateConstructors() throws SecurityException, NoSuchMethodException, IllegalArgumentException, |
| ... | @@ -146,4 +160,4 @@ public final class YangIoUtilsTest { | ... | @@ -146,4 +160,4 @@ public final class YangIoUtilsTest { |
| 146 | sourceDir.mkdirs(); | 160 | sourceDir.mkdirs(); |
| 147 | YangIoUtils.addToSource(sourceDir.toString(), project, context); | 161 | YangIoUtils.addToSource(sourceDir.toString(), project, context); |
| 148 | } | 162 | } |
| 149 | -} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 163 | +} | ... | ... |
-
Please register or login to post a comment