[ONOS-3908] Implemetation of YANG container translator.
Change-Id: I9ffcfc4b370edb801dfc90c5394cef787c77641d
diff --git a/src/main/java/org/onosproject/yangutils/datamodel/YangAugment.java b/src/main/java/org/onosproject/yangutils/datamodel/YangAugment.java
index 073db3b..3f34922 100644
--- a/src/main/java/org/onosproject/yangutils/datamodel/YangAugment.java
+++ b/src/main/java/org/onosproject/yangutils/datamodel/YangAugment.java
@@ -21,6 +21,7 @@
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
import org.onosproject.yangutils.parser.ParsableDataType;
+import org.onosproject.yangutils.translator.CachedFileHandle;
/*-
* Reference RFC 6020.
@@ -342,4 +343,16 @@
// TODO Auto-generated method stub
}
+
+ @Override
+ public CachedFileHandle getFileHandle() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setFileHandle(CachedFileHandle fileHandle) {
+ // TODO Auto-generated method stub
+
+ }
}
diff --git a/src/main/java/org/onosproject/yangutils/datamodel/YangCase.java b/src/main/java/org/onosproject/yangutils/datamodel/YangCase.java
index 76b8ca2..bcfa70c 100644
--- a/src/main/java/org/onosproject/yangutils/datamodel/YangCase.java
+++ b/src/main/java/org/onosproject/yangutils/datamodel/YangCase.java
@@ -21,6 +21,7 @@
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
import org.onosproject.yangutils.parser.ParsableDataType;
+import org.onosproject.yangutils.translator.CachedFileHandle;
/*-
* Reference RFC 6020.
@@ -336,4 +337,16 @@
// TODO Auto-generated method stub
}
+
+ @Override
+ public CachedFileHandle getFileHandle() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setFileHandle(CachedFileHandle fileHandle) {
+ // TODO Auto-generated method stub
+
+ }
}
diff --git a/src/main/java/org/onosproject/yangutils/datamodel/YangChoice.java b/src/main/java/org/onosproject/yangutils/datamodel/YangChoice.java
index ed3d90a..be47039 100644
--- a/src/main/java/org/onosproject/yangutils/datamodel/YangChoice.java
+++ b/src/main/java/org/onosproject/yangutils/datamodel/YangChoice.java
@@ -21,6 +21,7 @@
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
import org.onosproject.yangutils.parser.ParsableDataType;
+import org.onosproject.yangutils.translator.CachedFileHandle;
/*-
* Reference RFC 6020.
@@ -252,6 +253,7 @@
*
* @return the description.
*/
+ @Override
public String getDescription() {
return description;
}
@@ -261,6 +263,7 @@
*
* @param description set the description.
*/
+ @Override
public void setDescription(String description) {
this.description = description;
}
@@ -270,6 +273,7 @@
*
* @return the reference.
*/
+ @Override
public String getReference() {
return reference;
}
@@ -279,6 +283,7 @@
*
* @param reference the reference to set.
*/
+ @Override
public void setReference(String reference) {
this.reference = reference;
}
@@ -288,6 +293,7 @@
*
* @return the status.
*/
+ @Override
public YangStatusType getStatus() {
return status;
}
@@ -297,6 +303,7 @@
*
* @param status the status to set.
*/
+ @Override
public void setStatus(YangStatusType status) {
this.status = status;
}
@@ -306,6 +313,7 @@
*
* @return returns CHOICE_DATA
*/
+ @Override
public ParsableDataType getParsableDataType() {
return ParsableDataType.CHOICE_DATA;
}
@@ -315,6 +323,7 @@
*
* @throws DataModelException a violation of data model rules.
*/
+ @Override
public void validateDataOnEntry() throws DataModelException {
// TODO auto-generated method stub, to be implemented by parser
}
@@ -324,6 +333,7 @@
*
* @throws DataModelException a violation of data model rules.
*/
+ @Override
public void validateDataOnExit() throws DataModelException {
// TODO auto-generated method stub, to be implemented by parser
}
@@ -349,6 +359,7 @@
/* (non-Javadoc)
* @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry()
*/
+ @Override
public void generateJavaCodeEntry() {
// TODO Auto-generated method stub
@@ -357,8 +368,21 @@
/* (non-Javadoc)
* @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit()
*/
+ @Override
public void generateJavaCodeExit() {
// TODO Auto-generated method stub
}
+
+ @Override
+ public CachedFileHandle getFileHandle() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setFileHandle(CachedFileHandle fileHandle) {
+ // TODO Auto-generated method stub
+
+ }
}
diff --git a/src/main/java/org/onosproject/yangutils/datamodel/YangContainer.java b/src/main/java/org/onosproject/yangutils/datamodel/YangContainer.java
index cb54cca..62a589a 100644
--- a/src/main/java/org/onosproject/yangutils/datamodel/YangContainer.java
+++ b/src/main/java/org/onosproject/yangutils/datamodel/YangContainer.java
@@ -133,7 +133,7 @@
private YangStatusType status;
/**
- * package of the generated java code.
+ * Package of the generated java code.
*/
private String pkg;
@@ -332,6 +332,7 @@
*
* @return the fileHandle
*/
+ @Override
public CachedFileHandle getFileHandle() {
return fileHandle;
}
@@ -341,6 +342,7 @@
*
* @param handle the fileHandle to set
*/
+ @Override
public void setFileHandle(CachedFileHandle handle) {
fileHandle = handle;
}
@@ -395,11 +397,6 @@
pkg = pcg;
}
- /**
- * Generate the java code corresponding to YANG container.
- *
- * @throws IOException when fails to generate the source files.
- */
@Override
public void generateJavaCodeEntry() throws IOException {
YangNode parent = getParent();
@@ -414,14 +411,33 @@
throw new IOException("Failed to create the source files.");
}
setFileHandle(handle);
- addLavesAttributes();
+ addAttributeInParent();
+ }
+
+ /**
+ * Adds current node attribute to parent file.
+ *
+ * @param pkg java file package path
+ */
+ private void addAttributeInParent() {
+ if (getParent() != null) {
+ getParent().getFileHandle().setChildsPackage(getPackage());
+ getParent().getFileHandle().addAttributeInfo(null, getName(), false);
+ }
+ }
+
+ @Override
+ public void generateJavaCodeExit() throws IOException {
+ addLeavesAttributes();
addLeafListAttributes();
+ getFileHandle().close();
+ return;
}
/**
* Adds leaf attributes in generated files.
*/
- private void addLavesAttributes() {
+ private void addLeavesAttributes() {
List<YangLeaf<?>> leaves = getListOfLeaf();
if (leaves != null) {
@@ -442,17 +458,5 @@
}
}
return;
-
- }
-
- /**
- * Free resources used to generate code.
- *
- * @throws IOException when fails to generate source files.
- */
- @Override
- public void generateJavaCodeExit() throws IOException {
- getFileHandle().close();
- return;
}
}
diff --git a/src/main/java/org/onosproject/yangutils/datamodel/YangEnumeration.java b/src/main/java/org/onosproject/yangutils/datamodel/YangEnumeration.java
index 2a05279..7aae900 100644
--- a/src/main/java/org/onosproject/yangutils/datamodel/YangEnumeration.java
+++ b/src/main/java/org/onosproject/yangutils/datamodel/YangEnumeration.java
@@ -22,6 +22,7 @@
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
import org.onosproject.yangutils.parser.ParsableDataType;
+import org.onosproject.yangutils.translator.CachedFileHandle;
/*
* The enumeration built-in type represents values from a set of
@@ -79,6 +80,7 @@
*
* @return returns ENUMERATION_DATA
*/
+ @Override
public ParsableDataType getParsableDataType() {
return ParsableDataType.ENUMERATION_DATA;
}
@@ -88,6 +90,7 @@
*
* @throws DataModelException a violation of data model rules.
*/
+ @Override
public void validateDataOnEntry() throws DataModelException {
// TODO auto-generated method stub, to be implemented by parser
}
@@ -97,6 +100,7 @@
*
* @throws DataModelException a violation of data model rules.
*/
+ @Override
public void validateDataOnExit() throws DataModelException {
// TODO auto-generated method stub, to be implemented by parser
}
@@ -140,6 +144,7 @@
/* (non-Javadoc)
* @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry()
*/
+ @Override
public void generateJavaCodeEntry() {
// TODO Auto-generated method stub
@@ -148,8 +153,21 @@
/* (non-Javadoc)
* @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit()
*/
+ @Override
public void generateJavaCodeExit() {
// TODO Auto-generated method stub
}
+
+ @Override
+ public CachedFileHandle getFileHandle() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setFileHandle(CachedFileHandle fileHandle) {
+ // TODO Auto-generated method stub
+
+ }
}
diff --git a/src/main/java/org/onosproject/yangutils/datamodel/YangGrouping.java b/src/main/java/org/onosproject/yangutils/datamodel/YangGrouping.java
index 27d7dc0..8dc0123 100644
--- a/src/main/java/org/onosproject/yangutils/datamodel/YangGrouping.java
+++ b/src/main/java/org/onosproject/yangutils/datamodel/YangGrouping.java
@@ -21,6 +21,7 @@
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
import org.onosproject.yangutils.parser.ParsableDataType;
+import org.onosproject.yangutils.translator.CachedFileHandle;
/*-
* Reference RFC 6020.
@@ -321,4 +322,16 @@
// TODO Auto-generated method stub
}
+
+ @Override
+ public CachedFileHandle getFileHandle() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setFileHandle(CachedFileHandle fileHandle) {
+ // TODO Auto-generated method stub
+
+ }
}
diff --git a/src/main/java/org/onosproject/yangutils/datamodel/YangList.java b/src/main/java/org/onosproject/yangutils/datamodel/YangList.java
index e09b94c..577e160 100644
--- a/src/main/java/org/onosproject/yangutils/datamodel/YangList.java
+++ b/src/main/java/org/onosproject/yangutils/datamodel/YangList.java
@@ -22,6 +22,7 @@
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
import org.onosproject.yangutils.parser.ParsableDataType;
+import org.onosproject.yangutils.translator.CachedFileHandle;
/*-
* The "list" statement is used to define an interior data node in the
@@ -459,4 +460,16 @@
// TODO Auto-generated method stub
}
+
+ @Override
+ public CachedFileHandle getFileHandle() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setFileHandle(CachedFileHandle fileHandle) {
+ // TODO Auto-generated method stub
+
+ }
}
diff --git a/src/main/java/org/onosproject/yangutils/datamodel/YangModule.java b/src/main/java/org/onosproject/yangutils/datamodel/YangModule.java
index c35fafa..d1d3c7e 100644
--- a/src/main/java/org/onosproject/yangutils/datamodel/YangModule.java
+++ b/src/main/java/org/onosproject/yangutils/datamodel/YangModule.java
@@ -155,7 +155,7 @@
private byte version;
/**
- * package of the generated java code.
+ * Package of the generated java code.
*/
private String pkg;
@@ -493,6 +493,7 @@
*
* @return the fileHandle
*/
+ @Override
public CachedFileHandle getFileHandle() {
return fileHandle;
}
@@ -502,6 +503,7 @@
*
* @param handle the fileHandle to set
*/
+ @Override
public void setFileHandle(CachedFileHandle handle) {
fileHandle = handle;
}
@@ -555,14 +557,20 @@
throw new IOException("Failed to create the source files.");
}
setFileHandle(handle);
- addLavesAttributes();
+ }
+
+ @Override
+ public void generateJavaCodeExit() throws IOException {
+ addLeavesAttributes();
addLeafListAttributes();
+ getFileHandle().close();
+ return;
}
/**
* Adds leaf attributes in generated files.
*/
- private void addLavesAttributes() {
+ private void addLeavesAttributes() {
List<YangLeaf<?>> leaves = getListOfLeaf();
if (leaves != null) {
@@ -584,15 +592,4 @@
}
}
- /**
- * Free resources used to generate code.
- *
- * @throws IOException when fails to generate source files.
- */
- @Override
- public void generateJavaCodeExit() throws IOException {
- getFileHandle().close();
- return;
- }
-
}
diff --git a/src/main/java/org/onosproject/yangutils/datamodel/YangNode.java b/src/main/java/org/onosproject/yangutils/datamodel/YangNode.java
index 8c69bb6..0ac44d0 100644
--- a/src/main/java/org/onosproject/yangutils/datamodel/YangNode.java
+++ b/src/main/java/org/onosproject/yangutils/datamodel/YangNode.java
@@ -16,6 +16,7 @@
package org.onosproject.yangutils.datamodel;
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
+import org.onosproject.yangutils.translator.CachedFileHandle;
import org.onosproject.yangutils.translator.CodeGenerator;
/**
@@ -253,4 +254,18 @@
*/
public abstract void setPackage(String pkg);
+ /**
+ * Get the mapped java file handler.
+ *
+ * @return the file handle.
+ */
+ public abstract CachedFileHandle getFileHandle();
+
+ /**
+ * Set the mapped java file handle.
+ *
+ * @param fileHandle the file handle to set of current node.
+ */
+ public abstract void setFileHandle(CachedFileHandle fileHandle);
+
}
diff --git a/src/main/java/org/onosproject/yangutils/datamodel/YangSubModule.java b/src/main/java/org/onosproject/yangutils/datamodel/YangSubModule.java
index 36dbb23..04b7cfb 100644
--- a/src/main/java/org/onosproject/yangutils/datamodel/YangSubModule.java
+++ b/src/main/java/org/onosproject/yangutils/datamodel/YangSubModule.java
@@ -21,6 +21,7 @@
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
import org.onosproject.yangutils.parser.ParsableDataType;
+import org.onosproject.yangutils.translator.CachedFileHandle;
/*
* Reference RFC 6020.
@@ -491,4 +492,16 @@
// TODO Auto-generated method stub
}
+
+ @Override
+ public CachedFileHandle getFileHandle() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setFileHandle(CachedFileHandle fileHandle) {
+ // TODO Auto-generated method stub
+
+ }
}
diff --git a/src/main/java/org/onosproject/yangutils/datamodel/YangTypeDef.java b/src/main/java/org/onosproject/yangutils/datamodel/YangTypeDef.java
index 57ef9dd..a1abb0d 100644
--- a/src/main/java/org/onosproject/yangutils/datamodel/YangTypeDef.java
+++ b/src/main/java/org/onosproject/yangutils/datamodel/YangTypeDef.java
@@ -18,6 +18,7 @@
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
import org.onosproject.yangutils.parser.ParsableDataType;
+import org.onosproject.yangutils.translator.CachedFileHandle;
/*-
* Reference RFC 6020.
@@ -138,6 +139,7 @@
*
* @return the description.
*/
+ @Override
public String getDescription() {
return description;
}
@@ -147,6 +149,7 @@
*
* @param description set the description.
*/
+ @Override
public void setDescription(String description) {
this.description = description;
}
@@ -156,6 +159,7 @@
*
* @return the reference.
*/
+ @Override
public String getReference() {
return reference;
}
@@ -165,6 +169,7 @@
*
* @param reference the reference to set.
*/
+ @Override
public void setReference(String reference) {
this.reference = reference;
}
@@ -174,6 +179,7 @@
*
* @return the status.
*/
+ @Override
public YangStatusType getStatus() {
return status;
}
@@ -183,6 +189,7 @@
*
* @param status the status to set.
*/
+ @Override
public void setStatus(YangStatusType status) {
this.status = status;
}
@@ -230,6 +237,7 @@
*
* @return returns TYPEDEF_DATA
*/
+ @Override
public ParsableDataType getParsableDataType() {
return ParsableDataType.TYPEDEF_DATA;
}
@@ -239,6 +247,7 @@
*
* @throws DataModelException a violation of data model rules.
*/
+ @Override
public void validateDataOnEntry() throws DataModelException {
// TODO auto-generated method stub, to be implemented by parser
}
@@ -248,6 +257,7 @@
*
* @throws DataModelException a violation of data model rules.
*/
+ @Override
public void validateDataOnExit() throws DataModelException {
// TODO auto-generated method stub, to be implemented by parser
}
@@ -273,6 +283,7 @@
/* (non-Javadoc)
* @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry()
*/
+ @Override
public void generateJavaCodeEntry() {
// TODO Auto-generated method stub
@@ -281,6 +292,7 @@
/* (non-Javadoc)
* @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit()
*/
+ @Override
public void generateJavaCodeExit() {
// TODO Auto-generated method stub
@@ -303,4 +315,16 @@
// TODO Auto-generated method stub
}
+
+ @Override
+ public CachedFileHandle getFileHandle() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setFileHandle(CachedFileHandle fileHandle) {
+ // TODO Auto-generated method stub
+
+ }
}
diff --git a/src/main/java/org/onosproject/yangutils/datamodel/YangUses.java b/src/main/java/org/onosproject/yangutils/datamodel/YangUses.java
index 19fb709..5326764 100644
--- a/src/main/java/org/onosproject/yangutils/datamodel/YangUses.java
+++ b/src/main/java/org/onosproject/yangutils/datamodel/YangUses.java
@@ -18,6 +18,7 @@
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
import org.onosproject.yangutils.parser.ParsableDataType;
+import org.onosproject.yangutils.translator.CachedFileHandle;
/*-
* Reference RFC 6020.
@@ -127,6 +128,7 @@
*
* @return the description.
*/
+ @Override
public String getDescription() {
return description;
}
@@ -136,6 +138,7 @@
*
* @param description set the description.
*/
+ @Override
public void setDescription(String description) {
this.description = description;
}
@@ -145,6 +148,7 @@
*
* @return the reference.
*/
+ @Override
public String getReference() {
return reference;
}
@@ -154,6 +158,7 @@
*
* @param reference the reference to set.
*/
+ @Override
public void setReference(String reference) {
this.reference = reference;
}
@@ -163,6 +168,7 @@
*
* @return the status.
*/
+ @Override
public YangStatusType getStatus() {
return status;
}
@@ -172,6 +178,7 @@
*
* @param status the status to set.
*/
+ @Override
public void setStatus(YangStatusType status) {
this.status = status;
}
@@ -181,6 +188,7 @@
*
* @return returns USES_DATA.
*/
+ @Override
public ParsableDataType getParsableDataType() {
return ParsableDataType.USES_DATA;
}
@@ -190,6 +198,7 @@
*
* @throws DataModelException a violation of data model rules.
*/
+ @Override
public void validateDataOnEntry() throws DataModelException {
// TODO auto-generated method stub, to be implemented by parser
}
@@ -199,6 +208,7 @@
*
* @throws DataModelException a violation of data model rules.
*/
+ @Override
public void validateDataOnExit() throws DataModelException {
// TODO auto-generated method stub, to be implemented by parser
}
@@ -224,6 +234,7 @@
/* (non-Javadoc)
* @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeEntry()
*/
+ @Override
public void generateJavaCodeEntry() {
// TODO Auto-generated method stub
@@ -232,6 +243,7 @@
/* (non-Javadoc)
* @see org.onosproject.yangutils.translator.CodeGenerator#generateJavaCodeExit()
*/
+ @Override
public void generateJavaCodeExit() {
// TODO Auto-generated method stub
@@ -254,4 +266,16 @@
// TODO Auto-generated method stub
}
+
+ @Override
+ public CachedFileHandle getFileHandle() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setFileHandle(CachedFileHandle fileHandle) {
+ // TODO Auto-generated method stub
+
+ }
}