[ONOS-4303, ONOS-4508, ONOS-4509, ONOS-4510, ONOS-4351]notification,rpc,union,sub-module,augment
Change-Id: Ibeed9ff965c13fd66743c1080cb1350d93a3a435
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaCodeFragmentFiles.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaCodeFragmentFiles.java
index a1bb801..f24391c 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaCodeFragmentFiles.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaCodeFragmentFiles.java
@@ -18,18 +18,22 @@
import java.io.IOException;
-import org.onosproject.yangutils.datamodel.YangTypeContainer;
import org.onosproject.yangutils.datamodel.YangNode;
+import org.onosproject.yangutils.datamodel.YangTypeHolder;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS;
+import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_CLASS;
+import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_LISTENER_INTERFACE;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
-import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_RPC_INTERFACE;
+import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_TYPE_CLASS;
import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.getExtendsList;
/**
* Represents implementation of java code fragments temporary implementations.
+ * Contains fragment file object of different types of java file.
+ * Uses required object(s) to generate the target java file(s).
*/
public class TempJavaCodeFragmentFiles {
@@ -54,6 +58,17 @@
private TempJavaEnumerationFragmentFiles enumerationTempFiles;
/**
+ * Has the temporary files required for generated event classes.
+ */
+ private TempJavaEventFragmentFiles eventTempFiles;
+
+ /**
+ * Has the temporary files required for generated event listenerclasses.
+ */
+ private TempJavaEventListenerFragmentFiles eventListenerTempFiles;
+
+
+ /**
* Creates an instance of temporary java code fragment.
*
* @param javaFileInfo generated java file info
@@ -80,9 +95,17 @@
setEnumerationTempFiles(new TempJavaEnumerationFragmentFiles(javaFileInfo));
}
- if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_RPC_INTERFACE) != 0) {
+ if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_SERVICE_AND_MANAGER) != 0) {
setServiceTempFiles(new TempJavaServiceFragmentFiles(javaFileInfo));
}
+
+ if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_EVENT_CLASS) != 0) {
+ setEventTempFiles(new TempJavaEventFragmentFiles(javaFileInfo));
+ }
+
+ if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_EVENT_LISTENER_INTERFACE) != 0) {
+ setEventListenerTempFiles(new TempJavaEventListenerFragmentFiles(javaFileInfo));
+ }
}
/**
@@ -161,6 +184,43 @@
}
/**
+ * Retrieves the temp file handle for event file generation.
+ *
+ * @return temp file handle for event file generation
+ */
+ public TempJavaEventFragmentFiles getEventTempFiles() {
+ return eventTempFiles;
+ }
+
+ /**
+ * Sets temp file handle for event file generation.
+ *
+ * @param eventTempFiles temp file handle for event file generation
+ */
+ public void setEventTempFiles(TempJavaEventFragmentFiles eventTempFiles) {
+ this.eventTempFiles = eventTempFiles;
+ }
+
+ /**
+ * Retrieves the temp file handle for event listener file generation.
+ *
+ * @return temp file handle for event listener file generation
+ */
+ public TempJavaEventListenerFragmentFiles getEventListenerTempFiles() {
+ return eventListenerTempFiles;
+ }
+
+ /**
+ * Sets temp file handle for event listener file generation.
+ *
+ * @param eventListenerTempFiles temp file handle for event listener file generation
+ */
+ public void setEventListenerTempFiles(
+ TempJavaEventListenerFragmentFiles eventListenerTempFiles) {
+ this.eventListenerTempFiles = eventListenerTempFiles;
+ }
+
+ /**
* Constructs java code exit.
*
* @param fileType generated file type
@@ -170,17 +230,42 @@
public void generateJavaFile(int fileType, YangNode curNode)
throws IOException {
- if (getBeanTempFiles() != null) {
+ if ((fileType & GENERATE_INTERFACE_WITH_BUILDER) != 0) {
getBeanTempFiles().generateJavaFile(fileType, curNode);
}
/**
* Creates user defined data type class file.
*/
- if (getTypeTempFiles() != null) {
+ if ((fileType & GENERATE_TYPE_CLASS) != 0) {
getTypeTempFiles().generateJavaFile(fileType, curNode);
}
+
+ if (fileType == GENERATE_SERVICE_AND_MANAGER) {
+
+ getServiceTempFiles().generateJavaFile(GENERATE_SERVICE_AND_MANAGER, curNode);
+
+
+ }
+
+ if ((fileType & GENERATE_EVENT_CLASS) != 0) {
+ /**
+ * Creates event class file.
+ */
+ if (getEventTempFiles() != null) {
+ getEventTempFiles().generateJavaFile(fileType, curNode);
+ }
+ }
+
+ if ((fileType & GENERATE_EVENT_LISTENER_INTERFACE) != 0) {
+ /**
+ * Creates event listener class file.
+ */
+ getEventListenerTempFiles().generateJavaFile(fileType, curNode);
+ }
+
+ freeTemporaryResources(false);
}
/**
@@ -208,35 +293,16 @@
}
/**
- * Adds all the leaves in the current data model node as part of the
- * generated temporary file.
- *
- * @param curNode java file info of the generated file
- * @throws IOException IO operation fail
- */
- public void addCurNodeLeavesInfoToTempFiles(YangNode curNode)
- throws IOException {
-
- if (getBeanTempFiles() != null) {
- getBeanTempFiles().addCurNodeLeavesInfoToTempFiles(curNode);
- }
-
- }
-
- /**
* Add all the type in the current data model node as part of the
* generated temporary file.
*
- * @param yangTypeContainer YANG java data model node which has type info, eg union / typedef
+ * @param yangTypeHolder YANG java data model node which has type info, eg union / typedef
* @throws IOException IO operation fail
*/
- public void addTypeInfoToTempFiles(YangTypeContainer yangTypeContainer)
+ public void addTypeInfoToTempFiles(YangTypeHolder yangTypeHolder)
throws IOException {
-
- if (getTypeTempFiles() != null) {
- getTypeTempFiles()
- .addTypeInfoToTempFiles(yangTypeContainer);
- }
+ getTypeTempFiles()
+ .addTypeInfoToTempFiles(yangTypeHolder);
}
/**
@@ -307,19 +373,27 @@
* all open file handles include temporary files and java files.
* @throws IOException when failed to delete the temporary files
*/
- public void close(boolean isErrorOccurred)
+ public void freeTemporaryResources(boolean isErrorOccurred)
throws IOException {
if (getBeanTempFiles() != null) {
- getBeanTempFiles().close(isErrorOccurred);
+ getBeanTempFiles().freeTemporaryResources(isErrorOccurred);
}
if (getTypeTempFiles() != null) {
- getTypeTempFiles().close(isErrorOccurred);
+ getTypeTempFiles().freeTemporaryResources(isErrorOccurred);
}
if (getEnumerationTempFiles() != null) {
- getEnumerationTempFiles().close(isErrorOccurred);
+ getEnumerationTempFiles().freeTemporaryResources(isErrorOccurred);
+ }
+
+ if (getEventTempFiles() != null) {
+ getEventTempFiles().freeTemporaryResources(isErrorOccurred);
+ }
+
+ if (getEventListenerTempFiles() != null) {
+ getEventListenerTempFiles().freeTemporaryResources(isErrorOccurred);
}
}