[ONOS-5232] Update generated code
Change-Id: I9c25d9f2888fbee78fddf10d02a3fa94f7ce46e0
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 da4531f..605df86 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
@@ -16,8 +16,6 @@
package org.onosproject.yangutils.translator.tojava.javamodel;
-import java.io.IOException;
-
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaEnumeration;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
@@ -26,8 +24,13 @@
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
import org.onosproject.yangutils.utils.io.YangPluginConfig;
+import java.io.IOException;
+
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfNode;
+import static org.onosproject.yangutils.translator.tojava.utils.TranslatorErrorType.FAIL_AT_ENTRY;
+import static org.onosproject.yangutils.translator.tojava.utils.TranslatorErrorType.FAIL_AT_EXIT;
+import static org.onosproject.yangutils.translator.tojava.utils.TranslatorUtils.getErrorMsg;
/**
* Represents YANG java enumeration information extended to support java code generation.
@@ -48,7 +51,6 @@
* Creates YANG java enumeration object.
*/
public YangJavaEnumerationTranslator() {
- super();
setJavaFileInfo(new JavaFileInfoTranslator());
getJavaFileInfo().setGeneratedFileTypes(GENERATE_ENUM_CLASS);
}
@@ -63,10 +65,7 @@
if (javaFileInfo == null) {
throw new TranslatorException("Missing java info in java datamodel node " +
- getName() + " in " +
- getLineNumber() + " at " +
- getCharPosition()
- + " in " + getFileName());
+ getName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -113,12 +112,8 @@
try {
generateCodeOfNode(this, yangPlugin);
} catch (IOException e) {
- throw new TranslatorException(
- "Failed to prepare generate code entry for enumeration node " +
- getName() + " in " +
- getLineNumber() + " at " +
- getCharPosition()
- + " in " + getFileName() + " " + e.getLocalizedMessage());
+ throw new TranslatorException(getErrorMsg(FAIL_AT_ENTRY, this,
+ e.getLocalizedMessage()));
}
}
@@ -132,11 +127,8 @@
try {
getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_ENUM_CLASS, this);
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for enumeration node " +
- getName() + " in " +
- getLineNumber() + " at " +
- getCharPosition()
- + " in " + getFileName() + " " + e.getLocalizedMessage());
+ throw new TranslatorException(getErrorMsg(FAIL_AT_EXIT, this,
+ 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 6a6ac26..16ff32c 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
@@ -15,10 +15,6 @@
*/
package org.onosproject.yangutils.translator.tojava.javamodel;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangNotification;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaModule;
@@ -29,12 +25,20 @@
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
import org.onosproject.yangutils.utils.io.YangPluginConfig;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static java.util.Collections.unmodifiableList;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ALL_EVENT_CLASS_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfRootNode;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.isRootNodesCodeGenRequired;
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage;
+import static org.onosproject.yangutils.translator.tojava.utils.TranslatorErrorType.FAIL_AT_ENTRY;
+import static org.onosproject.yangutils.translator.tojava.utils.TranslatorErrorType.FAIL_AT_EXIT;
+import static org.onosproject.yangutils.translator.tojava.utils.TranslatorUtils.getErrorMsg;
import static org.onosproject.yangutils.utils.UtilConstants.SBI;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.removeEmptyDirectory;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.searchAndDeleteTempDir;
@@ -49,24 +53,24 @@
private static final long serialVersionUID = 806201625L;
/**
- * File handle to maintain temporary java code fragments as per the code snippet types.
+ * File handle to maintain temporary java code fragments as per the code
+ * snippet types.
*/
private transient TempJavaCodeFragmentFiles tempFileHandle;
/**
* List of notifications nodes.
*/
- private transient List<YangNode> notificationNodes;
+ private final transient List<YangNode> notificationNodes;
/**
* Creates a YANG node of module type.
*/
public YangJavaModuleTranslator() {
- super();
setJavaFileInfo(new JavaFileInfoTranslator());
- setNotificationNodes(new ArrayList<>());
- getJavaFileInfo().setGeneratedFileTypes(GENERATE_SERVICE_AND_MANAGER | GENERATE_INTERFACE_WITH_BUILDER);
-
+ notificationNodes = new ArrayList<>();
+ getJavaFileInfo().setGeneratedFileTypes(
+ GENERATE_SERVICE_AND_MANAGER | GENERATE_INTERFACE_WITH_BUILDER);
}
/**
@@ -77,11 +81,8 @@
@Override
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
- throw new TranslatorException("Missing java info in java datamodel node " +
- getName() + " in " +
- getLineNumber() + " at " +
- getCharPosition()
- + " in " + getFileName());
+ throw new TranslatorException(
+ "Missing java info in java datamodel node " + getName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -112,7 +113,8 @@
* @param fileHandle temporary file handle
*/
@Override
- public void setTempJavaCodeFragmentFiles(TempJavaCodeFragmentFiles fileHandle) {
+ public void setTempJavaCodeFragmentFiles(
+ TempJavaCodeFragmentFiles fileHandle) {
tempFileHandle = fileHandle;
}
@@ -125,22 +127,22 @@
@Override
public void generateCodeEntry(YangPluginConfig yangPlugin)
throws TranslatorException {
- String modulePkg = getRootPackage(getVersion(), getNameSpace(), getRevision(),
+ String modulePkg = getRootPackage(getVersion(), getNameSpace(),
+ getRevision(),
yangPlugin.getConflictResolver());
if (isNotificationChildNodePresent(this)) {
- getJavaFileInfo().setGeneratedFileTypes(getJavaFileInfo().getGeneratedFileTypes()
- | GENERATE_ALL_EVENT_CLASS_MASK);
+ getJavaFileInfo().setGeneratedFileTypes(
+ getJavaFileInfo().getGeneratedFileTypes()
+ | GENERATE_ALL_EVENT_CLASS_MASK);
}
try {
generateCodeOfRootNode(this, yangPlugin, modulePkg);
+ //Add augmented rpc name
+ tempFileHandle.getServiceTempFiles().addAugmentedRpcMethod(this);
} catch (IOException e) {
- throw new TranslatorException(
- "Failed to prepare generate code entry for module node " +
- getName() + " in " +
- getLineNumber() + " at " +
- getCharPosition()
- + " in " + getFileName() + " " + e.getLocalizedMessage());
+ throw new TranslatorException(getErrorMsg(FAIL_AT_ENTRY, this,
+ e.getLocalizedMessage()));
}
}
@@ -160,16 +162,21 @@
* The manager class needs to extend the "ListenerRegistry".
*/
try {
- if ((getJavaFileInfo().getGeneratedFileTypes() & GENERATE_ALL_EVENT_CLASS_MASK) != 0) {
- getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_ALL_EVENT_CLASS_MASK, this);
+ if ((getJavaFileInfo().getGeneratedFileTypes() &
+ GENERATE_ALL_EVENT_CLASS_MASK) != 0) {
+ getTempJavaCodeFragmentFiles().generateJavaFile(
+ GENERATE_ALL_EVENT_CLASS_MASK, this);
}
if (isRootNodesCodeGenRequired(this)) {
getTempJavaCodeFragmentFiles()
.generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
- if ((getJavaFileInfo().getPluginConfig().getCodeGenerateForSbi() == null)
- || (!getJavaFileInfo().getPluginConfig().getCodeGenerateForSbi().equals(SBI))) {
- getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_SERVICE_AND_MANAGER, this);
+ if (getJavaFileInfo().getPluginConfig()
+ .getCodeGenerateForSbi() == null ||
+ !getJavaFileInfo().getPluginConfig()
+ .getCodeGenerateForSbi().equals(SBI)) {
+ getTempJavaCodeFragmentFiles()
+ .generateJavaFile(GENERATE_SERVICE_AND_MANAGER, this);
}
}
@@ -178,11 +185,8 @@
removeEmptyDirectory(getJavaFileInfo().getBaseCodeGenPath() +
getJavaFileInfo().getPackageFilePath());
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for module node " +
- getName() + " in " +
- getLineNumber() + " at " +
- getCharPosition()
- + " in " + getFileName() + " " + e.getLocalizedMessage());
+ throw new TranslatorException(getErrorMsg(FAIL_AT_EXIT, this,
+ e.getLocalizedMessage()));
}
}
@@ -192,16 +196,7 @@
* @return notification nodes
*/
public List<YangNode> getNotificationNodes() {
- return notificationNodes;
- }
-
- /**
- * Sets notifications list.
- *
- * @param notificationNodes notification list
- */
- private void setNotificationNodes(List<YangNode> notificationNodes) {
- this.notificationNodes = notificationNodes;
+ return unmodifiableList(notificationNodes);
}
/**
@@ -210,7 +205,7 @@
* @param curNode notification node
*/
private void addToNotificationList(YangNode curNode) {
- getNotificationNodes().add(curNode);
+ notificationNodes.add(curNode);
}
/**
@@ -229,6 +224,6 @@
childNode = childNode.getNextSibling();
}
- return !getNotificationNodes().isEmpty();
+ return !notificationNodes.isEmpty();
}
}
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 6e6482b..f3b4416 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
@@ -16,8 +16,6 @@
package org.onosproject.yangutils.translator.tojava.javamodel;
-import java.io.IOException;
-
import org.onosproject.yangutils.datamodel.RpcNotificationContainer;
import org.onosproject.yangutils.datamodel.YangInput;
import org.onosproject.yangutils.datamodel.YangNode;
@@ -27,20 +25,20 @@
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;
-import org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles;
+import org.onosproject.yangutils.translator.tojava.TempJavaServiceFragmentFiles;
import org.onosproject.yangutils.utils.io.YangPluginConfig;
+import java.io.IOException;
+
import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.getParentNodeInGenCode;
-import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData;
-import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator.getQualifiedTypeInfoOfCurNode;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.updatePackageInfo;
-import static org.onosproject.yangutils.utils.UtilConstants.SERVICE;
-import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
+import static org.onosproject.yangutils.translator.tojava.utils.TranslatorErrorType.FAIL_AT_EXIT;
+import static org.onosproject.yangutils.translator.tojava.utils.TranslatorErrorType.INVALID_CHILD_NODE;
+import static org.onosproject.yangutils.translator.tojava.utils.TranslatorErrorType.INVALID_PARENT_NODE;
+import static org.onosproject.yangutils.translator.tojava.utils.TranslatorUtils.getErrorMsg;
/**
* Represents rpc information extended to support java code generation.
@@ -60,7 +58,6 @@
* Creates an instance of YANG java rpc.
*/
public YangJavaRpcTranslator() {
- super();
setJavaFileInfo(new JavaFileInfoTranslator());
}
@@ -74,10 +71,7 @@
if (javaFileInfo == null) {
throw new TranslatorException("missing java info in java datamodel node " +
- getName() + " in " +
- getLineNumber() + " at " +
- getCharPosition()
- + " in " + getFileName());
+ getName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -114,15 +108,7 @@
throws TranslatorException {
// Add package information for rpc and create corresponding folder.
- try {
- updatePackageInfo(this, yangPlugin);
- } catch (IOException e) {
- throw new TranslatorException("Failed to prepare generate code entry for RPC node " +
- getName() + " in " +
- getLineNumber() + " at " +
- getCharPosition()
- + " in " + getFileName() + " " + e.getLocalizedMessage());
- }
+ updatePackageInfo(this, yangPlugin);
}
/**
@@ -138,18 +124,18 @@
// 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 " +
- getName() + " in " +
- getLineNumber() + " at " +
- getCharPosition()
- + " in " + getFileName());
+ throw new TranslatorException(getErrorMsg(INVALID_PARENT_NODE,
+ this));
}
/*
* Create attribute info for input and output of rpc and add it to the
* parent import list.
*/
-
+ TempJavaServiceFragmentFiles tempJavaFragmentFiles =
+ ((TempJavaCodeFragmentFilesContainer) getParent())
+ .getTempJavaCodeFragmentFiles()
+ .getServiceTempFiles();
JavaAttributeInfo javaAttributeInfoOfInput = null;
JavaAttributeInfo javaAttributeInfoOfOutput = null;
@@ -158,106 +144,34 @@
YangNode yangNode = getChild();
while (yangNode != null) {
if (yangNode instanceof YangInput) {
- javaAttributeInfoOfInput = getChildNodeAsAttributeInParentService(yangNode, this);
-
+ javaAttributeInfoOfInput = tempJavaFragmentFiles
+ .getChildNodeAsAttributeInParentService(yangNode,
+ getParent());
} else if (yangNode instanceof YangOutput) {
- javaAttributeInfoOfOutput = getChildNodeAsAttributeInParentService(yangNode, this);
+ javaAttributeInfoOfOutput = tempJavaFragmentFiles
+ .getChildNodeAsAttributeInParentService(yangNode,
+ getParent());
} else {
- throw new TranslatorException("RPC should contain only input/output child nodes. " +
- yangNode.getName() + " in " +
- yangNode.getLineNumber() + " at " +
- yangNode.getCharPosition()
- + " in " + yangNode.getFileName());
-
+ throw new TranslatorException(getErrorMsg(INVALID_CHILD_NODE,
+ this));
}
yangNode = yangNode.getNextSibling();
}
- if (!(parent instanceof TempJavaCodeFragmentFilesContainer)) {
- throw new TranslatorException("missing parent temp file handle " +
- getName() + " in " +
- getLineNumber() + " at " +
- getCharPosition()
- + " in " + getFileName());
- }
-
/*
* Add the rpc information to the parent's service temp file.
*/
try {
- ((TempJavaCodeFragmentFilesContainer) parent).getTempJavaCodeFragmentFiles().getServiceTempFiles()
- .addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfoOfInput, javaAttributeInfoOfOutput,
- ((JavaFileInfoContainer) parent).getJavaFileInfo().getPluginConfig(), getName());
-
+ ((TempJavaCodeFragmentFilesContainer) parent)
+ .getTempJavaCodeFragmentFiles().getServiceTempFiles()
+ .addJavaSnippetInfoToApplicableTempFiles(
+ javaAttributeInfoOfInput, javaAttributeInfoOfOutput,
+ getJavaClassNameOrBuiltInType());
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for RPC node " +
- getName() + " in " +
- getLineNumber() + " at " +
- getCharPosition()
- + " in " + getFileName() + " " + e.getLocalizedMessage());
+ throw new TranslatorException(getErrorMsg(FAIL_AT_EXIT, this,
+ e.getLocalizedMessage()));
}
// No file will be generated during RPC exit.
}
-
- /**
- * Creates an attribute info object corresponding to a data model node and
- * return it.
- *
- * @param childNode child data model node(input / output) for which the java code generation
- * is being handled
- * @param currentNode parent node (module / sub-module) in which the child node is an attribute
- * @return AttributeInfo attribute details required to add in temporary
- * files
- */
- private JavaAttributeInfo getChildNodeAsAttributeInParentService(
- YangNode childNode, YangNode currentNode) {
-
- YangNode parentNode = getParentNodeInGenCode(currentNode);
-
- String childNodeName = ((JavaFileInfoContainer) childNode).getJavaFileInfo().getJavaName();
- /*
- * Get the import info corresponding to the attribute for import in
- * generated java files or qualified access
- */
- JavaQualifiedTypeInfoTranslator qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(childNode,
- getCapitalCase(childNodeName));
- if (!(parentNode instanceof TempJavaCodeFragmentFilesContainer)) {
- throw new TranslatorException("Parent node does not have file info");
- }
-
- TempJavaFragmentFiles tempJavaFragmentFiles;
- tempJavaFragmentFiles = ((TempJavaCodeFragmentFilesContainer) parentNode)
- .getTempJavaCodeFragmentFiles()
- .getServiceTempFiles();
-
- if (tempJavaFragmentFiles == null) {
- throw new TranslatorException("Parent node does not have service file info");
- }
- boolean isQualified = addImportToService(qualifiedTypeInfo);
- return getAttributeInfoForTheData(qualifiedTypeInfo, childNodeName, null, isQualified, false);
- }
-
- /**
- * Adds to service class import list.
- *
- * @param importInfo import info
- * @return true or false
- */
- private boolean addImportToService(JavaQualifiedTypeInfoTranslator importInfo) {
- JavaFileInfoTranslator fileInfo = ((JavaFileInfoContainer) getParent()).getJavaFileInfo();
-
- if (importInfo.getClassInfo().contentEquals(SERVICE)
- || importInfo.getClassInfo().contentEquals(getCapitalCase(fileInfo.getJavaName() + SERVICE))) {
- return true;
- }
-
- String className;
- className = getCapitalCase(fileInfo.getJavaName()) + "Service";
-
- return ((TempJavaCodeFragmentFilesContainer) getParent()).getTempJavaCodeFragmentFiles()
- .getServiceTempFiles().getJavaImportData().addImportInfo(importInfo,
- className, fileInfo.getPackage());
- }
-
}
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 2604262..a530b2a 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
@@ -15,10 +15,6 @@
*/
package org.onosproject.yangutils.translator.tojava.javamodel;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangNotification;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaSubModule;
@@ -29,12 +25,20 @@
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
import org.onosproject.yangutils.utils.io.YangPluginConfig;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static java.util.Collections.unmodifiableList;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ALL_EVENT_CLASS_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfRootNode;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.isRootNodesCodeGenRequired;
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage;
+import static org.onosproject.yangutils.translator.tojava.utils.TranslatorErrorType.FAIL_AT_ENTRY;
+import static org.onosproject.yangutils.translator.tojava.utils.TranslatorErrorType.FAIL_AT_EXIT;
+import static org.onosproject.yangutils.translator.tojava.utils.TranslatorUtils.getErrorMsg;
import static org.onosproject.yangutils.utils.UtilConstants.SBI;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.removeEmptyDirectory;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.searchAndDeleteTempDir;
@@ -56,15 +60,16 @@
/**
* List of notifications nodes.
*/
- private transient List<YangNode> notificationNodes = new ArrayList<>();
+ private final transient List<YangNode> notificationNodes;
/**
* Creates YANG java sub module object.
*/
public YangJavaSubModuleTranslator() {
- super();
setJavaFileInfo(new JavaFileInfoTranslator());
- int genType = GENERATE_SERVICE_AND_MANAGER | GENERATE_INTERFACE_WITH_BUILDER;
+ notificationNodes = new ArrayList<>();
+ int genType =
+ GENERATE_SERVICE_AND_MANAGER | GENERATE_INTERFACE_WITH_BUILDER;
if (isNotificationChildNodePresent(this)) {
genType = GENERATE_SERVICE_AND_MANAGER | GENERATE_ALL_EVENT_CLASS_MASK;
}
@@ -80,10 +85,7 @@
public JavaFileInfoTranslator getJavaFileInfo() {
if (javaFileInfo == null) {
throw new TranslatorException("Missing java info in java datamodel node " +
- getName() + " in " +
- getLineNumber() + " at " +
- getCharPosition()
- + " in " + getFileName());
+ getName());
}
return (JavaFileInfoTranslator) javaFileInfo;
}
@@ -124,11 +126,12 @@
* @return the name space string of the module.
*/
public String getNameSpaceFromModule() {
- return (getBelongsTo().getModuleNode()).getNameSpace();
+ return getBelongsTo().getModuleNode().getNameSpace();
}
/**
- * Prepares the information for java code generation corresponding to YANG submodule info.
+ * Prepares the information for java code generation corresponding to
+ * YANG submodule info.
*
* @param yangPlugin YANG plugin config
* @throws TranslatorException when fails to translate
@@ -136,24 +139,23 @@
@Override
public void generateCodeEntry(YangPluginConfig yangPlugin)
throws TranslatorException {
- String subModulePkg = getRootPackage(getVersion(), getNameSpaceFromModule(),
- getRevision(), yangPlugin.getConflictResolver());
+ String subModulePkg = getRootPackage(
+ getVersion(), getNameSpaceFromModule(), getRevision(),
+ yangPlugin.getConflictResolver());
if (isNotificationChildNodePresent(this)) {
- getJavaFileInfo().setGeneratedFileTypes(getJavaFileInfo().getGeneratedFileTypes()
- | GENERATE_ALL_EVENT_CLASS_MASK);
+ getJavaFileInfo().setGeneratedFileTypes(
+ getJavaFileInfo().getGeneratedFileTypes()
+ | GENERATE_ALL_EVENT_CLASS_MASK);
}
try {
generateCodeOfRootNode(this, yangPlugin, subModulePkg);
+ tempFileHandle.getServiceTempFiles().addAugmentedRpcMethod(
+ this);
} catch (IOException e) {
- throw new TranslatorException(
- "failed to prepare generate code entry for submodule node " +
- getName() + " in " +
- getLineNumber() + " at " +
- getCharPosition()
- + " in " + getFileName() + " " + e.getLocalizedMessage());
+ throw new TranslatorException(getErrorMsg(FAIL_AT_ENTRY, this,
+ e.getLocalizedMessage()));
}
-
}
/**
@@ -162,7 +164,7 @@
@Override
public void generateCodeExit()
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.
* 2) Event class extending "AbstractEvent" and defining event type enum.
@@ -172,15 +174,20 @@
* The manager class needs to extend the "ListenerRegistry".
*/
try {
- if ((getJavaFileInfo().getGeneratedFileTypes() & GENERATE_ALL_EVENT_CLASS_MASK) != 0) {
- getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_ALL_EVENT_CLASS_MASK, this);
+ if ((getJavaFileInfo().getGeneratedFileTypes() &
+ GENERATE_ALL_EVENT_CLASS_MASK) != 0) {
+ getTempJavaCodeFragmentFiles().generateJavaFile(
+ GENERATE_ALL_EVENT_CLASS_MASK, this);
}
if (isRootNodesCodeGenRequired(this)) {
getTempJavaCodeFragmentFiles()
.generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
- if ((getJavaFileInfo().getPluginConfig().getCodeGenerateForSbi() == null)
- || (!getJavaFileInfo().getPluginConfig().getCodeGenerateForSbi().equals(SBI))) {
- getTempJavaCodeFragmentFiles().generateJavaFile(GENERATE_SERVICE_AND_MANAGER, this);
+ if (getJavaFileInfo().getPluginConfig()
+ .getCodeGenerateForSbi() == null ||
+ !getJavaFileInfo().getPluginConfig()
+ .getCodeGenerateForSbi().equals(SBI)) {
+ getTempJavaCodeFragmentFiles().generateJavaFile(
+ GENERATE_SERVICE_AND_MANAGER, this);
}
}
@@ -189,11 +196,8 @@
removeEmptyDirectory(getJavaFileInfo().getBaseCodeGenPath() +
getJavaFileInfo().getPackageFilePath());
} catch (IOException e) {
- throw new TranslatorException("Failed to generate code for submodule node " +
- getName() + " in " +
- getLineNumber() + " at " +
- getCharPosition()
- + " in " + getFileName() + " " + e.getLocalizedMessage());
+ throw new TranslatorException(getErrorMsg(FAIL_AT_EXIT, this,
+ e.getLocalizedMessage()));
}
}
@@ -203,7 +207,7 @@
* @return notification nodes
*/
public List<YangNode> getNotificationNodes() {
- return notificationNodes;
+ return unmodifiableList(notificationNodes);
}
/**
@@ -212,7 +216,7 @@
* @param curNode notification node
*/
private void addToNotificationList(YangNode curNode) {
- getNotificationNodes().add(curNode);
+ notificationNodes.add(curNode);
}
/**
@@ -231,6 +235,6 @@
childNode = childNode.getNextSibling();
}
- return !getNotificationNodes().isEmpty();
+ return !notificationNodes.isEmpty();
}
}