[ONOS-5141],[ONOS-5142],[ONOS-5165],[ONOS-4881],[ONOS-4889],[ONOS-5104],[ONOS-5138] defect fixes
Change-Id: I435dc0cf9afae7230fc98b57f33af104e0e38e67
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/exception/InvalidNodeForTranslatorException.java b/plugin/src/main/java/org/onosproject/yangutils/translator/exception/InvalidNodeForTranslatorException.java
index c737175..935f6b6 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/exception/InvalidNodeForTranslatorException.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/exception/InvalidNodeForTranslatorException.java
@@ -23,6 +23,8 @@
private static final long serialVersionUID = 20160311L;
private transient String fileName;
+ private transient int lineNumber;
+ private transient int charPosition;
/**
* Creates a new exception.
@@ -69,9 +71,45 @@
}
/**
- * Sets file name in translator exception.
+ * Returns line number of the exception.
*
- * @param fileName generated file name
+ * @return line number of the exception
+ */
+ public int getLineNumber() {
+ return this.lineNumber;
+ }
+
+ /**
+ * Returns position of the exception.
+ *
+ * @return position of the exception
+ */
+ public int getCharPositionInLine() {
+ return this.charPosition;
+ }
+
+ /**
+ * Sets line number of YANG file.
+ *
+ * @param line line number of YANG file
+ */
+ public void setLine(int line) {
+ this.lineNumber = line;
+ }
+
+ /**
+ * Sets position of exception.
+ *
+ * @param charPosition position of exception
+ */
+ public void setCharPosition(int charPosition) {
+ this.charPosition = charPosition;
+ }
+
+ /**
+ * Sets file name in exception.
+ *
+ * @param fileName YANG file name
*/
public void setFileName(String fileName) {
this.fileName = fileName;
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/exception/TranslatorException.java b/plugin/src/main/java/org/onosproject/yangutils/translator/exception/TranslatorException.java
index a033a00..0f68e97 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/exception/TranslatorException.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/exception/TranslatorException.java
@@ -23,6 +23,8 @@
private static final long serialVersionUID = 20160311L;
private transient String fileName;
+ private transient int lineNumber;
+ private transient int charPosition;
/**
* Create a new translator exception.
@@ -60,18 +62,54 @@
}
/**
- * Returns generated file name for the exception.
+ * Returns line number of the exception.
*
- * @return generated file name for the exception
+ * @return line number of the exception
+ */
+ public int getLineNumber() {
+ return this.lineNumber;
+ }
+
+ /**
+ * Returns YANG file name of the exception.
+ *
+ * @return YANG file name of the exception
*/
public String getFileName() {
return this.fileName;
}
/**
+ * Returns position of the exception.
+ *
+ * @return position of the exception
+ */
+ public int getCharPositionInLine() {
+ return this.charPosition;
+ }
+
+ /**
+ * Sets line number of YANG file.
+ *
+ * @param line line number of YANG file
+ */
+ public void setLine(int line) {
+ this.lineNumber = line;
+ }
+
+ /**
+ * Sets position of exception.
+ *
+ * @param charPosition position of exception
+ */
+ public void setCharPosition(int charPosition) {
+ this.charPosition = charPosition;
+ }
+
+ /**
* Sets file name in translator exception.
*
- * @param fileName generated file name
+ * @param fileName YANG file name
*/
public void setFileName(String fileName) {
this.fileName = fileName;
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorInfo.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorInfo.java
index 6edd208..4ddde17 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorInfo.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorInfo.java
@@ -16,6 +16,8 @@
package org.onosproject.yangutils.translator.tojava;
+import org.onosproject.yangutils.datamodel.LocationInfo;
+
/**
* Represents YANG java info containing interface for java code generator, java
* file information, java import data and temp java code fragment files. This
@@ -23,5 +25,5 @@
* entry function.
*/
public interface JavaCodeGeneratorInfo
- extends JavaFileInfoContainer, TempJavaCodeFragmentFilesContainer {
+ extends JavaFileInfoContainer, TempJavaCodeFragmentFilesContainer, LocationInfo {
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
index 089a1b3..724c9cf 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
@@ -90,7 +90,9 @@
while (codeGenNode != null) {
if (curTraversal != PARENT) {
if (!(codeGenNode instanceof JavaCodeGenerator)) {
- throw new TranslatorException("Unsupported node to generate code");
+ throw new TranslatorException("Unsupported node to generate code " +
+ codeGenNode.getName() + " in " + codeGenNode.getLineNumber() + " at "
+ + codeGenNode.getCharPosition() + " in " + codeGenNode.getFileName());
}
setCurNode(codeGenNode);
try {
@@ -155,7 +157,9 @@
} else {
close(codeGenNode, yangPlugin);
throw new TranslatorException(
- "Generated data model node cannot be translated to target language code");
+ "Generated data model node cannot be translated to target language code for " +
+ codeGenNode.getName() + " in " + codeGenNode.getLineNumber()
+ + " at " + codeGenNode.getCharPosition() + " in " + codeGenNode.getFileName());
}
}
@@ -175,7 +179,9 @@
} else {
close(codeGenNode, pluginConfig);
throw new TranslatorException(
- "Generated data model node cannot be translated to target language code");
+ "Generated data model node cannot be translated to target language code for " +
+ codeGenNode.getName() + " in " + codeGenNode.getLineNumber()
+ + " at " + codeGenNode.getCharPosition() + " in " + codeGenNode.getFileName());
}
}
@@ -281,18 +287,17 @@
if (node instanceof JavaCodeGenerator && ((TempJavaCodeFragmentFilesContainer) node)
.getTempJavaCodeFragmentFiles() != null) {
((TempJavaCodeFragmentFilesContainer) node).getTempJavaCodeFragmentFiles().freeTemporaryResources(true);
- } else {
-
- if (getRootNode() != null) {
- JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) getRootNode()).getJavaFileInfo();
- if (javaFileInfo != null) {
- searchAndDeleteTempDir(javaFileInfo.getBaseCodeGenPath() +
- javaFileInfo.getPackageFilePath());
- } else {
- searchAndDeleteTempDir(yangPlugin.getCodeGenDir());
- }
+ }
+ if (getRootNode() != null) {
+ JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) getRootNode()).getJavaFileInfo();
+ if (javaFileInfo.getPackage() != null) {
+ searchAndDeleteTempDir(javaFileInfo.getBaseCodeGenPath() +
+ javaFileInfo.getPackageFilePath());
+ } else {
+ searchAndDeleteTempDir(yangPlugin.getCodeGenDir());
}
}
+
}
/**
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoTranslator.java
index a0e7b93..27cba78 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoTranslator.java
@@ -91,7 +91,8 @@
JavaQualifiedTypeInfoTranslator importInfo = (JavaQualifiedTypeInfoTranslator) leaf.getJavaQualifiedInfo();
if (leaf.getDataType() == null) {
- throw new TranslatorException("missing data type of leaf " + leaf.getName());
+ throw new TranslatorException("missing data type of leaf " + leaf.getName()
+ + " in " + leaf.getLineNumber() + " at" + leaf.getCharPosition() + " in " + leaf.getFileName());
}
/*
@@ -109,7 +110,9 @@
String classPkg = getJavaImportPackage(leaf.getDataType(),
leaf.isLeafList(), leaf.getConflictResolveConfig());
if (classPkg == null) {
- throw new TranslatorException("import package cannot be null when the class is used");
+ throw new TranslatorException("import package cannot be null when the class is used for "
+ + leaf.getName()
+ + " in " + leaf.getLineNumber() + " at" + leaf.getCharPosition() + " in " + leaf.getFileName());
}
importInfo.setPkgInfo(classPkg);
} else {
@@ -119,7 +122,9 @@
*/
String dataTypeName = AttributesJavaDataType.getJavaDataType(leaf.getDataType());
if (dataTypeName == null) {
- throw new TranslatorException("not supported data type");
+ throw new TranslatorException("not supported data type for "
+ + leaf.getName()
+ + " in " + leaf.getLineNumber() + " at" + leaf.getCharPosition() + " in " + leaf.getFileName());
}
importInfo.setClassInfo(dataTypeName);
}
@@ -144,7 +149,9 @@
if (!(curNode instanceof JavaFileInfoContainer)) {
throw new TranslatorException("missing java file information to get the package details "
- + "of attribute corresponding to child node");
+ + "of attribute corresponding to child node " + curNode.getName() +
+ " in " + curNode.getLineNumber() + " at " + curNode.getCharPosition() + " in " +
+ curNode.getFileName());
}
importInfo.setClassInfo(attributeName);
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaEnumerationFragmentFiles.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaEnumerationFragmentFiles.java
index 5068458..7bf3f2a 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaEnumerationFragmentFiles.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaEnumerationFragmentFiles.java
@@ -218,7 +218,9 @@
addJavaSnippetInfoToApplicableTempFiles(curEnum.getNamedValue(), pluginConfig);
}
} else {
- throw new TranslatorException("current node should be of enumeration type.");
+ throw new TranslatorException("current node should be of enumeration type. " +
+ curNode.getName() + " in " + curNode.getLineNumber() + " at " + curNode.getCharPosition()
+ + " in " + curNode.getFileName());
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
index 14fcdc1..e20d788 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
@@ -525,7 +525,9 @@
throws IOException {
YangNode parent = getParentNodeInGenCode(curNode);
if (!(parent instanceof JavaCodeGenerator)) {
- throw new TranslatorException("missing parent node to contain current node info in generated file");
+ throw new TranslatorException("missing parent node to contain current node info in generated file "
+ + parent.getName() + " in " + parent.getLineNumber() + " at " + parent.getCharPosition()
+ + " in " + parent.getFileName());
}
if (parent instanceof YangJavaGroupingTranslator) {
@@ -569,7 +571,9 @@
JavaQualifiedTypeInfoTranslator qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode,
getCapitalCase(curNodeName));
if (!(targetNode instanceof TempJavaCodeFragmentFilesContainer)) {
- throw new TranslatorException("Parent node does not have file info");
+ throw new TranslatorException("Parent node does not have file info "
+ + targetNode.getName() + " in " + targetNode.getLineNumber() + " at " + targetNode.getCharPosition()
+ + " in " + targetNode.getFileName());
}
JavaImportData parentImportData = tempJavaFragmentFiles.getJavaImportData();
JavaFileInfoTranslator fileInfo = ((JavaFileInfoContainer) targetNode).getJavaFileInfo();
@@ -1332,7 +1336,8 @@
throw new IOException("failed to create temporary file for " + fileName);
}
} else {
- throw new IOException(fileName + " is reused due to YANG naming");
+ throw new IOException(fileName + " is reused due to YANG naming. probably your previous build would have " +
+ "failed");
}
return file;
}
@@ -1438,7 +1443,9 @@
}
if (!(curNode instanceof JavaFileInfoContainer)) {
throw new TranslatorException("missing java file information to get the package details "
- + "of attribute corresponding to child node");
+ + "of attribute corresponding to child node " +
+ curNode.getName() + " in " + curNode.getLineNumber() + " at " + curNode.getCharPosition()
+ + " in " + curNode.getFileName());
}
caseImportInfo.setClassInfo(getCapitalCase(getCamelCase(parent.getName(),
pluginConfig.getConflictResolver())));
@@ -1465,7 +1472,10 @@
if (listOfLeaves != null) {
for (YangLeaf leaf : listOfLeaves) {
if (!(leaf instanceof JavaLeafInfoContainer)) {
- throw new TranslatorException("Leaf does not have java information");
+ throw new TranslatorException("Leaf does not have java information " +
+ leaf.getName() + " in " + leaf.getLineNumber() + " at " +
+ leaf.getCharPosition()
+ + " in " + leaf.getFileName());
}
if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
TempJavaBeanFragmentFiles tempJavaBeanFragmentFiles = ((JavaCodeGeneratorInfo) curNode)
@@ -1494,7 +1504,9 @@
if (listOfLeafList != null) {
for (YangLeafList leafList : listOfLeafList) {
if (!(leafList instanceof JavaLeafInfoContainer)) {
- throw new TranslatorException("Leaf-list does not have java information");
+ throw new TranslatorException("Leaf-list does not have java information " +
+ curNode.getName() + " in " + curNode.getLineNumber() + " at " + curNode.getCharPosition()
+ + " in " + curNode.getFileName());
}
if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
TempJavaBeanFragmentFiles tempJavaBeanFragmentFiles = ((JavaCodeGeneratorInfo) curNode)
@@ -1520,7 +1532,9 @@
YangPluginConfig yangPluginConfig)
throws IOException {
if (!(curNode instanceof YangLeavesHolder)) {
- throw new TranslatorException("Data model node does not have any leaves");
+ throw new TranslatorException("Data model node does not have any leaves " +
+ curNode.getName() + " in " + curNode.getLineNumber() + " at " + curNode.getCharPosition()
+ + " in " + curNode.getFileName());
}
YangLeavesHolder leavesHolder = (YangLeavesHolder) curNode;
addLeavesInfoToTempFiles(leavesHolder.getListOfLeaf(), yangPluginConfig, curNode);
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaTypeFragmentFiles.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaTypeFragmentFiles.java
index 62c6390..32f6c17 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaTypeFragmentFiles.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaTypeFragmentFiles.java
@@ -274,7 +274,10 @@
if (typeList != null) {
for (YangType<?> yangType : typeList) {
if (!(yangType instanceof YangJavaTypeTranslator)) {
- throw new TranslatorException("Type does not have Java info");
+ throw new TranslatorException("Type does not have Java info " +
+ yangType.getDataTypeName() + " in " + yangType.getLineNumber() + " at " + yangType
+ .getCharPosition()
+ + " in " + yangType.getFileName());
}
JavaAttributeInfo javaAttributeInfo = getAttributeForType(yangType, pluginConfig);
addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfo,
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/YangJavaModelUtils.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/YangJavaModelUtils.java
index f89ad3d..08a6d9b 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/YangJavaModelUtils.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/YangJavaModelUtils.java
@@ -227,7 +227,10 @@
} else if (javaCodeGeneratorInfo instanceof YangChoice) {
/*Do nothing, only the interface needs to be generated*/
} else {
- throw new TranslatorException("Unsupported Node Translation");
+ throw new TranslatorException("Unsupported Node Translation "
+ + javaCodeGeneratorInfo.getLineNumber() + " at " +
+ javaCodeGeneratorInfo.getCharPosition()
+ + " in " + javaCodeGeneratorInfo.getFileName());
}
}
@@ -242,7 +245,10 @@
YangPluginConfig yangPluginConfig)
throws IOException {
if (!(javaCodeGeneratorInfo instanceof YangNode)) {
- throw new TranslatorException("translation is not supported for the node");
+ throw new TranslatorException("translation is not supported for the node "
+ + javaCodeGeneratorInfo.getLineNumber() + " at " +
+ javaCodeGeneratorInfo.getCharPosition()
+ + " in " + javaCodeGeneratorInfo.getFileName());
}
createTempFragmentFile(javaCodeGeneratorInfo);
updateTempFragmentFiles(javaCodeGeneratorInfo, yangPluginConfig);
@@ -288,7 +294,10 @@
YangPluginConfig yangPlugin, boolean isMultiInstance)
throws IOException {
if (!(javaCodeGeneratorInfo instanceof YangNode)) {
- throw new TranslatorException("Invalid node for translation");
+ throw new TranslatorException("Invalid node for translation " +
+ javaCodeGeneratorInfo.getLineNumber() + " at " +
+ javaCodeGeneratorInfo.getCharPosition()
+ + " in " + javaCodeGeneratorInfo.getFileName());
}
/*
@@ -313,7 +322,10 @@
YangPluginConfig yangPlugin)
throws IOException {
if (!(javaCodeGeneratorInfo instanceof YangNode)) {
- throw new TranslatorException("invalid node for translation");
+ throw new TranslatorException("invalid node for translation " +
+ javaCodeGeneratorInfo.getLineNumber() + " at " +
+ javaCodeGeneratorInfo.getCharPosition()
+ + " in " + javaCodeGeneratorInfo.getFileName());
}
generateCodeOfNode(javaCodeGeneratorInfo, yangPlugin);
@@ -375,7 +387,10 @@
YangPluginConfig yangPluginConfig)
throws IOException {
if (!(javaCodeGeneratorInfo instanceof YangNode)) {
- throw new TranslatorException("invalid node for translation");
+ throw new TranslatorException("invalid node for translation "
+ + javaCodeGeneratorInfo.getLineNumber() + " at " +
+ javaCodeGeneratorInfo.getCharPosition()
+ + " in " + javaCodeGeneratorInfo.getFileName());
}
updatePackageInfo(javaCodeGeneratorInfo, yangPluginConfig);
generateTempFiles(javaCodeGeneratorInfo, yangPluginConfig);
@@ -393,7 +408,10 @@
YangPluginConfig yangPluginConfig, String rootPkg)
throws IOException {
if (!(javaCodeGeneratorInfo instanceof YangNode)) {
- throw new TranslatorException("invalid node for translation");
+ throw new TranslatorException("invalid node for translation " + javaCodeGeneratorInfo.getLineNumber()
+ + " at " +
+ javaCodeGeneratorInfo.getCharPosition()
+ + " in " + javaCodeGeneratorInfo.getFileName());
}
updatePackageInfo(javaCodeGeneratorInfo, yangPluginConfig, rootPkg);
@@ -415,12 +433,20 @@
String pkg;
if (!(curNode instanceof JavaFileInfoContainer)
|| curNode.getParent() == null) {
- throw new TranslatorException("missing parent node to get current node's package");
+ throw new TranslatorException("missing parent node to get current node's package " +
+ curNode.getName() + " in " +
+ curNode.getLineNumber() + " at " +
+ curNode.getCharPosition()
+ + " in " + curNode.getFileName());
}
YangNode parentNode = DataModelUtils.getParentNodeInGenCode(curNode);
if (!(parentNode instanceof JavaFileInfoContainer)) {
- throw new TranslatorException("missing parent java node to get current node's package");
+ throw new TranslatorException("missing parent java node to get current node's package " +
+ curNode.getName() + " in " +
+ curNode.getLineNumber() + " at " +
+ curNode.getCharPosition()
+ + " in " + curNode.getFileName());
}
JavaFileInfoTranslator parentJavaFileHandle = ((JavaFileInfoContainer) parentNode).getJavaFileInfo();
pkg = parentJavaFileHandle.getPackage() + PERIOD + parentJavaFileHandle.getJavaName();
@@ -460,6 +486,26 @@
}
/**
+ * Returns true if only augment nodes present in module.
+ *
+ * @param curNode root node
+ * @return true if only augment nodes present in module
+ */
+ public static boolean isOnlyAugmentNodeInRoot(YangNode curNode) {
+ List<Boolean> booleanData = new ArrayList<>();
+ curNode = curNode.getChild();
+ while (curNode != null) {
+ if (curNode instanceof YangAugment) {
+ booleanData.add(true);
+ } else {
+ booleanData.add(false);
+ }
+ curNode = curNode.getNextSibling();
+ }
+ return !booleanData.contains(false);
+ }
+
+ /**
* Returns nodes package.
*
* @param node YANG node
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/AttributesJavaDataType.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/AttributesJavaDataType.java
index ce172ff..85c190b 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/AttributesJavaDataType.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/AttributesJavaDataType.java
@@ -17,6 +17,7 @@
package org.onosproject.yangutils.translator.tojava.javamodel;
import java.util.Stack;
+
import org.onosproject.yangutils.datamodel.YangDerivedInfo;
import org.onosproject.yangutils.datamodel.YangEnumeration;
import org.onosproject.yangutils.datamodel.YangIdentity;
@@ -110,7 +111,11 @@
case LEAFREF:
return getJavaDataType(getReferredTypeFromLeafref(yangType));
default:
- throw new TranslatorException("given data type is not supported.");
+ throw new TranslatorException("given data type is not supported. " +
+ yangType.getDataTypeName() + " in " +
+ yangType.getLineNumber() + " at " +
+ yangType.getCharPosition()
+ + " in " + yangType.getFileName());
}
}
@@ -178,7 +183,11 @@
return getCapitalCase(
getCamelCase(yangType.getDataTypeName(), pluginConfig));
default:
- throw new TranslatorException("given data type is not supported.");
+ throw new TranslatorException("given data type is not supported ." +
+ yangType.getDataTypeName() + " in " +
+ yangType.getLineNumber() + " at " +
+ yangType.getCharPosition()
+ + " in " + yangType.getFileName());
}
} else {
switch (type) {
@@ -263,7 +272,11 @@
case DERIVED:
return getTypeDefsPackage(yangType, conflictResolver);
default:
- throw new TranslatorException("given data type is not supported.");
+ throw new TranslatorException("given data type is not supported. " +
+ yangType.getDataTypeName() + " in " +
+ yangType.getLineNumber() + " at " +
+ yangType.getCharPosition()
+ + " in " + yangType.getFileName());
}
} else {
switch (type) {
@@ -304,11 +317,19 @@
private static String getTypeDefsPackage(YangType<?> type, YangToJavaNamingConflictUtil conflictResolver) {
Object var = type.getDataTypeExtendedInfo();
if (!(var instanceof YangDerivedInfo)) {
- throw new TranslatorException("type should have been derived.");
+ throw new TranslatorException("type should have been derived. " +
+ type.getDataTypeName() + " in " +
+ type.getLineNumber() + " at " +
+ type.getCharPosition()
+ + " in " + type.getFileName());
}
if (!(((YangDerivedInfo<?>) var).getReferredTypeDef() != null)) {
- throw new TranslatorException("derived info is not an instance of typedef.");
+ throw new TranslatorException("derived info is not an instance of typedef. " +
+ type.getDataTypeName() + " in " +
+ type.getLineNumber() + " at " +
+ type.getCharPosition()
+ + " in " + type.getFileName());
}
YangJavaTypeDefTranslator typedef = (YangJavaTypeDefTranslator) ((YangDerivedInfo<?>) var).getReferredTypeDef();
@@ -328,7 +349,11 @@
private static String getUnionPackage(YangType<?> type, YangToJavaNamingConflictUtil conflictResolver) {
if (!(type.getDataTypeExtendedInfo() instanceof YangUnion)) {
- throw new TranslatorException("type should have been union.");
+ throw new TranslatorException("type should have been union. " +
+ type.getDataTypeName() + " in " +
+ type.getLineNumber() + " at " +
+ type.getCharPosition()
+ + " in " + type.getFileName());
}
YangJavaUnionTranslator union = (YangJavaUnionTranslator) type.getDataTypeExtendedInfo();
@@ -348,7 +373,11 @@
private static String getEnumsPackage(YangType<?> type, YangToJavaNamingConflictUtil conflictResolver) {
if (!(type.getDataTypeExtendedInfo() instanceof YangEnumeration)) {
- throw new TranslatorException("type should have been enumeration.");
+ throw new TranslatorException("type should have been enumeration. " +
+ type.getDataTypeName() + " in " +
+ type.getLineNumber() + " at " +
+ type.getCharPosition()
+ + " in " + type.getFileName());
}
YangJavaEnumerationTranslator enumeration = (YangJavaEnumerationTranslator) type.getDataTypeExtendedInfo();
if (enumeration.getJavaFileInfo().getPackage() == null) {
@@ -367,7 +396,11 @@
private static String getIdentityRefPackage(YangType<?> type, YangToJavaNamingConflictUtil conflictResolver) {
if (!(type.getDataTypeExtendedInfo() instanceof YangIdentityRef)) {
- throw new TranslatorException("type should have been identityref.");
+ throw new TranslatorException("type should have been identityref. " +
+ type.getDataTypeName() + " in " +
+ type.getLineNumber() + " at " +
+ type.getCharPosition()
+ + " in " + type.getFileName());
}
YangIdentityRef identityRef = (YangIdentityRef) type.getDataTypeExtendedInfo();
YangJavaIdentityTranslator identity = (YangJavaIdentityTranslator) (identityRef.getReferredIdentity());
@@ -387,7 +420,11 @@
private static String getPackageFromParent(YangNode parent,
YangToJavaNamingConflictUtil conflictResolver) {
if (!(parent instanceof JavaFileInfoContainer)) {
- throw new TranslatorException("invalid child node is being processed.");
+ throw new TranslatorException("invalid child node is being processed. " +
+ parent.getName() + " in " +
+ parent.getLineNumber() + " at " +
+ parent.getCharPosition()
+ + " in " + parent.getFileName());
}
JavaFileInfoTranslator parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo();
if (parentInfo.getPackage() == null) {
@@ -434,7 +471,12 @@
submodule.getNameSpaceFromModule(submodule.getBelongsTo()),
submodule.getRevision().getRevDate(), conflictResolver);
} else {
- throw new TranslatorException("Invalid root node of data model tree");
+ throw new TranslatorException("Invalid root node of data model tree " +
+ yangNode.getName() + " in " +
+ yangNode.getLineNumber() + " at " +
+ yangNode.getCharPosition()
+ + " in " + yangNode.getFileName());
+
}
((JavaCodeGeneratorInfo) yangNode).getJavaFileInfo()
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaLeafInfoContainer.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaLeafInfoContainer.java
index 49f2f41..c1c6e60 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaLeafInfoContainer.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaLeafInfoContainer.java
@@ -15,15 +15,16 @@
*/
package org.onosproject.yangutils.translator.tojava.javamodel;
+import org.onosproject.yangutils.datamodel.LocationInfo;
import org.onosproject.yangutils.datamodel.YangType;
-import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
import org.onosproject.yangutils.datamodel.javadatamodel.JavaQualifiedTypeInfoContainer;
+import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
/**
* Represent java based identification of the YANG leaves.
*/
public interface JavaLeafInfoContainer
- extends JavaQualifiedTypeInfoContainer {
+ extends JavaQualifiedTypeInfoContainer, LocationInfo {
/**
* Retrieves the data type of the leaf.
*
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaAugmentTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaAugmentTranslator.java
index 6589201..1607b9f 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaAugmentTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaAugmentTranslator.java
@@ -18,13 +18,13 @@
import java.io.IOException;
import org.onosproject.yangutils.datamodel.YangChoice;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaAugment;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfAugmentableNode;
@@ -61,7 +61,11 @@
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("Missing java info in java datamodel node");
+ throw new TranslatorException("Missing java info in java datamodel node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -107,7 +111,11 @@
try {
generateCodeOfAugmentableNode(this, yangPlugin);
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for augmentable node " + getName());
+ throw new TranslatorException("Failed to generate code for augmentable node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
@@ -123,7 +131,11 @@
getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
}
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for augmentable node " + getName());
+ throw new TranslatorException("Failed to generate code for augmentable node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaCaseTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaCaseTranslator.java
index 88498db..b1d8a1c 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaCaseTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaCaseTranslator.java
@@ -60,7 +60,11 @@
@Override
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("Missing java info in java datamodel node");
+ throw new TranslatorException("Missing java info in java datamodel node" +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -108,7 +112,11 @@
generateCodeOfAugmentableNode(this, yangPlugin);
} catch (IOException e) {
throw new TranslatorException(
- "Failed to prepare generate code entry for case node " + getName());
+ "Failed to prepare generate code entry for case node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
@@ -120,7 +128,11 @@
try {
getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for case node " + getName());
+ throw new TranslatorException("Failed to generate code for case node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaChoiceTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaChoiceTranslator.java
index 2f51b65..1c253eb 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaChoiceTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaChoiceTranslator.java
@@ -17,13 +17,13 @@
import java.io.IOException;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaChoice;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.INTERFACE_MASK;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeAndUpdateInParent;
@@ -60,7 +60,11 @@
@Override
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("Missing java info in java datamodel node");
+ throw new TranslatorException("Missing java info in java datamodel node" +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -108,7 +112,11 @@
generateCodeAndUpdateInParent(this, yangPlugin, false);
} catch (IOException e) {
throw new TranslatorException(
- "Failed to prepare generate code entry for choice node " + getName());
+ "Failed to prepare generate code entry for choice node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
@@ -120,7 +128,11 @@
try {
getTempJavaCodeFragmentFiles().generateJavaFile(INTERFACE_MASK, this);
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for choice node " + getName());
+ throw new TranslatorException("Failed to generate code for choice node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaContainerTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaContainerTranslator.java
index a355b01..31e51c9 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaContainerTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaContainerTranslator.java
@@ -17,13 +17,13 @@
import java.io.IOException;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaContainer;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeAndUpdateInParent;
@@ -60,7 +60,11 @@
@Override
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("Missing java info in java datamodel node");
+ throw new TranslatorException("Missing java info in java datamodel node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -108,7 +112,11 @@
generateCodeAndUpdateInParent(this, yangPlugin, false);
} catch (IOException e) {
throw new TranslatorException(
- "Failed to prepare generate code entry for container node " + getName());
+ "Failed to prepare generate code entry for container node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
@@ -122,7 +130,11 @@
try {
getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for container node " + getName());
+ throw new TranslatorException("Failed to generate code for container node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaEnumerationTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaEnumerationTranslator.java
index e2fad05..da4531f 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaEnumerationTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaEnumerationTranslator.java
@@ -18,13 +18,13 @@
import java.io.IOException;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaEnumeration;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfNode;
@@ -62,7 +62,11 @@
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("Missing java info in java datamodel node");
+ throw new TranslatorException("Missing java info in java datamodel node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -110,7 +114,11 @@
generateCodeOfNode(this, yangPlugin);
} catch (IOException e) {
throw new TranslatorException(
- "Failed to prepare generate code entry for enumeration node " + getName());
+ "Failed to prepare generate code entry for enumeration node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
@@ -124,7 +132,11 @@
try {
getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_ENUM_CLASS, this);
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for enumeration node " + getName());
+ throw new TranslatorException("Failed to generate code for enumeration node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaGroupingTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaGroupingTranslator.java
index e2f55de..bd54469 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaGroupingTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaGroupingTranslator.java
@@ -15,14 +15,14 @@
*/
package org.onosproject.yangutils.translator.tojava.javamodel;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaGrouping;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.translator.exception.InvalidNodeForTranslatorException;
import org.onosproject.yangutils.translator.exception.TranslatorException;
-import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
/**
* Represents grouping information extended to support java code generation.
@@ -55,7 +55,11 @@
@Override
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("Missing java info in java datamodel node");
+ throw new TranslatorException("Missing java info in java datamodel node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -94,7 +98,11 @@
@Override
public void generateCodeEntry(YangPluginConfig yangPlugin)
throws TranslatorException {
- throw new InvalidNodeForTranslatorException();
+ InvalidNodeForTranslatorException exception = new InvalidNodeForTranslatorException();
+ exception.setFileName(this.getFileName());
+ exception.setCharPosition(this.getCharPosition());
+ exception.setLine(this.getLineNumber());
+ throw exception;
}
@Override
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaIdentityTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaIdentityTranslator.java
index 073eed3..a63bca0 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaIdentityTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaIdentityTranslator.java
@@ -19,15 +19,15 @@
import java.io.IOException;
import java.util.List;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaIdentity;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.JavaImportData;
import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_IDENTITY_CLASS;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
@@ -37,6 +37,7 @@
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.createPackage;
import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.closeFile;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.validateLineLength;
/**
* Represents input information extended to support java code generation.
@@ -73,7 +74,11 @@
@Override
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("Missing java info in java datamodel node");
+ throw new TranslatorException("Missing java info in java datamodel node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -129,7 +134,11 @@
if (getBaseNode() != null && getBaseNode().getReferredIdentity() != null) {
if (!(getBaseNode().getReferredIdentity() instanceof YangJavaIdentityTranslator)) {
- throw new TranslatorException("Failed to prepare generate code entry for base node");
+ throw new TranslatorException("Failed to prepare generate code entry for base node "
+ + getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
YangJavaIdentityTranslator baseIdentity = (YangJavaIdentityTranslator) getBaseNode()
.getReferredIdentity();
@@ -146,10 +155,15 @@
File file = getFileObject(path, className, JAVA_FILE_EXTENSION, getJavaFileInfo());
initiateJavaFileGeneration(file, GENERATE_IDENTITY_CLASS, imports, this, className);
+ file = validateLineLength(file);
closeFile(file, false);
} catch (IOException e) {
throw new TranslatorException(
- "Failed to prepare generate code entry for identity node " + this.getName());
+ "Failed to prepare generate code entry for identity node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaInputTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaInputTranslator.java
index 2d7bf2c..878a591 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaInputTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaInputTranslator.java
@@ -18,13 +18,13 @@
import java.io.IOException;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaInput;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfAugmentableNode;
@@ -61,7 +61,11 @@
@Override
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("missing java info in java datamodel node");
+ throw new TranslatorException("missing java info in java datamodel node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -109,7 +113,11 @@
generateCodeOfAugmentableNode(this, yangPlugin);
} catch (IOException e) {
throw new TranslatorException(
- "Failed to prepare generate code entry for input node " + getName());
+ "Failed to prepare generate code entry for input node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
@@ -123,7 +131,11 @@
try {
getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for input node " + getName());
+ throw new TranslatorException("Failed to generate code for input node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaListTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaListTranslator.java
index 0ec8198..6082963 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaListTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaListTranslator.java
@@ -17,13 +17,13 @@
import java.io.IOException;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaList;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeAndUpdateInParent;
@@ -60,7 +60,11 @@
@Override
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("Missing java info in java datamodel node");
+ throw new TranslatorException("Missing java info in java datamodel node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -108,7 +112,11 @@
generateCodeAndUpdateInParent(this, yangPlugin, true);
} catch (IOException e) {
throw new TranslatorException(
- "Failed to prepare generate code entry for list node " + getName());
+ "Failed to prepare generate code entry for list node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
@@ -122,7 +130,11 @@
try {
getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for list node " + getName());
+ throw new TranslatorException("Failed to generate code for list node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModuleTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModuleTranslator.java
index 0f46f76..cf1f455 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModuleTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModuleTranslator.java
@@ -76,7 +76,11 @@
@Override
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("Missing java info in java datamodel node");
+ throw new TranslatorException("Missing java info in java datamodel node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -130,7 +134,11 @@
generateCodeOfRootNode(this, yangPlugin, modulePkg);
} catch (IOException e) {
throw new TranslatorException(
- "Failed to prepare generate code entry for module node " + getName());
+ "Failed to prepare generate code entry for module node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
@@ -167,7 +175,11 @@
searchAndDeleteTempDir(getJavaFileInfo().getPluginConfig().getCodeGenDir() +
getJavaFileInfo().getPackageFilePath());
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for module node " + getName());
+ throw new TranslatorException("Failed to generate code for module node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaNotificationTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaNotificationTranslator.java
index a44164f..ce7f8b0 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaNotificationTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaNotificationTranslator.java
@@ -73,8 +73,11 @@
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("Missing java info in java " +
- "datamodel node");
+ throw new TranslatorException("Missing java info in java datamodel node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -117,14 +120,11 @@
* @throws TranslatorException translator operation fail
*/
@Override
- public void generateCodeEntry(YangPluginConfig yangPlugin)
- throws TranslatorException {
+ public void generateCodeEntry(YangPluginConfig yangPlugin) throws TranslatorException {
/*
- * As part of the notification support the following files needs to
- * be generated.
- * 1) Subject of the notification(event), this is simple interface with
- * builder class.
+ * As part of the notification support the following files needs to be generated.
+ * 1) Subject of the notification(event), this is simple interface with builder class.
* 2) Event class extending "AbstractEvent" and defining event type enum.
* 3) Event listener interface extending "EventListener".
*
@@ -138,8 +138,11 @@
addNotificationToExtendsList();
} catch (IOException e) {
throw new TranslatorException(
- "Failed to prepare generate code entry for notification " +
- "node " + getName());
+ "Failed to prepare generate code entry for notification node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
@@ -174,11 +177,12 @@
try {
getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for " +
- "notification node " +
- getName());
+ throw new TranslatorException("Failed to generate code for notification node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
-
}
@Override
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaOutputTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaOutputTranslator.java
index 2411f27..fe640ea 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaOutputTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaOutputTranslator.java
@@ -18,13 +18,13 @@
import java.io.IOException;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaOutput;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfAugmentableNode;
@@ -61,7 +61,11 @@
@Override
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("missing java info in java datamodel node");
+ throw new TranslatorException("missing java info in java datamodel node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -109,7 +113,11 @@
generateCodeOfAugmentableNode(this, yangPlugin);
} catch (IOException e) {
throw new TranslatorException(
- "Failed to prepare generate code entry for output node " + getName());
+ "Failed to prepare generate code entry for output node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
@@ -125,7 +133,11 @@
getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
} catch (IOException e) {
throw new TranslatorException(
- "Failed to prepare generate code exit for output node " + getName());
+ "Failed to prepare generate code exit for output node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaRpcTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaRpcTranslator.java
index e5c775e..6e6482b 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaRpcTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaRpcTranslator.java
@@ -22,13 +22,13 @@
import org.onosproject.yangutils.datamodel.YangInput;
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangOutput;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaRpc;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
@@ -73,7 +73,11 @@
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("missing java info in java datamodel node");
+ throw new TranslatorException("missing java info in java datamodel node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -113,7 +117,11 @@
try {
updatePackageInfo(this, yangPlugin);
} catch (IOException e) {
- throw new TranslatorException("Failed to prepare generate code entry for RPC node " + getName());
+ throw new TranslatorException("Failed to prepare generate code entry for RPC node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
@@ -130,7 +138,11 @@
// Parent should be holder of rpc or notification.
if (!(parent instanceof RpcNotificationContainer)) {
- throw new TranslatorException("parent node of rpc can only be module or sub-module");
+ throw new TranslatorException("parent node of rpc can only be module or sub-module " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
/*
@@ -151,13 +163,22 @@
} else if (yangNode instanceof YangOutput) {
javaAttributeInfoOfOutput = getChildNodeAsAttributeInParentService(yangNode, this);
} else {
- throw new TranslatorException("RPC should contain only input/output child nodes.");
+ throw new TranslatorException("RPC should contain only input/output child nodes. " +
+ yangNode.getName() + " in " +
+ yangNode.getLineNumber() + " at " +
+ yangNode.getCharPosition()
+ + " in " + yangNode.getFileName());
+
}
yangNode = yangNode.getNextSibling();
}
if (!(parent instanceof TempJavaCodeFragmentFilesContainer)) {
- throw new TranslatorException("missing parent temp file handle");
+ throw new TranslatorException("missing parent temp file handle " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
/*
@@ -170,7 +191,11 @@
((JavaFileInfoContainer) parent).getJavaFileInfo().getPluginConfig(), getName());
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for RPC node " + getName());
+ throw new TranslatorException("Failed to generate code for RPC node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
// No file will be generated during RPC exit.
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModuleTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModuleTranslator.java
index 009a86f..4ab4be8 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModuleTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModuleTranslator.java
@@ -23,11 +23,11 @@
import org.onosproject.yangutils.datamodel.YangModule;
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangNotification;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaSubModule;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
import org.onosproject.yangutils.utils.io.YangPluginConfig;
@@ -80,7 +80,11 @@
@Override
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("Missing java info in java datamodel node");
+ throw new TranslatorException("Missing java info in java datamodel node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -144,7 +148,11 @@
generateCodeOfRootNode(this, yangPlugin, subModulePkg);
} catch (IOException e) {
throw new TranslatorException(
- "failed to prepare generate code entry for submodule node " + getName());
+ "failed to prepare generate code entry for submodule node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
@@ -181,7 +189,11 @@
searchAndDeleteTempDir(getJavaFileInfo().getPluginConfig().getCodeGenDir() +
getJavaFileInfo().getPackageFilePath());
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for submodule node " + getName());
+ throw new TranslatorException("Failed to generate code for submodule node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeDefTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeDefTranslator.java
index 6475af3..1f043cf 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeDefTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeDefTranslator.java
@@ -19,14 +19,14 @@
import org.onosproject.yangutils.datamodel.YangDerivedInfo;
import org.onosproject.yangutils.datamodel.YangType;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaTypeDef;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.translator.exception.InvalidNodeForTranslatorException;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.DERIVED;
import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.LEAFREF;
@@ -66,7 +66,11 @@
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("Missing java info in java datamodel node");
+ throw new TranslatorException("Missing java info in java datamodel node " +
+ getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -111,19 +115,25 @@
@Override
public void generateCodeEntry(YangPluginConfig yangPlugin) throws TranslatorException {
YangType typeInTypeDef = this.getTypeDefBaseType();
+ InvalidNodeForTranslatorException exception = new InvalidNodeForTranslatorException();
+ exception.setFileName(this.getFileName());
+ exception.setCharPosition(this.getCharPosition());
+ exception.setLine(this.getLineNumber());
if (typeInTypeDef.getDataType() == DERIVED) {
YangDerivedInfo derivedInfo = (YangDerivedInfo) typeInTypeDef.getDataTypeExtendedInfo();
if (derivedInfo.getEffectiveBuiltInType() == LEAFREF) {
- throw new InvalidNodeForTranslatorException();
+ throw exception;
}
} else if (typeInTypeDef.getDataType() == LEAFREF) {
- throw new InvalidNodeForTranslatorException();
+ throw exception;
}
try {
generateCodeOfNode(this, yangPlugin);
} catch (IOException e) {
throw new TranslatorException(
- "Failed to prepare generate code entry for typedef node " + getName());
+ "Failed to prepare generate code entry for typedef node " + getName()
+ + "in " + getLineNumber() + " at " + getCharPosition() + " in " + getFileName()
+ + " " + e.getLocalizedMessage());
}
}
@@ -138,7 +148,10 @@
try {
getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_TYPEDEF_CLASS, this);
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for typedef node " + getName());
+ throw new TranslatorException(
+ "Failed to prepare generate code for typedef node " + getName()
+ + "in " + getLineNumber() + " at " + getCharPosition() + " in " + getFileName()
+ + " " + e.getLocalizedMessage());
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeTranslator.java
index 911e0c4..93e4858 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeTranslator.java
@@ -56,7 +56,11 @@
String classPkg = getJavaImportPackage(this,
false, conflictResolver);
if (classPkg == null) {
- throw new TranslatorException("import package cannot be null when the class is used");
+ throw new TranslatorException("import package cannot be null when the class is used " +
+ getDataTypeName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
importInfo.setPkgInfo(classPkg);
} else {
@@ -66,7 +70,11 @@
*/
String dataTypeName = getJavaDataType(this);
if (dataTypeName == null) {
- throw new TranslatorException("not supported data type");
+ throw new TranslatorException("not supported data type " +
+ getDataTypeName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
importInfo.setClassInfo(dataTypeName);
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUnionTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUnionTranslator.java
index ce701af..60f200f 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUnionTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUnionTranslator.java
@@ -17,13 +17,13 @@
import java.io.IOException;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaUnion;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_UNION_CLASS;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfNode;
@@ -60,7 +60,10 @@
@Override
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new RuntimeException("Missing java info in java datamodel node");
+ throw new RuntimeException("Missing java info in java datamodel node " + getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -108,7 +111,10 @@
generateCodeOfNode(this, yangPlugin);
} catch (IOException e) {
throw new TranslatorException(
- "Failed to prepare generate code entry for union node " + getName());
+ "Failed to prepare generate code entry for union node " + getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
@@ -123,7 +129,10 @@
try {
getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_UNION_CLASS, this);
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for union node " + getName());
+ throw new TranslatorException("Failed to generate code for union node " + getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName() + " " + e.getLocalizedMessage());
}
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUsesTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUsesTranslator.java
index d1b8220..a213faf 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUsesTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUsesTranslator.java
@@ -55,7 +55,10 @@
@Override
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("Missing java info in java datamodel node");
+ throw new TranslatorException("Missing java info in java datamodel node " + getName() + " in " +
+ getLineNumber() + " at " +
+ getCharPosition()
+ + " in " + getFileName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -93,7 +96,11 @@
@Override
public void generateCodeEntry(YangPluginConfig yangPlugin)
throws TranslatorException {
- throw new InvalidNodeForTranslatorException();
+ InvalidNodeForTranslatorException exception = new InvalidNodeForTranslatorException();
+ exception.setFileName(this.getFileName());
+ exception.setCharPosition(this.getCharPosition());
+ exception.setLine(this.getLineNumber());
+ throw exception;
}
@Override
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ClassDefinitionGenerator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ClassDefinitionGenerator.java
index 60191de..d65907d 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ClassDefinitionGenerator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ClassDefinitionGenerator.java
@@ -23,9 +23,9 @@
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangNotification;
import org.onosproject.yangutils.datamodel.YangSubModule;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
@@ -247,13 +247,21 @@
*/
private static String getIdentityClassDefinition(String yangName, YangNode curNode) {
if (!(curNode instanceof YangIdentity)) {
- throw new TranslatorException("Expected java identity instance node");
+ throw new TranslatorException("Expected java identity instance node " +
+ curNode.getName() + " in " +
+ curNode.getLineNumber() + " at " +
+ curNode.getCharPosition()
+ + " in " + curNode.getFileName());
}
YangIdentity identity = (YangIdentity) curNode;
if (identity.getBaseNode() != null) {
YangIdentity baseIdentity = identity.getBaseNode().getReferredIdentity();
if (baseIdentity == null) {
- throw new TranslatorException("Expected java identity instance node");
+ throw new TranslatorException("Expected java identity instance node " +
+ curNode.getName() + " in " +
+ curNode.getLineNumber() + " at " +
+ curNode.getCharPosition()
+ + " in " + curNode.getFileName());
}
JavaFileInfoTranslator fileInfo = ((JavaFileInfoContainer) baseIdentity).getJavaFileInfo();
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGen.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGen.java
index 5c7f463..f1f258b 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGen.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGen.java
@@ -412,4 +412,12 @@
return " this.onosYangNodeOperationType = builderObject.onosYangNodeOperationType();\n";
}
+ /**
+ * Returns attribute in constructor for yang augmented info map.
+ *
+ * @return attribute in constructor for yang augmented info map
+ */
+ static String getYangAugmentedMapObjectForConstruct() {
+ return " this.yangAugmentedInfoMap = builderObject.yangAugmentedInfoMap();\n";
+ }
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
index ec671aa..ab37d7c 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
@@ -281,7 +281,8 @@
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.trimAtLast;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils
.validateLineLength;
-
+import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen
+ .getYangAugmentedMapObjectForConstruct;
import static java.util.Collections.sort;
/**
@@ -806,6 +807,9 @@
constructor =
constructor + getOperationAttributeForConstructor();
}
+ if (curNode instanceof YangAugmentableNode) {
+ constructor = constructor + getYangAugmentedMapObjectForConstruct();
+ }
methods.add(
constructor + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
NEW_LINE);
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java
index a591435..09bb72b 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java
@@ -334,6 +334,12 @@
String pkg, YangPluginConfig pluginConfig)
throws IOException {
+ if (file.exists()) {
+ throw new IOException(" file " + file.getName() + " is already generated." +
+ "please check whether multiple yang files has same module/submodule \"name\" and \"namespace\"" +
+ "or You may have generated code of previous build present in your directory.");
+ }
+
boolean isFileCreated;
try {
isFileCreated = file.createNewFile();
@@ -360,6 +366,11 @@
YangNode curNode, String className)
throws IOException {
+ if (file.exists()) {
+ throw new IOException(" file " + file.getName() + " is already generated." +
+ "please check whether multiple yang files has same module/submodule \"name\" and \"namespace\"" +
+ "or You may have generated code of previous build present in your directory.");
+ }
boolean isFileCreated;
try {
isFileCreated = file.createNewFile();
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntax.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntax.java
index 9836c5c..8c14295 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntax.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntax.java
@@ -26,10 +26,10 @@
import java.util.List;
import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
+import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.getParentNodeInGenCode;
import static org.onosproject.yangutils.utils.UtilConstants.COLAN;
@@ -205,7 +205,11 @@
*/
public static void createPackage(YangNode yangNode) throws IOException {
if (!(yangNode instanceof JavaFileInfoContainer)) {
- throw new TranslatorException("current node must have java file info");
+ throw new TranslatorException("current node must have java file info " +
+ yangNode.getName() + " in " +
+ yangNode.getLineNumber() + " at " +
+ yangNode.getCharPosition()
+ + " in " + yangNode.getFileName());
}
String pkgInfo;
JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) yangNode).getJavaFileInfo();
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
index 0ab080e..d044456 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
@@ -1356,7 +1356,11 @@
case DERIVED:
return targetDataType + PERIOD + FROM_STRING_METHOD_NAME;
default:
- throw new TranslatorException("given data type is not supported.");
+ throw new TranslatorException("given data type is not supported. " +
+ yangType.getDataTypeName() + " in " +
+ yangType.getLineNumber() + " at " +
+ yangType.getCharPosition()
+ + " in " + yangType.getFileName());
}
}
@@ -1432,7 +1436,8 @@
} else {
method = method + EIGHT_SPACE_INDENTATION
+ RETURN + SPACE + VALUE + SPACE + DIAMOND_CLOSE_BRACKET + EQUAL + SPACE + MIN_RANGE + SPACE + AND +
- AND + SPACE + VALUE + DIAMOND_OPEN_BRACKET + EQUAL + SPACE + MAX_RANGE + SEMI_COLAN + NEW_LINE;
+ AND + SPACE + VALUE + SPACE + DIAMOND_OPEN_BRACKET + EQUAL + SPACE + MAX_RANGE + SEMI_COLAN +
+ NEW_LINE;
}
return method + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
}