[ONOS-5232] Update generated code
Change-Id: I9c25d9f2888fbee78fddf10d02a3fa94f7ce46e0
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaImportData.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaImportData.java
index 7c82175..f2e7019 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaImportData.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaImportData.java
@@ -20,6 +20,9 @@
import java.util.SortedSet;
import java.util.TreeSet;
+import static java.util.Collections.sort;
+import static java.util.Collections.unmodifiableSortedSet;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getImportString;
import static org.onosproject.yangutils.utils.UtilConstants.ABSTRACT_EVENT;
import static org.onosproject.yangutils.utils.UtilConstants.BIG_INTEGER;
import static org.onosproject.yangutils.utils.UtilConstants.BITSET;
@@ -29,22 +32,16 @@
import static org.onosproject.yangutils.utils.UtilConstants.GOOGLE_MORE_OBJECT_IMPORT_CLASS;
import static org.onosproject.yangutils.utils.UtilConstants.GOOGLE_MORE_OBJECT_IMPORT_PKG;
import static org.onosproject.yangutils.utils.UtilConstants.HASH_MAP;
-import static org.onosproject.yangutils.utils.UtilConstants.IMPORT;
import static org.onosproject.yangutils.utils.UtilConstants.JAVA_LANG;
import static org.onosproject.yangutils.utils.UtilConstants.JAVA_MATH;
import static org.onosproject.yangutils.utils.UtilConstants.JAVA_UTIL_OBJECTS_IMPORT_CLASS;
import static org.onosproject.yangutils.utils.UtilConstants.JAVA_UTIL_OBJECTS_IMPORT_PKG;
import static org.onosproject.yangutils.utils.UtilConstants.LIST;
-import static org.onosproject.yangutils.utils.UtilConstants.LISTENER_REG;
import static org.onosproject.yangutils.utils.UtilConstants.LISTENER_SERVICE;
import static org.onosproject.yangutils.utils.UtilConstants.MAP;
-import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
import static org.onosproject.yangutils.utils.UtilConstants.ONOS_EVENT_PKG;
-import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
import static org.onosproject.yangutils.utils.UtilConstants.QUEUE;
-import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
import static org.onosproject.yangutils.utils.UtilConstants.SET;
-import static java.util.Collections.sort;
/**
* Represents that generated Java file can contain imports.
@@ -70,23 +67,15 @@
* Sorted set of import info, to be used to maintain the set of classes to
* be imported in the generated class.
*/
- private SortedSet<JavaQualifiedTypeInfoTranslator> importSet;
+ private final SortedSet<JavaQualifiedTypeInfoTranslator> importSet;
/**
* Creates java import data object.
*/
public JavaImportData() {
- setImportSet(new TreeSet<>());
+ importSet = new TreeSet<>();
}
- /**
- * Returns if the list needs to be imported.
- *
- * @return true if any of the attribute needs to be maintained as a list
- */
- private boolean getIfListImported() {
- return isListToImport;
- }
/**
* Sets the status of importing list.
@@ -97,30 +86,13 @@
isListToImport = isList;
}
- /**
- * Is Queue to be imported due to compiler annotations.
- *
- * @return status of queue import
- */
- public boolean isQueueToImport() {
- return isQueueToImport;
- }
-
- /**
- * Is Set to be imported due to compiler annotations.
- *
- * @return status of set import
- */
- public boolean isSetToImport() {
- return isSetToImport;
- }
/**
* Sets the status of the queue to be imported due to compiler annotations.
*
* @param queueToImport status of queue to import
*/
- public void setQueueToImport(boolean queueToImport) {
+ void setQueueToImport(boolean queueToImport) {
isQueueToImport = queueToImport;
}
@@ -129,7 +101,7 @@
*
* @param setToImport status of set to import
*/
- public void setSetToImport(boolean setToImport) {
+ void setSetToImport(boolean setToImport) {
isSetToImport = setToImport;
}
@@ -139,16 +111,7 @@
* @return the set containing the imported class/interface info
*/
public SortedSet<JavaQualifiedTypeInfoTranslator> getImportSet() {
- return importSet;
- }
-
- /**
- * Assigns the set containing the imported class/interface info.
- *
- * @param importSet the set containing the imported class/interface info
- */
- private void setImportSet(SortedSet<JavaQualifiedTypeInfoTranslator> importSet) {
- this.importSet = importSet;
+ return unmodifiableSortedSet(importSet);
}
/**
@@ -178,7 +141,8 @@
return true;
} else if (newImportInfo.getPkgInfo() == null) {
/*
- * If the package info is null, then it is not a candidate for import / qualified access
+ * If the package info is null, then it is not a candidate for import
+ * / qualified access
*/
return false;
}
@@ -190,7 +154,8 @@
*/
if (newImportInfo.getPkgInfo().contentEquals(classPkg)) {
/*
- * Package of the referred attribute and the generated class is same, so no need import
+ * Package of the referred attribute and the generated class is same,
+ * so no need import
* or qualified access.
*/
return false;
@@ -207,7 +172,7 @@
/*
* Import is added, so it is a member for non qualified access
*/
- getImportSet().add(newImportInfo);
+ importSet.add(newImportInfo);
return false;
}
@@ -222,24 +187,21 @@
List<String> imports = new ArrayList<>();
for (JavaQualifiedTypeInfoTranslator importInfo : getImportSet()) {
- if (!importInfo.getPkgInfo().equals(EMPTY_STRING) && importInfo.getClassInfo() != null
- && !importInfo.getPkgInfo().equals(JAVA_LANG)) {
- importString = IMPORT + importInfo.getPkgInfo() + PERIOD + importInfo.getClassInfo() + SEMI_COLAN
- + NEW_LINE;
-
+ if (!importInfo.getPkgInfo().equals(EMPTY_STRING) &&
+ importInfo.getClassInfo() != null &&
+ !importInfo.getPkgInfo().equals(JAVA_LANG)) {
+ importString = getImportString(importInfo.getPkgInfo(), importInfo
+ .getClassInfo());
imports.add(importString);
}
}
-
- if (getIfListImported()) {
+ if (isListToImport) {
imports.add(getImportForList());
}
-
- if (isQueueToImport()) {
+ if (isQueueToImport) {
imports.add(getImportForQueue());
}
-
- if (isSetToImport()) {
+ if (isSetToImport) {
imports.add(getImportForSet());
}
@@ -253,7 +215,8 @@
* @return import for hash and equals method
*/
String getImportForHashAndEquals() {
- return IMPORT + JAVA_UTIL_OBJECTS_IMPORT_PKG + PERIOD + JAVA_UTIL_OBJECTS_IMPORT_CLASS;
+ return getImportString(JAVA_UTIL_OBJECTS_IMPORT_PKG,
+ JAVA_UTIL_OBJECTS_IMPORT_CLASS);
}
/**
@@ -262,7 +225,8 @@
* @return import for to string method
*/
String getImportForToString() {
- return IMPORT + GOOGLE_MORE_OBJECT_IMPORT_PKG + PERIOD + GOOGLE_MORE_OBJECT_IMPORT_CLASS;
+ return getImportString(GOOGLE_MORE_OBJECT_IMPORT_PKG,
+ GOOGLE_MORE_OBJECT_IMPORT_CLASS);
}
/**
@@ -271,7 +235,7 @@
* @return import for to bitset method
*/
String getImportForToBitSet() {
- return IMPORT + JAVA_UTIL_OBJECTS_IMPORT_PKG + PERIOD + BITSET + SEMI_COLAN + NEW_LINE;
+ return getImportString(JAVA_UTIL_OBJECTS_IMPORT_PKG, BITSET);
}
/**
@@ -280,7 +244,7 @@
* @return import for list attribute
*/
String getImportForList() {
- return IMPORT + COLLECTION_IMPORTS + PERIOD + LIST + SEMI_COLAN + NEW_LINE;
+ return getImportString(COLLECTION_IMPORTS, LIST);
}
/**
@@ -288,8 +252,8 @@
*
* @return import for queue attribute
*/
- public String getImportForQueue() {
- return IMPORT + COLLECTION_IMPORTS + PERIOD + QUEUE + SEMI_COLAN + NEW_LINE;
+ private String getImportForQueue() {
+ return getImportString(COLLECTION_IMPORTS, QUEUE);
}
/**
@@ -297,8 +261,8 @@
*
* @return import for set attribute
*/
- public String getImportForSet() {
- return IMPORT + COLLECTION_IMPORTS + PERIOD + SET + SEMI_COLAN + NEW_LINE;
+ private String getImportForSet() {
+ return getImportString(COLLECTION_IMPORTS, SET);
}
/**
@@ -307,16 +271,7 @@
* @return import string for ListenerService class
*/
public String getListenerServiceImport() {
- return IMPORT + ONOS_EVENT_PKG + PERIOD + LISTENER_SERVICE + SEMI_COLAN + NEW_LINE;
- }
-
- /**
- * Returns import string for ListenerRegistry class.
- *
- * @return import string for ListenerRegistry class
- */
- public String getListenerRegistryImport() {
- return IMPORT + ONOS_EVENT_PKG + PERIOD + LISTENER_REG + SEMI_COLAN + NEW_LINE;
+ return getImportString(ONOS_EVENT_PKG, LISTENER_SERVICE);
}
/**
@@ -325,7 +280,7 @@
* @return import string for AbstractEvent class
*/
String getAbstractEventsImport() {
- return IMPORT + ONOS_EVENT_PKG + PERIOD + ABSTRACT_EVENT + SEMI_COLAN + NEW_LINE;
+ return getImportString(ONOS_EVENT_PKG, ABSTRACT_EVENT);
}
/**
@@ -334,7 +289,7 @@
* @return import string for EventListener class
*/
String getEventListenerImport() {
- return IMPORT + ONOS_EVENT_PKG + PERIOD + EVENT_LISTENER + SEMI_COLAN + NEW_LINE;
+ return getImportString(ONOS_EVENT_PKG, EVENT_LISTENER);
}
/**
@@ -343,7 +298,7 @@
* @return import string for map class
*/
String getMapImport() {
- return IMPORT + COLLECTION_IMPORTS + PERIOD + MAP + SEMI_COLAN + NEW_LINE;
+ return getImportString(COLLECTION_IMPORTS, MAP);
}
/**
@@ -352,7 +307,7 @@
* @return import string for hash map class
*/
String getHashMapImport() {
- return IMPORT + COLLECTION_IMPORTS + PERIOD + HASH_MAP + SEMI_COLAN + NEW_LINE;
+ return getImportString(COLLECTION_IMPORTS, HASH_MAP);
}
/**
@@ -361,7 +316,7 @@
* @return import for big integer
*/
public String getBigIntegerImport() {
- return IMPORT + JAVA_MATH + PERIOD +
- BIG_INTEGER + SEMI_COLAN + NEW_LINE;
+ return getImportString(JAVA_MATH, BIG_INTEGER);
}
+
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaBeanFragmentFiles.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaBeanFragmentFiles.java
index a12802f..7f15bc3 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaBeanFragmentFiles.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaBeanFragmentFiles.java
@@ -16,11 +16,11 @@
package org.onosproject.yangutils.translator.tojava;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
+
import java.io.File;
import java.io.IOException;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
-
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_IMPL_MASK;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getConstructor;
import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.closeFile;
@@ -40,7 +40,7 @@
/**
* Temporary file handle for constructor of class.
*/
- private File constructorImplTempFileHandle;
+ private final File constructorImplTempFileHandle;
/**
* Creates an instance of temporary java code fragment.
@@ -58,8 +58,7 @@
* to strings when generation file type matches to impl class mask.
*/
addGeneratedTempFile(CONSTRUCTOR_IMPL_MASK);
-
- setConstructorImplTempFileHandle(getTemporaryFileHandle(CONSTRUCTOR_FILE_NAME));
+ constructorImplTempFileHandle = getTemporaryFileHandle(CONSTRUCTOR_FILE_NAME);
}
/**
@@ -72,44 +71,37 @@
}
/**
- * Sets to constructor's temporary file handle.
- *
- * @param constructor file handle for to constructor
- */
- private void setConstructorImplTempFileHandle(File constructor) {
- constructorImplTempFileHandle = constructor;
- }
-
- /**
* Adds constructor for class.
*
* @param attr attribute info
* @throws IOException when fails to append to temporary file
*/
- private void addConstructor(JavaAttributeInfo attr, YangPluginConfig pluginConfig)
+ private void addConstructor(JavaAttributeInfo attr)
throws IOException {
- appendToFile(getConstructorImplTempFileHandle(), getConstructor(attr,
- getGeneratedJavaFiles(), pluginConfig));
+ appendToFile(constructorImplTempFileHandle,
+ getConstructor(attr, getGeneratedJavaFiles()));
}
/**
* Adds the new attribute info to the target generated temporary files.
*
* @param newAttrInfo the attribute info that needs to be added to temporary
- * files
+ * files
* @throws IOException IO operation fail
*/
@Override
- void addJavaSnippetInfoToApplicableTempFiles(JavaAttributeInfo newAttrInfo, YangPluginConfig pluginConfig)
+ void addJavaSnippetInfoToApplicableTempFiles(JavaAttributeInfo newAttrInfo,
+ YangPluginConfig pluginConfig)
throws IOException {
super.addJavaSnippetInfoToApplicableTempFiles(newAttrInfo, pluginConfig);
- addConstructor(newAttrInfo, pluginConfig);
+ addConstructor(newAttrInfo);
}
/**
* Removes all temporary file handles.
*
- * @param isErrorOccurred flag to tell translator that error has occurred while code generation
+ * @param isErrorOccurred flag to tell translator that error has occurred
+ * while code generation
* @throws IOException when failed to delete the temporary files
*/
@Override
@@ -119,9 +111,7 @@
/*
* Close constructor temporary file handle and delete the file.
*/
- closeFile(getConstructorImplTempFileHandle(), true);
-
+ closeFile(constructorImplTempFileHandle, true);
super.freeTemporaryResources(isErrorOccurred);
}
-
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaCodeFragmentFiles.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaCodeFragmentFiles.java
index d73fa63..9fdd9c8 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaCodeFragmentFiles.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaCodeFragmentFiles.java
@@ -16,12 +16,12 @@
package org.onosproject.yangutils.translator.tojava;
-import java.io.IOException;
-
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangTypeHolder;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.translator.exception.TranslatorException;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
+
+import java.io.IOException;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ALL_EVENT_CLASS_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS;
@@ -55,12 +55,12 @@
/**
* Has the temporary files required for enumeration generated classes.
*/
- private TempJavaEnumerationFragmentFiles enumerationTempFiles;
+ private TempJavaEnumerationFragmentFiles enumTempFiles;
/**
* Has the temporary files required for enumeration generated classes.
*/
- private TempJavaEventFragmentFiles tempJavaEventFragmentFiles;
+ private TempJavaEventFragmentFiles eventTempFiles;
/**
* Creates an instance of temporary java code fragment.
@@ -71,26 +71,26 @@
public TempJavaCodeFragmentFiles(JavaFileInfoTranslator javaFileInfo)
throws IOException {
- if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_INTERFACE_WITH_BUILDER) != 0) {
- setBeanTempFiles(new TempJavaBeanFragmentFiles(javaFileInfo));
+ int genType = javaFileInfo.getGeneratedFileTypes();
+ if ((genType & GENERATE_INTERFACE_WITH_BUILDER) != 0) {
+ beanTempFiles = new TempJavaBeanFragmentFiles(javaFileInfo);
}
- if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_TYPE_CLASS) != 0) {
- setTypeTempFiles(new TempJavaTypeFragmentFiles(javaFileInfo));
+ if ((genType & GENERATE_TYPE_CLASS) != 0) {
+ typeTempFiles = new TempJavaTypeFragmentFiles(javaFileInfo);
}
- if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_ENUM_CLASS) != 0) {
- setEnumerationTempFiles(new TempJavaEnumerationFragmentFiles(javaFileInfo));
+ if ((genType & GENERATE_ENUM_CLASS) != 0) {
+ enumTempFiles = new TempJavaEnumerationFragmentFiles(javaFileInfo);
}
- if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_SERVICE_AND_MANAGER) != 0) {
- setServiceTempFiles(new TempJavaServiceFragmentFiles(javaFileInfo));
+ if ((genType & GENERATE_SERVICE_AND_MANAGER) != 0) {
+ serviceTempFiles = new TempJavaServiceFragmentFiles(javaFileInfo);
}
- if ((javaFileInfo.getGeneratedFileTypes() & GENERATE_ALL_EVENT_CLASS_MASK) != 0) {
- setEventFragmentFiles(new TempJavaEventFragmentFiles(javaFileInfo));
+ if ((genType & GENERATE_ALL_EVENT_CLASS_MASK) != 0) {
+ eventTempFiles = new TempJavaEventFragmentFiles(javaFileInfo);
}
-
}
/**
@@ -103,15 +103,6 @@
}
/**
- * Sets temp file handle for bean file generation.
- *
- * @param beanTempFiles temp file handle for bean file generation
- */
- private void setBeanTempFiles(TempJavaBeanFragmentFiles beanTempFiles) {
- this.beanTempFiles = beanTempFiles;
- }
-
- /**
* Retrieves the temp file handle for data type file generation.
*
* @return temp file handle for data type file generation
@@ -120,14 +111,6 @@
return typeTempFiles;
}
- /**
- * Sets temp file handle for data type file generation.
- *
- * @param typeTempFiles temp file handle for data type file generation
- */
- private void setTypeTempFiles(TempJavaTypeFragmentFiles typeTempFiles) {
- this.typeTempFiles = typeTempFiles;
- }
/**
* Retrieves the temp file handle for service file generation.
@@ -139,31 +122,12 @@
}
/**
- * Sets temp file handle for service file generation.
- *
- * @param serviceTempFiles temp file handle for service file generation
- */
- private void setServiceTempFiles(TempJavaServiceFragmentFiles serviceTempFiles) {
- this.serviceTempFiles = serviceTempFiles;
- }
-
- /**
* Retrieves the temp file handle for enumeration file generation.
*
* @return temp file handle for enumeration file generation
*/
- public TempJavaEnumerationFragmentFiles getEnumerationTempFiles() {
- return enumerationTempFiles;
- }
-
- /**
- * Sets temp file handle for enumeration file generation.
- *
- * @param enumerationTempFiles temp file handle for enumeration file generation
- */
- private void setEnumerationTempFiles(
- TempJavaEnumerationFragmentFiles enumerationTempFiles) {
- this.enumerationTempFiles = enumerationTempFiles;
+ public TempJavaEnumerationFragmentFiles getEnumTempFiles() {
+ return enumTempFiles;
}
/**
@@ -172,20 +136,10 @@
* @return temp file handle for enumeration file generation
*/
public TempJavaEventFragmentFiles getEventFragmentFiles() {
- return tempJavaEventFragmentFiles;
+ return eventTempFiles;
}
/**
- * Sets temp file handle for event file generation.
- *
- * @param tempJavaEventFragmentFiles temp file handle for event file generation
- */
- private void setEventFragmentFiles(TempJavaEventFragmentFiles tempJavaEventFragmentFiles) {
- this.tempJavaEventFragmentFiles = tempJavaEventFragmentFiles;
- }
-
-
- /**
* Constructs java code exit.
*
* @param fileType generated file type
@@ -196,35 +150,35 @@
throws IOException {
if ((fileType & GENERATE_INTERFACE_WITH_BUILDER) != 0) {
- getBeanTempFiles().generateJavaFile(fileType, curNode);
+ beanTempFiles.generateJavaFile(fileType, curNode);
}
/*
* Creates user defined data type class file.
*/
if ((fileType & GENERATE_TYPE_CLASS) != 0) {
- getTypeTempFiles().generateJavaFile(fileType, curNode);
+ typeTempFiles.generateJavaFile(fileType, curNode);
}
/*
* Creates service and manager class file.
*/
if (fileType == GENERATE_SERVICE_AND_MANAGER) {
- getServiceTempFiles().generateJavaFile(GENERATE_SERVICE_AND_MANAGER, curNode);
+ serviceTempFiles.generateJavaFile(GENERATE_SERVICE_AND_MANAGER, curNode);
}
/*
* Creates event, event listener and event subject files.
*/
if (fileType == GENERATE_ALL_EVENT_CLASS_MASK) {
- getEventFragmentFiles().generateJavaFile(GENERATE_ALL_EVENT_CLASS_MASK, curNode);
+ eventTempFiles.generateJavaFile(GENERATE_ALL_EVENT_CLASS_MASK, curNode);
}
/*
* Creates enumeration class file.
*/
if (fileType == GENERATE_ENUM_CLASS) {
- getEnumerationTempFiles().generateJavaFile(GENERATE_ENUM_CLASS, curNode);
+ enumTempFiles.generateJavaFile(GENERATE_ENUM_CLASS, curNode);
}
}
@@ -232,14 +186,13 @@
* Add all the type in the current data model node as part of the
* generated temporary file.
*
- * @param yangTypeHolder YANG java data model node which has type info, eg union / typedef
- * @param pluginConfig plugin configurations for naming convention
+ * @param typeHolder YANG java data model node which has type info, eg union / typedef
+ * @param config plugin configurations for naming convention
* @throws IOException IO operation fail
*/
- void addTypeInfoToTempFiles(YangTypeHolder yangTypeHolder, YangPluginConfig pluginConfig)
+ void addTypeInfoToTempFiles(YangTypeHolder typeHolder, YangPluginConfig config)
throws IOException {
- getTypeTempFiles()
- .addTypeInfoToTempFiles(yangTypeHolder, pluginConfig);
+ typeTempFiles.addTypeInfoToTempFiles(typeHolder, config);
}
/**
@@ -251,8 +204,8 @@
*/
public String addBuildMethodForInterface(YangPluginConfig pluginConfig)
throws IOException {
- if (getBeanTempFiles() != null) {
- return getBeanTempFiles().addBuildMethodForInterface(pluginConfig);
+ if (beanTempFiles != null) {
+ return beanTempFiles.addBuildMethodForInterface();
}
throw new TranslatorException("build method only supported for bean class");
}
@@ -260,27 +213,24 @@
/**
* Adds default constructor for class.
*
- * @param modifier modifier for constructor.
- * @param toAppend string which need to be appended with the class name
- * @param pluginConfig plugin configurations
- * @param curNode YANG node
+ * @param modifier modifier for constructor.
+ * @param toAppend string which need to be appended with the class name
* @return default constructor for class
* @throws IOException when fails to append to file
*/
- public String addDefaultConstructor(String modifier, String toAppend, YangPluginConfig pluginConfig,
- YangNode curNode)
+ public String addDefaultConstructor(String modifier, String toAppend)
throws IOException {
boolean isSuffix = false;
if (toAppend.equals(BUILDER)) {
isSuffix = true;
}
- if (getTypeTempFiles() != null) {
- return getTypeTempFiles()
- .addDefaultConstructor(modifier, toAppend, pluginConfig, isSuffix);
+ if (typeTempFiles != null) {
+ return typeTempFiles.addDefaultConstructor(modifier, toAppend,
+ isSuffix);
}
-
- if (getBeanTempFiles() != null) {
- return getBeanTempFiles().addDefaultConstructor(modifier, toAppend, pluginConfig, isSuffix);
+ if (beanTempFiles != null) {
+ return beanTempFiles.addDefaultConstructor(modifier, toAppend,
+ isSuffix);
}
throw new TranslatorException("default constructor should not be added");
@@ -289,49 +239,46 @@
/**
* Adds build method's implementation for class.
*
- * @param curNode YANG node
* @return build method implementation for class
* @throws IOException when fails to append to temporary file
*/
- public String addBuildMethodImpl(YangNode curNode)
+ public String addBuildMethodImpl()
throws IOException {
- if (getBeanTempFiles() != null) {
- return getBeanTempFiles().addBuildMethodImpl();
+ if (beanTempFiles != null) {
+ return beanTempFiles.addBuildMethodImpl();
}
-
throw new TranslatorException("build should not be added");
}
/**
* Removes all temporary file handles.
+ * when translator fails to generate java files we need to close
+ * all open file handles include temporary files and java files
*
- * @param isErrorOccurred when translator fails to generate java files we need to close
- * all open file handles include temporary files and java files.
+ * @param isErrorOccurred if error occurred
* @throws IOException when failed to delete the temporary files
*/
void freeTemporaryResources(boolean isErrorOccurred)
throws IOException {
- if (getBeanTempFiles() != null) {
- getBeanTempFiles().freeTemporaryResources(isErrorOccurred);
+ if (beanTempFiles != null) {
+ beanTempFiles.freeTemporaryResources(isErrorOccurred);
}
- if (getTypeTempFiles() != null) {
- getTypeTempFiles().freeTemporaryResources(isErrorOccurred);
+ if (typeTempFiles != null) {
+ typeTempFiles.freeTemporaryResources(isErrorOccurred);
}
- if (getEnumerationTempFiles() != null) {
- getEnumerationTempFiles().freeTemporaryResources(isErrorOccurred);
+ if (enumTempFiles != null) {
+ enumTempFiles.freeTemporaryResources(isErrorOccurred);
}
- if (getServiceTempFiles() != null) {
- getServiceTempFiles().freeTemporaryResources(isErrorOccurred);
+ if (serviceTempFiles != null) {
+ serviceTempFiles.freeTemporaryResources(isErrorOccurred);
}
- if (getEventFragmentFiles() != null) {
- getEventFragmentFiles().freeTemporaryResources(isErrorOccurred);
+ if (eventTempFiles != null) {
+ eventTempFiles.freeTemporaryResources(isErrorOccurred);
}
-
}
-
}
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 12dc41c..1650395 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
@@ -15,9 +15,6 @@
*/
package org.onosproject.yangutils.translator.tojava;
-import java.io.File;
-import java.io.IOException;
-
import org.onosproject.yangutils.datamodel.YangEnum;
import org.onosproject.yangutils.datamodel.YangEnumeration;
import org.onosproject.yangutils.datamodel.YangNode;
@@ -25,11 +22,13 @@
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaTypeTranslator;
import org.onosproject.yangutils.utils.io.YangPluginConfig;
+import java.io.File;
+import java.io.IOException;
+
import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT32;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ENUM_IMPL_MASK;
import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen
- .generateEnumAttributeStringWithSchemaName;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.generateEnumAttributeStringWithSchemaName;
import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateEnumClassFile;
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.createPackage;
import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
@@ -52,14 +51,9 @@
private static final String ENUM_CLASS_TEMP_FILE_NAME = "EnumClass";
/**
- * File name for enum class file name suffix.
- */
- private static final String ENUM_CLASS_FILE_NAME_SUFFIX = EMPTY_STRING;
-
- /**
* Temporary file handle for enum class file.
*/
- private File enumClassTempFileHandle;
+ private final File enumClassTempFileHandle;
/**
* Java file handle for enum class.
@@ -80,25 +74,7 @@
* Initialize enum when generation file type matches to enum class mask.
*/
addGeneratedTempFile(ENUM_IMPL_MASK);
- setEnumClassTempFileHandle(getTemporaryFileHandle(ENUM_CLASS_TEMP_FILE_NAME));
- }
-
- /**
- * Returns enum class java file handle.
- *
- * @return enum class java file handle
- */
- private File getEnumClassJavaFileHandle() {
- return enumClassJavaFileHandle;
- }
-
- /**
- * Sets enum class java file handle.
- *
- * @param enumClassJavaFileHandle enum class java file handle
- */
- private void setEnumClassJavaFileHandle(File enumClassJavaFileHandle) {
- this.enumClassJavaFileHandle = enumClassJavaFileHandle;
+ enumClassTempFileHandle = getTemporaryFileHandle(ENUM_CLASS_TEMP_FILE_NAME);
}
/**
@@ -111,72 +87,66 @@
}
/**
- * Sets temporary file handle for enum class file.
- *
- * @param enumClassTempFileHandle temporary file handle for enum class file
- */
- private void setEnumClassTempFileHandle(File enumClassTempFileHandle) {
- this.enumClassTempFileHandle = enumClassTempFileHandle;
- }
-
- /**
* Adds enum class attributes to temporary file.
*
* @param yangEnum YANG enum
* @throws IOException when fails to do IO operations.
*/
- private void addAttributesForEnumClass(YangPluginConfig pluginConfig, YangEnum yangEnum)
+ private void addAttributesForEnumClass(YangEnum yangEnum)
throws IOException {
- appendToFile(getEnumClassTempFileHandle(),
+ appendToFile(enumClassTempFileHandle,
generateEnumAttributeStringWithSchemaName(yangEnum.getNamedValue(),
- yangEnum.getValue(), pluginConfig));
+ yangEnum.getValue()));
}
/**
* Adds enum attributes to temporary files.
*
- * @param curNode current YANG node
- * @param pluginConfig plugin configurations
+ * @param curNode current YANG node
+ * @param config plugin configurations
* @throws IOException when fails to do IO operations
*/
- void addEnumAttributeToTempFiles(YangNode curNode, YangPluginConfig pluginConfig)
+ void addEnumAttributeToTempFiles(YangNode curNode, YangPluginConfig config)
throws IOException {
- super.addJavaSnippetInfoToApplicableTempFiles(getJavaAttributeForEnum(pluginConfig), pluginConfig);
+ addJavaSnippetInfoToApplicableTempFiles(getJavaAttributeForEnum(config),
+ config);
if (curNode instanceof YangEnumeration) {
YangEnumeration enumeration = (YangEnumeration) curNode;
for (YangEnum curEnum : enumeration.getEnumSet()) {
String enumName = curEnum.getNamedValue();
- String prefixForIdentifier;
+ String prefix;
if (enumName.matches(REGEX_FOR_FIRST_DIGIT)) {
- prefixForIdentifier = getPrefixForIdentifier(pluginConfig.getConflictResolver());
- if (prefixForIdentifier != null) {
- curEnum.setNamedValue(prefixForIdentifier + enumName);
+ prefix = getPrefixForIdentifier(
+ config.getConflictResolver());
+ if (prefix != null) {
+ curEnum.setNamedValue(prefix + enumName);
} else {
curEnum.setNamedValue(YANG_AUTO_PREFIX + enumName);
}
}
- addJavaSnippetInfoToApplicableTempFiles(pluginConfig, curEnum);
+ addJavaSnippetInfoToApplicableTempFiles(curEnum);
}
} else {
- throw new TranslatorException("current node should be of enumeration type. " +
- curNode.getName() + " in " + curNode.getLineNumber() + " at " +
- curNode.getCharPosition()
- + " in " + curNode.getFileName());
+ throw new TranslatorException(
+ "current node should be of enumeration type. " +
+ curNode.getName() + " in " + curNode.getLineNumber() +
+ " at " + curNode.getCharPosition() + " in " + curNode
+ .getFileName());
}
}
/**
* Returns java attribute for enum class.
*
- * @param pluginConfig plugin configurations
+ * @param config plugin configurations
* @return java attribute
*/
- private JavaAttributeInfo getJavaAttributeForEnum(YangPluginConfig pluginConfig) {
+ private JavaAttributeInfo getJavaAttributeForEnum(YangPluginConfig config) {
YangJavaTypeTranslator javaType = new YangJavaTypeTranslator();
javaType.setDataType(INT32);
javaType.setDataTypeName(INT);
- javaType.updateJavaQualifiedInfo(pluginConfig.getConflictResolver());
+ javaType.updateJavaQualifiedInfo(config.getConflictResolver());
return getAttributeInfoForTheData(
javaType.getJavaQualifiedInfo(),
javaType.getDataTypeName(), javaType,
@@ -187,11 +157,11 @@
/**
* Adds the new attribute info to the target generated temporary files.
*
- * @param yangEnum@throws IOException IO operation fail
+ * @param yangEnum @throws IOException IO operation fail
*/
- private void addJavaSnippetInfoToApplicableTempFiles(YangPluginConfig pluginConfig, YangEnum yangEnum)
+ private void addJavaSnippetInfoToApplicableTempFiles(YangEnum yangEnum)
throws IOException {
- addAttributesForEnumClass(pluginConfig, yangEnum);
+ addAttributesForEnumClass(yangEnum);
}
/**
@@ -205,8 +175,8 @@
public void generateJavaFile(int fileType, YangNode curNode)
throws IOException {
createPackage(curNode);
- setEnumClassJavaFileHandle(getJavaFileHandle(getJavaClassName(ENUM_CLASS_FILE_NAME_SUFFIX)));
- setEnumClassJavaFileHandle(generateEnumClassFile(getEnumClassJavaFileHandle(), curNode));
+ enumClassJavaFileHandle = getJavaFileHandle(getJavaClassName(EMPTY_STRING));
+ generateEnumClassFile(enumClassJavaFileHandle, curNode);
freeTemporaryResources(false);
}
@@ -219,9 +189,8 @@
@Override
public void freeTemporaryResources(boolean isErrorOccurred)
throws IOException {
- closeFile(getEnumClassJavaFileHandle(), isErrorOccurred);
- closeFile(getEnumClassTempFileHandle(), true);
+ closeFile(enumClassJavaFileHandle, isErrorOccurred);
+ closeFile(enumClassTempFileHandle, true);
super.freeTemporaryResources(isErrorOccurred);
}
-
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaEventFragmentFiles.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaEventFragmentFiles.java
index 6235b52..4c5d69b 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaEventFragmentFiles.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaEventFragmentFiles.java
@@ -16,15 +16,15 @@
package org.onosproject.yangutils.translator.tojava;
+import org.onosproject.yangutils.datamodel.YangNode;
+import org.onosproject.yangutils.translator.tojava.utils.JavaExtendsListHolder;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
+
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.translator.tojava.utils.JavaExtendsListHolder;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
-
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_ENUM_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_METHOD_MASK;
@@ -42,8 +42,8 @@
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForClass;
import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER;
import static org.onosproject.yangutils.utils.UtilConstants.EVENT_STRING;
-import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.closeFile;
@@ -54,7 +54,6 @@
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
-import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase;
/**
* Represent temporary java fragments for event files.
@@ -79,27 +78,20 @@
/**
* File name for event subject attribute temp file.
*/
- private static final String EVENT_SUBJECT_ATTRIBUTE_FILE_NAME = "EventSubjectAttribute";
+ private static final String EVENT_SUBJECT_ATTRIBUTE_FILE_NAME
+ = "EventSubjectAttribute";
/**
* File name for event subject getter temp file.
*/
- private static final String EVENT_SUBJECT_GETTER_FILE_NAME = "EventSubjectGetter";
+ private static final String EVENT_SUBJECT_GETTER_FILE_NAME
+ = "EventSubjectGetter";
/**
* File name for event subject setter temp file.
*/
- private static final String EVENT_SUBJECT_SETTER_FILE_NAME = "EventSubjectSetter";
-
- /**
- * File name for generated class file for special type like union, typedef suffix.
- */
- private static final String EVENT_FILE_NAME_SUFFIX = "Event";
-
- /**
- * File name for generated class file for special type like union, typedef suffix.
- */
- private static final String EVENT_LISTENER_FILE_NAME_SUFFIX = "EventListener";
+ private static final String EVENT_SUBJECT_SETTER_FILE_NAME
+ = "EventSubjectSetter";
private static final String JAVA_FILE_EXTENSION = ".java";
@@ -121,27 +113,27 @@
/**
* Java file handle for event enum impl file.
*/
- private File eventEnumTempFileHandle;
+ private final File eventEnumTempFileHandle;
/**
* Java file handle for event method impl file.
*/
- private File eventMethodTempFileHandle;
+ private final File eventMethodTempFileHandle;
/**
* Java file handle for event subject attribute file.
*/
- private File eventSubjectAttributeTempFileHandle;
+ private final File eventSubjectAttributeTempFileHandle;
/**
* Java file handle for event subject getter impl file.
*/
- private File eventSubjectGetterTempFileHandle;
+ private final File eventSubjectGetterTempFileHandle;
/**
* Java file handle for event subject setter impl file.
*/
- private File eventSubjectSetterTempFileHandle;
+ private final File eventSubjectSetterTempFileHandle;
/**
* Creates an instance of temporary java code fragment.
@@ -154,8 +146,9 @@
setJavaExtendsListHolder(new JavaExtendsListHolder());
setJavaImportData(new JavaImportData());
setJavaFileInfo(javaFileInfo);
- setAbsoluteDirPath(getAbsolutePackagePath(getJavaFileInfo().getBaseCodeGenPath(),
- getJavaFileInfo().getPackageFilePath()));
+ setAbsoluteDirPath(getAbsolutePackagePath(
+ getJavaFileInfo().getBaseCodeGenPath(),
+ getJavaFileInfo().getPackageFilePath()));
addGeneratedTempFile(EVENT_ENUM_MASK);
addGeneratedTempFile(EVENT_METHOD_MASK);
@@ -163,11 +156,60 @@
addGeneratedTempFile(EVENT_SUBJECT_GETTER_MASK);
addGeneratedTempFile(EVENT_SUBJECT_SETTER_MASK);
- setEventEnumTempFileHandle(getTemporaryFileHandle(EVENT_ENUM_FILE_NAME));
- setEventMethodTempFileHandle(getTemporaryFileHandle(EVENT_METHOD_FILE_NAME));
- setEventSubjectAttributeTempFileHandle(getTemporaryFileHandle(EVENT_SUBJECT_ATTRIBUTE_FILE_NAME));
- setEventSubjectGetterTempFileHandle(getTemporaryFileHandle(EVENT_SUBJECT_GETTER_FILE_NAME));
- setEventSubjectSetterTempFileHandle(getTemporaryFileHandle(EVENT_SUBJECT_SETTER_FILE_NAME));
+ eventEnumTempFileHandle = getTemporaryFileHandle(EVENT_ENUM_FILE_NAME);
+ eventMethodTempFileHandle = getTemporaryFileHandle(
+ EVENT_METHOD_FILE_NAME);
+ eventSubjectAttributeTempFileHandle = getTemporaryFileHandle
+ (EVENT_SUBJECT_ATTRIBUTE_FILE_NAME);
+ eventSubjectGetterTempFileHandle = getTemporaryFileHandle(
+ EVENT_SUBJECT_GETTER_FILE_NAME);
+ eventSubjectSetterTempFileHandle = getTemporaryFileHandle(
+ EVENT_SUBJECT_SETTER_FILE_NAME);
+ }
+
+ /**
+ * Returns event enum temp file.
+ *
+ * @return event enum temp file
+ */
+ public File getEventEnumTempFileHandle() {
+ return eventEnumTempFileHandle;
+ }
+
+ /**
+ * Returns event method temp file.
+ *
+ * @return event method temp file
+ */
+ public File getEventMethodTempFileHandle() {
+ return eventMethodTempFileHandle;
+ }
+
+ /**
+ * Returns event subject attribute temp file.
+ *
+ * @return event subject attribute temp file
+ */
+ public File getEventSubjectAttributeTempFileHandle() {
+ return eventSubjectAttributeTempFileHandle;
+ }
+
+ /**
+ * Returns event subject getter temp file.
+ *
+ * @return event subject getter temp file
+ */
+ public File getEventSubjectGetterTempFileHandle() {
+ return eventSubjectGetterTempFileHandle;
+ }
+
+ /**
+ * Returns event subject setter temp file.
+ *
+ * @return event subject setter temp file
+ */
+ public File getEventSubjectSetterTempFileHandle() {
+ return eventSubjectSetterTempFileHandle;
}
/*Adds event method contents to event file.*/
@@ -179,7 +221,8 @@
" * @param type event type\n" +
" * @param subject subject " + classname + "\n" +
" */\n" +
- " public " + eventClassname + "(Type type, " + getCapitalCase(classname) + " subject) {\n" +
+ " public " + eventClassname + "(Type type, " +
+ getCapitalCase(classname) + " subject) {\n" +
" super(type, subject);\n" +
" }\n" +
"\n" +
@@ -197,60 +240,6 @@
"\n";
}
- /**
- * Returns event's java file handle.
- *
- * @return java file handle
- */
- private File getEventJavaFileHandle() {
- return eventJavaFileHandle;
- }
-
- /**
- * Sets event's java file handle.
- *
- * @param eventJavaFileHandle file handle for event
- */
- private void setEventJavaFileHandle(File eventJavaFileHandle) {
- this.eventJavaFileHandle = eventJavaFileHandle;
- }
-
- /**
- * Returns event listeners's java file handle.
- *
- * @return java file handle
- */
- private File getEventListenerJavaFileHandle() {
- return eventListenerJavaFileHandle;
- }
-
- /**
- * Sets event's java file handle.
- *
- * @param eventListenerJavaFileHandle file handle for event
- */
- private void setEventListenerJavaFileHandle(File eventListenerJavaFileHandle) {
- this.eventListenerJavaFileHandle = eventListenerJavaFileHandle;
- }
-
- /**
- * Returns event subject's java file handle.
- *
- * @return java file handle
- */
- private File getEventSubjectJavaFileHandle() {
- return eventSubjectJavaFileHandle;
- }
-
- /**
- * Sets event's subject java file handle.
- *
- * @param eventSubjectJavaFileHandle file handle for event's subject
- */
- private void setEventSubjectJavaFileHandle(File eventSubjectJavaFileHandle) {
- this.eventSubjectJavaFileHandle = eventSubjectJavaFileHandle;
- }
-
public void generateJavaFile(int fileType, YangNode curNode)
throws IOException {
generateEventJavaFile(curNode);
@@ -273,15 +262,16 @@
List<String> imports = new ArrayList<>();
imports.add(getJavaImportData().getAbstractEventsImport());
- String curNodeInfo = getCapitalCase(((JavaFileInfoContainer) curNode).getJavaFileInfo().getJavaName());
+ String curNodeInfo = getCapitalCase(((JavaFileInfoContainer) curNode)
+ .getJavaFileInfo().getJavaName());
String nodeName = curNodeInfo + EVENT_STRING;
addEnumMethod(nodeName, curNodeInfo + EVENT_SUBJECT_NAME_SUFFIX);
//Creates event interface file.
- setEventJavaFileHandle(getJavaFileHandle(curNode, curNodeInfo + EVENT_FILE_NAME_SUFFIX));
- generateEventFile(getEventJavaFileHandle(), curNode, imports);
-
+ eventJavaFileHandle = getJavaFileHandle(curNode, curNodeInfo +
+ EVENT_STRING);
+ generateEventFile(eventJavaFileHandle, curNode, imports);
}
/**
@@ -300,10 +290,9 @@
.getJavaFileInfo().getJavaName());
// Creates event listener interface file.
- setEventListenerJavaFileHandle(
- getJavaFileHandle(curNode, curNodeInfo + EVENT_LISTENER_FILE_NAME_SUFFIX));
- generateEventListenerFile(getEventListenerJavaFileHandle(), curNode, imports);
-
+ eventListenerJavaFileHandle =
+ getJavaFileHandle(curNode, curNodeInfo + EVENT_LISTENER);
+ generateEventListenerFile(eventListenerJavaFileHandle, curNode, imports);
}
/**
@@ -319,100 +308,9 @@
.getJavaFileInfo().getJavaName());
//Creates event interface file.
- setEventSubjectJavaFileHandle(getJavaFileHandle(curNode, curNodeInfo +
- EVENT_SUBJECT_NAME_SUFFIX));
- generateEventSubjectFile(getEventSubjectJavaFileHandle(), curNode);
-
- }
-
- /**
- * Returns event enum temp file.
- *
- * @return event enum temp file
- */
- public File getEventEnumTempFileHandle() {
- return eventEnumTempFileHandle;
- }
-
- /**
- * Sets event enum temp file.
- *
- * @param eventEnumTempFileHandle event enum temp file
- */
- private void setEventEnumTempFileHandle(File eventEnumTempFileHandle) {
- this.eventEnumTempFileHandle = eventEnumTempFileHandle;
- }
-
- /**
- * Returns event method temp file.
- *
- * @return event method temp file
- */
- public File getEventMethodTempFileHandle() {
- return eventMethodTempFileHandle;
- }
-
- /**
- * Sets event method temp file.
- *
- * @param eventMethodTempFileHandle event method temp file
- */
- private void setEventMethodTempFileHandle(File eventMethodTempFileHandle) {
- this.eventMethodTempFileHandle = eventMethodTempFileHandle;
- }
-
- /**
- * Returns event subject attribute temp file.
- *
- * @return event subject attribute temp file
- */
- public File getEventSubjectAttributeTempFileHandle() {
- return eventSubjectAttributeTempFileHandle;
- }
-
- /**
- * Sets event subject attribute temp file.
- *
- * @param eventSubjectAttributeTempFileHandle event subject attribute temp file
- */
- private void setEventSubjectAttributeTempFileHandle(File eventSubjectAttributeTempFileHandle) {
- this.eventSubjectAttributeTempFileHandle = eventSubjectAttributeTempFileHandle;
- }
-
- /**
- * Returns event subject getter temp file.
- *
- * @return event subject getter temp file
- */
- public File getEventSubjectGetterTempFileHandle() {
- return eventSubjectGetterTempFileHandle;
- }
-
- /**
- * Sets event subject getter temp file.
- *
- * @param eventSubjectGetterTempFileHandle event subject getter temp file
- */
- private void setEventSubjectGetterTempFileHandle(File eventSubjectGetterTempFileHandle) {
- this.eventSubjectGetterTempFileHandle = eventSubjectGetterTempFileHandle;
- }
-
- /**
- * Returns event subject setter temp file.
- *
- * @return event subject setter temp file
- */
- public File getEventSubjectSetterTempFileHandle() {
- return eventSubjectSetterTempFileHandle;
- }
-
- /**
- * Sets event subject setter temp file.
- *
- * @param eventSubjectSetterTempFileHandle event subject setter temp file
- */
- private void setEventSubjectSetterTempFileHandle(File eventSubjectSetterTempFileHandle) {
- this.eventSubjectSetterTempFileHandle = eventSubjectSetterTempFileHandle;
+ eventSubjectJavaFileHandle = getJavaFileHandle(curNode, curNodeInfo +
+ EVENT_SUBJECT_NAME_SUFFIX);
+ generateEventSubjectFile(eventSubjectJavaFileHandle, curNode);
}
/**
@@ -425,67 +323,74 @@
void addJavaSnippetOfEvent(YangNode curNode, YangPluginConfig pluginConfig)
throws IOException {
- String currentInfo = getCapitalCase(getCamelCase(curNode.getName(),
- pluginConfig.getConflictResolver()));
+ String currentInfo = getCamelCase(curNode.getName(), pluginConfig
+ .getConflictResolver());
String notificationName = curNode.getName();
- JavaQualifiedTypeInfoTranslator qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode,
- getCapitalCase(currentInfo));
+ JavaQualifiedTypeInfoTranslator qualifiedTypeInfo
+ = getQualifiedTypeInfoOfCurNode(curNode, getCapitalCase(currentInfo));
- JavaAttributeInfo javaAttributeInfo = getAttributeInfoForTheData(qualifiedTypeInfo, getSmallCase(currentInfo),
- null, false, false);
+ JavaAttributeInfo javaAttributeInfo
+ = getAttributeInfoForTheData(qualifiedTypeInfo, currentInfo,
+ null, false, false);
/*Adds java info for event in respective temp files.*/
addEventEnum(notificationName);
- addEventSubjectAttribute(javaAttributeInfo, pluginConfig);
- addEventSubjectGetter(javaAttributeInfo, pluginConfig);
- addEventSubjectSetter(javaAttributeInfo, pluginConfig, currentInfo);
+ addEventSubjectAttribute(javaAttributeInfo);
+ addEventSubjectGetter(javaAttributeInfo);
+ addEventSubjectSetter(javaAttributeInfo, currentInfo);
}
/*Adds event to enum temp file.*/
private void addEventEnum(String notificationName)
throws IOException {
- appendToFile(getEventEnumTempFileHandle(),
- enumJavaDocForInnerClass(notificationName) + EIGHT_SPACE_INDENTATION
- + getEnumJavaAttribute(notificationName).toUpperCase() + COMMA + NEW_LINE);
+ appendToFile(getEventEnumTempFileHandle(), enumJavaDocForInnerClass(
+ notificationName) + EIGHT_SPACE_INDENTATION
+ + getEnumJavaAttribute(notificationName).toUpperCase() +
+ COMMA + NEW_LINE);
}
/*Adds event method in event class*/
private void addEnumMethod(String eventClassname, String className)
throws IOException {
- appendToFile(getEventMethodTempFileHandle(), getEventFileContents(eventClassname, className));
+ appendToFile(getEventMethodTempFileHandle(),
+ getEventFileContents(eventClassname, className));
}
/*Adds events to event subject file.*/
- private void addEventSubjectAttribute(JavaAttributeInfo attr, YangPluginConfig pluginConfig)
+ private void addEventSubjectAttribute(JavaAttributeInfo attr)
throws IOException {
appendToFile(getEventSubjectAttributeTempFileHandle(),
- FOUR_SPACE_INDENTATION + parseAttribute(attr, pluginConfig));
+ parseAttribute(attr));
}
/*Adds getter method for event in event subject class.*/
- private void addEventSubjectGetter(JavaAttributeInfo attr, YangPluginConfig pluginConfig)
+ private void addEventSubjectGetter(JavaAttributeInfo attr)
throws IOException {
String appDataStructure = null;
if (attr.getCompilerAnnotation() != null) {
- appDataStructure = attr.getCompilerAnnotation().getYangAppDataStructure().getDataStructure().name();
+ appDataStructure = attr.getCompilerAnnotation()
+ .getYangAppDataStructure().getDataStructure().name();
}
- appendToFile(getEventSubjectGetterTempFileHandle(),
- getJavaDoc(GETTER_METHOD, getCapitalCase(attr.getAttributeName()), false, pluginConfig,
- appDataStructure) + getGetterForClass(attr, GENERATE_EVENT_SUBJECT_CLASS) + NEW_LINE);
+ appendToFile(getEventSubjectGetterTempFileHandle(), getJavaDoc(
+ GETTER_METHOD, attr.getAttributeName(), false,
+ appDataStructure) + getGetterForClass(
+ attr, GENERATE_EVENT_SUBJECT_CLASS) + NEW_LINE);
}
/*Adds setter method for event in event subject class.*/
- private void addEventSubjectSetter(JavaAttributeInfo attr, YangPluginConfig pluginConfig, String className)
+ private void addEventSubjectSetter(JavaAttributeInfo attr,
+ String className)
throws IOException {
String appDataStructure = null;
if (attr.getCompilerAnnotation() != null) {
- appDataStructure = attr.getCompilerAnnotation().getYangAppDataStructure().getDataStructure().name();
+ appDataStructure = attr.getCompilerAnnotation()
+ .getYangAppDataStructure().getDataStructure().name();
}
- appendToFile(getEventSubjectSetterTempFileHandle(),
- getJavaDoc(MANAGER_SETTER_METHOD, getCapitalCase(attr.getAttributeName()), false, pluginConfig,
- appDataStructure) + getSetterForClass(attr, className, GENERATE_EVENT_SUBJECT_CLASS)
- + NEW_LINE);
+ appendToFile(getEventSubjectSetterTempFileHandle(), getJavaDoc(
+ MANAGER_SETTER_METHOD, attr.getAttributeName(),
+ false, appDataStructure) + getSetterForClass(
+ attr, className, GENERATE_EVENT_SUBJECT_CLASS) + NEW_LINE);
}
/**
@@ -493,12 +398,11 @@
*
* @param name file name
* @return temporary file handle
- * @throws IOException when fails to create new file handle
*/
- private File getJavaFileHandle(YangNode curNode, String name)
- throws IOException {
+ private File getJavaFileHandle(YangNode curNode, String name) {
- JavaFileInfoTranslator parentInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
+ JavaFileInfoTranslator parentInfo = ((JavaFileInfoContainer) curNode)
+ .getJavaFileInfo();
return getFileObject(getDirPath(parentInfo), name, JAVA_FILE_EXTENSION,
parentInfo);
}
@@ -509,7 +413,8 @@
* @return directory path
*/
private String getDirPath(JavaFileInfoTranslator parentInfo) {
- return (parentInfo.getPackageFilePath() + SLASH + parentInfo.getJavaName()).toLowerCase();
+ return (parentInfo.getPackageFilePath() + SLASH +
+ parentInfo.getJavaName()).toLowerCase();
}
/**
@@ -522,17 +427,16 @@
public void freeTemporaryResources(boolean isErrorOccurred)
throws IOException {
- closeFile(getEventJavaFileHandle(), isErrorOccurred);
- closeFile(getEventListenerJavaFileHandle(), isErrorOccurred);
- closeFile(getEventSubjectJavaFileHandle(), isErrorOccurred);
+ closeFile(eventJavaFileHandle, isErrorOccurred);
+ closeFile(eventListenerJavaFileHandle, isErrorOccurred);
+ closeFile(eventSubjectJavaFileHandle, isErrorOccurred);
- closeFile(getEventEnumTempFileHandle(), true);
- closeFile(getEventSubjectAttributeTempFileHandle(), true);
- closeFile(getEventMethodTempFileHandle(), true);
- closeFile(getEventSubjectGetterTempFileHandle(), true);
- closeFile(getEventSubjectSetterTempFileHandle(), true);
+ closeFile(eventEnumTempFileHandle, true);
+ closeFile(eventSubjectAttributeTempFileHandle, true);
+ closeFile(eventMethodTempFileHandle, true);
+ closeFile(eventSubjectGetterTempFileHandle, true);
+ closeFile(eventSubjectSetterTempFileHandle, true);
super.freeTemporaryResources(isErrorOccurred);
-
}
}
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 aba6454..4cba71d 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
@@ -43,7 +43,6 @@
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.DEFAULT_CLASS_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS;
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.GeneratedJavaFileType.GENERATE_TYPE_CLASS;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.INTERFACE_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ADD_TO_LIST_IMPL_MASK;
@@ -68,7 +67,6 @@
import static org.onosproject.yangutils.translator.tojava.javamodel.AttributesJavaDataType.updateJavaFileInfo;
import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.generateEnumAttributeString;
import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaAttributeDefinition;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaClassDefClose;
import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.sortImports;
import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateBuilderClassFile;
import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateBuilderInterfaceFile;
@@ -85,11 +83,11 @@
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterForClass;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterString;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethod;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOverRideString;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForClass;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterString;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethod;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.parseBuilderInterfaceBuildMethodString;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getOverRideString;
import static org.onosproject.yangutils.translator.tojava.utils.SubtreeFilteringMethodsGenerator.getSubtreeFilteringForLeaf;
import static org.onosproject.yangutils.translator.tojava.utils.SubtreeFilteringMethodsGenerator.getSubtreeFilteringForLeafList;
import static org.onosproject.yangutils.translator.tojava.utils.SubtreeFilteringMethodsGenerator.getSubtreeFilteringForNode;
@@ -101,7 +99,9 @@
import static org.onosproject.yangutils.translator.tojava.utils.TranslatorUtils.getErrorMsg;
import static org.onosproject.yangutils.utils.UtilConstants.ARRAY_LIST_IMPORT;
import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
+import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET;
import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT;
+import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT_CAPS;
import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.INTERFACE;
@@ -385,7 +385,7 @@
/**
* Leaf count.
*/
- private int leafCount = 0;
+ private int leafCount;
/**
* If current node is root node.
@@ -406,17 +406,16 @@
/**
* Creates an instance of temporary java code fragment.
*
- * @param javaFileInfo generated java file information
+ * @param fileInfo generated java file information
* @throws IOException when fails to create new file handle
*/
- protected TempJavaFragmentFiles(JavaFileInfoTranslator javaFileInfo)
+ protected TempJavaFragmentFiles(JavaFileInfoTranslator fileInfo)
throws IOException {
javaExtendsListHolder = new JavaExtendsListHolder();
javaImportData = new JavaImportData();
- this.javaFileInfo = javaFileInfo;
- absoluteDirPath =
- getAbsolutePackagePath(javaFileInfo.getBaseCodeGenPath(),
- javaFileInfo.getPackageFilePath());
+ javaFileInfo = fileInfo;
+ absoluteDirPath = getAbsolutePackagePath(fileInfo.getBaseCodeGenPath(),
+ fileInfo.getPackageFilePath());
/*
* Initialize getter when generation file type matches to interface
* mask.
@@ -605,8 +604,8 @@
((JavaFileInfoContainer) targetNode).getJavaFileInfo();
boolean qualified;
- if ((tempFiles instanceof TempJavaServiceFragmentFiles) &&
- (typeInfo.getClassInfo().contentEquals(SERVICE)) ||
+ if (tempFiles instanceof TempJavaServiceFragmentFiles &&
+ typeInfo.getClassInfo().contentEquals(SERVICE) ||
typeInfo.getClassInfo()
.contentEquals(getCapitalCase(fileInfo.getJavaName() +
SERVICE))) {
@@ -645,7 +644,7 @@
}
}
}
- if (listNode && !(collectionSet)) {
+ if (listNode && !collectionSet) {
parentImportData.setIfListImported(true);
}
if (curNode instanceof YangList) {
@@ -890,8 +889,8 @@
*
* @param holder java extends list holder
*/
- protected void setJavaExtendsListHolder(JavaExtendsListHolder
- holder) {
+ protected void setJavaExtendsListHolder(
+ JavaExtendsListHolder holder) {
javaExtendsListHolder = holder;
}
@@ -935,45 +934,38 @@
/**
* Adds attribute for class.
*
- * @param attr attribute info
- * @param config plugin configurations
+ * @param attr attribute info
* @throws IOException when fails to append to temporary file
*/
- private void addAttribute(JavaAttributeInfo attr,
- YangPluginConfig config)
+ private void addAttribute(JavaAttributeInfo attr)
throws IOException {
- appendToFile(attributesTempFileHandle, parseAttribute(attr, config) +
- FOUR_SPACE_INDENTATION);
+ appendToFile(attributesTempFileHandle, parseAttribute(attr));
}
/**
* Adds getter for interface.
*
- * @param attr attribute info
- * @param config plugin configurations
+ * @param attr attribute info
* @throws IOException when fails to append to temporary file
*/
- private void addGetterForInterface(JavaAttributeInfo attr,
- YangPluginConfig config)
+ private void addGetterForInterface(JavaAttributeInfo attr)
throws IOException {
appendToFile(getterInterfaceTempFileHandle,
- getGetterString(attr, getGeneratedJavaFiles(), config) +
+ getGetterString(attr, getGeneratedJavaFiles()) +
NEW_LINE);
}
/**
* Adds setter for interface.
*
- * @param attr attribute info
- * @param config plugin configurations
+ * @param attr attribute info
* @throws IOException when fails to append to temporary file
*/
- private void addSetterForInterface(JavaAttributeInfo attr,
- YangPluginConfig config)
+ private void addSetterForInterface(JavaAttributeInfo attr)
throws IOException {
appendToFile(setterInterfaceTempFileHandle,
getSetterString(attr, getGeneratedJavaClassName(),
- getGeneratedJavaFiles(), config) +
+ getGeneratedJavaFiles()) +
NEW_LINE);
}
@@ -983,16 +975,14 @@
* @param attr attribute info
* @throws IOException when fails to append to temporary file
*/
- private void addSetterImpl(JavaAttributeInfo attr,
- YangPluginConfig config)
+ private void addSetterImpl(JavaAttributeInfo attr)
throws IOException {
- String setter =
- getSetterForClass(attr, getGeneratedJavaClassName(),
- getGeneratedJavaFiles()) + NEW_LINE;
+ String setter = getSetterForClass(attr, getGeneratedJavaClassName(),
+ getGeneratedJavaFiles());
if (rootNode) {
appendToFile(setterImplTempFileHandle,
getJavaDoc(SETTER_METHOD, attr.getAttributeName(),
- attr.isListAttr(), config, null) + setter);
+ attr.isListAttr(), null) + setter);
} else {
appendToFile(setterImplTempFileHandle, getOverRideString() + setter);
}
@@ -1001,16 +991,13 @@
/**
* Adds getter method's impl for class.
*
- * @param attr attribute info
- * @param config plugin configurations
+ * @param attr attribute info
* @throws IOException when fails to append to temporary file
*/
- protected void addGetterImpl(JavaAttributeInfo attr,
- YangPluginConfig config)
+ protected void addGetterImpl(JavaAttributeInfo attr)
throws IOException {
- String getter =
- getGetterForClass(attr, getGeneratedJavaFiles()) + NEW_LINE;
- if (javaFlagSet(BUILDER_CLASS_MASK | GENERATE_SERVICE_AND_MANAGER)) {
+ String getter = getGetterForClass(attr, getGeneratedJavaFiles());
+ if (javaFlagSet(BUILDER_CLASS_MASK)) {
if (!rootNode) {
appendToFile(getterImplTempFileHandle, getOverRideString() +
getter);
@@ -1024,26 +1011,22 @@
.getYangAppDataStructure().getDataStructure().name();
}
appendToFile(getterImplTempFileHandle,
- getJavaDoc(GETTER_METHOD,
- getCapitalCase(attr.getAttributeName()),
- false, config, appDataStructure) + getter);
+ getJavaDoc(GETTER_METHOD, attr.getAttributeName(),
+ false, appDataStructure) + getter);
}
}
/**
* Adds add to list interface method.
*
- * @param attr attribute
- * @param config plugin configurations
+ * @param attr attribute
* @throws IOException when fails to do IO operations
*/
- private void addAddToListInterface(JavaAttributeInfo attr,
- YangPluginConfig config)
+ private void addAddToListInterface(JavaAttributeInfo attr)
throws IOException {
appendToFile(addToListInterfaceTempFileHandle,
- getJavaDoc(ADD_TO_LIST,
- getCapitalCase(attr.getAttributeName()), false,
- config, null) + getAddToListMethodInterface(
+ getJavaDoc(ADD_TO_LIST, attr.getAttributeName(), false,
+ null) + getAddToListMethodInterface(
attr, getGeneratedJavaClassName()) + NEW_LINE);
}
@@ -1076,14 +1059,13 @@
/**
* Adds build method for interface.
*
- * @param config plugin configurations
* @return build method for interface
* @throws IOException when fails to append to temporary file
*/
- protected String addBuildMethodForInterface(YangPluginConfig config)
+ protected String addBuildMethodForInterface()
throws IOException {
- return parseBuilderInterfaceBuildMethodString(getGeneratedJavaClassName(),
- config);
+ return parseBuilderInterfaceBuildMethodString(
+ getGeneratedJavaClassName());
}
/**
@@ -1102,26 +1084,24 @@
*
* @param modifier modifier for constructor
* @param toAppend string which need to be appended with the class name
- * @param config plugin configurations
* @param suffix is value need to be appended as suffix
* @return default constructor for class
* @throws IOException when fails to append to file
*/
protected String addDefaultConstructor(String modifier, String toAppend,
- YangPluginConfig config,
boolean suffix)
throws IOException {
StringBuilder name = new StringBuilder();
name.append(getGeneratedJavaClassName());
- String constructor = NEW_LINE +
- getDefaultConstructorString(name.toString(), modifier, config);
if (rootNode && !toAppend.equals(BUILDER)) {
name.append(OP_PARAM);
- return constructor;
+ return getDefaultConstructorString(name.toString(), modifier
+ );
}
if (suffix) {
name.append(toAppend);
- return constructor;
+ return getDefaultConstructorString(name.toString(), modifier
+ );
}
StringBuilder appended = new StringBuilder();
if (toAppend.equals(DEFAULT)) {
@@ -1130,7 +1110,7 @@
appended.append(toAppend);
}
return NEW_LINE + getDefaultConstructorString(appended.append(
- name.toString()).toString(), modifier, config);
+ name).toString(), modifier);
// TODO getDefaultConstructorString to handle new line.
}
@@ -1264,20 +1244,16 @@
/**
* Parses attribute to get the attribute string.
*
- * @param attr attribute info
- * @param config plugin configurations
+ * @param attr attribute info
* @return attribute string
*/
- protected String parseAttribute(JavaAttributeInfo attr,
- YangPluginConfig config) {
+ protected String parseAttribute(JavaAttributeInfo attr) {
/*
* TODO: check if this utility needs to be called or move to the caller
*/
- String attrName = getCamelCase(attr.getAttributeName(),
- config.getConflictResolver());
+ String attrName = attr.getAttributeName();
String attrAccessType = PRIVATE;
- if ((javaFileInfo.getGeneratedFileTypes() &
- GENERATE_INTERFACE_WITH_BUILDER) != 0) {
+ if ((getGeneratedJavaFiles() & GENERATE_INTERFACE_WITH_BUILDER) != 0) {
attrAccessType = PROTECTED;
}
String pkg = null;
@@ -1429,16 +1405,16 @@
throws IOException {
isAttributePresent = true;
if (tempFlagSet(ATTRIBUTES_MASK)) {
- addAttribute(newAttrInfo, pluginConfig);
+ addAttribute(newAttrInfo);
}
if (tempFlagSet(GETTER_FOR_INTERFACE_MASK)) {
- addGetterForInterface(newAttrInfo, pluginConfig);
+ addGetterForInterface(newAttrInfo);
}
if (tempFlagSet(SETTER_FOR_INTERFACE_MASK)) {
- addSetterForInterface(newAttrInfo, pluginConfig);
+ addSetterForInterface(newAttrInfo);
}
if (tempFlagSet(SETTER_FOR_CLASS_MASK)) {
- addSetterImpl(newAttrInfo, pluginConfig);
+ addSetterImpl(newAttrInfo);
}
if (tempFlagSet(HASH_CODE_IMPL_MASK)) {
addHashCodeMethod(newAttrInfo);
@@ -1457,12 +1433,12 @@
addAddToListImpl(newAttrInfo);
}
if (tempFlagSet(ADD_TO_LIST_INTERFACE_MASK) && listAttr) {
- addAddToListInterface(newAttrInfo, pluginConfig);
+ addAddToListInterface(newAttrInfo);
}
YangType attrType = newAttrInfo.getAttributeType();
if (tempFlagSet(FILTER_CONTENT_MATCH_FOR_NODES_MASK) &&
attrType == null && !newAttrInfo.getAttributeName()
- .equals(OPERATION_TYPE_ATTRIBUTE)) {
+ .contains(OPERATION_TYPE_ATTRIBUTE)) {
addSubtreeFilteringForChildNode(newAttrInfo);
}
if (tempFlagSet(FILTER_CONTENT_MATCH_FOR_LEAF_MASK) &&
@@ -1481,7 +1457,7 @@
if (!newAttrInfo.isIntConflict() && !newAttrInfo.isLongConflict() &&
!newAttrInfo.isShortConflict()) {
if (tempFlagSet(GETTER_FOR_CLASS_MASK)) {
- addGetterImpl(newAttrInfo, pluginConfig);
+ addGetterImpl(newAttrInfo);
}
if (tempFlagSet(FROM_STRING_IMPL_MASK)) {
JavaQualifiedTypeInfoTranslator typeInfo =
@@ -1519,10 +1495,9 @@
*/
private String getImplClassName(YangNode node) {
if (node instanceof RpcNotificationContainer) {
- return getCapitalCase(javaFileInfo.getJavaName()) + OP_PARAM;
+ return getGeneratedJavaClassName() + OP_PARAM;
}
- return getCapitalCase(DEFAULT) +
- getCapitalCase(javaFileInfo.getJavaName());
+ return DEFAULT_CAPS + getGeneratedJavaClassName();
}
/**
@@ -1551,8 +1526,8 @@
createPackage(curNode);
//Generate java code.
- if ((fileType & INTERFACE_MASK) != 0 || (fileType &
- BUILDER_INTERFACE_MASK) != 0) {
+ if ((fileType & INTERFACE_MASK) != 0 ||
+ (fileType & BUILDER_INTERFACE_MASK) != 0) {
//Create interface file.
interfaceJavaFileHandle =
@@ -1579,8 +1554,7 @@
interfaceJavaFileHandle);
}
}
- insertDataIntoJavaFile(interfaceJavaFileHandle,
- getJavaClassDefClose());
+ insertDataIntoJavaFile(interfaceJavaFileHandle, CLOSE_CURLY_BRACKET);
validateLineLength(interfaceJavaFileHandle);
if (curNode instanceof YangAugmentableNode) {
addImportsForAugmentableClass(imports, false, true, curNode);
@@ -1632,8 +1606,7 @@
mergeJavaFiles(builderClassJavaFileHandle,
implClassJavaFileHandle);
}
- insertDataIntoJavaFile(implClassJavaFileHandle,
- getJavaClassDefClose());
+ insertDataIntoJavaFile(implClassJavaFileHandle, CLOSE_CURLY_BRACKET);
validateLineLength(implClassJavaFileHandle);
}
//Close all the file handles.
@@ -1781,8 +1754,8 @@
* @param importInfo import info
* @return status of the qualified access to the attribute
*/
- protected boolean getIsQualifiedAccessOrAddToImportList(JavaQualifiedTypeInfo
- importInfo) {
+ protected boolean getIsQualifiedAccessOrAddToImportList(
+ JavaQualifiedTypeInfo importInfo) {
return javaImportData
.addImportInfo((JavaQualifiedTypeInfoTranslator) importInfo,
getGeneratedJavaClassName(),
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaServiceFragmentFiles.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaServiceFragmentFiles.java
index 8d08754..1751ab5 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaServiceFragmentFiles.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaServiceFragmentFiles.java
@@ -16,29 +16,33 @@
package org.onosproject.yangutils.translator.tojava;
+import org.onosproject.yangutils.datamodel.RpcNotificationContainer;
+import org.onosproject.yangutils.datamodel.YangAugment;
+import org.onosproject.yangutils.datamodel.YangInput;
import org.onosproject.yangutils.datamodel.YangNode;
+import org.onosproject.yangutils.datamodel.YangOutput;
+import org.onosproject.yangutils.datamodel.YangRpc;
+import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModuleTranslator;
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaSubModuleTranslator;
import org.onosproject.yangutils.translator.tojava.utils.JavaExtendsListHolder;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import java.io.File;
import java.io.IOException;
import java.util.List;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.RPC_IMPL_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.RPC_INTERFACE_MASK;
+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.utils.JavaCodeSnippetGen.addListenersImport;
import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateServiceInterfaceFile;
import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.addResolvedAugmentedDataNodeImports;
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.createPackage;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRpcManagerMethod;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRpcServiceMethod;
import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
-import static org.onosproject.yangutils.utils.UtilConstants.LISTENER_SERVICE;
-import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
import static org.onosproject.yangutils.utils.UtilConstants.Operation.ADD;
import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_VAR_NAME;
+import static org.onosproject.yangutils.utils.UtilConstants.SERVICE;
import static org.onosproject.yangutils.utils.UtilConstants.VOID;
import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.closeFile;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateJavaDocForRpc;
@@ -58,29 +62,14 @@
private static final String RPC_INTERFACE_FILE_NAME = "Rpc";
/**
- * File name for rpc implementation method.
- */
- private static final String RPC_IMPL_FILE_NAME = "RpcImpl";
-
- /**
- * File name for generated class file for service suffix.
- */
- private static final String SERVICE_FILE_NAME_SUFFIX = "Service";
-
- /**
* Temporary file handle for rpc interface.
*/
- private File rpcInterfaceTempFileHandle;
-
- /**
- * Temporary file handle for rpc manager impl.
- */
- private File rpcImplTempFileHandle;
+ private final File rpcInterfaceTempFileHandle;
/**
* Java file handle for rpc interface file.
*/
- private File serviceInterfaceJavaFileHandle;
+ private File serviceJavaFileHandle;
/**
* Creates an instance of temporary java code fragment.
@@ -97,11 +86,7 @@
getJavaFileInfo().getBaseCodeGenPath(),
getJavaFileInfo().getPackageFilePath()));
addGeneratedTempFile(RPC_INTERFACE_MASK);
- addGeneratedTempFile(RPC_IMPL_MASK);
-
- rpcInterfaceTempFileHandle =
- getTemporaryFileHandle(RPC_INTERFACE_FILE_NAME);
- rpcImplTempFileHandle = getTemporaryFileHandle(RPC_IMPL_FILE_NAME);
+ rpcInterfaceTempFileHandle = getTemporaryFileHandle(RPC_INTERFACE_FILE_NAME);
}
/**
@@ -114,15 +99,6 @@
}
/**
- * Retrieves the manager impl temp file.
- *
- * @return the manager impl temp file
- */
- public File getRpcImplTempFileHandle() {
- return rpcImplTempFileHandle;
- }
-
- /**
* Constructs java code exit.
*
* @param fileType generated file type
@@ -152,13 +128,11 @@
}
if (notification) {
- addListenersImport(curNode, imports, ADD, LISTENER_SERVICE);
+ addListenersImport(curNode, imports, ADD);
}
- serviceInterfaceJavaFileHandle =
- getJavaFileHandle(getJavaClassName(SERVICE_FILE_NAME_SUFFIX));
- generateServiceInterfaceFile(serviceInterfaceJavaFileHandle, curNode,
- imports);
+ serviceJavaFileHandle = getJavaFileHandle(getJavaClassName(SERVICE));
+ generateServiceInterfaceFile(serviceJavaFileHandle, curNode, imports);
// Close all the file handles.
freeTemporaryResources(false);
@@ -167,53 +141,131 @@
/**
* Adds rpc string information to applicable temp file.
*
- * @param inputAttr RPCs input node attribute info
- * @param outputAttr RPCs output node attribute info
- * @param rpcName name of the rpc function
- * @param config plugin configurations
+ * @param inAttr RPCs input node attribute info
+ * @param outAttr RPCs output node attribute info
+ * @param rpcName name of the rpc function
* @throws IOException IO operation fail
*/
- private void addRpcString(JavaAttributeInfo inputAttr,
- JavaAttributeInfo outputAttr,
- YangPluginConfig config, String rpcName)
- throws IOException {
+ private void addRpcString(JavaAttributeInfo inAttr, JavaAttributeInfo outAttr,
+ String rpcName) throws IOException {
String rpcInput = EMPTY_STRING;
String rpcOutput = VOID;
- String rpcInputJavaDoc = EMPTY_STRING;
- if (inputAttr != null) {
- rpcInput = getCapitalCase(inputAttr.getAttributeName());
+ String rpcIn = EMPTY_STRING;
+ if (inAttr != null) {
+ rpcInput = getCapitalCase(inAttr.getAttributeName());
}
- if (outputAttr != null) {
- rpcOutput = getCapitalCase(outputAttr.getAttributeName());
+ if (outAttr != null) {
+ rpcOutput = getCapitalCase(outAttr.getAttributeName());
}
if (!rpcInput.equals(EMPTY_STRING)) {
- rpcInputJavaDoc = RPC_INPUT_VAR_NAME;
+ rpcIn = RPC_INPUT_VAR_NAME;
}
appendToFile(rpcInterfaceTempFileHandle,
- generateJavaDocForRpc(rpcName, rpcInputJavaDoc, rpcOutput,
- config) +
- getRpcServiceMethod(rpcName, rpcInput, rpcOutput,
- config) + NEW_LINE);
- appendToFile(rpcImplTempFileHandle,
- getRpcManagerMethod(rpcName, rpcInput, rpcOutput, config) +
- NEW_LINE);
+ generateJavaDocForRpc(rpcName, rpcIn, rpcOutput) +
+ getRpcServiceMethod(rpcName, rpcInput, rpcOutput));
}
/**
* Adds the JAVA rpc snippet information.
*
- * @param inputAttr RPCs input node attribute info
- * @param outputAttr RPCs output node attribute info
- * @param config plugin configurations
- * @param rpcName name of the rpc function
+ * @param inAttr RPCs input node attribute info
+ * @param outAttr RPCs output node attribute info
+ * @param rpcName name of the rpc function
* @throws IOException IO operation fail
*/
- public void addJavaSnippetInfoToApplicableTempFiles(JavaAttributeInfo inputAttr,
- JavaAttributeInfo outputAttr,
- YangPluginConfig config,
+ public void addJavaSnippetInfoToApplicableTempFiles(JavaAttributeInfo inAttr,
+ JavaAttributeInfo outAttr,
String rpcName)
throws IOException {
- addRpcString(inputAttr, outputAttr, config, rpcName);
+ addRpcString(inAttr, outAttr, rpcName);
+ }
+
+ /**
+ * 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 parentNode parent node (module / sub-module) in which the child node is an attribute
+ * @return AttributeInfo attribute details required to add in temporary
+ * files
+ */
+ public JavaAttributeInfo getChildNodeAsAttributeInParentService(
+ YangNode childNode, YangNode parentNode) {
+
+ 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");
+ }
+
+ boolean isQualified = addImportToService(qualifiedTypeInfo, parentNode);
+ 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, YangNode curNode) {
+ JavaFileInfoTranslator fileInfo = ((JavaFileInfoContainer) curNode)
+ .getJavaFileInfo();
+ String name = fileInfo.getJavaName();
+ String clsInfo = importInfo.getClassInfo();
+
+ StringBuilder className = new StringBuilder()
+ .append(getCapitalCase(name))
+ .append(SERVICE);
+ return clsInfo.contentEquals(SERVICE) || clsInfo.contentEquals(className) ||
+ getJavaImportData().addImportInfo(importInfo, className.toString(),
+ fileInfo.getPackage());
+ }
+
+ /**
+ * Adds augmented rpc methods to service temp file.
+ *
+ * @param module root node
+ * @throws IOException when fails to do IO operations
+ */
+ public void addAugmentedRpcMethod(RpcNotificationContainer module)
+ throws IOException {
+ JavaAttributeInfo in = null;
+ JavaAttributeInfo out = null;
+ YangNode rpcChild;
+ YangRpc rpc;
+ YangInput input;
+ for (YangAugment info : module.getAugmentList()) {
+ input = (YangInput) info.getAugmentedNode();
+
+ if (input != null) {
+ rpc = (YangRpc) input.getParent();
+ rpcChild = rpc.getChild();
+ while (rpcChild != null) {
+ if (rpcChild instanceof YangInput) {
+ in = getChildNodeAsAttributeInParentService(
+ rpcChild, (YangNode) module);
+ }
+ if (rpcChild instanceof YangOutput) {
+ out = getChildNodeAsAttributeInParentService(
+ rpcChild, (YangNode) module);
+ }
+ rpcChild = rpcChild.getChild();
+ }
+ addJavaSnippetInfoToApplicableTempFiles(in, out, rpc
+ .getJavaClassNameOrBuiltInType());
+ }
+ }
}
/**
@@ -225,9 +277,8 @@
@Override
public void freeTemporaryResources(boolean errorOccurred)
throws IOException {
- closeFile(serviceInterfaceJavaFileHandle, errorOccurred);
+ closeFile(serviceJavaFileHandle, errorOccurred);
closeFile(rpcInterfaceTempFileHandle);
- closeFile(rpcImplTempFileHandle);
closeFile(getGetterInterfaceTempFileHandle());
closeFile(getSetterInterfaceTempFileHandle());
closeFile(getSetterImplTempFileHandle());
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 32f6c17..022caf1 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
@@ -16,11 +16,6 @@
package org.onosproject.yangutils.translator.tojava;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangType;
import org.onosproject.yangutils.datamodel.YangTypeHolder;
@@ -29,6 +24,11 @@
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaTypeTranslator;
import org.onosproject.yangutils.utils.io.YangPluginConfig;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT16;
import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT32;
import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT64;
@@ -275,13 +275,13 @@
for (YangType<?> yangType : typeList) {
if (!(yangType instanceof YangJavaTypeTranslator)) {
throw new TranslatorException("Type does not have Java info " +
- yangType.getDataTypeName() + " in " + yangType.getLineNumber() + " at " + yangType
+ yangType.getDataTypeName() + " in " + yangType.getLineNumber() + " at " + yangType
.getCharPosition()
- + " in " + yangType.getFileName());
+ + " in " + yangType.getFileName());
}
JavaAttributeInfo javaAttributeInfo = getAttributeForType(yangType, pluginConfig);
addJavaSnippetInfoToApplicableTempFiles(javaAttributeInfo,
- pluginConfig, typeList);
+ pluginConfig, typeList);
}
addTypeConstructor(pluginConfig);
addMethodsInConflictCase(pluginConfig);
@@ -384,15 +384,15 @@
if (attr.isIntConflict()) {
if (getIntIndex() < getUIntIndex()) {
appendToFile(getOfStringImplTempFileHandle(), getOfMethodStringAndJavaDoc(getIntAttribute(),
- getGeneratedJavaClassName(), pluginConfig)
+ getGeneratedJavaClassName())
+ NEW_LINE);
- addGetterImpl(getIntAttribute(), pluginConfig);
+ addGetterImpl(getIntAttribute());
addFromStringMethod(getIntAttribute(), pluginConfig);
} else {
appendToFile(getOfStringImplTempFileHandle(), getOfMethodStringAndJavaDoc(getUIntAttribute(),
- getGeneratedJavaClassName(), pluginConfig)
+ getGeneratedJavaClassName())
+ NEW_LINE);
- addGetterImpl(getUIntAttribute(), pluginConfig);
+ addGetterImpl(getUIntAttribute());
addFromStringMethod(getUIntAttribute(), pluginConfig);
}
}
@@ -405,15 +405,15 @@
if (attr.isLongConflict()) {
if (getLongIndex() < getULongIndex()) {
appendToFile(getOfStringImplTempFileHandle(), getOfMethodStringAndJavaDoc(getLongAttribute(),
- getGeneratedJavaClassName(), pluginConfig)
+ getGeneratedJavaClassName())
+ NEW_LINE);
- addGetterImpl(getLongAttribute(), pluginConfig);
+ addGetterImpl(getLongAttribute());
addFromStringMethod(getLongAttribute(), pluginConfig);
} else {
appendToFile(getOfStringImplTempFileHandle(), getOfMethodStringAndJavaDoc(getULongAttribute(),
- getGeneratedJavaClassName(), pluginConfig)
+ getGeneratedJavaClassName())
+ NEW_LINE);
- addGetterImpl(getULongAttribute(), pluginConfig);
+ addGetterImpl(getULongAttribute());
addFromStringMethod(getULongAttribute(), pluginConfig);
}
}
@@ -427,15 +427,15 @@
if (attr.isShortConflict()) {
if (getShortIndex() < getUInt8Index()) {
appendToFile(getOfStringImplTempFileHandle(), getOfMethodStringAndJavaDoc(getShortAttribute(),
- getGeneratedJavaClassName(), pluginConfig)
+ getGeneratedJavaClassName())
+ NEW_LINE);
- addGetterImpl(getShortAttribute(), pluginConfig);
+ addGetterImpl(getShortAttribute());
addFromStringMethod(getShortAttribute(), pluginConfig);
} else {
appendToFile(getOfStringImplTempFileHandle(), getOfMethodStringAndJavaDoc(getUInt8Attribute(),
- getGeneratedJavaClassName(), pluginConfig)
+ getGeneratedJavaClassName())
+ NEW_LINE);
- addGetterImpl(getUInt8Attribute(), pluginConfig);
+ addGetterImpl(getUInt8Attribute());
addFromStringMethod(getUInt8Attribute(), pluginConfig);
}
}
@@ -453,15 +453,15 @@
throws IOException {
JavaQualifiedTypeInfoTranslator qualifiedInfoOfFromString = getQualifiedInfoOfFromString(newAttrInfo,
- pluginConfig.getConflictResolver());
+ pluginConfig.getConflictResolver());
/*
* Create a new java attribute info with qualified information of
* wrapper classes.
*/
JavaAttributeInfo fromStringAttributeInfo = getAttributeInfoForTheData(qualifiedInfoOfFromString,
- newAttrInfo.getAttributeName(),
- newAttrInfo.getAttributeType(),
- getIsQualifiedAccessOrAddToImportList(qualifiedInfoOfFromString), false);
+ newAttrInfo.getAttributeName(),
+ newAttrInfo.getAttributeType(),
+ getIsQualifiedAccessOrAddToImportList(qualifiedInfoOfFromString), false);
addFromStringMethod(newAttrInfo, fromStringAttributeInfo);
}
@@ -476,7 +476,7 @@
private void addTypeConstructor(JavaAttributeInfo attr, YangPluginConfig pluginConfig)
throws IOException {
appendToFile(getConstructorForTypeTempFileHandle(), getTypeConstructorStringAndJavaDoc(attr,
- getGeneratedJavaClassName(), pluginConfig) + NEW_LINE);
+ getGeneratedJavaClassName()) + NEW_LINE);
}
/**
@@ -495,7 +495,7 @@
if (attr.isIntConflict()) {
appendToFile(getConstructorForTypeTempFileHandle(), getTypeConstructorStringAndJavaDoc(
getIntAttribute(),
- getUIntAttribute(), getGeneratedJavaClassName(), pluginConfig, INT_TYPE_CONFLICT,
+ getUIntAttribute(), getGeneratedJavaClassName(), INT_TYPE_CONFLICT,
getIntIndex()
< getUIntIndex()) + NEW_LINE);
}
@@ -508,7 +508,7 @@
if (attr.isLongConflict()) {
appendToFile(getConstructorForTypeTempFileHandle(), getTypeConstructorStringAndJavaDoc(
getLongAttribute(),
- getULongAttribute(), getGeneratedJavaClassName(), pluginConfig, LONG_TYPE_CONFLICT,
+ getULongAttribute(), getGeneratedJavaClassName(), LONG_TYPE_CONFLICT,
getLongIndex()
< getULongIndex()) + NEW_LINE);
}
@@ -521,7 +521,7 @@
if (attr.isShortConflict()) {
appendToFile(getConstructorForTypeTempFileHandle(), getTypeConstructorStringAndJavaDoc(
getShortAttribute(),
- getUInt8Attribute(), getGeneratedJavaClassName(), pluginConfig, SHORT_TYPE_CONFLICT,
+ getUInt8Attribute(), getGeneratedJavaClassName(), SHORT_TYPE_CONFLICT,
getShortIndex()
< getUInt8Index()) + NEW_LINE);
}
@@ -538,7 +538,7 @@
private void addOfStringMethod(JavaAttributeInfo attr, YangPluginConfig pluginConfig)
throws IOException {
appendToFile(getOfStringImplTempFileHandle(), getOfMethodStringAndJavaDoc(attr,
- getGeneratedJavaClassName(), pluginConfig)
+ getGeneratedJavaClassName())
+ NEW_LINE);
}
@@ -552,19 +552,16 @@
public void freeTemporaryResources(boolean isErrorOccurred)
throws IOException {
- if ((getGeneratedJavaFiles() & GENERATE_TYPEDEF_CLASS) != 0) {
- closeFile(getTypedefClassJavaFileHandle(), isErrorOccurred);
- }
-
- if ((getGeneratedJavaFiles() & GENERATE_UNION_CLASS) != 0) {
- closeFile(getTypeClassJavaFileHandle(), isErrorOccurred);
+ if ((getGeneratedJavaFiles() & GENERATE_TYPEDEF_CLASS) != 0 ||
+ (getGeneratedJavaFiles() & GENERATE_UNION_CLASS) != 0) {
+ closeFile(typeClassJavaFileHandle, isErrorOccurred);
}
if ((getGeneratedTempFiles() & CONSTRUCTOR_FOR_TYPE_MASK) != 0) {
- closeFile(getConstructorForTypeTempFileHandle(), true);
+ closeFile(constructorForTypeTempFileHandle, true);
}
if ((getGeneratedTempFiles() & OF_STRING_IMPL_MASK) != 0) {
- closeFile(getOfStringImplTempFileHandle(), true);
+ closeFile(ofStringImplTempFileHandle, true);
}
if ((getGeneratedTempFiles() & FROM_STRING_IMPL_MASK) != 0) {
closeFile(getFromStringImplTempFileHandle(), true);
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 ed37a36..3c41605 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
@@ -70,11 +70,9 @@
*
* @param info YANG java file info node
* @param config YANG plugin config
- * @throws IOException IO operations fails
*/
public static void updatePackageInfo(JavaCodeGeneratorInfo info,
- YangPluginConfig config)
- throws IOException {
+ YangPluginConfig config) {
JavaFileInfoTranslator translator = info.getJavaFileInfo();
@@ -95,11 +93,9 @@
*
* @param info YANG java file info node
* @param config YANG plugin config
- * @throws IOException IO operations fails
*/
private static void updatePackageForAugmentInfo(JavaCodeGeneratorInfo info,
- YangPluginConfig config)
- throws IOException {
+ YangPluginConfig config) {
JavaFileInfoTranslator translator = info.getJavaFileInfo();
@@ -236,11 +232,10 @@
/*
* Enumeration
*/
- translator.getEnumerationTempFiles()
+ translator.getEnumTempFiles()
.addEnumAttributeToTempFiles((YangNode) info, config);
- } else if (info instanceof YangChoice) {
- /*Do nothing, only the interface needs to be generated*/
- } else {
+ } else if (!(info instanceof YangChoice)) {
+ /*Do nothing, only the interface needs to be generated for choice*/
throw new TranslatorException(
getErrorMsgForCodeGenerator(INVALID_TRANSLATION_NODE,
info));
@@ -494,8 +489,8 @@
* @param rootNodeGen flag indicating check type
* @return true if check pass, false otherwise
*/
- public static boolean isNodeCodeGenRequired(YangNode node,
- boolean rootNodeGen) {
+ private static boolean isNodeCodeGenRequired(YangNode node,
+ boolean rootNodeGen) {
YangLeavesHolder holder = (YangLeavesHolder) node;
if (!holder.getListOfLeaf().isEmpty()) {
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();
}
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/BracketType.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/BracketType.java
new file mode 100644
index 0000000..67fa9a5
--- /dev/null
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/BracketType.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.yangutils.translator.tojava.utils;
+
+/**
+ * Represents different bracket types.
+ */
+enum BracketType {
+
+ //Open close bracket '()'.
+ OPEN_CLOSE_BRACKET,
+
+ //Open close bracket with value '(value)).
+ OPEN_CLOSE_BRACKET_WITH_VALUE,
+
+ //Open close bracket with value '(String value)).
+ OPEN_CLOSE_BRACKET_WITH_VALUE_AND_RETURN_TYPE,
+
+ //Open close bracket with value '(String value,.
+ OPEN_BRACKET_WITH_VALUE,
+
+ //Open close bracket with value ',String value)).
+ CLOSE_BRACKET_WITH_VALUE,
+
+ //Open close diamond bracket '<>'.
+ OPEN_CLOSE_DIAMOND,
+
+ //Open close diamond bracket with value '<String>'
+ OPEN_CLOSE_DIAMOND_WITH_VALUE
+}
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 d65907d..7f1cfce 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
@@ -16,13 +16,12 @@
package org.onosproject.yangutils.translator.tojava.utils;
+import org.onosproject.yangutils.datamodel.RpcNotificationContainer;
import org.onosproject.yangutils.datamodel.YangAugment;
import org.onosproject.yangutils.datamodel.YangCase;
import org.onosproject.yangutils.datamodel.YangIdentity;
-import org.onosproject.yangutils.datamodel.YangModule;
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangNotification;
-import org.onosproject.yangutils.datamodel.YangSubModule;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
@@ -41,24 +40,34 @@
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_TYPEDEF_CLASS;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_UNION_CLASS;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.INTERFACE_MASK;
+import static org.onosproject.yangutils.translator.tojava.utils.BracketType.OPEN_CLOSE_DIAMOND_WITH_VALUE;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.brackets;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getBuilderImplStringClassDef;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getDefaultDefinition;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getDefaultDefinitionWithExtends;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getDefaultDefinitionWithImpl;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getDefaultName;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getErrorMsg;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getEventExtendsString;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getSpecificModifier;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getSuffixedName;
import static org.onosproject.yangutils.utils.UtilConstants.ABSTRACT;
+import static org.onosproject.yangutils.utils.UtilConstants.ABSTRACT_EVENT;
import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
import static org.onosproject.yangutils.utils.UtilConstants.CLASS;
import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
-import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT;
-import static org.onosproject.yangutils.utils.UtilConstants.DIAMOND_CLOSE_BRACKET;
-import static org.onosproject.yangutils.utils.UtilConstants.DIAMOND_OPEN_BRACKET;
-import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT_CAPS;
+import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.ENUM;
+import static org.onosproject.yangutils.utils.UtilConstants.ERROR_MSG_JAVA_IDENTITY;
import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.EVENT_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.EVENT_TYPE;
import static org.onosproject.yangutils.utils.UtilConstants.EXTEND;
import static org.onosproject.yangutils.utils.UtilConstants.FINAL;
import static org.onosproject.yangutils.utils.UtilConstants.IMPLEMENTS;
import static org.onosproject.yangutils.utils.UtilConstants.INTERFACE;
-import static org.onosproject.yangutils.utils.UtilConstants.LISTENER_REG;
import static org.onosproject.yangutils.utils.UtilConstants.LISTENER_SERVICE;
-import static org.onosproject.yangutils.utils.UtilConstants.MANAGER;
import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
import static org.onosproject.yangutils.utils.UtilConstants.OPEN_CURLY_BRACKET;
import static org.onosproject.yangutils.utils.UtilConstants.OP_PARAM;
@@ -84,7 +93,8 @@
}
/**
- * Based on the file type and the YANG name of the file, generate the class / interface definition start.
+ * Based on the file type and the YANG name of the file, generate the class
+ * / interface definition start.
*
* @param genFileTypes generated file type
* @param yangName class name
@@ -108,15 +118,16 @@
}
/**
- * Based on the file type and the YANG name of the file, generate the class / interface definition start.
+ * Based on the file type and the YANG name of the file, generate the class
+ * / interface definition start.
*
* @param genFileTypes generated file type
* @param yangName class name
* @param curNode current YANG node
* @return class definition
*/
- static String generateClassDefinition(int genFileTypes, String yangName, YangNode curNode) {
-
+ static String generateClassDefinition(int genFileTypes, String yangName,
+ YangNode curNode) {
/*
* Based on the file type and the YANG name of the file, generate the
* class / interface definition start.
@@ -153,7 +164,7 @@
* @return enum file class definition
*/
private static String getEnumClassDefinition(String yangName) {
- return PUBLIC + SPACE + ENUM + SPACE + yangName + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ return getDefaultDefinition(ENUM, yangName, PUBLIC);
}
/**
@@ -162,29 +173,36 @@
* @param yangName file name
* @return definition
*/
- private static String getInterfaceDefinition(String yangName, YangNode curNode) {
+ private static String getInterfaceDefinition(String yangName,
+ YangNode curNode) {
- String clsDef = getClassDefinitionForWhenExtended(curNode, yangName, INTERFACE_MASK);
+ String clsDef = getClassDefinitionForWhenExtended(curNode, yangName,
+ INTERFACE_MASK);
if (clsDef != null) {
return clsDef;
}
- return PUBLIC + SPACE + INTERFACE + SPACE + yangName + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ return getDefaultDefinition(INTERFACE, yangName, PUBLIC);
}
/**
* Returns builder interface file class definition.
*
- * @param yangName java class name, corresponding to which the builder class is being generated
+ * @param yangName java class name, corresponding to which the builder
+ * class is being generated
* @return definition
*/
- private static String getBuilderInterfaceDefinition(String yangName, YangNode curNode) {
- if (!(curNode instanceof YangCase) && !(curNode instanceof YangAugment)) {
- String clsDef = getClassDefinitionForWhenExtended(curNode, yangName, BUILDER_INTERFACE_MASK);
+ private static String getBuilderInterfaceDefinition(String yangName,
+ YangNode curNode) {
+ if (!(curNode instanceof YangCase) &&
+ !(curNode instanceof YangAugment)) {
+ String clsDef = getClassDefinitionForWhenExtended(
+ curNode, yangName, BUILDER_INTERFACE_MASK);
if (clsDef != null) {
return clsDef;
}
}
- return INTERFACE + SPACE + yangName + BUILDER + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + NEW_LINE;
+ return getDefaultDefinition(INTERFACE, getSuffixedName(yangName, BUILDER),
+ null);
}
/**
@@ -193,19 +211,22 @@
* @param yangName file name
* @return definition
*/
- private static String getBuilderClassDefinition(String yangName, YangNode curNode) {
+ private static String getBuilderClassDefinition(String yangName,
+ YangNode curNode) {
+ String mod = getSpecificModifier(PUBLIC, STATIC);
+ String bName = getSuffixedName(yangName, BUILDER);
if (!(curNode instanceof YangCase)) {
- String clsDef = getClassDefinitionForWhenExtended(curNode, yangName, BUILDER_CLASS_MASK);
+ String clsDef = getClassDefinitionForWhenExtended(curNode, yangName,
+ BUILDER_CLASS_MASK);
if (clsDef != null) {
return clsDef;
}
}
- if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
- return PUBLIC + SPACE + STATIC + SPACE + CLASS + SPACE + yangName + BUILDER + SPACE
- + OPEN_CURLY_BRACKET + NEW_LINE;
+ if (curNode instanceof RpcNotificationContainer) {
+ return getDefaultDefinition(CLASS, bName, mod);
}
- return PUBLIC + SPACE + STATIC + SPACE + CLASS + SPACE + yangName + BUILDER + SPACE + IMPLEMENTS + SPACE +
- yangName + PERIOD + yangName + BUILDER + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ return getDefaultDefinitionWithImpl(CLASS, bName, mod,
+ getBuilderImplStringClassDef(yangName));
}
/**
@@ -214,19 +235,21 @@
* @param yangName file name
* @return definition
*/
- private static String getImplClassDefinition(String yangName, YangNode curNode) {
+ private static String getImplClassDefinition(String yangName,
+ YangNode curNode) {
if (!(curNode instanceof YangCase)) {
- String clsDef = getClassDefinitionForWhenExtended(curNode, yangName, DEFAULT_CLASS_MASK);
+ String clsDef = getClassDefinitionForWhenExtended(
+ curNode, yangName, DEFAULT_CLASS_MASK);
if (clsDef != null) {
return clsDef;
}
}
- if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
- return PUBLIC + SPACE + CLASS + SPACE + yangName + OP_PARAM + SPACE + IMPLEMENTS + SPACE
- + yangName + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ if (curNode instanceof RpcNotificationContainer) {
+ return getDefaultDefinitionWithImpl(
+ CLASS, getSuffixedName(yangName, OP_PARAM), PUBLIC, yangName);
}
- return PUBLIC + SPACE + CLASS + SPACE + getCapitalCase(DEFAULT) + yangName + SPACE + IMPLEMENTS + SPACE
- + yangName + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ return getDefaultDefinitionWithImpl(CLASS, getDefaultName(yangName),
+ PUBLIC, yangName);
}
/**
@@ -236,7 +259,7 @@
* @return definition
*/
private static String getClassDefinition(String yangName) {
- return PUBLIC + SPACE + CLASS + SPACE + yangName + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ return getDefaultDefinition(CLASS, yangName, PUBLIC);
}
/**
@@ -246,31 +269,27 @@
* @return identity class definition
*/
private static String getIdentityClassDefinition(String yangName, YangNode curNode) {
+ String error = getErrorMsg(ERROR_MSG_JAVA_IDENTITY, curNode.getName(),
+ curNode.getLineNumber(), curNode
+ .getCharPosition(), curNode
+ .getFileName());
if (!(curNode instanceof YangIdentity)) {
- throw new TranslatorException("Expected java identity instance node " +
- curNode.getName() + " in " +
- curNode.getLineNumber() + " at " +
- curNode.getCharPosition()
- + " in " + curNode.getFileName());
+ throw new TranslatorException(error);
}
YangIdentity identity = (YangIdentity) curNode;
+ String mod = getSpecificModifier(PUBLIC, ABSTRACT);
if (identity.getBaseNode() != null) {
YangIdentity baseIdentity = identity.getBaseNode().getReferredIdentity();
if (baseIdentity == null) {
- throw new TranslatorException("Expected java identity instance node " +
- curNode.getName() + " in " +
- curNode.getLineNumber() + " at " +
- curNode.getCharPosition()
- + " in " + curNode.getFileName());
+ throw new TranslatorException(error);
}
- JavaFileInfoTranslator fileInfo = ((JavaFileInfoContainer) baseIdentity).getJavaFileInfo();
- return PUBLIC + SPACE + ABSTRACT + SPACE + CLASS + SPACE + yangName + SPACE + EXTEND + SPACE
- + getCapitalCase(fileInfo.getJavaName()) + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE;
+ JavaFileInfoTranslator fileInfo = ((JavaFileInfoContainer) baseIdentity)
+ .getJavaFileInfo();
+ return getDefaultDefinitionWithExtends(
+ CLASS, yangName, mod, getCapitalCase(fileInfo.getJavaName()));
}
-
- return PUBLIC + SPACE + ABSTRACT + SPACE + CLASS + SPACE + yangName + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ return getDefaultDefinition(CLASS, yangName, mod);
}
/**
@@ -280,7 +299,8 @@
* @return definition
*/
private static String getTypeClassDefinition(String yangName) {
- return PUBLIC + SPACE + FINAL + SPACE + CLASS + SPACE + yangName + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ return getDefaultDefinition(CLASS, yangName,
+ getSpecificModifier(PUBLIC, FINAL));
}
/**
@@ -292,7 +312,8 @@
*/
private static String getRpcInterfaceDefinition(String yangName, YangNode curNode) {
JavaExtendsListHolder holder = ((TempJavaCodeFragmentFilesContainer) curNode)
- .getTempJavaCodeFragmentFiles().getServiceTempFiles().getJavaExtendsListHolder();
+ .getTempJavaCodeFragmentFiles().getServiceTempFiles()
+ .getJavaExtendsListHolder();
if (holder.getExtendsList() != null && !holder.getExtendsList().isEmpty()) {
curNode = curNode.getChild();
while (curNode != null) {
@@ -303,29 +324,24 @@
}
}
if (yangName.matches(REGEX_FOR_ANY_STRING_ENDING_WITH_SERVICE)) {
- return PUBLIC + SPACE + INTERFACE + SPACE + yangName + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ return getDefaultDefinition(INTERFACE, yangName, PUBLIC);
}
- return PUBLIC + SPACE + CLASS + SPACE + yangName + SPACE + IMPLEMENTS + SPACE
- + yangName.substring(0, yangName.length() - 7) + SERVICE + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ String name = getSuffixedName(
+ yangName.substring(0, yangName.length() - 7), SERVICE);
+ return getDefaultDefinitionWithImpl(CLASS, yangName, PUBLIC, name);
}
/* Provides class definition when RPC interface needs to extends any event.*/
private static String getRpcInterfaceDefinitionWhenItExtends(String yangName) {
- if (yangName.matches(REGEX_FOR_ANY_STRING_ENDING_WITH_SERVICE)) {
- StringBuilder newString = new StringBuilder(yangName);
- newString.replace(yangName.lastIndexOf("Service"), yangName.lastIndexOf("Service") + 7, "");
- return PUBLIC + SPACE + INTERFACE + SPACE + yangName + NEW_LINE + EIGHT_SPACE_INDENTATION
- + EXTEND + SPACE + LISTENER_SERVICE + DIAMOND_OPEN_BRACKET + newString + EVENT_STRING + COMMA
- + SPACE + newString + EVENT_LISTENER_STRING + DIAMOND_CLOSE_BRACKET + SPACE
- + OPEN_CURLY_BRACKET + NEW_LINE;
- }
- yangName = yangName.substring(0, yangName.length() - 7);
- return PUBLIC + SPACE + CLASS + SPACE + yangName + MANAGER + NEW_LINE + EIGHT_SPACE_INDENTATION
- + EXTEND + SPACE + LISTENER_REG + DIAMOND_OPEN_BRACKET + yangName + EVENT_STRING + COMMA + SPACE
- + yangName + EVENT_LISTENER_STRING + DIAMOND_CLOSE_BRACKET + NEW_LINE
- + EIGHT_SPACE_INDENTATION + IMPLEMENTS + SPACE + yangName + SERVICE + SPACE + OPEN_CURLY_BRACKET
- + NEW_LINE;
+ StringBuilder newString = new StringBuilder(yangName);
+ newString.replace(yangName.lastIndexOf(SERVICE), yangName
+ .lastIndexOf(SERVICE) + 7, EMPTY_STRING);
+ return getDefaultDefinitionWithExtends(
+ INTERFACE, yangName, PUBLIC, getEventExtendsString(
+ getSuffixedName(newString.toString(), EVENT_STRING),
+ LISTENER_SERVICE, getSuffixedName(newString.toString(),
+ EVENT_LISTENER_STRING)));
}
/**
@@ -335,8 +351,11 @@
* @return definition
*/
private static String getEventDefinition(String javaName, String eventName) {
- return PUBLIC + SPACE + CLASS + SPACE + javaName + SPACE + "extends AbstractEvent<"
- + javaName + ".Type, " + eventName + ">" + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ return getDefaultDefinitionWithExtends(
+ CLASS, javaName, PUBLIC, getEventExtendsString(
+ getSuffixedName(javaName, EVENT_TYPE), ABSTRACT_EVENT,
+ eventName));
+
}
/**
@@ -346,15 +365,11 @@
* @return definition
*/
private static String getEventListenerDefinition(String javaName) {
- String interfaceDef = PUBLIC + SPACE + INTERFACE + SPACE + javaName + SPACE + "extends EventListener<"
- + javaName;
- if (interfaceDef.length() < 8) {
- throw new RuntimeException("Event listener interface name is error");
- }
- interfaceDef = interfaceDef.substring(0, interfaceDef.length() - 8);
- interfaceDef = interfaceDef + ">" + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
- return interfaceDef;
+ String name = javaName.substring(0, javaName.length() - 8);
+ return getDefaultDefinitionWithExtends(
+ INTERFACE, javaName, PUBLIC, EVENT_LISTENER_STRING +
+ brackets(OPEN_CLOSE_DIAMOND_WITH_VALUE, name, null));
}
/**
@@ -365,42 +380,60 @@
* @param genFileTypes gen file type
* @return class definition
*/
- private static String getClassDefinitionForWhenExtended(YangNode curNode, String yangName, int genFileTypes) {
+ private static String getClassDefinitionForWhenExtended(
+ YangNode curNode, String yangName, int genFileTypes) {
JavaExtendsListHolder holder = ((TempJavaCodeFragmentFilesContainer) curNode)
- .getTempJavaCodeFragmentFiles().getBeanTempFiles().getJavaExtendsListHolder();
-
+ .getTempJavaCodeFragmentFiles().getBeanTempFiles()
+ .getJavaExtendsListHolder();
+ StringBuilder def = new StringBuilder();
if (holder.getExtendsList() != null && !holder.getExtendsList().isEmpty()) {
- String def = PUBLIC + SPACE;
+ def.append(PUBLIC).append(SPACE);
switch (genFileTypes) {
case INTERFACE_MASK:
- def = def + INTERFACE + SPACE + yangName + SPACE + EXTEND + SPACE;
- def = getDefinitionString(def, holder);
- return def + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ def.append(INTERFACE).append(SPACE).append(yangName)
+ .append(SPACE).append(EXTEND).append(SPACE);
+ def = new StringBuilder(getDefinitionString(def.toString(),
+ holder));
+ break;
case BUILDER_INTERFACE_MASK:
- String builderDef = INTERFACE + SPACE + yangName + BUILDER + SPACE + EXTEND + SPACE;
- builderDef = getDefinitionString(builderDef, holder);
- return builderDef + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ def.append(INTERFACE)
+ .append(SPACE).append(yangName).append(BUILDER)
+ .append(SPACE).append(EXTEND).append(SPACE);
+ def = new StringBuilder(getDefinitionString(
+ def.toString(), holder));
+ break;
case BUILDER_CLASS_MASK:
- def = def + STATIC + SPACE + CLASS + SPACE + yangName + BUILDER + SPACE + EXTEND + SPACE;
- def = getDefinitionString(def, holder);
- if (curNode instanceof YangSubModule || curNode instanceof YangModule) {
- return def + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ def.append(STATIC).append(SPACE).append(CLASS)
+ .append(SPACE).append(yangName).append(BUILDER)
+ .append(SPACE).append(EXTEND).append(SPACE);
+ def = new StringBuilder(getDefinitionString(def.toString(),
+ holder));
+ if (!(curNode instanceof RpcNotificationContainer)) {
+ def.append(SPACE).append(IMPLEMENTS).append(SPACE)
+ .append(yangName).append(PERIOD)
+ .append(yangName).append(BUILDER);
}
- return def + SPACE + IMPLEMENTS + SPACE + yangName + PERIOD
- + yangName + BUILDER + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
-
+ break;
case DEFAULT_CLASS_MASK:
- if (curNode instanceof YangSubModule || curNode instanceof YangModule) {
- def = def + CLASS + SPACE + yangName + OP_PARAM + SPACE + EXTEND + SPACE;
+ if (curNode instanceof RpcNotificationContainer) {
+ def.append(CLASS).append(SPACE).append(yangName)
+ .append(OP_PARAM).append(SPACE).append(EXTEND)
+ .append(SPACE);
} else {
- def = def + CLASS + SPACE + getCapitalCase(DEFAULT) + yangName + SPACE + EXTEND + SPACE;
+ def.append(CLASS).append(SPACE).append(DEFAULT_CAPS)
+ .append(yangName).append(SPACE).append(EXTEND)
+ .append(SPACE);
}
- def = getDefinitionString(def, holder);
- return def + SPACE + IMPLEMENTS + SPACE
- + yangName + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ def = new StringBuilder(getDefinitionString(def.toString(),
+ holder));
+ def.append(SPACE).append(IMPLEMENTS).append(SPACE)
+ .append(yangName);
+ break;
default:
return null;
}
+ return def.append(SPACE).append(OPEN_CURLY_BRACKET)
+ .append(NEW_LINE).toString();
}
return null;
}
@@ -412,15 +445,20 @@
* @param holder extend list holder
* @return updated class definition
*/
- private static String getDefinitionString(String def, JavaExtendsListHolder holder) {
+ private static String getDefinitionString(String def,
+ JavaExtendsListHolder holder) {
+ StringBuilder builder = new StringBuilder(def);
+ String str;
for (JavaQualifiedTypeInfoTranslator info : holder.getExtendsList()) {
if (!holder.getExtendedClassStore().get(info)) {
- def = def + info.getClassInfo() + COMMA + SPACE;
+ str = info.getClassInfo() + COMMA + SPACE;
} else {
- def = def + info.getPkgInfo() + PERIOD + info.getClassInfo() + COMMA + SPACE;
+ str = info.getPkgInfo() + PERIOD + info.getClassInfo() +
+ COMMA + SPACE;
}
+ builder.append(str);
}
+ def = builder.toString();
return trimAtLast(def, COMMA);
}
-
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/IndentationType.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/IndentationType.java
new file mode 100644
index 0000000..3b7b09c
--- /dev/null
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/IndentationType.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.yangutils.translator.tojava.utils;
+
+/**
+ * Represents indentation type.
+ */
+enum IndentationType {
+
+ //Four space indentation.
+ FOUR_SPACE,
+
+ //Eight space indentation.
+ EIGHT_SPACE,
+
+ //Twelve space indentation.
+ TWELVE_SPACE,
+
+ //Sixteen space indentation.
+ SIXTEEN_SPACE,
+
+ //Twenty space indentation.
+ TWENTY_SPACE,
+
+ //Twenty four space indentation.
+ TWENTY_FOUR_SPACE,
+
+ //Twenty eight space indentation.
+ TWENTY_EIGHT_SPACE
+
+}
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 3910a78..5671dd7 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
@@ -23,38 +23,39 @@
import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaServiceFragmentFiles;
import org.onosproject.yangutils.utils.UtilConstants.Operation;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import java.util.List;
import static java.util.Collections.sort;
+import static org.onosproject.yangutils.translator.tojava.utils.BracketType.OPEN_CLOSE_BRACKET;
+import static org.onosproject.yangutils.translator.tojava.utils.BracketType.OPEN_CLOSE_BRACKET_WITH_VALUE;
+import static org.onosproject.yangutils.translator.tojava.utils.BracketType.OPEN_CLOSE_DIAMOND;
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getEnumJavaAttribute;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.brackets;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getDefaultDefinition;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getImportString;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.signatureClose;
import static org.onosproject.yangutils.utils.UtilConstants.ARRAY_LIST;
import static org.onosproject.yangutils.utils.UtilConstants.CLASS_STRING;
-import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET;
-import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS;
import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
import static org.onosproject.yangutils.utils.UtilConstants.DIAMOND_CLOSE_BRACKET;
import static org.onosproject.yangutils.utils.UtilConstants.DIAMOND_OPEN_BRACKET;
import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.ENUM;
import static org.onosproject.yangutils.utils.UtilConstants.EQUAL;
import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.HASH_MAP;
-import static org.onosproject.yangutils.utils.UtilConstants.IMPORT;
import static org.onosproject.yangutils.utils.UtilConstants.INT;
import static org.onosproject.yangutils.utils.UtilConstants.INT_MAX_RANGE_ATTR;
import static org.onosproject.yangutils.utils.UtilConstants.INT_MIN_RANGE_ATTR;
import static org.onosproject.yangutils.utils.UtilConstants.LIST;
-import static org.onosproject.yangutils.utils.UtilConstants.LISTENER_SERVICE;
import static org.onosproject.yangutils.utils.UtilConstants.LONG_MAX_RANGE_ATTR;
import static org.onosproject.yangutils.utils.UtilConstants.LONG_MIN_RANGE_ATTR;
import static org.onosproject.yangutils.utils.UtilConstants.MAP;
import static org.onosproject.yangutils.utils.UtilConstants.NEW;
import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
import static org.onosproject.yangutils.utils.UtilConstants.OBJECT_STRING;
-import static org.onosproject.yangutils.utils.UtilConstants.OPEN_CURLY_BRACKET;
-import static org.onosproject.yangutils.utils.UtilConstants.OPEN_PARENTHESIS;
import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
import static org.onosproject.yangutils.utils.UtilConstants.PRIVATE;
import static org.onosproject.yangutils.utils.UtilConstants.PROTECTED;
@@ -63,7 +64,7 @@
import static org.onosproject.yangutils.utils.UtilConstants.QUEUE;
import static org.onosproject.yangutils.utils.UtilConstants.QUOTES;
import static org.onosproject.yangutils.utils.UtilConstants.SCHEMA_NAME;
-import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
+import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLON;
import static org.onosproject.yangutils.utils.UtilConstants.SET;
import static org.onosproject.yangutils.utils.UtilConstants.SHORT_MAX_RANGE_ATTR;
import static org.onosproject.yangutils.utils.UtilConstants.SHORT_MIN_RANGE_ATTR;
@@ -76,11 +77,11 @@
import static org.onosproject.yangutils.utils.UtilConstants.UINT_MIN_RANGE_ATTR;
import static org.onosproject.yangutils.utils.UtilConstants.ULONG_MAX_RANGE_ATTR;
import static org.onosproject.yangutils.utils.UtilConstants.ULONG_MIN_RANGE_ATTR;
-import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO;
+import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO_LOWER_CASE;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.ENUM_ATTRIBUTE;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.enumJavaDocForInnerClass;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
-import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.trimAtLast;
/**
* Represents utility class to generate the java snippet.
@@ -113,8 +114,8 @@
* list
*/
static String getImportText(JavaQualifiedTypeInfoTranslator importInfo) {
- return IMPORT + importInfo.getPkgInfo() + PERIOD +
- importInfo.getClassInfo() + SEMI_COLAN + NEW_LINE;
+ return getImportString(importInfo.getPkgInfo(), importInfo
+ .getClassInfo());
}
/**
@@ -134,7 +135,7 @@
boolean isList,
String accessType,
YangCompilerAnnotation annotation) {
- StringBuilder attrDef = new StringBuilder();
+ StringBuilder attrDef = new StringBuilder(FOUR_SPACE_INDENTATION);
attrDef.append(accessType).append(SPACE);
if (!isList) {
@@ -143,7 +144,7 @@
}
attrDef.append(attrType).append(SPACE)
- .append(attrName).append(SEMI_COLAN)
+ .append(attrName).append(SEMI_COLON)
.append(NEW_LINE);
} else {
// Add starting definition.
@@ -204,28 +205,17 @@
if (annotation != null &&
annotation.getYangAppDataStructure() != null) {
attrDef.append(DIAMOND_CLOSE_BRACKET).append(SPACE)
- .append(attrName).append(SEMI_COLAN)
+ .append(attrName).append(SEMI_COLON)
.append(NEW_LINE);
- // TODO refactor SEMI_COLAN, when refactoring in method generator.
} else {
attrDef.append(DIAMOND_CLOSE_BRACKET).append(SPACE).append(attrName)
.append(SPACE).append(EQUAL).append(SPACE).append(NEW)
- .append(SPACE).append(ARRAY_LIST).append(SEMI_COLAN)
+ .append(SPACE).append(ARRAY_LIST).append(SEMI_COLON)
.append(NEW_LINE);
}
}
/**
- * Returns based on the file type and the YANG name of the file, generate
- * the class / interface definition close.
- *
- * @return corresponding textual java code information
- */
- public static String getJavaClassDefClose() {
- return CLOSE_CURLY_BRACKET;
- }
-
- /**
* Returns string for enum's attribute.
*
* @param name name of attribute
@@ -234,9 +224,10 @@
*/
public static String generateEnumAttributeString(String name, int value) {
String enumName = getEnumJavaAttribute(name);
- return NEW_LINE + enumJavaDocForInnerClass(name) +
- EIGHT_SPACE_INDENTATION + enumName.toUpperCase() +
- OPEN_PARENTHESIS + value + CLOSE_PARENTHESIS + COMMA + NEW_LINE;
+ return enumJavaDocForInnerClass(name) + EIGHT_SPACE_INDENTATION +
+ enumName.toUpperCase() + brackets(OPEN_CLOSE_BRACKET_WITH_VALUE,
+ value + EMPTY_STRING, null) +
+ COMMA + NEW_LINE;
}
/**
@@ -244,17 +235,15 @@
*
* @param name name of attribute
* @param value value of the enum
- * @param config plugin configurations
* @return string for enum's attribute
*/
- public static String generateEnumAttributeStringWithSchemaName(String name,
- int value,
- YangPluginConfig config) {
+ public static String generateEnumAttributeStringWithSchemaName(
+ String name, int value) {
String enumName = getEnumJavaAttribute(name);
- return NEW_LINE + getJavaDoc(ENUM_ATTRIBUTE, name, false, config, null) +
- FOUR_SPACE_INDENTATION + enumName.toUpperCase() +
- OPEN_PARENTHESIS + value + COMMA + SPACE + QUOTES + name +
- QUOTES + CLOSE_PARENTHESIS + COMMA + NEW_LINE;
+ String str = value + COMMA + SPACE + QUOTES + name + QUOTES;
+ return getJavaDoc(ENUM_ATTRIBUTE, name, false, null) +
+ FOUR_SPACE_INDENTATION + enumName.toUpperCase() + brackets(
+ OPEN_CLOSE_BRACKET_WITH_VALUE, str, null) + COMMA + NEW_LINE;
}
/**
@@ -274,8 +263,8 @@
* @return event enum start
*/
static String getEventEnumTypeStart() {
- return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + ENUM + SPACE + TYPE +
- SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ return NEW_LINE + FOUR_SPACE_INDENTATION +
+ getDefaultDefinition(ENUM, TYPE, PUBLIC);
}
/**
@@ -284,25 +273,16 @@
* @param curNode currentYangNode.
* @param imports import list
* @param operation add or remove
- * @param classInfo class info to be added to import list
*/
public static void addListenersImport(YangNode curNode,
List<String> imports,
- Operation operation,
- String classInfo) {
+ Operation operation) {
String thisImport;
TempJavaServiceFragmentFiles tempFiles =
((JavaCodeGeneratorInfo) curNode).getTempJavaCodeFragmentFiles()
.getServiceTempFiles();
- if (classInfo.equals(LISTENER_SERVICE)) {
- thisImport = tempFiles.getJavaImportData()
- .getListenerServiceImport();
- performOperationOnImports(imports, thisImport, operation);
- } else {
- thisImport = tempFiles.getJavaImportData()
- .getListenerRegistryImport();
- performOperationOnImports(imports, thisImport, operation);
- }
+ thisImport = tempFiles.getJavaImportData().getListenerServiceImport();
+ performOperationOnImports(imports, thisImport, operation);
}
/**
@@ -337,10 +317,10 @@
* @return enum's attribute
*/
static String getEnumsValueAttribute(String className) {
- return NEW_LINE + FOUR_SPACE_INDENTATION + PRIVATE + SPACE + INT +
- SPACE + getSmallCase(className) + SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION + PRIVATE + SPACE + STRING_DATA_TYPE +
- SPACE + SCHEMA_NAME + SEMI_COLAN + NEW_LINE;
+ return getJavaAttributeDefinition(null, INT, className,
+ false, PRIVATE, null) +
+ getJavaAttributeDefinition(null, STRING_DATA_TYPE, SCHEMA_NAME,
+ false, PRIVATE, null);
}
/**
@@ -349,14 +329,24 @@
* @return attribute for augmentation
*/
static String addAugmentationAttribute() {
- return NEW_LINE + FOUR_SPACE_INDENTATION + PROTECTED + SPACE + MAP +
- DIAMOND_OPEN_BRACKET + CLASS_STRING + DIAMOND_OPEN_BRACKET +
+ String[] array = {NEW_LINE, SEMI_COLON};
+ return trimAtLast(getJavaAttributeDefinition(
+ null, getAugmentMapTypeString(),
+ YANG_AUGMENTED_INFO_LOWER_CASE + MAP, false, PROTECTED,
+ null), array) + SPACE + EQUAL + SPACE + NEW + SPACE +
+ HASH_MAP + brackets(OPEN_CLOSE_DIAMOND, null, null) + brackets(
+ OPEN_CLOSE_BRACKET, null, null) + signatureClose();
+ }
+
+ /**
+ * Returns augment map return type.
+ *
+ * @return augment map return type
+ */
+ static String getAugmentMapTypeString() {
+ return MAP + DIAMOND_OPEN_BRACKET + CLASS_STRING + DIAMOND_OPEN_BRACKET +
QUESTION_MARK + DIAMOND_CLOSE_BRACKET + COMMA + SPACE +
- OBJECT_STRING + DIAMOND_CLOSE_BRACKET + SPACE +
- getSmallCase(YANG_AUGMENTED_INFO) + MAP + SPACE + EQUAL +
- SPACE + NEW + SPACE + HASH_MAP + DIAMOND_OPEN_BRACKET +
- DIAMOND_CLOSE_BRACKET + OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
- SEMI_COLAN;
+ OBJECT_STRING + DIAMOND_CLOSE_BRACKET;
}
/**
@@ -369,13 +359,13 @@
static String addStaticAttributeIntRange(String modifier,
boolean addFirst) {
if (addFirst) {
- return NEW_LINE + FOUR_SPACE_INDENTATION + modifier + SPACE +
- INT_MIN_RANGE_ATTR + FOUR_SPACE_INDENTATION + modifier +
- SPACE + INT_MAX_RANGE_ATTR;
+ return getTypeConflictAttributeStrings(modifier,
+ INT_MIN_RANGE_ATTR,
+ INT_MAX_RANGE_ATTR);
}
- return NEW_LINE + FOUR_SPACE_INDENTATION + modifier + SPACE +
- UINT_MIN_RANGE_ATTR + FOUR_SPACE_INDENTATION + modifier +
- SPACE + UINT_MAX_RANGE_ATTR;
+ return getTypeConflictAttributeStrings(modifier,
+ UINT_MIN_RANGE_ATTR,
+ UINT_MAX_RANGE_ATTR);
}
/**
@@ -388,13 +378,13 @@
static String addStaticAttributeLongRange(String modifier,
boolean addFirst) {
if (addFirst) {
- return NEW_LINE + FOUR_SPACE_INDENTATION + modifier + SPACE +
- LONG_MIN_RANGE_ATTR + FOUR_SPACE_INDENTATION +
- modifier + SPACE + LONG_MAX_RANGE_ATTR;
+ return getTypeConflictAttributeStrings(modifier,
+ LONG_MIN_RANGE_ATTR,
+ LONG_MAX_RANGE_ATTR);
}
- return NEW_LINE + FOUR_SPACE_INDENTATION + modifier + SPACE +
- ULONG_MIN_RANGE_ATTR + FOUR_SPACE_INDENTATION + modifier +
- SPACE + ULONG_MAX_RANGE_ATTR;
+ return getTypeConflictAttributeStrings(modifier,
+ ULONG_MIN_RANGE_ATTR,
+ ULONG_MAX_RANGE_ATTR);
}
/**
@@ -407,13 +397,29 @@
static String addStaticAttributeShortRange(String modifier,
boolean addFirst) {
if (addFirst) {
- return NEW_LINE + FOUR_SPACE_INDENTATION + modifier + SPACE +
- SHORT_MIN_RANGE_ATTR + FOUR_SPACE_INDENTATION + modifier +
- SPACE + SHORT_MAX_RANGE_ATTR;
+ return getTypeConflictAttributeStrings(modifier,
+ SHORT_MIN_RANGE_ATTR,
+ SHORT_MAX_RANGE_ATTR);
}
+ return getTypeConflictAttributeStrings(modifier,
+ UINT8_MIN_RANGE_ATTR,
+ UINT8_MAX_RANGE_ATTR);
+ }
+
+ /**
+ * Returns attribute for conflicting type in union.
+ *
+ * @param modifier modifier
+ * @param attr1 attribute one
+ * @param att2 attribute two
+ * @return attribute for conflicting type in union
+ */
+ private static String getTypeConflictAttributeStrings(String modifier,
+ String attr1,
+ String att2) {
return NEW_LINE + FOUR_SPACE_INDENTATION + modifier + SPACE +
- UINT8_MIN_RANGE_ATTR + FOUR_SPACE_INDENTATION + modifier +
- SPACE + UINT8_MAX_RANGE_ATTR;
+ attr1 + FOUR_SPACE_INDENTATION + modifier +
+ SPACE + att2;
}
/**
@@ -422,10 +428,11 @@
* @return operation type enum
*/
static String getOperationTypeEnum() {
- return "\n" +
- " /**\n" +
- " * Specify the node specific operation in protocols like NETCONF.\n" +
- " * Applicable in protocol edit operation, not applicable in query operation\n" +
+ return " /**\n" +
+ " * Specify the node specific operation in protocols " +
+ "like NETCONF.\n" +
+ " * Applicable in protocol edit operation, not applicable" +
+ " in query operation\n" +
" */\n" +
" public enum OnosYangNodeOperationType {\n" +
" MERGE,\n" +
@@ -473,6 +480,7 @@
* @return augment info map
*/
static String getYangAugmentedMapObjectForConstruct() {
- return " this.yangAugmentedInfoMap = builderObject.yangAugmentedInfoMap();\n";
+ 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 6853ac9..eae26fd 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
@@ -16,15 +16,14 @@
package org.onosproject.yangutils.translator.tojava.utils;
+import org.onosproject.yangutils.datamodel.RpcNotificationContainer;
import org.onosproject.yangutils.datamodel.YangAugmentableNode;
import org.onosproject.yangutils.datamodel.YangCase;
import org.onosproject.yangutils.datamodel.YangChoice;
import org.onosproject.yangutils.datamodel.YangDerivedInfo;
import org.onosproject.yangutils.datamodel.YangEnumeration;
import org.onosproject.yangutils.datamodel.YangLeavesHolder;
-import org.onosproject.yangutils.datamodel.YangModule;
import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.datamodel.YangSubModule;
import org.onosproject.yangutils.datamodel.YangType;
import org.onosproject.yangutils.datamodel.YangTypeDef;
import org.onosproject.yangutils.datamodel.javadatamodel.JavaQualifiedTypeInfo;
@@ -49,6 +48,8 @@
import static java.util.Collections.sort;
import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.BINARY;
import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.BITS;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.DERIVED;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.IDENTITYREF;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_INTERFACE_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.DEFAULT_CLASS_MASK;
@@ -87,6 +88,9 @@
import static org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles.getCurNodeAsAttributeInTarget;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.getQualifierInfoForCasesParent;
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.isGetSetOfRootNodeRequired;
+import static org.onosproject.yangutils.translator.tojava.utils.BracketType.OPEN_CLOSE_BRACKET;
+import static org.onosproject.yangutils.translator.tojava.utils.BracketType.OPEN_CLOSE_BRACKET_WITH_VALUE;
+import static org.onosproject.yangutils.translator.tojava.utils.IndentationType.FOUR_SPACE;
import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.addAugmentationAttribute;
import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getEnumsValueAttribute;
import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getEventEnumTypeStart;
@@ -96,12 +100,14 @@
import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getYangAugmentedMapObjectForConstruct;
import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getDataFromTempFileHandle;
import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.initiateJavaFileGeneration;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.ENUM_METHOD_INT_VALUE;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.ENUM_METHOD_STRING_VALUE;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodClassTypes.CLASS_TYPE;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.builderMethod;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAddAugmentInfoMethodImpl;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAddAugmentInfoMethodInterface;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAugmentsDataMethodForService;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getConstructorStart;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEnumValueOfSchemaNameMethod;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEnumsConstructor;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEnumsOfValueMethod;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEqualsMethodClose;
@@ -110,14 +116,9 @@
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getFromStringMethodSignature;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetter;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterString;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGettersForValueAndSelectLeaf;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethodClose;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethodOpen;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getInterfaceLeafIdEnumMethods;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getInterfaceLeafIdEnumSignature;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOmitNullValueString;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOperationAttributesGetters;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOverRideString;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRangeValidatorMethodForUnion;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForSelectLeaf;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterString;
@@ -131,6 +132,16 @@
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.isSelectLeafSetInterface;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.processSubtreeFilteringInterface;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.setSelectLeafSetInterface;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.brackets;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getGettersForValueAndSelectLeaf;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getInterfaceLeafIdEnumMethods;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getOmitNullValueString;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getOperationAttributesGetters;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getOverRideString;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getReturnString;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.methodClose;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.methodSignature;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.signatureClose;
import static org.onosproject.yangutils.translator.tojava.utils.SubtreeFilteringMethodsGenerator.getAugmentableSubTreeFiltering;
import static org.onosproject.yangutils.translator.tojava.utils.SubtreeFilteringMethodsGenerator.getProcessChildNodeSubtreeFiltering;
import static org.onosproject.yangutils.translator.tojava.utils.SubtreeFilteringMethodsGenerator.getProcessLeafListSubtreeFiltering;
@@ -147,9 +158,9 @@
import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_CLASS;
import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_INTERFACE;
import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET;
-import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS;
import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT;
+import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT_CAPS;
import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.ENCODE_TO_STRING;
@@ -158,31 +169,25 @@
import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.EVENT_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.EVENT_SUBJECT_NAME_SUFFIX;
-import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.GET_ENCODER;
import static org.onosproject.yangutils.utils.UtilConstants.IMPL_CLASS;
import static org.onosproject.yangutils.utils.UtilConstants.INT;
import static org.onosproject.yangutils.utils.UtilConstants.INTERFACE;
import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
-import static org.onosproject.yangutils.utils.UtilConstants.OPEN_CURLY_BRACKET;
-import static org.onosproject.yangutils.utils.UtilConstants.OPEN_PARENTHESIS;
import static org.onosproject.yangutils.utils.UtilConstants.OP_PARAM;
import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
import static org.onosproject.yangutils.utils.UtilConstants.PRIVATE;
import static org.onosproject.yangutils.utils.UtilConstants.PROTECTED;
import static org.onosproject.yangutils.utils.UtilConstants.PUBLIC;
-import static org.onosproject.yangutils.utils.UtilConstants.RETURN;
import static org.onosproject.yangutils.utils.UtilConstants.RPC_CLASS;
import static org.onosproject.yangutils.utils.UtilConstants.SCHEMA_NAME;
-import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
+import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLON;
import static org.onosproject.yangutils.utils.UtilConstants.SERVICE_METHOD_STRING;
-import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
import static org.onosproject.yangutils.utils.UtilConstants.TO;
import static org.onosproject.yangutils.utils.UtilConstants.TYPEDEF_CLASS;
import static org.onosproject.yangutils.utils.UtilConstants.UNION_CLASS;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD;
-import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.TYPE_CONSTRUCTOR;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.insertDataIntoJavaFile;
@@ -218,7 +223,7 @@
((JavaFileInfoContainer) curNode).getJavaFileInfo();
String path;
- if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
+ if (curNode instanceof RpcNotificationContainer) {
path = fileInfo.getPluginConfig().getCodeGenDir() +
fileInfo.getPackageFilePath();
} else {
@@ -249,23 +254,19 @@
try {
//Leaf identifier enum.
if (leavesPresent) {
- insertDataIntoJavaFile(file, NEW_LINE +
- getInterfaceLeafIdEnumSignature(className) +
- NEW_LINE +
- trimAtLast(replaceLast(
- getDataFromTempFileHandle(
- LEAF_IDENTIFIER_ENUM_ATTRIBUTES_MASK,
- getBeanFiles(curNode), path),
- COMMA, SEMI_COLAN), NEW_LINE) +
- NEW_LINE + NEW_LINE +
+ insertDataIntoJavaFile(file, getInterfaceLeafIdEnumSignature(
+ className) + trimAtLast(replaceLast(
+ getDataFromTempFileHandle(
+ LEAF_IDENTIFIER_ENUM_ATTRIBUTES_MASK,
+ getBeanFiles(curNode), path),
+ COMMA, SEMI_COLON), NEW_LINE) +
getInterfaceLeafIdEnumMethods());
}
+ insertDataIntoJavaFile(file, NEW_LINE);
//Getter methods.
- insertDataIntoJavaFile(
- file, getDataFromTempFileHandle(
- GETTER_FOR_INTERFACE_MASK,
- getBeanFiles(curNode), path));
+ insertDataIntoJavaFile(file, getDataFromTempFileHandle(
+ GETTER_FOR_INTERFACE_MASK, getBeanFiles(curNode), path));
} catch (IOException e) {
throw new IOException(getErrorMsg(className, INTERFACE));
}
@@ -274,7 +275,7 @@
if (curNode instanceof YangAugmentableNode &&
!(curNode instanceof YangChoice)) {
methods.add(getYangAugmentInfoInterface());
- methods.add(getYangAugmentInfoMapInterface(fileInfo.getPluginConfig()));
+ methods.add(getYangAugmentInfoMapInterface());
}
if (curNode instanceof YangCase) {
@@ -282,15 +283,15 @@
JavaQualifiedTypeInfo qualifiedTypeInfo =
getQualifierInfoForCasesParent(caseParent,
fileInfo.getPluginConfig());
- methods.add(NEW_LINE + processSubtreeFilteringInterface(
+ methods.add(processSubtreeFilteringInterface(
qualifiedTypeInfo.getClassInfo()));
} else {
- methods.add(NEW_LINE + processSubtreeFilteringInterface(className));
+ methods.add(processSubtreeFilteringInterface(className));
}
if (leavesPresent) {
- methods.add(NEW_LINE + isLeafValueSetInterface());
- methods.add(NEW_LINE + isSelectLeafSetInterface());
+ methods.add(isLeafValueSetInterface());
+ methods.add(isSelectLeafSetInterface());
}
for (String method : methods) {
insertDataIntoJavaFile(file, method);
@@ -326,7 +327,7 @@
String className = getCapitalCase(fileInfo.getJavaName());
String path;
- if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
+ if (curNode instanceof RpcNotificationContainer) {
path = fileInfo.getPluginConfig().getCodeGenDir() +
fileInfo.getPackageFilePath();
} else {
@@ -339,29 +340,21 @@
List<String> methods = new ArrayList<>();
if (attrPresent) {
try {
-
//Getter methods.
- methods.add(FOUR_SPACE_INDENTATION +
- getDataFromTempFileHandle(
- GETTER_FOR_INTERFACE_MASK,
- getBeanFiles(curNode), path));
+ methods.add(getDataFromTempFileHandle(
+ GETTER_FOR_INTERFACE_MASK,
+ getBeanFiles(curNode), path));
//Setter methods.
- methods.add(NEW_LINE);
- methods.add(FOUR_SPACE_INDENTATION +
- getDataFromTempFileHandle(
- SETTER_FOR_INTERFACE_MASK,
- getBeanFiles(curNode), path));
+ methods.add(getDataFromTempFileHandle(
+ SETTER_FOR_INTERFACE_MASK,
+ getBeanFiles(curNode), path));
//Add to list method.
- methods.add(NEW_LINE);
- insertDataIntoJavaFile(file,
- getDataFromTempFileHandle(
- ADD_TO_LIST_INTERFACE_MASK,
- getBeanFiles(curNode), path));
+ insertDataIntoJavaFile(file, getDataFromTempFileHandle(
+ ADD_TO_LIST_INTERFACE_MASK, getBeanFiles(curNode), path));
} catch (IOException e) {
- throw new IOException(getErrorMsg(className,
- BUILDER_INTERFACE));
+ throw new IOException(getErrorMsg(className, BUILDER_INTERFACE));
}
}
@@ -369,11 +362,11 @@
!(curNode instanceof YangChoice)) {
methods.add(getAddAugmentInfoMethodInterface());
methods.add(getYangAugmentInfoInterface());
- methods.add(getYangAugmentInfoMapInterface(fileInfo.getPluginConfig()));
+ methods.add(getYangAugmentInfoMapInterface());
}
if (leavesPresent) {
- methods.add(NEW_LINE + setSelectLeafSetInterface(className));
+ methods.add(setSelectLeafSetInterface(className));
}
//Add build method to builder interface file.
methods.add(((TempJavaCodeFragmentFilesContainer) curNode)
@@ -418,7 +411,7 @@
String className = getCapitalCase(fileInfo.getJavaName());
boolean isRootNode = false;
String path;
- if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
+ if (curNode instanceof RpcNotificationContainer) {
isRootNode = true;
path = fileInfo.getPluginConfig().getCodeGenDir() +
fileInfo.getPackageFilePath();
@@ -438,10 +431,8 @@
//Add attribute strings.
try {
- insertDataIntoJavaFile(file, NEW_LINE + FOUR_SPACE_INDENTATION +
- getDataFromTempFileHandle(
- ATTRIBUTES_MASK,
- getBeanFiles(curNode), path));
+ insertDataIntoJavaFile(file, getDataFromTempFileHandle(
+ ATTRIBUTES_MASK, getBeanFiles(curNode), path));
} catch (IOException e) {
throw new IOException(getErrorMsg(className, BUILDER_CLASS));
}
@@ -465,7 +456,8 @@
//Add operation attribute methods.
if (leavesPresent) {
- methods.add(getOperationAttributesGetters() + NEW_LINE);
+ methods.add(getOperationAttributesGetters());
+ insertDataIntoJavaFile(file, NEW_LINE);
methods.add(getSetterForSelectLeaf(className, isRootNode));
}
} catch (IOException e) {
@@ -484,15 +476,14 @@
// Add default constructor and build method impl.
methods.add(((TempJavaCodeFragmentFilesContainer) curNode)
.getTempJavaCodeFragmentFiles()
- .addBuildMethodImpl(curNode));
- methods.add(addDefaultConstructor(curNode, PUBLIC, BUILDER,
- config, curNode));
+ .addBuildMethodImpl());
+ methods.add(addDefaultConstructor(curNode, PUBLIC, BUILDER
+ ));
//Add methods in builder class.
for (String method : methods) {
insertDataIntoJavaFile(file, method);
}
-
insertDataIntoJavaFile(file, CLOSE_CURLY_BRACKET);
return file;
}
@@ -530,7 +521,7 @@
String className = getCapitalCase(fileInfo.getJavaName());
String opParamClassName = className;
String path;
- if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
+ if (curNode instanceof RpcNotificationContainer) {
opParamClassName = className + OP_PARAM;
rootNode = true;
path = fileInfo.getPluginConfig().getCodeGenDir() +
@@ -562,7 +553,7 @@
try {
//Constructor.
String constructor =
- getConstructorStart(className, config, rootNode);
+ getConstructorStart(className, rootNode);
constructor = constructor +
getDataFromTempFileHandle(
CONSTRUCTOR_IMPL_MASK, getBeanFiles(curNode), path);
@@ -571,18 +562,15 @@
constructor = constructor +
getOperationAttributeForConstructor();
}
+ String augmentableSubTreeFiltering = EMPTY_STRING;
if (curNode instanceof YangAugmentableNode) {
constructor = constructor +
getYangAugmentedMapObjectForConstruct();
- }
- methods.add(constructor + FOUR_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET + NEW_LINE);
- // add is filter content match.
- String augmentableSubTreeFiltering = EMPTY_STRING;
- if (curNode instanceof YangAugmentableNode) {
+ // add is filter content match.
augmentableSubTreeFiltering = getAugmentableSubTreeFiltering();
}
+ methods.add(constructor + methodClose(FOUR_SPACE));
methods.add(getProcessSubtreeFilteringStart(curNode, config) +
getProcessSubtreeFunctionBody(curNode) +
@@ -595,29 +583,25 @@
methods.add(getProcessLeafSubtreeFiltering(curNode, config,
path));
}
- }
-
- if (curNode instanceof YangLeavesHolder) {
if (((YangLeavesHolder) curNode).getListOfLeafList() != null &&
!((YangLeavesHolder) curNode).getListOfLeafList().isEmpty()) {
- methods.add(getProcessLeafListSubtreeFiltering(curNode,
- config,
+ methods.add(getProcessLeafListSubtreeFiltering(curNode, config,
path));
}
}
if (curNode.getChild() != null) {
- methods.add(getProcessChildNodeSubtreeFiltering(curNode,
- config, path));
+ methods.add(getProcessChildNodeSubtreeFiltering(curNode, config,
+ path));
}
} catch (IOException e) {
throw new IOException(getErrorMsg(className, IMPL_CLASS));
}
- methods.add(addDefaultConstructor(curNode, PROTECTED, DEFAULT,
- config, curNode));
+ methods.add(addDefaultConstructor(curNode, PROTECTED, DEFAULT
+ ));
- methods.add(builderMethod(className) + NEW_LINE);
+ methods.add(builderMethod(className));
if (leavesPresent) {
methods.add(getOperationAttributesGetters());
methods.add(getGettersForValueAndSelectLeaf());
@@ -653,9 +637,8 @@
//Add attribute strings.
try {
- insertDataIntoJavaFile(file, NEW_LINE + FOUR_SPACE_INDENTATION +
- getDataFromTempFileHandle(
- ATTRIBUTES_MASK, getBeanFiles(curNode), path));
+ insertDataIntoJavaFile(file, getDataFromTempFileHandle(
+ ATTRIBUTES_MASK, getBeanFiles(curNode), path));
} catch (IOException e) {
throw new IOException(getErrorMsg(className, IMPL_CLASS));
}
@@ -672,11 +655,9 @@
// Hash code method.
methods.add(getHashCodeMethodClose(
- getHashCodeMethodOpen() +
- getDataFromTempFileHandle(
- HASH_CODE_IMPL_MASK,
- getBeanFiles(curNode), path)
- .replace(NEW_LINE, EMPTY_STRING)));
+ getHashCodeMethodOpen() + getDataFromTempFileHandle(
+ HASH_CODE_IMPL_MASK, getBeanFiles(curNode), path)
+ .replace(NEW_LINE, EMPTY_STRING)));
//Equals method.
if (rootNode) {
@@ -687,17 +668,14 @@
getBeanFiles(curNode), path)));
} else {
methods.add(getEqualsMethodClose(
- getEqualsMethodOpen(
- getCapitalCase(DEFAULT) + className) +
- getDataFromTempFileHandle(
- EQUALS_IMPL_MASK,
- getBeanFiles(curNode), path)));
+ getEqualsMethodOpen(DEFAULT_CAPS + className) +
+ getDataFromTempFileHandle(EQUALS_IMPL_MASK,
+ getBeanFiles(curNode),
+ path)));
}
// To string method.
- methods.add(getToStringMethodOpen() +
- getDataFromTempFileHandle(
- TO_STRING_IMPL_MASK,
- getBeanFiles(curNode), path) +
+ methods.add(getToStringMethodOpen() + getDataFromTempFileHandle(
+ TO_STRING_IMPL_MASK, getBeanFiles(curNode), path) +
getToStringMethodClose());
} catch (IOException e) {
throw new IOException(getErrorMsg(className, IMPL_CLASS));
@@ -731,22 +709,21 @@
YangDataTypes yangDataTypes = type.getDataType();
initiateJavaFileGeneration(file, className, GENERATE_TYPEDEF_CLASS,
- imports, path, config);
+ imports, path);
List<String> methods = new ArrayList<>();
//Add attribute strings.
try {
- insertDataIntoJavaFile(file, NEW_LINE + FOUR_SPACE_INDENTATION +
- getDataFromTempFileHandle(
- ATTRIBUTES_MASK, getTypeFiles(curNode), path));
+ insertDataIntoJavaFile(file, getDataFromTempFileHandle(
+ ATTRIBUTES_MASK, getTypeFiles(curNode), path));
} catch (IOException e) {
throw new IOException(getErrorMsg(className, TYPEDEF_CLASS));
}
//Default constructor.
- methods.add(addDefaultConstructor(curNode, PRIVATE, EMPTY_STRING,
- config, curNode));
+ methods.add(addDefaultConstructor(curNode, PRIVATE, EMPTY_STRING
+ ));
try {
@@ -780,19 +757,19 @@
JavaCodeGeneratorInfo javaGenInfo = (JavaCodeGeneratorInfo) curNode;
//From string method.
- if ((type.getDataType().equals(YangDataTypes.DERIVED)) &&
- (((YangDerivedInfo) type.getDataTypeExtendedInfo())
+ if (type.getDataType() == DERIVED &&
+ ((YangDerivedInfo) type.getDataTypeExtendedInfo())
.getEffectiveBuiltInType()
- .equals(YangDataTypes.IDENTITYREF))) {
- yangDataTypes = YangDataTypes.IDENTITYREF;
+ == IDENTITYREF) {
+ yangDataTypes = IDENTITYREF;
}
- if (type.getDataType().equals(YangDataTypes.IDENTITYREF)) {
- yangDataTypes = YangDataTypes.IDENTITYREF;
+ if (type.getDataType() == IDENTITYREF) {
+ yangDataTypes = IDENTITYREF;
}
- if (!yangDataTypes.equals(YangDataTypes.IDENTITYREF)) {
- methods.add(getFromStringMethodSignature(className, config) +
+ if (yangDataTypes != IDENTITYREF) {
+ methods.add(getFromStringMethodSignature(className) +
getDataFromTempFileHandle(
FROM_STRING_IMPL_MASK,
javaGenInfo.getTempJavaCodeFragmentFiles()
@@ -823,8 +800,14 @@
private static void addTypedefToString(YangNode curNode,
List<String> methods, String path,
YangType type) throws IOException {
+ String methodSig = methodSignature(TO + STRING_DATA_TYPE, EMPTY_STRING,
+ PUBLIC, null, STRING_DATA_TYPE, null,
+ CLASS_TYPE);
+ String methodClose = signatureClose() + methodClose(FOUR_SPACE);
+ String openClose = brackets(OPEN_CLOSE_BRACKET, null,
+ null);
//To string method.
- if (type.getDataType().equals(BINARY)) {
+ if (type.getDataType() == BINARY) {
JavaQualifiedTypeInfoTranslator typeInfo =
getQualifiedTypeInfoOfCurNode(curNode, getCapitalCase
(UtilConstants.BINARY));
@@ -834,22 +817,15 @@
UtilConstants.BINARY,
null, false, false);
String attributeName = attr.getAttributeName();
- String bitsToStringMethod =
- getOverRideString() + FOUR_SPACE_INDENTATION +
- PUBLIC + SPACE + STRING_DATA_TYPE + SPACE + TO +
- STRING_DATA_TYPE + OPEN_PARENTHESIS +
- CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE +
- EIGHT_SPACE_INDENTATION + RETURN + SPACE +
- BASE64 + PERIOD + GET_ENCODER +
- OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
- PERIOD + ENCODE_TO_STRING + OPEN_PARENTHESIS +
- attributeName + CLOSE_PARENTHESIS +
- SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
- NEW_LINE;
+ String bitsToStringMethod = getOverRideString() + methodSig +
+ getReturnString(BASE64, EIGHT_SPACE_INDENTATION) +
+ PERIOD + GET_ENCODER + brackets(OPEN_CLOSE_BRACKET, null,
+ null) +
+ PERIOD + ENCODE_TO_STRING + brackets(
+ OPEN_CLOSE_BRACKET_WITH_VALUE, attributeName, null) +
+ methodClose;
methods.add(bitsToStringMethod);
- } else if (type.getDataType().equals(BITS)) {
+ } else if (type.getDataType() == BITS) {
JavaQualifiedTypeInfoTranslator typeInfo =
getQualifiedTypeInfoOfCurNode(curNode,
getCapitalCase(UtilConstants.BITS));
@@ -860,17 +836,10 @@
null, false, false);
String attributeName = attr.getAttributeName();
String bitsToStringMethod =
- getOverRideString() + FOUR_SPACE_INDENTATION +
- PUBLIC + SPACE + STRING_DATA_TYPE + SPACE + TO +
- STRING_DATA_TYPE + OPEN_PARENTHESIS +
- CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE +
- EIGHT_SPACE_INDENTATION + RETURN + SPACE +
- attributeName + PERIOD + TO +
- STRING_DATA_TYPE + OPEN_PARENTHESIS +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET + NEW_LINE;
+ getOverRideString() + methodSig +
+ getReturnString(attributeName, EIGHT_SPACE_INDENTATION) +
+ PERIOD + TO + STRING_DATA_TYPE + openClose +
+ methodClose;
methods.add(bitsToStringMethod);
} else {
methods.add(getToStringMethodOpen() +
@@ -945,22 +914,21 @@
}
initiateJavaFileGeneration(file, className, GENERATE_UNION_CLASS,
- imports, path, config);
+ imports, path);
List<String> methods = new ArrayList<>();
// Add attribute strings.
try {
addUnionClassAttributeInfo(file, curNode, intConflict,
- longConflict, shortConflict, path,
- tempFiles);
+ longConflict, shortConflict, path, tempFiles);
} catch (IOException e) {
throw new IOException(getErrorMsg(className, UNION_CLASS));
}
//Default constructor.
- methods.add(addDefaultConstructor(curNode, PRIVATE, EMPTY_STRING,
- config, curNode));
+ methods.add(addDefaultConstructor(curNode, PRIVATE, EMPTY_STRING
+ ));
try {
@@ -985,7 +953,7 @@
//Equals method.
methods.add(getEqualsMethodClose(
- getEqualsMethodOpen(className + EMPTY_STRING) +
+ getEqualsMethodOpen(className) +
getDataFromTempFileHandle(
EQUALS_IMPL_MASK, getTypeFiles(curNode),
path)));
@@ -998,7 +966,7 @@
getToStringMethodClose());
//From string method.
- methods.add(getFromStringMethodSignature(className, config) +
+ methods.add(getFromStringMethodSignature(className) +
getDataFromTempFileHandle(
FROM_STRING_IMPL_MASK,
getTypeFiles(curNode), path) +
@@ -1066,9 +1034,8 @@
tempFiles.getUInt8Index()));
}
- insertDataIntoJavaFile(file, NEW_LINE + FOUR_SPACE_INDENTATION +
- getDataFromTempFileHandle(
- ATTRIBUTES_MASK, getTypeFiles(curNode), path));
+ insertDataIntoJavaFile(file, getDataFromTempFileHandle(
+ ATTRIBUTES_MASK, getTypeFiles(curNode), path));
}
/**
@@ -1091,64 +1058,57 @@
fileInfo.getPackageFilePath();
initiateJavaFileGeneration(file, getCapitalCase(className),
- GENERATE_ENUM_CLASS, null, path,
- config);
+ GENERATE_ENUM_CLASS, null, path
+ );
//Add attribute strings.
try {
JavaCodeGeneratorInfo javaGenInfo = (JavaCodeGeneratorInfo) curNode;
- insertDataIntoJavaFile(file,
- trimAtLast(trimAtLast(
- getDataFromTempFileHandle(
- ENUM_IMPL_MASK, javaGenInfo
- .getTempJavaCodeFragmentFiles()
- .getEnumerationTempFiles(),
- path), COMMA), NEW_LINE) +
- SEMI_COLAN + NEW_LINE);
+ String[] remove = {COMMA, NEW_LINE};
+ insertDataIntoJavaFile(file, trimAtLast(getDataFromTempFileHandle(
+ ENUM_IMPL_MASK, javaGenInfo.getTempJavaCodeFragmentFiles()
+ .getEnumTempFiles(), path), remove) +
+ signatureClose());
} catch (IOException e) {
throw new IOException(getErrorMsg(getCapitalCase(className),
ENUM_CLASS));
}
// Add an attribute to get the enum's values.
- insertDataIntoJavaFile(file, getEnumsValueAttribute(getCapitalCase(className)));
+ insertDataIntoJavaFile(file, getEnumsValueAttribute(className));
// Add a constructor for enum.
- insertDataIntoJavaFile(file,
- getJavaDoc(TYPE_CONSTRUCTOR, className, false,
- config, null) +
- getEnumsConstructor(getCapitalCase(className)) +
- NEW_LINE);
+ //TODO: generate javadoc for method.
+ insertDataIntoJavaFile(file, getEnumsConstructor(getCapitalCase(className)) +
+ NEW_LINE);
insertDataIntoJavaFile(file,
getEnumsOfValueMethod(className,
(YangEnumeration) curNode,
- config) + NEW_LINE);
+ ENUM_METHOD_INT_VALUE));
insertDataIntoJavaFile(file,
- getEnumValueOfSchemaNameMethod(className,
- config,
- (YangEnumeration) curNode));
+ getEnumsOfValueMethod(className,
+ (YangEnumeration) curNode,
+ ENUM_METHOD_STRING_VALUE));
// Add a getter method for enum.
insertDataIntoJavaFile(file, getJavaDoc(GETTER_METHOD, className, false,
- config, null) +
+ null) +
getGetter(INT, className, GENERATE_ENUM_CLASS) + NEW_LINE);
- insertDataIntoJavaFile(file,
- getJavaDoc(GETTER_METHOD, SCHEMA_NAME, false,
- config, null) +
- getGetter(STRING_DATA_TYPE, SCHEMA_NAME,
- GENERATE_ENUM_CLASS) +
- NEW_LINE);
+ insertDataIntoJavaFile(file, getJavaDoc(GETTER_METHOD, SCHEMA_NAME, false,
+ null) +
+ getGetter(STRING_DATA_TYPE, SCHEMA_NAME, GENERATE_ENUM_CLASS) +
+ NEW_LINE);
try {
insertDataIntoJavaFile(file,
- getFromStringMethodSignature(getCapitalCase(className),
- config) +
+ getFromStringMethodSignature(
+ getCapitalCase(className)) +
getDataFromTempFileHandle(
FROM_STRING_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode)
.getTempJavaCodeFragmentFiles()
- .getEnumerationTempFiles(),
+ .getEnumTempFiles(),
path) + getFromStringMethodClose());
} catch (IOException e) {
throw new IOException(getErrorMsg(getCapitalCase(className),
@@ -1196,17 +1156,17 @@
if (isGetSetOfRootNodeRequired(curNode)) {
//Getter methods.
methods.add(getGetterString(rootAttribute,
- GENERATE_SERVICE_AND_MANAGER,
- fileInfo.getPluginConfig()) +
+ GENERATE_SERVICE_AND_MANAGER
+ ) +
NEW_LINE);
// Setter methods.
methods.add(getSetterString(rootAttribute, className,
- GENERATE_SERVICE_AND_MANAGER,
- fileInfo.getPluginConfig()) +
+ GENERATE_SERVICE_AND_MANAGER
+ ) +
NEW_LINE);
}
- methods.add(getAugmentsDataMethodForService(curNode) + NEW_LINE);
+ methods.add(getAugmentsDataMethodForService(curNode));
if (((JavaCodeGeneratorInfo) curNode).getTempJavaCodeFragmentFiles()
.getServiceTempFiles() != null) {
@@ -1258,11 +1218,10 @@
initiateJavaFileGeneration(file, GENERATE_EVENT_CLASS, imports, curNode,
className);
try {
- insertDataIntoJavaFile(file, NEW_LINE + getEventEnumTypeStart() +
+ insertDataIntoJavaFile(file, getEventEnumTypeStart() +
trimAtLast(getDataFromTempFileHandle(EVENT_ENUM_MASK,
tempFiles, path),
- COMMA) + FOUR_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET + NEW_LINE);
+ COMMA) + methodClose(FOUR_SPACE));
insertDataIntoJavaFile(file,
getDataFromTempFileHandle(EVENT_METHOD_MASK,
@@ -1325,17 +1284,17 @@
insertDataIntoJavaFile(file, NEW_LINE);
try {
- insertDataIntoJavaFile(file,
- getDataFromTempFileHandle(EVENT_SUBJECT_ATTRIBUTE_MASK,
- tempFiles, path));
+ insertDataIntoJavaFile(
+ file, getDataFromTempFileHandle(EVENT_SUBJECT_ATTRIBUTE_MASK,
+ tempFiles, path));
- insertDataIntoJavaFile(file,
- getDataFromTempFileHandle(EVENT_SUBJECT_GETTER_MASK,
- tempFiles, path));
+ insertDataIntoJavaFile(
+ file, getDataFromTempFileHandle(EVENT_SUBJECT_GETTER_MASK,
+ tempFiles, path));
- insertDataIntoJavaFile(file,
- getDataFromTempFileHandle(EVENT_SUBJECT_SETTER_MASK,
- tempFiles, path));
+ insertDataIntoJavaFile(
+ file, getDataFromTempFileHandle(EVENT_SUBJECT_SETTER_MASK,
+ tempFiles, path));
} catch (IOException e) {
throw new IOException(getErrorMsg(className, EVENT_CLASS));
}
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 09bb72b..2d9538f 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
@@ -16,18 +16,11 @@
package org.onosproject.yangutils.translator.tojava.utils;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
import org.onosproject.yangutils.datamodel.YangAtomicPath;
import org.onosproject.yangutils.datamodel.YangAugment;
import org.onosproject.yangutils.datamodel.YangLeafRef;
-import org.onosproject.yangutils.datamodel.YangModule;
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangNodeIdentifier;
-import org.onosproject.yangutils.datamodel.YangSubModule;
import org.onosproject.yangutils.datamodel.YangType;
import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes;
import org.onosproject.yangutils.translator.exception.TranslatorException;
@@ -47,6 +40,11 @@
import org.onosproject.yangutils.utils.io.impl.CopyrightHeader;
import org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_INTERFACE_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.DEFAULT_CLASS_MASK;
@@ -81,7 +79,6 @@
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.HASH_CODE_IMPL_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.LEAF_IDENTIFIER_ENUM_ATTRIBUTES_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.OF_STRING_IMPL_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.RPC_IMPL_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.RPC_INTERFACE_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_CLASS_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_INTERFACE_MASK;
@@ -90,12 +87,13 @@
import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.getNodesPackage;
import static org.onosproject.yangutils.translator.tojava.utils.ClassDefinitionGenerator.generateClassDefinition;
import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET;
+import static org.onosproject.yangutils.utils.UtilConstants.ERROR_MSG_FOR_GEN_CODE;
import static org.onosproject.yangutils.utils.UtilConstants.LEAFREF;
import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
import static org.onosproject.yangutils.utils.UtilConstants.OP_PARAM;
import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE;
import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
-import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
+import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLON;
import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.BUILDER_CLASS;
@@ -134,187 +132,217 @@
* @param handler cached file handle
* @return file object
*/
- public static File getFileObject(String filePath, String fileName, String extension,
+ public static File getFileObject(String filePath, String fileName,
+ String extension,
JavaFileInfoTranslator handler) {
- return new File(handler.getBaseCodeGenPath() + filePath + SLASH + fileName + extension);
+ return new File(handler.getBaseCodeGenPath() + filePath + SLASH +
+ fileName + extension);
}
/**
* Returns data stored in temporary files.
*
- * @param generatedTempFiles temporary file types
- * @param tempJavaFragmentFiles temp java fragment files
- * @param absolutePath absolute path
+ * @param tempFiles temporary file types
+ * @param tempHandle temp java fragment files
+ * @param path absolute path
* @return data stored in temporary files
* @throws IOException when failed to get the data from temporary file handle
*/
- static String getDataFromTempFileHandle(int generatedTempFiles,
- TempJavaFragmentFiles tempJavaFragmentFiles, String absolutePath)
+ static String getDataFromTempFileHandle(
+ int tempFiles, TempJavaFragmentFiles tempHandle, String path)
throws IOException {
- TempJavaTypeFragmentFiles typeFragmentFiles = null;
-
- if (tempJavaFragmentFiles instanceof TempJavaTypeFragmentFiles) {
- typeFragmentFiles = (TempJavaTypeFragmentFiles) tempJavaFragmentFiles;
+ TempJavaTypeFragmentFiles typeHandle = null;
+ if (tempHandle instanceof TempJavaTypeFragmentFiles) {
+ typeHandle = (TempJavaTypeFragmentFiles) tempHandle;
}
- TempJavaBeanFragmentFiles beanFragmentFiles = null;
-
- if (tempJavaFragmentFiles instanceof TempJavaBeanFragmentFiles) {
- beanFragmentFiles = (TempJavaBeanFragmentFiles) tempJavaFragmentFiles;
+ TempJavaBeanFragmentFiles beanHandle = null;
+ if (tempHandle instanceof TempJavaBeanFragmentFiles) {
+ beanHandle = (TempJavaBeanFragmentFiles) tempHandle;
}
- TempJavaServiceFragmentFiles serviceFragmentFiles = null;
- if (tempJavaFragmentFiles instanceof TempJavaServiceFragmentFiles) {
- serviceFragmentFiles = (TempJavaServiceFragmentFiles) tempJavaFragmentFiles;
+ TempJavaServiceFragmentFiles serviceHandle = null;
+ if (tempHandle instanceof TempJavaServiceFragmentFiles) {
+ serviceHandle = (TempJavaServiceFragmentFiles) tempHandle;
}
- TempJavaEventFragmentFiles eventFragmentFiles = null;
- if (tempJavaFragmentFiles instanceof TempJavaEventFragmentFiles) {
- eventFragmentFiles = (TempJavaEventFragmentFiles) tempJavaFragmentFiles;
+ TempJavaEventFragmentFiles eventHandle = null;
+ if (tempHandle instanceof TempJavaEventFragmentFiles) {
+ eventHandle = (TempJavaEventFragmentFiles) tempHandle;
}
- if ((generatedTempFiles & ATTRIBUTES_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getAttributesTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & GETTER_FOR_INTERFACE_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getGetterInterfaceTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & SETTER_FOR_INTERFACE_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getSetterInterfaceTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & GETTER_FOR_CLASS_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getGetterImplTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & SETTER_FOR_CLASS_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getSetterImplTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & ADD_TO_LIST_INTERFACE_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getAddToListInterfaceTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & ADD_TO_LIST_IMPL_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getAddToListImplTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & FILTER_CONTENT_MATCH_FOR_LEAF_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getSubtreeFilteringForLeafTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & FILTER_CONTENT_MATCH_FOR_LEAF_LIST_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getGetSubtreeFilteringForListTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & FILTER_CONTENT_MATCH_FOR_NODES_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles
- .getGetSubtreeFilteringForChildNodeTempFileHandle(), absolutePath);
- } else if ((generatedTempFiles & EDIT_CONTENT_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getEditContentTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & LEAF_IDENTIFIER_ENUM_ATTRIBUTES_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getLeafIdAttributeTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & CONSTRUCTOR_IMPL_MASK) != 0) {
- if (beanFragmentFiles == null) {
- throw new TranslatorException("Required constructor info is missing.");
+ if ((tempFiles & ATTRIBUTES_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getAttributesTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & GETTER_FOR_INTERFACE_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getGetterInterfaceTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & SETTER_FOR_INTERFACE_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getSetterInterfaceTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & GETTER_FOR_CLASS_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getGetterImplTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & SETTER_FOR_CLASS_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getSetterImplTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & ADD_TO_LIST_INTERFACE_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getAddToListInterfaceTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & ADD_TO_LIST_IMPL_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getAddToListImplTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & FILTER_CONTENT_MATCH_FOR_LEAF_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getSubtreeFilteringForLeafTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & FILTER_CONTENT_MATCH_FOR_LEAF_LIST_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getGetSubtreeFilteringForListTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & FILTER_CONTENT_MATCH_FOR_NODES_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getGetSubtreeFilteringForChildNodeTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & EDIT_CONTENT_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getEditContentTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & LEAF_IDENTIFIER_ENUM_ATTRIBUTES_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getLeafIdAttributeTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & CONSTRUCTOR_IMPL_MASK) != 0) {
+ if (beanHandle == null) {
+ throw new TranslatorException("Required constructor info is" +
+ " missing.");
}
- return beanFragmentFiles
- .getTemporaryDataFromFileHandle(beanFragmentFiles.getConstructorImplTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & HASH_CODE_IMPL_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getHashCodeImplTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & EQUALS_IMPL_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getEqualsImplTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & TO_STRING_IMPL_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getToStringImplTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & OF_STRING_IMPL_MASK) != 0) {
- if (typeFragmentFiles == null) {
- throw new TranslatorException("Required of string implementation info is missing.");
+ return beanHandle.getTemporaryDataFromFileHandle(
+ beanHandle.getConstructorImplTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & HASH_CODE_IMPL_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getHashCodeImplTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & EQUALS_IMPL_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getEqualsImplTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & TO_STRING_IMPL_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getToStringImplTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & OF_STRING_IMPL_MASK) != 0) {
+ if (typeHandle == null) {
+ throw new TranslatorException("Required of string implementation" +
+ " info is missing.");
}
- return typeFragmentFiles
- .getTemporaryDataFromFileHandle(typeFragmentFiles.getOfStringImplTempFileHandle(), absolutePath);
- } else if ((generatedTempFiles & CONSTRUCTOR_FOR_TYPE_MASK) != 0) {
- if (typeFragmentFiles == null) {
- throw new TranslatorException("Required constructor implementation info is missing.");
+ return typeHandle.getTemporaryDataFromFileHandle(
+ typeHandle.getOfStringImplTempFileHandle(), path);
+ }
+ if ((tempFiles & CONSTRUCTOR_FOR_TYPE_MASK) != 0) {
+ if (typeHandle == null) {
+ throw new TranslatorException("Required constructor implementation" +
+ " info is missing.");
}
- return typeFragmentFiles
- .getTemporaryDataFromFileHandle(typeFragmentFiles.getConstructorForTypeTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & FROM_STRING_IMPL_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getFromStringImplTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & ENUM_IMPL_MASK) != 0) {
- if (!(tempJavaFragmentFiles instanceof TempJavaEnumerationFragmentFiles)) {
+ return typeHandle.getTemporaryDataFromFileHandle(
+ typeHandle.getConstructorForTypeTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & FROM_STRING_IMPL_MASK) != 0) {
+ return tempHandle.getTemporaryDataFromFileHandle(
+ tempHandle.getFromStringImplTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & ENUM_IMPL_MASK) != 0) {
+ if (!(tempHandle instanceof TempJavaEnumerationFragmentFiles)) {
throw new TranslatorException("Required enum info is missing.");
}
- TempJavaEnumerationFragmentFiles enumFragmentFiles =
- (TempJavaEnumerationFragmentFiles) tempJavaFragmentFiles;
- return enumFragmentFiles
- .getTemporaryDataFromFileHandle(enumFragmentFiles.getEnumClassTempFileHandle(), absolutePath);
- } else if ((generatedTempFiles & RPC_INTERFACE_MASK) != 0) {
- if (serviceFragmentFiles == null) {
- throw new TranslatorException("Required rpc interface info is missing.");
+ TempJavaEnumerationFragmentFiles enumHandle =
+ (TempJavaEnumerationFragmentFiles) tempHandle;
+ return enumHandle.getTemporaryDataFromFileHandle(
+ enumHandle.getEnumClassTempFileHandle(), path);
+ }
+ if ((tempFiles & RPC_INTERFACE_MASK) != 0) {
+ if (serviceHandle == null) {
+ throw new TranslatorException("Required rpc interface info is" +
+ " missing.");
}
- return serviceFragmentFiles
- .getTemporaryDataFromFileHandle(serviceFragmentFiles.getRpcInterfaceTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & RPC_IMPL_MASK) != 0) {
- if (serviceFragmentFiles == null) {
- throw new TranslatorException("Required rpc implementation info is missing.");
+ return serviceHandle.getTemporaryDataFromFileHandle(
+ serviceHandle.getRpcInterfaceTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & EVENT_ENUM_MASK) != 0) {
+ if (eventHandle == null) {
+ throw new TranslatorException(
+ "Required event enum implementation info is missing.");
}
- return serviceFragmentFiles
- .getTemporaryDataFromFileHandle(serviceFragmentFiles.getRpcImplTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & EVENT_ENUM_MASK) != 0) {
- if (eventFragmentFiles == null) {
- throw new TranslatorException("Required event enum implementation info is missing.");
+ return eventHandle.getTemporaryDataFromFileHandle(
+ eventHandle.getEventEnumTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & EVENT_METHOD_MASK) != 0) {
+ if (eventHandle == null) {
+ throw new TranslatorException(
+ "Required event method implementation info is missing.");
}
- return eventFragmentFiles
- .getTemporaryDataFromFileHandle(eventFragmentFiles.getEventEnumTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & EVENT_METHOD_MASK) != 0) {
- if (eventFragmentFiles == null) {
- throw new TranslatorException("Required event method implementation info is missing.");
+ return eventHandle.getTemporaryDataFromFileHandle(
+ eventHandle.getEventMethodTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & EVENT_SUBJECT_GETTER_MASK) != 0) {
+ if (eventHandle == null) {
+ throw new TranslatorException(
+ "Required event subject getter implementation info is" +
+ " missing.");
}
- return eventFragmentFiles
- .getTemporaryDataFromFileHandle(eventFragmentFiles.getEventMethodTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & EVENT_SUBJECT_GETTER_MASK) != 0) {
- if (eventFragmentFiles == null) {
- throw new TranslatorException("Required event subject getter implementation info is missing.");
+ return eventHandle.getTemporaryDataFromFileHandle(
+ eventHandle.getEventSubjectGetterTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & EVENT_SUBJECT_SETTER_MASK) != 0) {
+ if (eventHandle == null) {
+ throw new TranslatorException(
+ "Required event subject setter implementation info is" +
+ " missing.");
}
- return eventFragmentFiles
- .getTemporaryDataFromFileHandle(eventFragmentFiles.getEventSubjectGetterTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & EVENT_SUBJECT_SETTER_MASK) != 0) {
- if (eventFragmentFiles == null) {
- throw new TranslatorException("Required event subject setter implementation info is missing.");
+ return eventHandle.getTemporaryDataFromFileHandle(
+ eventHandle.getEventSubjectSetterTempFileHandle(),
+ path);
+ }
+ if ((tempFiles & EVENT_SUBJECT_ATTRIBUTE_MASK) != 0) {
+ if (eventHandle == null) {
+ throw new TranslatorException(
+ "Required event subject attribute implementation info is" +
+ " missing.");
}
- return eventFragmentFiles
- .getTemporaryDataFromFileHandle(eventFragmentFiles.getEventSubjectSetterTempFileHandle(),
- absolutePath);
- } else if ((generatedTempFiles & EVENT_SUBJECT_ATTRIBUTE_MASK) != 0) {
- if (eventFragmentFiles == null) {
- throw new TranslatorException("Required event subject attribute implementation info is missing.");
- }
- return eventFragmentFiles
- .getTemporaryDataFromFileHandle(eventFragmentFiles.getEventSubjectAttributeTempFileHandle(),
- absolutePath);
+ return eventHandle.getTemporaryDataFromFileHandle(
+ eventHandle.getEventSubjectAttributeTempFileHandle(),
+ path);
}
return null;
}
@@ -322,64 +350,67 @@
/**
* Initiates generation of file based on generated file type.
*
- * @param file generated file
- * @param className generated file class name
- * @param genType generated file type
- * @param imports imports for the file
- * @param pkg generated file package
- * @param pluginConfig plugin configurations
+ * @param file generated file
+ * @param className generated file class name
+ * @param genType generated file type
+ * @param imports imports for the file
+ * @param pkg generated file package
* @throws IOException when fails to generate a file
*/
- public static void initiateJavaFileGeneration(File file, String className, int genType, List<String> imports,
- String pkg, YangPluginConfig pluginConfig)
+ public static void initiateJavaFileGeneration(File file, String className,
+ int genType, List<String> imports,
+ String pkg)
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.");
+ ERROR_MSG_FOR_GEN_CODE);
}
boolean isFileCreated;
try {
isFileCreated = file.createNewFile();
if (!isFileCreated) {
- throw new IOException("Failed to create " + file.getName() + " class file.");
+ throw new IOException("Failed to create " + file.getName() +
+ " class file.");
}
- appendContents(file, className, genType, imports, pkg, pluginConfig);
+ appendContents(file, className, genType, imports, pkg);
} catch (IOException e) {
- throw new IOException("Failed to append contents in " + file.getName() + " class file.");
+ throw new IOException("Failed to append contents in " + file.getName() +
+ " class file.");
}
}
/**
* Initiates generation of file based on generated file type.
*
- * @param file generated file
- * @param genType generated file type
- * @param imports imports for the file
- * @param curNode current YANG node
- * @param className class name
+ * @param file generated file
+ * @param genType generated file type
+ * @param imports imports for the file
+ * @param curNode current YANG node
+ * @param name class name
* @throws IOException when fails to generate a file
*/
- public static void initiateJavaFileGeneration(File file, int genType, List<String> imports,
- YangNode curNode, String className)
+ public static void initiateJavaFileGeneration(File file, int genType,
+ List<String> imports,
+ YangNode curNode, String name)
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.");
+ ERROR_MSG_FOR_GEN_CODE);
}
boolean isFileCreated;
try {
isFileCreated = file.createNewFile();
if (!isFileCreated) {
- throw new IOException("Failed to create " + file.getName() + " class file.");
+ throw new IOException("Failed to create " + file.getName() +
+ " class file.");
}
- appendContents(file, genType, imports, curNode, className);
+ appendContents(file, genType, imports, curNode, name);
} catch (IOException e) {
- throw new IOException("Failed to append contents in " + file.getName() + " class file.");
+ throw new IOException("Failed to append contents in " + file.getName() +
+ " class file.");
}
}
@@ -393,20 +424,24 @@
* @param className class name
* @throws IOException when fails to do IO operations
*/
- private static void appendContents(File file, int genType, List<String> importsList, YangNode curNode,
+ private static void appendContents(File file, int genType,
+ List<String> importsList, YangNode curNode,
String className)
throws IOException {
- JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
+ JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode)
+ .getJavaFileInfo();
String name = javaFileInfo.getJavaName();
- String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
+ String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo
+ .getPackageFilePath();
String pkgString;
- if (genType == GENERATE_EVENT_CLASS
- || genType == GENERATE_EVENT_LISTENER_INTERFACE
- || genType == GENERATE_EVENT_SUBJECT_CLASS) {
- pkgString = parsePackageString((path + PERIOD + name).toLowerCase(), importsList);
+ if (genType == GENERATE_EVENT_CLASS ||
+ genType == GENERATE_EVENT_LISTENER_INTERFACE ||
+ genType == GENERATE_EVENT_SUBJECT_CLASS) {
+ pkgString = parsePackageString((path + PERIOD + name)
+ .toLowerCase(), importsList);
} else {
pkgString = parsePackageString(path, importsList);
}
@@ -459,11 +494,10 @@
* @param genType generated file type
* @param importsList list of java imports
* @param pkg generated file package
- * @param pluginConfig plugin configurations
* @throws IOException when fails to append contents
*/
- private static void appendContents(File file, String fileName, int genType, List<String> importsList, String pkg,
- YangPluginConfig pluginConfig)
+ private static void appendContents(File file, String fileName, int genType,
+ List<String> importsList, String pkg)
throws IOException {
String pkgString = parsePackageString(pkg, importsList);
@@ -471,15 +505,15 @@
switch (genType) {
case GENERATE_TYPEDEF_CLASS:
appendHeaderContents(file, pkgString, importsList);
- write(file, fileName, genType, IMPL_CLASS, pluginConfig);
+ write(file, fileName, genType, IMPL_CLASS);
break;
case GENERATE_UNION_CLASS:
appendHeaderContents(file, pkgString, importsList);
- write(file, fileName, genType, IMPL_CLASS, pluginConfig);
+ write(file, fileName, genType, IMPL_CLASS);
break;
case GENERATE_ENUM_CLASS:
appendHeaderContents(file, pkgString, importsList);
- write(file, fileName, genType, ENUM_CLASS, pluginConfig);
+ write(file, fileName, genType, ENUM_CLASS);
break;
default:
break;
@@ -493,30 +527,32 @@
* @param importsList list of imports
* @return package string
*/
- private static String parsePackageString(String javaPkg, List<String> importsList) {
+ private static String parsePackageString(String javaPkg,
+ List<String> importsList) {
javaPkg = parsePkg(getJavaPackageFromPackagePath(javaPkg));
if (importsList != null) {
if (!importsList.isEmpty()) {
- return PACKAGE + SPACE + javaPkg + SEMI_COLAN + NEW_LINE;
+ return PACKAGE + SPACE + javaPkg + SEMI_COLON + NEW_LINE;
} else {
- return PACKAGE + SPACE + javaPkg + SEMI_COLAN;
+ return PACKAGE + SPACE + javaPkg + SEMI_COLON;
}
} else {
- return PACKAGE + SPACE + javaPkg + SEMI_COLAN;
+ return PACKAGE + SPACE + javaPkg + SEMI_COLON;
}
}
/**
- * Appends other contents to interface, impl and typedef classes. for example : ONOS copyright, imports and
- * package.
+ * Appends other contents to interface, impl and typedef classes.
+ * for example : ONOS copyright, imports and package.
*
* @param file generated file
* @param pkg generated package
* @param importsList list of imports
* @throws IOException when fails to append contents
*/
- private static void appendHeaderContents(File file, String pkg, List<String> importsList)
+ private static void appendHeaderContents(File file, String pkg,
+ List<String> importsList)
throws IOException {
insertDataIntoJavaFile(file, CopyrightHeader.getCopyrightHeader());
@@ -545,28 +581,28 @@
* @param fileName file name
* @throws IOException when fails to write into a file
*/
- private static void write(File file, int genType, JavaDocType javaDocType, YangNode curNode, String fileName)
+ private static void write(File file, int genType, JavaDocType javaDocType,
+ YangNode curNode, String fileName)
throws IOException {
-
- YangPluginConfig pluginConfig = ((JavaFileInfoContainer) curNode).getJavaFileInfo().getPluginConfig();
- insertDataIntoJavaFile(file, getJavaDoc(javaDocType, fileName, false, pluginConfig, null));
- insertDataIntoJavaFile(file, generateClassDefinition(genType, fileName, curNode));
+ insertDataIntoJavaFile(file, getJavaDoc(javaDocType, fileName,
+ false, null));
+ insertDataIntoJavaFile(file, generateClassDefinition(genType,
+ fileName, curNode));
}
/**
* Writes data to the specific generated file.
*
- * @param file generated file
- * @param fileName file name
- * @param genType generated file type
- * @param javaDocType java doc type
- * @param pluginConfig plugin configurations
+ * @param file generated file
+ * @param fileName file name
+ * @param genType generated file type
+ * @param javaDocType java doc type
* @throws IOException when fails to write into a file
*/
- private static void write(File file, String fileName, int genType, JavaDocType javaDocType,
- YangPluginConfig pluginConfig)
- throws IOException {
- insertDataIntoJavaFile(file, getJavaDoc(javaDocType, fileName, false, pluginConfig, null));
+ private static void write(File file, String fileName, int genType,
+ JavaDocType javaDocType) throws IOException {
+ insertDataIntoJavaFile(file, getJavaDoc(javaDocType, fileName, false,
+ null));
insertDataIntoJavaFile(file, generateClassDefinition(genType, fileName));
}
@@ -605,12 +641,14 @@
}
/*Validates the set for duplicate names of node identifiers.*/
- private static boolean validateNodeIdentifierInSet(YangNodeIdentifier nodeId, List<YangAtomicPath> targets) {
+ private static boolean validateNodeIdentifierInSet(
+ YangNodeIdentifier nodeId, List<YangAtomicPath> targets) {
boolean isPresent = true;
for (YangAtomicPath target : targets) {
if (target.getNodeIdentifier().getName().equals(nodeId.getName())) {
if (target.getNodeIdentifier().getPrefix() != null) {
- isPresent = !target.getNodeIdentifier().getPrefix().equals(nodeId.getPrefix());
+ isPresent = !target.getNodeIdentifier().getPrefix()
+ .equals(nodeId.getPrefix());
} else {
isPresent = nodeId.getPrefix() != null;
}
@@ -626,33 +664,37 @@
*/
public static void addResolvedAugmentedDataNodeImports(YangNode parent) {
List<YangAtomicPath> targets = getSetOfNodeIdentifiers(parent);
- TempJavaCodeFragmentFiles tempJavaCodeFragmentFiles = ((JavaCodeGeneratorInfo) parent)
+ TempJavaCodeFragmentFiles tempJavaCodeFragmentFiles = (
+ (JavaCodeGeneratorInfo) parent)
.getTempJavaCodeFragmentFiles();
YangNode augmentedNode;
- JavaQualifiedTypeInfoTranslator javaQualifiedTypeInfo;
+ JavaQualifiedTypeInfoTranslator typeInfo;
String curNodeName;
- JavaFileInfoTranslator parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo();
+ JavaFileInfoTranslator parentInfo = ((JavaFileInfoContainer) parent)
+ .getJavaFileInfo();
for (YangAtomicPath nodeId : targets) {
augmentedNode = nodeId.getResolvedNode().getParent();
- if (((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName() != null) {
- curNodeName = ((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName();
- } else {
- curNodeName = getCapitalCase(getCamelCase(augmentedNode.getName(), parentInfo.getPluginConfig()
- .getConflictResolver()));
- }
+ curNodeName = getCurNodeName(augmentedNode, parentInfo
+ .getPluginConfig());
- javaQualifiedTypeInfo = getQualifiedTypeInfoOfAugmentedNode(augmentedNode, getCapitalCase(curNodeName),
- parentInfo.getPluginConfig());
- tempJavaCodeFragmentFiles.getServiceTempFiles().getJavaImportData().addImportInfo(javaQualifiedTypeInfo,
- parentInfo.getJavaName(), parentInfo.getPackage());
- if (augmentedNode instanceof YangModule || augmentedNode instanceof YangSubModule) {
- javaQualifiedTypeInfo = getQualifiedTypeInfoOfAugmentedNode(augmentedNode,
- getCapitalCase(curNodeName) + OP_PARAM,
- parentInfo.getPluginConfig());
- tempJavaCodeFragmentFiles.getServiceTempFiles().getJavaImportData().addImportInfo(javaQualifiedTypeInfo,
- parentInfo.getJavaName(), parentInfo.getPackage());
- }
+ typeInfo =
+ getQTypeInfoOfNode(
+ augmentedNode, curNodeName + OP_PARAM,
+ parentInfo.getPluginConfig());
+ tempJavaCodeFragmentFiles.getServiceTempFiles()
+ .getJavaImportData().addImportInfo(
+ typeInfo, parentInfo.getJavaName(),
+ parentInfo.getPackage());
+ typeInfo =
+ getQTypeInfoOfNode(
+ augmentedNode, curNodeName, parentInfo
+ .getPluginConfig());
+
+ tempJavaCodeFragmentFiles.getServiceTempFiles()
+ .getJavaImportData().addImportInfo(
+ typeInfo, parentInfo.getJavaName(),
+ parentInfo.getPackage());
}
}
@@ -664,13 +706,14 @@
* @param pluginConfig plugin configurations
* @return qualified type info of augmented node
*/
- private static JavaQualifiedTypeInfoTranslator getQualifiedTypeInfoOfAugmentedNode(YangNode augmentedNode,
- String curNodeName, YangPluginConfig pluginConfig) {
- JavaQualifiedTypeInfoTranslator javaQualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(augmentedNode,
- getCapitalCase(curNodeName));
+ private static JavaQualifiedTypeInfoTranslator getQTypeInfoOfNode(
+ YangNode augmentedNode, String curNodeName, YangPluginConfig pluginConfig) {
+ JavaQualifiedTypeInfoTranslator javaQualifiedTypeInfo =
+ getQualifiedTypeInfoOfCurNode(augmentedNode,
+ curNodeName);
if (javaQualifiedTypeInfo.getPkgInfo() == null) {
javaQualifiedTypeInfo.setPkgInfo(getNodesPackage(augmentedNode,
- pluginConfig));
+ pluginConfig));
}
return javaQualifiedTypeInfo;
}
@@ -682,9 +725,11 @@
* @param importData import data
* @return true if present in imports
*/
- private static boolean validateQualifiedInfoOfAugmentedNode(JavaQualifiedTypeInfoTranslator javaQualifiedTypeInfo,
- JavaImportData importData) {
- for (JavaQualifiedTypeInfoTranslator curImportInfo : importData.getImportSet()) {
+ private static boolean validateQualifiedInfoOfAugmentedNode(
+ JavaQualifiedTypeInfoTranslator javaQualifiedTypeInfo,
+ JavaImportData importData) {
+ for (JavaQualifiedTypeInfoTranslator curImportInfo : importData
+ .getImportSet()) {
if (curImportInfo.getClassInfo()
.contentEquals(javaQualifiedTypeInfo.getClassInfo())) {
return curImportInfo.getPkgInfo()
@@ -701,46 +746,42 @@
* @param parent parent node
* @return augmented class name for data methods in manager and service
*/
- static String getAugmentedClassNameForDataMethods(YangNode augmentedNode, YangNode parent) {
+ static String getAugmentedClassNameForDataMethods(YangNode augmentedNode,
+ YangNode parent) {
String curNodeName;
JavaQualifiedTypeInfoTranslator javaQualifiedTypeInfo;
- JavaFileInfoTranslator parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo();
+ JavaFileInfoTranslator parentInfo = ((JavaFileInfoContainer) parent)
+ .getJavaFileInfo();
YangPluginConfig pluginConfig = parentInfo.getPluginConfig();
- TempJavaServiceFragmentFiles tempJavaServiceFragmentFiles = ((JavaCodeGeneratorInfo) parent)
- .getTempJavaCodeFragmentFiles().getServiceTempFiles();
- if (((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName() != null) {
- curNodeName = ((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName();
- } else {
- curNodeName = getCapitalCase(getCamelCase(augmentedNode.getName(), pluginConfig
- .getConflictResolver()));
- }
+ TempJavaServiceFragmentFiles tempJavaServiceFragmentFiles = (
+ (JavaCodeGeneratorInfo) parent).getTempJavaCodeFragmentFiles()
+ .getServiceTempFiles();
+ curNodeName = getCurNodeName(augmentedNode, pluginConfig);
- javaQualifiedTypeInfo = getQualifiedTypeInfoOfAugmentedNode(augmentedNode,
- getCapitalCase(curNodeName),
- parentInfo.getPluginConfig());
+ javaQualifiedTypeInfo = getQTypeInfoOfNode(augmentedNode,
+ getCapitalCase(curNodeName),
+ parentInfo.getPluginConfig());
if (validateQualifiedInfoOfAugmentedNode(javaQualifiedTypeInfo,
- tempJavaServiceFragmentFiles.getJavaImportData())) {
+ tempJavaServiceFragmentFiles
+ .getJavaImportData())) {
return javaQualifiedTypeInfo.getClassInfo();
} else {
- return javaQualifiedTypeInfo.getPkgInfo() + PERIOD + javaQualifiedTypeInfo.getClassInfo();
+ return javaQualifiedTypeInfo.getPkgInfo() + PERIOD +
+ javaQualifiedTypeInfo.getClassInfo();
}
}
- /**
- * Returns parent node name for data methods in manager and service.
- *
- * @param parent parent node
- * @param pluginConfig plugin configurations
- * @return parent node name for data methods in manager and service
- */
- static String getParentNodeNameForDataMethods(YangNode parent, YangPluginConfig pluginConfig) {
- JavaFileInfoTranslator parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo();
- if (parentInfo.getJavaName() != null) {
- return getCapitalCase(parentInfo.getJavaName());
+ //Returns class name of current node
+ static String getCurNodeName(YangNode node, YangPluginConfig config) {
+ if (((JavaFileInfoContainer) node).getJavaFileInfo()
+ .getJavaName() != null) {
+ return getCapitalCase(((JavaFileInfoContainer) node)
+ .getJavaFileInfo()
+ .getJavaName());
+ } else {
+ return getCapitalCase(getCamelCase(node.getName(), config
+ .getConflictResolver()));
}
- return getCapitalCase(getCamelCase(parent.getName(), pluginConfig
- .getConflictResolver()));
-
}
/**
@@ -750,7 +791,8 @@
* @param attributeType effective type
* @return name of the effective type
*/
- public static String isTypeNameLeafref(String attributeName, YangType<?> attributeType) {
+ public static String isTypeNameLeafref(String attributeName,
+ YangType<?> attributeType) {
if (attributeName.equalsIgnoreCase(LEAFREF)) {
return attributeType.getDataTypeName();
}
@@ -765,10 +807,10 @@
*/
public static YangType isTypeLeafref(YangType<?> attributeType) {
if (attributeType.getDataType() == YangDataTypes.LEAFREF) {
- YangLeafRef leafRef = (YangLeafRef) attributeType.getDataTypeExtendedInfo();
+ YangLeafRef leafRef = (YangLeafRef) attributeType
+ .getDataTypeExtendedInfo();
return leafRef.getEffectiveDataType();
}
return attributeType;
}
-
-}
+}
\ No newline at end of file
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 b77a158..5bf97f3 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
@@ -16,6 +16,13 @@
package org.onosproject.yangutils.translator.tojava.utils;
+import org.onosproject.yangutils.datamodel.YangNode;
+import org.onosproject.yangutils.datamodel.YangRevision;
+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 java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
@@ -25,15 +32,8 @@
import java.util.Date;
import java.util.List;
-import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.datamodel.YangRevision;
-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;
+import static org.onosproject.yangutils.utils.UtilConstants.COLON;
import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT_BASE_PKG;
import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.HYPHEN;
@@ -73,26 +73,26 @@
/**
* Returns the root package string.
*
- * @param version YANG version
- * @param nameSpace name space of the module
- * @param revision revision of the module defined
- * @param conflictResolver object of YANG to java naming conflict util
+ * @param version YANG version
+ * @param nameSpace name space of the module
+ * @param revision revision of the module defined
+ * @param resolver object of YANG to java naming conflict util
* @return the root package string
*/
- public static String getRootPackage(byte version, String nameSpace, YangRevision revision,
- YangToJavaNamingConflictUtil conflictResolver) {
+ public static String getRootPackage(byte version, String nameSpace,
+ YangRevision revision,
+ YangToJavaNamingConflictUtil resolver) {
- String pkg;
- pkg = DEFAULT_BASE_PKG;
- pkg = pkg + PERIOD;
- pkg = pkg + getYangVersion(version);
- pkg = pkg + PERIOD;
- pkg = pkg + getPkgFromNameSpace(nameSpace, conflictResolver);
+ StringBuilder pkg = new StringBuilder(DEFAULT_BASE_PKG)
+ .append(PERIOD)
+ .append(getYangVersion(version))
+ .append(PERIOD)
+ .append(getPkgFromNameSpace(nameSpace, resolver));
if (revision != null) {
- pkg = pkg + PERIOD;
- pkg = pkg + getYangRevisionStr(revision.getRevDate());
+ pkg.append(PERIOD)
+ .append(getYangRevisionStr(revision.getRevDate()));
}
- return pkg.toLowerCase();
+ return pkg.toString().toLowerCase();
}
@@ -109,19 +109,21 @@
/**
* Returns package name from name space.
*
- * @param nameSpace name space of YANG module
- * @param conflictResolver object of YANG to java naming conflict util
+ * @param nameSpace name space of YANG module
+ * @param resolver object of YANG to java naming conflict util
* @return java package name as per java rules
*/
- private static String getPkgFromNameSpace(String nameSpace, YangToJavaNamingConflictUtil conflictResolver) {
+ private static String getPkgFromNameSpace(String nameSpace,
+ YangToJavaNamingConflictUtil resolver) {
ArrayList<String> pkgArr = new ArrayList<>();
nameSpace = nameSpace.replace(QUOTES, EMPTY_STRING);
- String properNameSpace = nameSpace.replaceAll(REGEX_WITH_ALL_SPECIAL_CHAR, COLAN);
- String[] nameSpaceArr = properNameSpace.split(COLAN);
+ String properNameSpace = nameSpace.replaceAll
+ (REGEX_WITH_ALL_SPECIAL_CHAR, COLON);
+ String[] nameSpaceArr = properNameSpace.split(COLON);
Collections.addAll(pkgArr, nameSpaceArr);
- return getPkgFrmArr(pkgArr, conflictResolver);
+ return getPkgFrmArr(pkgArr, resolver);
}
/**
@@ -135,17 +137,17 @@
String dateInString = sdf.format(date);
String[] revisionArr = dateInString.split(HYPHEN);
- String rev = REVISION_PREFIX;
- rev = rev + revisionArr[INDEX_ZERO];
+ StringBuilder rev = new StringBuilder(REVISION_PREFIX)
+ .append(revisionArr[INDEX_ZERO]);
for (int i = INDEX_ONE; i < revisionArr.length; i++) {
Integer val = Integer.parseInt(revisionArr[i]);
if (val < VALUE_CHECK) {
- rev = rev + ZERO;
+ rev.append(ZERO);
}
- rev = rev + val;
+ rev.append(val);
}
- return rev;
+ return rev.toString();
}
/**
@@ -157,7 +159,7 @@
*/
private static String getPkgFrmArr(ArrayList<String> pkgArr, YangToJavaNamingConflictUtil conflictResolver) {
- String pkg = EMPTY_STRING;
+ StringBuilder pkg = new StringBuilder();
int size = pkgArr.size();
int i = 0;
for (String member : pkgArr) {
@@ -166,13 +168,13 @@
String prefix = getPrefixForIdentifier(conflictResolver);
member = prefix + member;
}
- pkg = pkg + member;
+ pkg.append(member);
if (i != size - 1) {
- pkg = pkg + PERIOD;
+ pkg.append(PERIOD);
}
i++;
}
- return pkg;
+ return pkg.toString();
}
/**
@@ -183,9 +185,9 @@
*/
public static String getEnumJavaAttribute(String name) {
- name = name.replaceAll(REGEX_WITH_ALL_SPECIAL_CHAR, COLAN);
- String[] strArray = name.split(COLAN);
- String output = EMPTY_STRING;
+ name = name.replaceAll(REGEX_WITH_ALL_SPECIAL_CHAR, COLON);
+ String[] strArray = name.split(COLON);
+ StringBuilder output = new StringBuilder();
if (strArray[0].isEmpty()) {
List<String> stringArrangement = new ArrayList<>();
stringArrangement.addAll(Arrays.asList(strArray).subList(1, strArray.length));
@@ -193,11 +195,11 @@
}
for (int i = 0; i < strArray.length; i++) {
if (i > 0 && i < strArray.length) {
- output = output + UNDER_SCORE;
+ output.append(UNDER_SCORE);
}
- output = output + strArray[i];
+ output.append(strArray[i]);
}
- return output;
+ return output.toString();
}
/**
@@ -212,24 +214,28 @@
throw new TranslatorException("current node must have java file info " +
yangNode.getName() + " in " +
yangNode.getLineNumber() + " at " +
- yangNode.getCharPosition()
- + " in " + yangNode.getFileName());
+ yangNode.getCharPosition() +
+ " in " + yangNode.getFileName());
}
String pkgInfo;
- JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) yangNode).getJavaFileInfo();
- String pkg = getAbsolutePackagePath(javaFileInfo.getBaseCodeGenPath(), javaFileInfo.getPackageFilePath());
+ JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) yangNode)
+ .getJavaFileInfo();
+ String pkg = getAbsolutePackagePath(javaFileInfo.getBaseCodeGenPath(),
+ javaFileInfo.getPackageFilePath());
+ JavaFileInfoTranslator parentInfo;
if (!doesPackageExist(pkg)) {
try {
File pack = createDirectories(pkg);
YangNode parent = getParentNodeInGenCode(yangNode);
if (parent != null) {
- pkgInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo().getJavaName();
- addPackageInfo(pack, pkgInfo, getJavaPackageFromPackagePath(pkg), true,
- ((JavaFileInfoContainer) parent).getJavaFileInfo().getPluginConfig());
+ parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo();
+ pkgInfo = parentInfo.getJavaName();
+ addPackageInfo(pack, pkgInfo, getJavaPackageFromPackagePath(pkg),
+ true);
} else {
- pkgInfo = ((JavaFileInfoContainer) yangNode).getJavaFileInfo().getJavaName();
- addPackageInfo(pack, pkgInfo, getJavaPackageFromPackagePath(pkg), false,
- ((JavaFileInfoContainer) yangNode).getJavaFileInfo().getPluginConfig());
+ pkgInfo = javaFileInfo.getJavaName();
+ addPackageInfo(pack, pkgInfo, getJavaPackageFromPackagePath(pkg),
+ false);
}
} catch (IOException e) {
throw new IOException("failed to create package-info file");
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodBodyTypes.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodBodyTypes.java
new file mode 100644
index 0000000..8df3345
--- /dev/null
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodBodyTypes.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.yangutils.translator.tojava.utils;
+
+/**
+ * Represents method body types.
+ */
+enum MethodBodyTypes {
+
+ //Getter method body.
+ GETTER,
+
+ //Setter method body.
+ SETTER,
+
+ //Build method body.
+ BUILD,
+
+ //Constructor method body.
+ CONSTRUCTOR,
+
+ //Default constructor method body.
+ DEFAULT_CONSTRUCTOR,
+
+ //Hash code method body.
+ HASH_CODE,
+
+ //To string method body.
+ TO_STRING,
+
+ //Equals method body.
+ EQUALS,
+
+ //add to list method body.
+ ADD_TO_LIST,
+
+ //Augment map getter for full map.
+ AUGMENTED_MAP_GETTER,
+
+ //Augment map getter for value.
+ AUGMENTED_MAP_GET_VALUE,
+
+ //Augment map add
+ AUGMENTED_MAP_ADD,
+
+ //Manager methods
+ MANAGER_METHODS,
+
+ //Of method.
+ OF_METHOD,
+
+ //Hash code method
+ HASH_CODE_METHOD,
+
+ //Equals method.
+ EQUALS_METHOD,
+
+ //To string method
+ TO_STRING_METHOD,
+
+ //Enum method int value.
+ ENUM_METHOD_INT_VALUE,
+
+ //Enum method string value.
+ ENUM_METHOD_STRING_VALUE
+
+}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodClassTypes.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodClassTypes.java
new file mode 100644
index 0000000..0e19388
--- /dev/null
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodClassTypes.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.yangutils.translator.tojava.utils;
+
+/**
+ * Represents java method types for classes.
+ */
+enum MethodClassTypes {
+
+ //Method for interface files.
+ INTERFACE_TYPE,
+
+ //Method for implementation classes.
+ CLASS_TYPE
+}
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 583bb0a..682cbdc 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
@@ -21,75 +21,82 @@
import org.onosproject.yangutils.datamodel.YangEnum;
import org.onosproject.yangutils.datamodel.YangEnumeration;
import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.datamodel.YangType;
import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes;
-import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo;
import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.utils.io.impl.JavaDocGen;
+import java.util.LinkedHashMap;
import java.util.List;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.BINARY;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.BITS;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.BOOLEAN;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.DECIMAL64;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.EMPTY;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT16;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT32;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT64;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT8;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT16;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT32;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT64;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT8;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
+import static org.onosproject.yangutils.translator.tojava.utils.BracketType.OPEN_CLOSE_BRACKET;
+import static org.onosproject.yangutils.translator.tojava.utils.BracketType.OPEN_CLOSE_BRACKET_WITH_VALUE;
+import static org.onosproject.yangutils.translator.tojava.utils.IndentationType.EIGHT_SPACE;
+import static org.onosproject.yangutils.translator.tojava.utils.IndentationType.FOUR_SPACE;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getAugmentMapTypeString;
import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getAugmentedClassNameForDataMethods;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getParentNodeNameForDataMethods;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getCurNodeName;
import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getSetOfNodeIdentifiers;
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getEnumJavaAttribute;
-import static org.onosproject.yangutils.translator.tojava.utils.ValidatorTypeForUnionTypes.INT_TYPE_CONFLICT;
-import static org.onosproject.yangutils.translator.tojava.utils.ValidatorTypeForUnionTypes.SHORT_TYPE_CONFLICT;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.AUGMENTED_MAP_ADD;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.AUGMENTED_MAP_GETTER;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.AUGMENTED_MAP_GET_VALUE;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.GETTER;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.MANAGER_METHODS;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.SETTER;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.TO_STRING;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodClassTypes.CLASS_TYPE;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodClassTypes.INTERFACE_TYPE;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.brackets;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getCompareToString;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getGreaterThanCondition;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getIfConditionBegin;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getLesserThanCondition;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getNewInstance;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getOverRideString;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getReturnString;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.ifAndAndCondition;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.ifConditionForIntInTypeDefConstructor;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.ifEqualEqualCondition;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.methodBody;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.methodClose;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.methodSignature;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.methodSignatureClose;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.multiAttrMethodSignature;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.signatureClose;
import static org.onosproject.yangutils.utils.UtilConstants.ADD;
import static org.onosproject.yangutils.utils.UtilConstants.ADD_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.AND;
+import static org.onosproject.yangutils.utils.UtilConstants.ARRAY_LIST;
import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED;
import static org.onosproject.yangutils.utils.UtilConstants.BASE64;
-import static org.onosproject.yangutils.utils.UtilConstants.BIG_DECIMAL;
import static org.onosproject.yangutils.utils.UtilConstants.BIG_INTEGER;
import static org.onosproject.yangutils.utils.UtilConstants.BOOLEAN_DATA_TYPE;
-import static org.onosproject.yangutils.utils.UtilConstants.BOOLEAN_WRAPPER;
import static org.onosproject.yangutils.utils.UtilConstants.BUILD;
import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
-import static org.onosproject.yangutils.utils.UtilConstants.BYTE;
-import static org.onosproject.yangutils.utils.UtilConstants.BYTE_WRAPPER;
+import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_LOWER_CASE;
import static org.onosproject.yangutils.utils.UtilConstants.CASE;
-import static org.onosproject.yangutils.utils.UtilConstants.CATCH;
-import static org.onosproject.yangutils.utils.UtilConstants.CHECK_NOT_NULL_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.CLASS;
import static org.onosproject.yangutils.utils.UtilConstants.CLASS_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET;
import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS;
-import static org.onosproject.yangutils.utils.UtilConstants.COLAN;
import static org.onosproject.yangutils.utils.UtilConstants.COLON;
import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
import static org.onosproject.yangutils.utils.UtilConstants.DECODE;
import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT;
-import static org.onosproject.yangutils.utils.UtilConstants.DIAMOND_CLOSE_BRACKET;
-import static org.onosproject.yangutils.utils.UtilConstants.DIAMOND_OPEN_BRACKET;
-import static org.onosproject.yangutils.utils.UtilConstants.DOUBLE;
+import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT_CAPS;
import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.ELSE;
import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.ENUM;
import static org.onosproject.yangutils.utils.UtilConstants.EQUAL;
import static org.onosproject.yangutils.utils.UtilConstants.EQUALS_STRING;
-import static org.onosproject.yangutils.utils.UtilConstants.EXCEPTION;
-import static org.onosproject.yangutils.utils.UtilConstants.EXCEPTION_VAR;
import static org.onosproject.yangutils.utils.UtilConstants.FALSE;
import static org.onosproject.yangutils.utils.UtilConstants.FOR;
+import static org.onosproject.yangutils.utils.UtilConstants.FOR_TYPE_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_METHOD_NAME;
import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_PARAM_NAME;
@@ -103,15 +110,10 @@
import static org.onosproject.yangutils.utils.UtilConstants.INSTANCE_OF;
import static org.onosproject.yangutils.utils.UtilConstants.INT;
import static org.onosproject.yangutils.utils.UtilConstants.INTEGER_WRAPPER;
-import static org.onosproject.yangutils.utils.UtilConstants.INT_MAX_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.INT_MIN_RANGE;
import static org.onosproject.yangutils.utils.UtilConstants.IS_SELECT_LEAF;
+import static org.onosproject.yangutils.utils.UtilConstants.LEAF;
import static org.onosproject.yangutils.utils.UtilConstants.LEAF_IDENTIFIER;
-import static org.onosproject.yangutils.utils.UtilConstants.LIST;
import static org.onosproject.yangutils.utils.UtilConstants.LONG;
-import static org.onosproject.yangutils.utils.UtilConstants.LONG_MAX_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.LONG_MIN_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.LONG_WRAPPER;
import static org.onosproject.yangutils.utils.UtilConstants.MAP;
import static org.onosproject.yangutils.utils.UtilConstants.MAX_RANGE;
import static org.onosproject.yangutils.utils.UtilConstants.MIN_RANGE;
@@ -122,38 +124,27 @@
import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
import static org.onosproject.yangutils.utils.UtilConstants.OBJECT_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.OF;
-import static org.onosproject.yangutils.utils.UtilConstants.OMIT_NULL_VALUE_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.ONE;
import static org.onosproject.yangutils.utils.UtilConstants.OPEN_CURLY_BRACKET;
import static org.onosproject.yangutils.utils.UtilConstants.OPEN_PARENTHESIS;
import static org.onosproject.yangutils.utils.UtilConstants.OP_PARAM;
import static org.onosproject.yangutils.utils.UtilConstants.OTHER;
import static org.onosproject.yangutils.utils.UtilConstants.OVERRIDE;
-import static org.onosproject.yangutils.utils.UtilConstants.PARSE_BOOLEAN;
-import static org.onosproject.yangutils.utils.UtilConstants.PARSE_BYTE;
import static org.onosproject.yangutils.utils.UtilConstants.PARSE_INT;
-import static org.onosproject.yangutils.utils.UtilConstants.PARSE_LONG;
-import static org.onosproject.yangutils.utils.UtilConstants.PARSE_SHORT;
import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
import static org.onosproject.yangutils.utils.UtilConstants.PRIVATE;
import static org.onosproject.yangutils.utils.UtilConstants.PROCESS_SUBTREE_FILTERING;
import static org.onosproject.yangutils.utils.UtilConstants.PROTECTED;
import static org.onosproject.yangutils.utils.UtilConstants.PUBLIC;
-import static org.onosproject.yangutils.utils.UtilConstants.PUT;
-import static org.onosproject.yangutils.utils.UtilConstants.QUESTION_MARK;
-import static org.onosproject.yangutils.utils.UtilConstants.QUEUE;
import static org.onosproject.yangutils.utils.UtilConstants.QUOTES;
import static org.onosproject.yangutils.utils.UtilConstants.REPLACE_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.RETURN;
import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_VAR_NAME;
import static org.onosproject.yangutils.utils.UtilConstants.SCHEMA_NAME;
-import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
-import static org.onosproject.yangutils.utils.UtilConstants.SET;
+import static org.onosproject.yangutils.utils.UtilConstants.SELECT_ALL_CHILD;
+import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLON;
import static org.onosproject.yangutils.utils.UtilConstants.SET_METHOD_PREFIX;
import static org.onosproject.yangutils.utils.UtilConstants.SET_SELECT_LEAF;
-import static org.onosproject.yangutils.utils.UtilConstants.SHORT;
-import static org.onosproject.yangutils.utils.UtilConstants.SHORT_MAX_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.SHORT_MIN_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.SHORT_WRAPPER;
import static org.onosproject.yangutils.utils.UtilConstants.SINGLE_QUOTE;
import static org.onosproject.yangutils.utils.UtilConstants.SIXTEEN_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
@@ -161,28 +152,21 @@
import static org.onosproject.yangutils.utils.UtilConstants.SQUARE_BRACKETS;
import static org.onosproject.yangutils.utils.UtilConstants.STATIC;
import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
-import static org.onosproject.yangutils.utils.UtilConstants.STR_VAL;
import static org.onosproject.yangutils.utils.UtilConstants.SUFFIX_S;
import static org.onosproject.yangutils.utils.UtilConstants.SWITCH;
import static org.onosproject.yangutils.utils.UtilConstants.THIS;
import static org.onosproject.yangutils.utils.UtilConstants.TMP_VAL;
import static org.onosproject.yangutils.utils.UtilConstants.TO;
+import static org.onosproject.yangutils.utils.UtilConstants.TO_CAPS;
import static org.onosproject.yangutils.utils.UtilConstants.TRIM_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.TRUE;
-import static org.onosproject.yangutils.utils.UtilConstants.TRY;
import static org.onosproject.yangutils.utils.UtilConstants.TWELVE_SPACE_INDENTATION;
-import static org.onosproject.yangutils.utils.UtilConstants.UINT8_MAX_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.UINT8_MIN_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.UINT_MAX_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.UINT_MIN_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.ULONG_MAX_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.ULONG_MIN_RANGE;
import static org.onosproject.yangutils.utils.UtilConstants.VALIDATE_RANGE;
import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
import static org.onosproject.yangutils.utils.UtilConstants.VALUE_LEAF_SET;
import static org.onosproject.yangutils.utils.UtilConstants.VOID;
import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO;
-import static org.onosproject.yangutils.utils.UtilConstants.YANG_UTILS_TODO;
+import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO_LOWER_CASE;
import static org.onosproject.yangutils.utils.UtilConstants.ZERO;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.BUILD_METHOD;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.CONSTRUCTOR;
@@ -220,69 +204,66 @@
/**
* Returns the methods strings for builder interface.
*
- * @param name attribute name
- * @param pluginConfig plugin configurations
+ * @param name attribute name
* @return method string for builder interface
*/
- public static String parseBuilderInterfaceBuildMethodString(String name,
- YangPluginConfig pluginConfig) {
- return getJavaDoc(BUILD_METHOD, name, false, pluginConfig, null) +
+ public static String parseBuilderInterfaceBuildMethodString(String name) {
+ return getJavaDoc(BUILD_METHOD, name, false, null) +
getBuildForInterface(name);
}
/**
* Returns getter string.
*
- * @param attr attribute info
- * @param generatedJavaFiles generated java files
- * @param pluginConfig plugin configurations
+ * @param attr attribute info
+ * @param genType generated java files
* @return getter string
*/
- public static String getGetterString(JavaAttributeInfo attr,
- int generatedJavaFiles,
- YangPluginConfig pluginConfig) {
+ public static String getGetterString(JavaAttributeInfo attr, int genType) {
String returnType = getReturnType(attr);
String attributeName = attr.getAttributeName();
String appDataStructure = null;
+ StringBuilder builder = new StringBuilder();
if (attr.getCompilerAnnotation() != null) {
appDataStructure =
attr.getCompilerAnnotation().getYangAppDataStructure()
.getDataStructure().name();
}
- if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
- return generateForGetMethodWithAttribute(returnType) +
- getGetterForInterface(attributeName, returnType,
- attr.isListAttr(),
- generatedJavaFiles,
- attr.getCompilerAnnotation());
+ if (genType == GENERATE_SERVICE_AND_MANAGER) {
+ builder.append(generateForGetMethodWithAttribute(returnType))
+ .append(getGetterForInterface(
+ attributeName, returnType, attr.isListAttr(),
+ genType, attr.getCompilerAnnotation()));
+
+ return builder.toString();
}
- return getJavaDoc(GETTER_METHOD, attributeName, attr.isListAttr(),
- pluginConfig, appDataStructure) +
- getGetterForInterface(attributeName, returnType,
- attr.isListAttr(), generatedJavaFiles,
- attr.getCompilerAnnotation());
+ builder.append(getJavaDoc(GETTER_METHOD, attributeName, attr
+ .isListAttr(), appDataStructure))
+ .append(getGetterForInterface(
+ attributeName, returnType, attr.isListAttr(),
+ genType, attr.getCompilerAnnotation()));
+
+ return builder.toString();
}
/**
* Returns setter string.
*
- * @param attr attribute info
- * @param className java class name
- * @param generatedJavaFiles generated java files
- * @param pluginConfig plugin configurations
+ * @param attr attribute info
+ * @param className java class name
+ * @param genType generated java files
* @return setter string
*/
public static String getSetterString(JavaAttributeInfo attr,
- String className,
- int generatedJavaFiles,
- YangPluginConfig pluginConfig) {
+ String className, int genType) {
String attrType = getReturnType(attr);
String attributeName = attr.getAttributeName();
JavaDocGen.JavaDocType type;
- if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
+ StringBuilder builder = new StringBuilder();
+ if (genType == GENERATE_SERVICE_AND_MANAGER) {
type = MANAGER_SETTER_METHOD;
} else {
type = SETTER_METHOD;
@@ -294,23 +275,22 @@
attr.getCompilerAnnotation().getYangAppDataStructure()
.getDataStructure().name();
}
- return getJavaDoc(type, attributeName, attr.isListAttr(), pluginConfig,
- appDataStructure) +
- getSetterForInterface(attributeName, attrType, className,
- attr.isListAttr(), generatedJavaFiles,
- attr.getCompilerAnnotation());
+ builder.append(getJavaDoc(type, attributeName, attr.isListAttr(),
+ appDataStructure))
+ .append(getSetterForInterface(attributeName, attrType, className,
+ attr.isListAttr(), genType,
+ attr.getCompilerAnnotation()));
+ return builder.toString();
}
/**
* Returns constructor method string.
*
- * @param name class name
- * @param pluginConfig plugin configurations
+ * @param name class name
* @return constructor string
*/
- private static String getConstructorString(String name,
- YangPluginConfig pluginConfig) {
- return getJavaDoc(CONSTRUCTOR, name, false, pluginConfig, null);
+ private static String getConstructorString(String name) {
+ return getJavaDoc(CONSTRUCTOR, name, false, null);
}
/**
@@ -318,29 +298,15 @@
*
* @param name class name
* @param modifierType modifier type
- * @param pluginConfig plugin configurations
* @return default constructor string
*/
public static String getDefaultConstructorString(String name,
- String modifierType,
- YangPluginConfig pluginConfig) {
- return getJavaDoc(DEFAULT_CONSTRUCTOR, name, false, pluginConfig, null)
+ String modifierType) {
+ return getJavaDoc(DEFAULT_CONSTRUCTOR, name, false, null)
+ getDefaultConstructor(name, modifierType) + NEW_LINE;
}
/**
- * Returns check not null string.
- *
- * @param name attribute name
- * @return check not null string
- */
- static String getCheckNotNull(String name) {
- return EIGHT_SPACE_INDENTATION + CHECK_NOT_NULL_STRING +
- OPEN_PARENTHESIS + name + COMMA + SPACE + name +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
- }
-
- /**
* Returns build method string.
*
* @param name class name
@@ -372,52 +338,46 @@
return getGetter(attrQualifiedType, attributeName,
generatedJavaFiles);
}
- String attrParam = getListAttribute(attrQualifiedType,
- attr.getCompilerAnnotation());
+ String attrParam = StringGenerator.getListAttribute(attrQualifiedType,
+ attr.getCompilerAnnotation());
return getGetter(attrParam, attributeName, generatedJavaFiles);
}
/**
* Returns getter for attribute.
*
- * @param type return type
- * @param name attribute name
- * @param generatedJavaFiles generated java files
+ * @param type return type
+ * @param name attribute name
+ * @param genType generated java files
* @return getter for attribute
*/
- static String getGetter(String type, String name, int generatedJavaFiles) {
- String ret = parseTypeForReturnValue(type);
- if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
- return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + type + SPACE +
- GET_METHOD_PREFIX + getCapitalCase(name) +
- OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION +
- YANG_UTILS_TODO + NEW_LINE + EIGHT_SPACE_INDENTATION +
- RETURN + SPACE + ret + SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
- } else {
- return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + type + SPACE +
- name + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION +
- RETURN + SPACE + name + SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
+ static String getGetter(String type, String name, int genType) {
+ StringBuilder builder = new StringBuilder();
+ if (genType == GENERATE_SERVICE_AND_MANAGER) {
+ //Append method signature.
+ builder.append(methodSignature(getCapitalCase(name), GET,
+ PUBLIC, null, type, null,
+ CLASS_TYPE))
+ //Append method body.
+ .append(methodBody(MANAGER_METHODS, null, null,
+ EIGHT_SPACE_INDENTATION, null,
+ type, false))
+ .append(signatureClose())
+ //Append method close.
+ .append(methodClose(FOUR_SPACE));
+ return builder.toString();
}
- }
-
- /*Provides string to return for type.*/
- private static String parseTypeForReturnValue(String type) {
- switch (type) {
- case BYTE:
- case INT:
- case SHORT:
- case LONG:
- case DOUBLE:
- return "0";
- case BOOLEAN_DATA_TYPE:
- return FALSE;
- default:
- return null;
- }
+ builder.append(methodSignature(name, EMPTY_STRING,
+ PUBLIC, null, type, null,
+ CLASS_TYPE))
+ //Append method body.
+ .append(methodBody(GETTER, name, name,
+ EIGHT_SPACE_INDENTATION, null,
+ type, false))
+ .append(signatureClose())
+ //Append method close.
+ .append(methodClose(FOUR_SPACE));
+ return builder.toString();
}
/**
@@ -441,8 +401,8 @@
return getSetter(className, attributeName, attrQualifiedType,
generatedJavaFiles, isTypeNull, false);
}
- String attrParam = getListAttribute(attrQualifiedType,
- attr.getCompilerAnnotation());
+ String attrParam = StringGenerator.getListAttribute(attrQualifiedType,
+ attr.getCompilerAnnotation());
return getSetter(className, attributeName, attrParam,
generatedJavaFiles, isTypeNull, true);
}
@@ -458,45 +418,48 @@
* @return setter for attribute
*/
private static String getSetter(String className, String name, String type,
- int generatedJavaFiles,
+ int genType,
boolean isTypeNull, boolean isList) {
- if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
- return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + VOID + SPACE +
- SET_METHOD_PREFIX + getCapitalCase(name) +
- OPEN_PARENTHESIS + type + SPACE + name + CLOSE_PARENTHESIS +
- SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
- EIGHT_SPACE_INDENTATION + YANG_UTILS_TODO + NEW_LINE +
- FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
- } else if (generatedJavaFiles == GENERATE_EVENT_SUBJECT_CLASS) {
- return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + VOID + SPACE +
- name + OPEN_PARENTHESIS + type + SPACE + name +
- CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
- NEW_LINE + EIGHT_SPACE_INDENTATION + THIS + PERIOD + name +
- SPACE + EQUAL + SPACE + name + SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
- } else {
- String method = FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
- className + BUILDER + SPACE + name + OPEN_PARENTHESIS +
- type + SPACE + name + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET;
- if (!isTypeNull && !isList) {
- method = method + getValueLeafSetString(name);
- } else {
- method = method + EMPTY_STRING;
- }
- return method + NEW_LINE + EIGHT_SPACE_INDENTATION + THIS +
- PERIOD + name + SPACE + EQUAL + SPACE + name + SEMI_COLAN +
- NEW_LINE + EIGHT_SPACE_INDENTATION + RETURN + SPACE +
- THIS + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET;
+ StringBuilder builder = new StringBuilder();
+ if (genType == GENERATE_SERVICE_AND_MANAGER) {
+ //Append method signature.
+ builder.append(methodSignature(getCapitalCase(name),
+ SET_METHOD_PREFIX,
+ PUBLIC, name, VOID, type,
+ CLASS_TYPE))
+ //Append method body.
+ .append(methodBody(MANAGER_METHODS, null, null,
+ EIGHT_SPACE_INDENTATION, null, null,
+ false))
+ .append(methodClose(FOUR_SPACE));
+ return builder.toString();
}
+ if (genType == GENERATE_EVENT_SUBJECT_CLASS) {
+ builder.append(methodSignature(name, EMPTY_STRING, PUBLIC, name, VOID,
+ type, CLASS_TYPE))
- }
-
- //Returns value leaf flag setter.
- private static String getValueLeafSetString(String name) {
- return "\n getValueLeafFlags().set(LeafIdentifier." +
- name.toUpperCase() + ".getLeafIndex());";
+ //Append method body.
+ .append(methodBody(SETTER, name, name,
+ EIGHT_SPACE_INDENTATION, null, null,
+ false))
+ .append(methodClose(FOUR_SPACE));
+ return builder.toString();
+ }
+ builder.append(methodSignature(name, EMPTY_STRING,
+ PUBLIC, name, getCapitalCase(className) +
+ BUILDER, type, CLASS_TYPE));
+ if (!isTypeNull && !isList) {
+ builder.append(StringGenerator.getValueLeafSetString(name));
+ } else {
+ builder.append(EMPTY_STRING);
+ }
+ //Append method body.
+ builder.append(methodBody(SETTER, name, name,
+ EIGHT_SPACE_INDENTATION, null, null,
+ true))
+ //Append method close.
+ .append(methodClose(FOUR_SPACE));
+ return builder.toString();
}
/**
@@ -520,44 +483,32 @@
* @return setter for type def's attribute
*/
private static String getTypeDefSetter(String type, String name) {
- return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + VOID + SPACE +
- SET_METHOD_PREFIX + getCapitalCase(name) + OPEN_PARENTHESIS +
- type + SPACE + VALUE + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION +
- THIS + PERIOD + name + SPACE + EQUAL + SPACE + VALUE +
- SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET;
- }
-
- /**
- * Returns override string.
- *
- * @return override string
- */
- public static String getOverRideString() {
- return NEW_LINE + FOUR_SPACE_INDENTATION + OVERRIDE + NEW_LINE;
+ return methodSignature(getCapitalCase(name), SET_METHOD_PREFIX, PUBLIC,
+ name, VOID, type, CLASS_TYPE) +
+ methodBody(SETTER, name, name, EIGHT_SPACE_INDENTATION, null,
+ null, false) + methodClose(FOUR_SPACE);
}
/**
* Returns the getter method strings for interface file.
*
- * @param yangName name of the attribute
- * @param returnType return type of attribute
- * @param isList is list attribute
- * @param generatedJavaFiles generated java files
- * @param compilerAnnotation compiler annotation
+ * @param yangName name of the attribute
+ * @param returnType return type of attribute
+ * @param isList is list attribute
+ * @param genType generated java files
+ * @param annotation compiler annotation
* @return getter method for interface
*/
static String getGetterForInterface(String yangName, String returnType,
boolean isList,
- int generatedJavaFiles,
- YangCompilerAnnotation compilerAnnotation) {
+ int genType,
+ YangCompilerAnnotation annotation) {
if (!isList) {
return getGetterInterfaceString(returnType, yangName,
- generatedJavaFiles);
+ genType);
}
- String listAttr = getListAttribute(returnType, compilerAnnotation);
- return getGetterInterfaceString(listAttr, yangName, generatedJavaFiles);
+ String listAttr = StringGenerator.getListAttribute(returnType, annotation);
+ return getGetterInterfaceString(listAttr, yangName, genType);
}
/**
@@ -569,72 +520,60 @@
*/
private static String getGetterInterfaceString(String returnType,
String yangName,
- int generatedJavaFiles) {
- if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
- return getGetMethodWithArgument(returnType, yangName);
- } else {
- return FOUR_SPACE_INDENTATION + returnType + SPACE +
- yangName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
- SEMI_COLAN;
+ int genType) {
+ switch (genType) {
+ case GENERATE_SERVICE_AND_MANAGER:
+ return getGetMethodWithArgument(returnType, yangName);
+ default:
+ return methodSignature(yangName, EMPTY_STRING, null,
+ null, returnType, null, INTERFACE_TYPE);
}
}
/**
* Returns the setter method strings for interface file.
*
- * @param attrName name of the attribute
- * @param attrType return type of attribute
- * @param className name of the java class being generated
- * @param isList is list attribute
- * @param generatedJavaFiles generated java files
- * @param compilerAnnotation compiler annotations
+ * @param attrName name of the attribute
+ * @param attrType return type of attribute
+ * @param className name of the java class being generated
+ * @param isList is list attribute
+ * @param genType generated java files
+ * @param annotation compiler annotations
* @return setter method for interface
*/
static String getSetterForInterface(String attrName, String attrType,
String className,
- boolean isList, int generatedJavaFiles,
- YangCompilerAnnotation compilerAnnotation) {
+ boolean isList, int genType,
+ YangCompilerAnnotation annotation) {
if (!isList) {
return getSetterInterfaceString(className, attrName, attrType,
- generatedJavaFiles);
+ genType);
}
- String listAttr = getListAttribute(attrType, compilerAnnotation);
- return getSetterInterfaceString(className, attrName, listAttr,
- generatedJavaFiles);
+ String listAttr = StringGenerator.getListAttribute(attrType, annotation);
+ return getSetterInterfaceString(className, attrName, listAttr, genType);
}
/**
* Returns setter string for interface.
*
- * @param className class name
- * @param attrName attribute name
- * @param attrType attribute type
+ * @param name class name
+ * @param attrName attribute name
+ * @param attrType attribute type
* @return setter string
*/
- private static String getSetterInterfaceString(String className,
+ private static String getSetterInterfaceString(String name,
String attrName,
String attrType,
- int generatedJavaFiles) {
- if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
- return FOUR_SPACE_INDENTATION + VOID + SPACE + SET_METHOD_PREFIX +
- getCapitalCase(attrName) + OPEN_PARENTHESIS + attrType +
- OP_PARAM + SPACE + attrName + CLOSE_PARENTHESIS +
- SEMI_COLAN;
- } else {
- return FOUR_SPACE_INDENTATION + className + BUILDER + SPACE +
- attrName + OPEN_PARENTHESIS + attrType + SPACE + attrName +
- CLOSE_PARENTHESIS + SEMI_COLAN;
+ int genType) {
+ if (genType == GENERATE_SERVICE_AND_MANAGER) {
+ return methodSignature(getCapitalCase(attrName),
+ SET_METHOD_PREFIX,
+ null, attrName, VOID, attrType +
+ OP_PARAM, INTERFACE_TYPE);
}
- }
-
- /**
- * Returns list string.
- *
- * @return list string
- */
- private static String getListString() {
- return LIST + DIAMOND_OPEN_BRACKET;
+ return methodSignature(attrName, EMPTY_STRING, null,
+ attrName, name + BUILDER, attrType, INTERFACE_TYPE);
}
/**
@@ -644,13 +583,16 @@
* @return return type
*/
private static String getReturnType(JavaAttributeInfo attr) {
- String returnType = EMPTY_STRING;
+ String returnType;
+ StringBuilder builder = new StringBuilder();
if (attr.isQualifiedName() &&
attr.getImportInfo().getPkgInfo() != null) {
returnType = attr.getImportInfo().getPkgInfo() + PERIOD;
+ builder.append(returnType);
}
- returnType = returnType + attr.getImportInfo().getClassInfo();
- return returnType;
+ returnType = attr.getImportInfo().getClassInfo();
+ builder.append(returnType);
+ return builder.toString();
}
/**
@@ -660,124 +602,72 @@
* @return build method for interface
*/
static String getBuildForInterface(String yangName) {
- return FOUR_SPACE_INDENTATION + yangName + SPACE + BUILD +
- OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+ return methodSignature(BUILD, EMPTY_STRING, null, null,
+ yangName, null, INTERFACE_TYPE);
}
/**
* Returns constructor string for impl class.
*
- * @param yangName class name
- * @param pluginConfig plugin configurations
- * @param isRootNode if root node
+ * @param yangName class name
+ * @param isRootNode if root node
* @return constructor string
*/
static String getConstructorStart(String yangName,
- YangPluginConfig pluginConfig,
boolean isRootNode) {
- String javadoc = getConstructorString(yangName, pluginConfig);
+ StringBuilder builder = new StringBuilder(
+ getConstructorString(yangName));
- String returnType = getCapitalCase(DEFAULT) + yangName;
+ String name = getCapitalCase(yangName);
+ String returnType = DEFAULT_CAPS + name;
if (isRootNode) {
- returnType = yangName + OP_PARAM;
+ returnType = name + OP_PARAM;
}
- String constructor =
- FOUR_SPACE_INDENTATION + PROTECTED + SPACE + returnType +
- OPEN_PARENTHESIS + yangName + BUILDER + SPACE +
- BUILDER.toLowerCase() + OBJECT + CLOSE_PARENTHESIS +
- SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
- return javadoc + constructor;
+ builder.append(methodSignature(
+ returnType, EMPTY_STRING, PROTECTED, BUILDER_LOWER_CASE + OBJECT,
+ null, name + BUILDER, CLASS_TYPE));
+ return builder.toString();
}
/**
* Returns the constructor strings for class file.
*
- * @param attr attribute info
- * @param generatedJavaFiles generated java files
- * @param pluginConfig plugin configurations
+ * @param attr attribute info
+ * @param genType generated java files
* @return constructor for class
*/
- public static String getConstructor(JavaAttributeInfo attr,
- int generatedJavaFiles,
- YangPluginConfig pluginConfig) {
-
- String attributeName = attr.getAttributeName();
- String constructor;
-
- if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
- constructor = EIGHT_SPACE_INDENTATION + THIS + PERIOD +
- getCamelCase(attributeName,
- pluginConfig.getConflictResolver()) + SPACE +
- EQUAL + SPACE + BUILDER.toLowerCase() + OBJECT + PERIOD +
- GET_METHOD_PREFIX +
- getCapitalCase(getCamelCase(attributeName, pluginConfig
- .getConflictResolver())) + OPEN_PARENTHESIS +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
- } else {
- constructor = EIGHT_SPACE_INDENTATION + THIS + PERIOD +
- getCamelCase(attributeName,
- pluginConfig.getConflictResolver()) + SPACE +
- EQUAL + SPACE + BUILDER.toLowerCase() + OBJECT + PERIOD +
- getCamelCase(attributeName,
- pluginConfig.getConflictResolver()) +
- OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN +
- NEW_LINE;
+ public static String getConstructor(JavaAttributeInfo attr, int genType) {
+ String attrName = attr.getAttributeName();
+ String attrCaps = getCapitalCase(attrName);
+ switch (genType) {
+ case GENERATE_SERVICE_AND_MANAGER:
+ return methodBody(MethodBodyTypes.CONSTRUCTOR, attrName,
+ attrCaps, EIGHT_SPACE_INDENTATION, GET, null,
+ false);
+ default:
+ return methodBody(MethodBodyTypes.CONSTRUCTOR, attrName,
+ attrName, EIGHT_SPACE_INDENTATION, EMPTY_STRING,
+ null, false);
}
- return constructor;
}
/**
* Returns the rpc strings for service interface.
*
- * @param rpcName name of the rpc
- * @param inputName name of input
- * @param outputName name of output
- * @param pluginConfig plugin configurations
+ * @param rpcName name of the rpc
+ * @param input name of input
+ * @param output name of output
* @return rpc method string
*/
- public static String getRpcServiceMethod(String rpcName, String inputName,
- String outputName,
- YangPluginConfig pluginConfig) {
-
- rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
- if (!inputName.equals(EMPTY_STRING)) {
- inputName = inputName + SPACE + RPC_INPUT_VAR_NAME;
+ public static String getRpcServiceMethod(String rpcName, String input,
+ String output) {
+ String inputVal = EMPTY_STRING;
+ if (!input.equals(EMPTY_STRING)) {
+ inputVal = RPC_INPUT_VAR_NAME;
}
- return FOUR_SPACE_INDENTATION + outputName + SPACE + rpcName +
- OPEN_PARENTHESIS + inputName + CLOSE_PARENTHESIS + SEMI_COLAN;
- }
-
- /**
- * Returns the rpc strings for manager impl.
- *
- * @param rpcName name of the rpc
- * @param inputName name of input
- * @param outputName name of output
- * @param pluginConfig plugin configurations
- * @return rpc method string
- */
- public static String getRpcManagerMethod(String rpcName, String inputName,
- String outputName,
- YangPluginConfig pluginConfig) {
-
- rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
- if (!inputName.equals(EMPTY_STRING)) {
- inputName = inputName + SPACE + RPC_INPUT_VAR_NAME;
- }
-
- String method =
- getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
- outputName + SPACE + rpcName + OPEN_PARENTHESIS +
- inputName + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE +
- EIGHT_SPACE_INDENTATION + YANG_UTILS_TODO + NEW_LINE;
- if (!outputName.contentEquals(VOID)) {
- method += EIGHT_SPACE_INDENTATION + RETURN + SPACE +
- parseTypeForReturnValue(outputName) + SEMI_COLAN + NEW_LINE;
- }
- method += FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
-
- return method;
+ return methodSignature(rpcName, EMPTY_STRING, null,
+ inputVal, output, input, INTERFACE_TYPE) +
+ NEW_LINE;
}
/**
@@ -788,16 +678,17 @@
* @return build method string for class
*/
static String getBuild(String yangName, boolean isRootNode) {
- String type = getCapitalCase(DEFAULT) + yangName;
+ String type = DEFAULT_CAPS + yangName;
if (isRootNode) {
type = yangName + OP_PARAM;
}
- return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + yangName + SPACE +
- BUILD + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION +
- RETURN + SPACE + NEW + SPACE + type + OPEN_PARENTHESIS + THIS +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
+ return methodSignature(BUILD, EMPTY_STRING, PUBLIC, null,
+ yangName, null,
+ CLASS_TYPE) +
+ methodBody(MethodBodyTypes.BUILD, type, BUILD,
+ EIGHT_SPACE_INDENTATION, EMPTY_STRING,
+ null, false) +
+ methodClose(FOUR_SPACE);
}
/**
@@ -809,10 +700,9 @@
*/
private static String getDefaultConstructor(String name,
String modifierType) {
- return FOUR_SPACE_INDENTATION + modifierType + SPACE + name +
- OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE + FOUR_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET;
+ return methodSignature(name, EMPTY_STRING, modifierType, null,
+ null, null, CLASS_TYPE) +
+ methodClose(FOUR_SPACE);
}
/**
@@ -821,66 +711,15 @@
* @return string method's open string
*/
static String getToStringMethodOpen() {
- return getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
- STRING_DATA_TYPE + SPACE + TO + STRING_DATA_TYPE +
- OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION +
- RETURN + GOOGLE_MORE_OBJECT_METHOD_STRING + NEW_LINE;
- }
-
- /**
- * Returns whether the data type is of primitive data type.
- *
- * @param dataType data type to be checked
- * @return true, if data type can have primitive data type, false otherwise
- */
- static boolean isPrimitiveDataType(YangDataTypes dataType) {
- return dataType == INT8
- || dataType == INT16
- || dataType == INT32
- || dataType == INT64
- || dataType == UINT8
- || dataType == UINT16
- || dataType == UINT32
- || dataType == UINT64
- || dataType == DECIMAL64
- || dataType == BOOLEAN
- || dataType == EMPTY;
-
- }
-
-
- static String getIfConditionBegin(String indentation, String condition) {
- return indentation + IF + SPACE + OPEN_PARENTHESIS + condition +
- CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
- }
-
- static String getElseIfConditionBegin(String indentation,
- String condition) {
- return indentation + CLOSE_CURLY_BRACKET + SPACE + ELSE + SPACE +
- getIfConditionBegin("", condition);
- }
-
- static String getBlockEnd(String indentation) {
- return indentation + CLOSE_CURLY_BRACKET + NEW_LINE;
- }
-
- static String getCollectionIteratorForLoopBegin(String indentation,
- String loopVar,
- String collection) {
- return indentation + FOR + SPACE + OPEN_PARENTHESIS + loopVar + SPACE +
- COLAN + SPACE + collection + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE;
- }
-
- /*
- * Returns omit null value string.
- *
- * @return omit null value string
- */
- static String getOmitNullValueString() {
- return TWELVE_SPACE_INDENTATION + PERIOD + OMIT_NULL_VALUE_STRING +
- NEW_LINE;
+ String line;
+ StringBuilder builder = new StringBuilder(getOverRideString());
+ builder.append(methodSignature(TO + STRING_DATA_TYPE, EMPTY_STRING,
+ PUBLIC, null, STRING_DATA_TYPE, null,
+ CLASS_TYPE));
+ line = getReturnString(GOOGLE_MORE_OBJECT_METHOD_STRING,
+ EIGHT_SPACE_INDENTATION) + NEW_LINE;
+ builder.append(line);
+ return builder.toString();
}
/**
@@ -890,8 +729,8 @@
*/
static String getToStringMethodClose() {
return TWELVE_SPACE_INDENTATION + PERIOD + TO + STRING_DATA_TYPE +
- OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
+ brackets(OPEN_CLOSE_BRACKET, null, null) + signatureClose() +
+ methodClose(FOUR_SPACE);
}
/**
@@ -901,27 +740,23 @@
* @return to string method
*/
public static String getToStringMethod(JavaAttributeInfo attr) {
-
String attributeName = attr.getAttributeName();
- return TWELVE_SPACE_INDENTATION + PERIOD + ADD_STRING +
- OPEN_PARENTHESIS + QUOTES + attributeName + QUOTES + COMMA +
- SPACE + attributeName + CLOSE_PARENTHESIS;
+ return methodBody(TO_STRING, attributeName, null,
+ TWELVE_SPACE_INDENTATION, null, null, false);
}
/**
* Returns from string method's open string.
*
- * @param className name of the class
- * @param pluginConfig plugin configurations
+ * @param className name of the class
* @return from string method's open string
*/
- static String getFromStringMethodSignature(String className,
- YangPluginConfig pluginConfig) {
- return getJavaDoc(FROM_METHOD, className, false, pluginConfig, null) +
- FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE +
- className + SPACE + FROM_STRING_METHOD_NAME + OPEN_PARENTHESIS +
- STRING_DATA_TYPE + SPACE + FROM_STRING_PARAM_NAME +
- CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ static String getFromStringMethodSignature(String className) {
+ return getJavaDoc(FROM_METHOD, className, false, null) +
+ methodSignature(FROM_STRING_METHOD_NAME, EMPTY_STRING, PUBLIC +
+ SPACE + STATIC, FROM_STRING_PARAM_NAME,
+ className, STRING_DATA_TYPE,
+ CLASS_TYPE);
}
/**
@@ -930,126 +765,134 @@
* @return from string method's close string
*/
static String getFromStringMethodClose() {
- return EIGHT_SPACE_INDENTATION + RETURN + SPACE + NULL + SEMI_COLAN +
- NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
- NEW_LINE;
+ return getReturnString(NULL, EIGHT_SPACE_INDENTATION) +
+ signatureClose() + methodClose(FOUR_SPACE);
}
/**
* Return from string method's body string.
*
- * @param attr attribute info
- * @param fromStringAttributeInfo attribute info for the from string wrapper
- * type
+ * @param attr attribute info
+ * @param fromAttr attribute info for the from string wrapper
+ * type
* @return from string method's body string
*/
public static String getFromStringMethod(JavaAttributeInfo attr,
- JavaAttributeInfo fromStringAttributeInfo) {
+ JavaAttributeInfo fromAttr) {
- return EIGHT_SPACE_INDENTATION + getTrySubString() + NEW_LINE +
- TWELVE_SPACE_INDENTATION +
- getParsedSubString(attr, fromStringAttributeInfo) + NEW_LINE +
- TWELVE_SPACE_INDENTATION +
- getReturnOfSubString() + NEW_LINE + EIGHT_SPACE_INDENTATION +
- getCatchSubString() + NEW_LINE + EIGHT_SPACE_INDENTATION +
+ return EIGHT_SPACE_INDENTATION + StringGenerator.getTrySubString() +
+ StringGenerator.getNewLineAndSpace(TWELVE_SPACE_INDENTATION) +
+ getParsedSubString(attr, fromAttr) +
+ StringGenerator.getNewLineAndSpace(TWELVE_SPACE_INDENTATION) +
+ StringGenerator.getReturnOfSubString() +
+ StringGenerator.getNewLineAndSpace(EIGHT_SPACE_INDENTATION) +
+ StringGenerator.getCatchSubString() +
+ StringGenerator.getNewLineAndSpace(EIGHT_SPACE_INDENTATION) +
CLOSE_CURLY_BRACKET;
}
/**
- * Returns sub string with try statement for union's from string method.
- *
- * @return sub string with try statement for union's from string method
- */
- private static String getTrySubString() {
- return TRY + SPACE + OPEN_CURLY_BRACKET;
- }
-
- /**
- * Returns sub string with return statement for union's from string method.
- *
- * @return sub string with return statement for union's from string method
- */
- private static String getReturnOfSubString() {
- return RETURN + SPACE + OF + OPEN_PARENTHESIS + TMP_VAL +
- CLOSE_PARENTHESIS + SEMI_COLAN;
- }
-
- /**
- * Returns sub string with catch statement for union's from string method.
- *
- * @return sub string with catch statement for union's from string method
- */
- private static String getCatchSubString() {
- return CLOSE_CURLY_BRACKET + SPACE + CATCH + SPACE + OPEN_PARENTHESIS +
- EXCEPTION + SPACE + EXCEPTION_VAR + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET;
- }
-
- /**
* Returns sub string with parsed statement for union's from string method.
*
* @param attr attribute info
* @return sub string with parsed statement for union's from string method
*/
private static String getParsedSubString(JavaAttributeInfo attr,
- JavaAttributeInfo fromStringAttributeInfo) {
+ JavaAttributeInfo fromStringAttr) {
String targetDataType = getReturnType(attr);
- if (fromStringAttributeInfo.getAttributeType().getDataType() == BITS) {
- String lines =
- targetDataType + SPACE + TMP_VAL + SPACE + EQUAL + SPACE +
- NEW + SPACE + targetDataType + OPEN_PARENTHESIS +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
- lines += TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE +
- EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
- REPLACE_STRING + OPEN_PARENTHESIS + SINGLE_QUOTE +
- OPEN_CURLY_BRACKET + SINGLE_QUOTE + COMMA + SPACE +
- SINGLE_QUOTE + SPACE + SINGLE_QUOTE + CLOSE_PARENTHESIS +
- SEMI_COLAN + NEW_LINE;
- lines += TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE +
- EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
- REPLACE_STRING + OPEN_PARENTHESIS + SINGLE_QUOTE +
- CLOSE_CURLY_BRACKET + SINGLE_QUOTE + COMMA + SPACE +
- SINGLE_QUOTE + SPACE + SINGLE_QUOTE + CLOSE_PARENTHESIS +
- SEMI_COLAN + NEW_LINE;
- lines += TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE +
- EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
- TRIM_STRING + OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
- SEMI_COLAN + NEW_LINE;
- lines += TWELVE_SPACE_INDENTATION + STRING_DATA_TYPE +
- SQUARE_BRACKETS + SPACE + BITS_STRING_ARRAY_VAR + SPACE +
- EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
- SPLIT_STRING + OPEN_PARENTHESIS + QUOTES + COMMA + QUOTES +
- COMMA + SPACE + ZERO + CLOSE_PARENTHESIS + SEMI_COLAN +
- NEW_LINE;
- lines += TWELVE_SPACE_INDENTATION + FOR + SPACE + OPEN_PARENTHESIS +
- STRING_DATA_TYPE + SPACE + BIT_TEMP_VAR + SPACE + COLON +
- SPACE + BITS_STRING_ARRAY_VAR + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE;
- lines += SIXTEEN_SPACE_INDENTATION + BIT_TEMP_VAR + SPACE + EQUAL +
- SPACE + BIT_TEMP_VAR + PERIOD + TRIM_STRING +
- OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
- SEMI_COLAN + NEW_LINE;
- lines += SIXTEEN_SPACE_INDENTATION + TMP_VAL + PERIOD +
- SET_METHOD_PREFIX + OPEN_PARENTHESIS + INTEGER_WRAPPER +
- PERIOD + PARSE_INT + OPEN_PARENTHESIS + BIT_TEMP_VAR +
- CLOSE_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN +
- NEW_LINE;
- lines += TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
- return lines;
- } else if (attr.getAttributeType().getDataType() == BINARY) {
- return targetDataType + SPACE + TMP_VAL + SPACE + EQUAL + SPACE +
- BASE64 + PERIOD + GET_DECODER + OPEN_PARENTHESIS +
- CLOSE_PARENTHESIS + PERIOD + DECODE + OPEN_PARENTHESIS +
- FROM_STRING_PARAM_NAME + CLOSE_PARENTHESIS + SEMI_COLAN;
- } else {
- String parseFromStringMethod =
- getParseFromStringMethod(targetDataType,
- fromStringAttributeInfo
- .getAttributeType());
- return targetDataType + SPACE + TMP_VAL + SPACE + EQUAL + SPACE +
- parseFromStringMethod + OPEN_PARENTHESIS +
- FROM_STRING_PARAM_NAME + CLOSE_PARENTHESIS + SEMI_COLAN;
+ StringBuilder builder = new StringBuilder();
+ YangDataTypes types = fromStringAttr.getAttributeType()
+ .getDataType();
+ switch (types) {
+ case BITS:
+ String lines =
+ targetDataType + SPACE + TMP_VAL + SPACE + EQUAL + SPACE +
+ NEW + SPACE + targetDataType + OPEN_PARENTHESIS +
+ CLOSE_PARENTHESIS + SEMI_COLON + NEW_LINE;
+ builder.append(lines);
+ /*
+ *" valInString = valInString.replace("{", " ");\n";
+ */
+ lines = TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE +
+ EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
+ REPLACE_STRING + OPEN_PARENTHESIS + SINGLE_QUOTE +
+ OPEN_CURLY_BRACKET + SINGLE_QUOTE + COMMA + SPACE +
+ SINGLE_QUOTE + SPACE + SINGLE_QUOTE + CLOSE_PARENTHESIS +
+ SEMI_COLON + NEW_LINE;
+ builder.append(lines);
+ /*
+ *" valInString = valInString.replace({, " ");\n";
+ */
+ lines = TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE +
+ EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
+ REPLACE_STRING + OPEN_PARENTHESIS + SINGLE_QUOTE +
+ CLOSE_CURLY_BRACKET + SINGLE_QUOTE + COMMA + SPACE +
+ SINGLE_QUOTE + SPACE + SINGLE_QUOTE + CLOSE_PARENTHESIS +
+ SEMI_COLON + NEW_LINE;
+ builder.append(lines);
+ /*
+ *" valInString = valInString.trim();\n"
+ */
+ lines = TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE +
+ EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
+ TRIM_STRING + OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
+ SEMI_COLON + NEW_LINE;
+ builder.append(lines);
+ /*
+ *" String[] bitsTemp = valInString.split(",", 0);\n"
+ */
+ lines = TWELVE_SPACE_INDENTATION + STRING_DATA_TYPE +
+ SQUARE_BRACKETS + SPACE + BITS_STRING_ARRAY_VAR + SPACE +
+ EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
+ SPLIT_STRING + OPEN_PARENTHESIS + QUOTES + COMMA + QUOTES +
+ COMMA + SPACE + ZERO + CLOSE_PARENTHESIS + SEMI_COLON +
+ NEW_LINE;
+ builder.append(lines);
+ /*
+ *" for (String bitTemp : bitsTemp) {\n"
+ */
+ lines = TWELVE_SPACE_INDENTATION + FOR + SPACE + OPEN_PARENTHESIS +
+ STRING_DATA_TYPE + SPACE + BIT_TEMP_VAR + SPACE + COLON +
+ SPACE + BITS_STRING_ARRAY_VAR + CLOSE_PARENTHESIS + SPACE +
+ OPEN_CURLY_BRACKET + NEW_LINE;
+ builder.append(lines);
+ /*
+ *" bitTemp = bitTemp.trim();\n"
+ */
+ lines = SIXTEEN_SPACE_INDENTATION + BIT_TEMP_VAR + SPACE + EQUAL +
+ SPACE + BIT_TEMP_VAR + PERIOD + TRIM_STRING +
+ OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
+ SEMI_COLON + NEW_LINE;
+ builder.append(lines);
+ /*
+ *" tmpVal.set(Integer.parseInt(bitTemp));\n"
+ */
+ lines = SIXTEEN_SPACE_INDENTATION + TMP_VAL + PERIOD +
+ SET_METHOD_PREFIX + OPEN_PARENTHESIS + INTEGER_WRAPPER +
+ PERIOD + PARSE_INT + OPEN_PARENTHESIS + BIT_TEMP_VAR +
+ CLOSE_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLON +
+ NEW_LINE;
+ builder.append(lines);
+ /*
+ *" }\n"
+ */
+ lines = TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
+ NEW_LINE;
+ builder.append(lines);
+ return builder.toString();
+ case BINARY:
+ return targetDataType + SPACE + TMP_VAL + SPACE + EQUAL + SPACE +
+ BASE64 + PERIOD + GET_DECODER + OPEN_PARENTHESIS +
+ CLOSE_PARENTHESIS + PERIOD + DECODE + OPEN_PARENTHESIS +
+ FROM_STRING_PARAM_NAME + CLOSE_PARENTHESIS + SEMI_COLON
+ + NEW_LINE;
+ default:
+ return targetDataType + SPACE + TMP_VAL + SPACE + EQUAL +
+ SPACE + StringGenerator.getParseFromStringMethod(
+ targetDataType, fromStringAttr.getAttributeType()) +
+ OPEN_PARENTHESIS + FROM_STRING_PARAM_NAME +
+ CLOSE_PARENTHESIS + SEMI_COLON + NEW_LINE;
}
}
@@ -1059,11 +902,14 @@
* @return hash code method open string
*/
static String getHashCodeMethodOpen() {
- return getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
- INT + SPACE + HASH_CODE_STRING + OPEN_PARENTHESIS +
- CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
- EIGHT_SPACE_INDENTATION + RETURN + SPACE + OBJECT_STRING +
- SUFFIX_S + PERIOD + HASH + OPEN_PARENTHESIS;
+ String line;
+ StringBuilder builder = new StringBuilder(getOverRideString());
+ builder.append(methodSignature(HASH_CODE_STRING, EMPTY_STRING, PUBLIC,
+ null, INT, null, CLASS_TYPE));
+ line = getReturnString(OBJECT_STRING + SUFFIX_S + PERIOD + HASH +
+ OPEN_PARENTHESIS, EIGHT_SPACE_INDENTATION);
+ builder.append(line);
+ return builder.toString();
}
/**
@@ -1073,10 +919,10 @@
* @return to hash code method close string
*/
static String getHashCodeMethodClose(String hashcodeString) {
- hashcodeString = trimAtLast(hashcodeString, COMMA);
- hashcodeString = trimAtLast(hashcodeString, SPACE);
- return hashcodeString + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
+ String[] array = {SPACE, COMMA};
+ hashcodeString = trimAtLast(hashcodeString, array);
+ return hashcodeString + CLOSE_PARENTHESIS + signatureClose() +
+ methodClose(FOUR_SPACE);
}
/**
@@ -1096,10 +942,10 @@
* @return equals method open string
*/
static String getEqualsMethodOpen(String className) {
- return getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
- BOOLEAN_DATA_TYPE + SPACE + EQUALS_STRING + OPEN_PARENTHESIS +
- OBJECT_STRING + SPACE + OBJ + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE +
+ return getOverRideString() +
+ methodSignature(EQUALS_STRING, EMPTY_STRING, PUBLIC, OBJ,
+ BOOLEAN_DATA_TYPE, OBJECT_STRING,
+ CLASS_TYPE) +
getEqualsMethodsCommonIfCondition() +
getEqualsMethodsSpecificIfCondition(className);
}
@@ -1110,12 +956,10 @@
* @return if condition string
*/
private static String getEqualsMethodsCommonIfCondition() {
- return EIGHT_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS + THIS +
- SPACE + EQUAL + EQUAL + SPACE + OBJ + CLOSE_PARENTHESIS +
- SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
- TWELVE_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLAN +
- NEW_LINE + EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
- NEW_LINE;
+ return getIfConditionBegin(EIGHT_SPACE_INDENTATION, THIS + SPACE +
+ EQUAL + EQUAL + SPACE + OBJ) + getReturnString(
+ TRUE, TWELVE_SPACE_INDENTATION) + signatureClose()
+ + methodClose(EIGHT_SPACE);
}
/**
@@ -1130,7 +974,7 @@
OPEN_CURLY_BRACKET + NEW_LINE + TWELVE_SPACE_INDENTATION +
className + SPACE + OTHER + SPACE + EQUAL + SPACE +
OPEN_PARENTHESIS + className + CLOSE_PARENTHESIS + SPACE + OBJ +
- SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION + RETURN +
+ SEMI_COLON + NEW_LINE + TWELVE_SPACE_INDENTATION + RETURN +
NEW_LINE;
}
@@ -1141,15 +985,12 @@
* @return equals method close string
*/
static String getEqualsMethodClose(String equalMethodString) {
- equalMethodString = trimAtLast(equalMethodString, AND);
- equalMethodString = trimAtLast(equalMethodString, AND);
- equalMethodString = trimAtLast(equalMethodString, SPACE);
- equalMethodString =
- trimAtLast(equalMethodString, NEW_LINE) + SEMI_COLAN + NEW_LINE;
- return equalMethodString + EIGHT_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION +
- RETURN + SPACE + FALSE + SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
+ String[] array = {NEW_LINE, AND, AND, SPACE};
+ equalMethodString = trimAtLast(equalMethodString, array) +
+ signatureClose();
+ return equalMethodString + methodClose(EIGHT_SPACE) +
+ getReturnString(FALSE, EIGHT_SPACE_INDENTATION) +
+ signatureClose() + methodClose(FOUR_SPACE);
}
/**
@@ -1159,115 +1000,89 @@
* @return equals method
*/
public static String getEqualsMethod(JavaAttributeInfo attr) {
-
String attributeName = attr.getAttributeName();
- return SIXTEEN_SPACE_INDENTATION + SPACE + OBJECT_STRING + SUFFIX_S +
+ return SIXTEEN_SPACE_INDENTATION + OBJECT_STRING + SUFFIX_S +
PERIOD + EQUALS_STRING + OPEN_PARENTHESIS + attributeName +
COMMA + SPACE + OTHER + PERIOD + attributeName +
CLOSE_PARENTHESIS + SPACE + AND + AND;
}
/**
- * Returns of method string for class.
- *
- * @param name class name
- * @param attr attribute info
- * @return of method string
- */
- static String getOfMethod(String name, JavaAttributeInfo attr) {
- String attrQualifiedType = getReturnType(attr);
- return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE + name +
- SPACE + OF + OPEN_PARENTHESIS + attrQualifiedType + SPACE +
- VALUE + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
- NEW_LINE + EIGHT_SPACE_INDENTATION + RETURN + SPACE + NEW +
- SPACE + name + OPEN_PARENTHESIS + VALUE + CLOSE_PARENTHESIS +
- SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET + NEW_LINE;
- }
-
- /**
* Returns of method's string and java doc for special type.
*
- * @param attr attribute info
- * @param generatedJavaClassName class name
- * @param pluginConfig plugin configurations
+ * @param attr attribute info
+ * @param className class name
* @return of method's string and java doc for special type
*/
public static String getOfMethodStringAndJavaDoc(JavaAttributeInfo attr,
- String generatedJavaClassName,
- YangPluginConfig pluginConfig) {
-
+ String className) {
String attrType = getReturnType(attr);
String attrName = attr.getAttributeName();
- return getJavaDoc(OF_METHOD, generatedJavaClassName + " for type " +
- attrName, false, pluginConfig, null) +
- getOfMethodString(attrType, generatedJavaClassName);
+ return getJavaDoc(OF_METHOD, className + FOR_TYPE_STRING + attrName,
+ false, null) + getOfMethodString(attrType, className);
}
/**
* Returns of method's string.
*
- * @param type data type
- * @param className class name
+ * @param type data type
+ * @param name class name
* @return of method's string
*/
- private static String getOfMethodString(String type, String className) {
- return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE +
- className + SPACE + OF + OPEN_PARENTHESIS + type + SPACE +
- VALUE + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
- NEW_LINE + EIGHT_SPACE_INDENTATION + RETURN + SPACE + NEW +
- SPACE + className + OPEN_PARENTHESIS + VALUE +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
+ private static String getOfMethodString(String type, String name) {
+ return methodSignature(OF, EMPTY_STRING, PUBLIC + SPACE + STATIC,
+ VALUE, name, type, CLASS_TYPE) +
+ methodBody(MethodBodyTypes.OF_METHOD, name, null,
+ EIGHT_SPACE_INDENTATION, EMPTY_STRING, null, false) +
+ methodClose(FOUR_SPACE);
}
/**
* Returns string and java doc for constructor of type class.
*
- * @param attr attribute info
- * @param generatedJavaClassName class name
- * @param pluginConfig plugin configurations
+ * @param attr attribute info
+ * @param className class name
* @return string and java doc for constructor of type class
*/
- public static String getTypeConstructorStringAndJavaDoc(JavaAttributeInfo attr,
- String generatedJavaClassName,
- YangPluginConfig pluginConfig) {
-
+ public static String getTypeConstructorStringAndJavaDoc(
+ JavaAttributeInfo attr, String className) {
String attrType = getReturnType(attr);
String attrName = attr.getAttributeName();
- return getJavaDoc(TYPE_CONSTRUCTOR, generatedJavaClassName +
- " for type " + attrName, false, pluginConfig, null) +
- getTypeConstructorString(attrType, attrName,
- generatedJavaClassName);
+ return getJavaDoc(TYPE_CONSTRUCTOR, attrName, false, null) +
+ getTypeConstructorString(attrType, attrName, className);
}
/**
* Returns string and java doc for constructor of type class.
*
- * @param attr1 first attribute info
- * @param attr2 second attribute info
- * @param generatedJavaClassName class name
- * @param pluginConfig plugin config
- * @param type conflict validate type
- * @param addFirst whether int came first or uInt came first
+ * @param attr1 first attribute info
+ * @param attr2 second attribute info
+ * @param genType class name
+ * @param type conflict validate type
+ * @param addFirst whether int came first or uInt came first
* @return string and java doc for constructor of type class
*/
- public static String getTypeConstructorStringAndJavaDoc(JavaAttributeInfo attr1,
- JavaAttributeInfo attr2,
- String generatedJavaClassName,
- YangPluginConfig pluginConfig,
- ValidatorTypeForUnionTypes type,
- boolean addFirst) {
+ public static String getTypeConstructorStringAndJavaDoc(
+ JavaAttributeInfo attr1, JavaAttributeInfo attr2, String genType,
+ ValidatorTypeForUnionTypes type, boolean addFirst) {
String attrType = getReturnType(attr1);
String attrName1 = "";
String attrName2 = "";
if (attr1 != null) {
- attrName1 = attr1.getAttributeName();
+ if (addFirst) {
+ attrName1 = attr1.getAttributeName();
+ } else {
+ attrName2 = attr1.getAttributeName();
+ }
}
if (attr2 != null) {
- attrName2 = attr2.getAttributeName();
+ if (addFirst) {
+ attrName1 = attr2.getAttributeName();
+ } else {
+ attrName2 = attr2.getAttributeName();
+ }
}
String appDataStructure = null;
@@ -1276,13 +1091,16 @@
attr1.getCompilerAnnotation().getYangAppDataStructure()
.getDataStructure().name();
}
- return getJavaDoc(TYPE_CONSTRUCTOR, generatedJavaClassName +
- " for type " + attrName1, false,
- pluginConfig, appDataStructure) +
+ String doc;
+ if (attrName1.isEmpty()) {
+ doc = attrName2;
+ } else {
+ doc = attrName1;
+ }
+ return getJavaDoc(TYPE_CONSTRUCTOR, doc, false, appDataStructure) +
getTypeConstructorString(attrType, attrName1,
- attrName2, generatedJavaClassName,
- type,
- addFirst);
+ attrName2, genType,
+ type, addFirst);
}
/**
@@ -1295,12 +1113,10 @@
*/
private static String getTypeConstructorString(String type, String name,
String className) {
- return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + className +
- OPEN_PARENTHESIS + type + SPACE + VALUE + CLOSE_PARENTHESIS +
- SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
- EIGHT_SPACE_INDENTATION + THIS + PERIOD + name + SPACE + EQUAL +
- SPACE + VALUE + SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
+ return methodSignature(className, EMPTY_STRING, PUBLIC, name,
+ null, type, CLASS_TYPE) +
+ methodBody(SETTER, name, null, EIGHT_SPACE_INDENTATION,
+ EMPTY_STRING, null, false) + methodClose(FOUR_SPACE);
}
/**
@@ -1311,38 +1127,28 @@
* @param className class attr1
* @return type constructor string
*/
- private static String getTypeConstructorString(String type, String attr1,
- String attr2,
- String className,
- ValidatorTypeForUnionTypes validatorType,
- boolean addInt) {
+ private static String getTypeConstructorString(
+ String type, String attr1, String attr2, String className,
+ ValidatorTypeForUnionTypes validatorType, boolean addInt) {
- String constructor;
- constructor = FOUR_SPACE_INDENTATION + PUBLIC + SPACE + className +
- OPEN_PARENTHESIS + type + SPACE + VALUE + CLOSE_PARENTHESIS +
- SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ StringBuilder constructor = new StringBuilder(
+ methodSignature(className, EMPTY_STRING, null, type,
+ null, type, CLASS_TYPE))
+ .append(ifConditionForIntInTypeDefConstructor(validatorType,
+ addInt))
+ .append(methodBody(SETTER, attr1, null,
+ TWELVE_SPACE_INDENTATION, EMPTY_STRING,
+ null, false));
+ String str = EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + SPACE +
+ ELSE + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ constructor.append(str)
+ .append(methodBody(SETTER, attr2, null,
+ TWELVE_SPACE_INDENTATION, EMPTY_STRING,
+ null, false))
+ .append(methodClose(FOUR_SPACE))
+ .append(methodClose(EIGHT_SPACE));
- String name1;
- String name2;
- if (addInt) {
- name1 = attr1;
- name2 = attr2;
- } else {
- name1 = attr2;
- name2 = attr1;
- }
- constructor = constructor +
- ifConditionForIntInTypeDefConstructor(validatorType, addInt) +
- TWELVE_SPACE_INDENTATION + THIS + PERIOD + name1 + SPACE +
- EQUAL + SPACE + VALUE + SEMI_COLAN + NEW_LINE +
- EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + SPACE + ELSE +
- SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
- TWELVE_SPACE_INDENTATION + THIS + PERIOD + name2 + SPACE +
- EQUAL + SPACE + VALUE + SEMI_COLAN + NEW_LINE +
- EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE +
- FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
-
- return constructor;
+ return constructor.toString();
}
/**
@@ -1351,12 +1157,14 @@
* @return interface of add augmentation
*/
static String getAddAugmentInfoMethodInterface() {
- return generateForAddAugmentation() + FOUR_SPACE_INDENTATION + VOID +
- SPACE +
- ADD_STRING + YANG_AUGMENTED_INFO + OPEN_PARENTHESIS +
- OBJECT_STRING + SPACE + VALUE + COMMA +
- SPACE + CLASS_STRING + SPACE + CLASS + OBJECT_STRING +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+ StringBuilder builder = new StringBuilder(generateForAddAugmentation());
+ LinkedHashMap<String, String> map = new LinkedHashMap<>();
+ map.put(OBJECT_STRING, VALUE);
+ map.put(CLASS_STRING, CLASS + OBJECT_STRING);
+ builder.append(multiAttrMethodSignature(ADD_STRING + YANG_AUGMENTED_INFO,
+ EMPTY_STRING, EMPTY_STRING,
+ VOID, map, INTERFACE_TYPE));
+ return builder.toString();
}
/**
@@ -1365,19 +1173,18 @@
* @return implementation of add augmentation
*/
static String getAddAugmentInfoMethodImpl() {
- return getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
- VOID + SPACE +
- ADD_STRING + YANG_AUGMENTED_INFO + OPEN_PARENTHESIS +
- OBJECT_STRING + SPACE + VALUE + COMMA +
- SPACE + CLASS_STRING + SPACE + CLASS + OBJECT_STRING +
- CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
- NEW_LINE + EIGHT_SPACE_INDENTATION +
- getSmallCase(YANG_AUGMENTED_INFO) + MAP + PERIOD + PUT +
- OPEN_PARENTHESIS + CLASS + OBJECT_STRING + COMMA + SPACE +
- VALUE +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET + NEW_LINE;
+ StringBuilder builder = new StringBuilder(getOverRideString());
+ LinkedHashMap<String, String> map = new LinkedHashMap<>();
+ map.put(OBJECT_STRING, VALUE);
+ map.put(CLASS_STRING, CLASS + OBJECT_STRING);
+ builder.append(multiAttrMethodSignature(ADD_STRING + YANG_AUGMENTED_INFO,
+ EMPTY_STRING, PUBLIC,
+ VOID, map, CLASS_TYPE))
+ .append(methodBody(AUGMENTED_MAP_ADD, null, null,
+ EIGHT_SPACE_INDENTATION, null, null, false))
+ .append(methodClose(FOUR_SPACE))
+ .append(NEW_LINE);
+ return builder.toString();
}
/**
@@ -1386,11 +1193,10 @@
* @return interface of get YANG augment info
*/
static String getYangAugmentInfoInterface() {
- return generateForGetAugmentation() + FOUR_SPACE_INDENTATION +
- OBJECT_STRING + SPACE +
- getSmallCase(YANG_AUGMENTED_INFO) + OPEN_PARENTHESIS +
- CLASS_STRING + SPACE + CLASS + OBJECT_STRING +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+ return generateForGetAugmentation() +
+ methodSignature(YANG_AUGMENTED_INFO_LOWER_CASE, EMPTY_STRING,
+ null, CLASS + OBJECT_STRING,
+ OBJECT_STRING, CLASS_STRING, INTERFACE_TYPE);
}
/**
@@ -1399,17 +1205,13 @@
* @return implementation of get YANG augment info
*/
static String getYangAugmentInfoImpl() {
- return getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
- OBJECT_STRING + SPACE +
- getSmallCase(YANG_AUGMENTED_INFO) + OPEN_PARENTHESIS +
- CLASS_STRING + SPACE + CLASS + OBJECT_STRING +
- CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
- EIGHT_SPACE_INDENTATION +
- RETURN + SPACE + getSmallCase(YANG_AUGMENTED_INFO) + MAP +
- PERIOD + GET + OPEN_PARENTHESIS + CLASS +
- OBJECT_STRING + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET + NEW_LINE;
+ return getOverRideString() +
+ methodSignature(YANG_AUGMENTED_INFO_LOWER_CASE, EMPTY_STRING,
+ PUBLIC, CLASS + OBJECT_STRING, OBJECT_STRING,
+ CLASS_STRING, CLASS_TYPE) +
+ methodBody(AUGMENTED_MAP_GET_VALUE, null, null,
+ EIGHT_SPACE_INDENTATION, null, null, false) +
+ methodClose(FOUR_SPACE);
}
/**
@@ -1417,17 +1219,13 @@
*
* @return implementation of get YANG augment info
*/
- static String getYangAugmentInfoMapInterface(YangPluginConfig pluginConfig) {
- return getJavaDoc(GETTER_METHOD,
- getSmallCase(YANG_AUGMENTED_INFO) + MAP, false,
- pluginConfig, null) + FOUR_SPACE_INDENTATION + MAP +
- DIAMOND_OPEN_BRACKET +
- CLASS_STRING + DIAMOND_OPEN_BRACKET +
- QUESTION_MARK + DIAMOND_CLOSE_BRACKET + COMMA + SPACE +
- OBJECT_STRING + DIAMOND_CLOSE_BRACKET +
- SPACE + getSmallCase(YANG_AUGMENTED_INFO) + MAP +
- OPEN_PARENTHESIS +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+ static String getYangAugmentInfoMapInterface() {
+ return NEW_LINE +
+ getJavaDoc(GETTER_METHOD, YANG_AUGMENTED_INFO_LOWER_CASE + MAP,
+ false, null) +
+ methodSignature(YANG_AUGMENTED_INFO_LOWER_CASE + MAP,
+ EMPTY_STRING, null, null,
+ getAugmentMapTypeString(), null, INTERFACE_TYPE);
}
/**
@@ -1436,17 +1234,12 @@
* @return implementation of get YANG augment info
*/
static String getYangAugmentInfoMapImpl() {
- return getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
- MAP + DIAMOND_OPEN_BRACKET + CLASS_STRING +
- DIAMOND_OPEN_BRACKET + QUESTION_MARK +
- DIAMOND_CLOSE_BRACKET + COMMA + SPACE + OBJECT_STRING +
- DIAMOND_CLOSE_BRACKET + SPACE +
- getSmallCase(YANG_AUGMENTED_INFO) + MAP + OPEN_PARENTHESIS +
- CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
- EIGHT_SPACE_INDENTATION +
- RETURN + SPACE + getSmallCase(YANG_AUGMENTED_INFO) + MAP +
- SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET + NEW_LINE;
+ return getOverRideString() + methodSignature(
+ YANG_AUGMENTED_INFO_LOWER_CASE + MAP, EMPTY_STRING, PUBLIC, null,
+ getAugmentMapTypeString(), null, CLASS_TYPE) +
+ methodBody(AUGMENTED_MAP_GETTER, null, null,
+ EIGHT_SPACE_INDENTATION, null, null, false) +
+ methodClose(FOUR_SPACE);
}
/**
@@ -1456,146 +1249,108 @@
* @return enum's constructor
*/
static String getEnumsConstructor(String className) {
- return FOUR_SPACE_INDENTATION + className + OPEN_PARENTHESIS + INT +
- SPACE + VALUE + COMMA + SPACE + STRING_DATA_TYPE + SPACE +
- STR_VAL + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
- NEW_LINE + EIGHT_SPACE_INDENTATION +
- getSmallCase(className) + SPACE + EQUAL + SPACE + VALUE +
- SEMI_COLAN + NEW_LINE + EIGHT_SPACE_INDENTATION + SCHEMA_NAME +
- SPACE + EQUAL + SPACE + STR_VAL + SEMI_COLAN + NEW_LINE +
- FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
+ StringBuilder builder = new StringBuilder();
+ String clsName = getSmallCase(className);
+ LinkedHashMap<String, String> map = new LinkedHashMap<>();
+ map.put(INT, clsName);
+ map.put(STRING_DATA_TYPE, SCHEMA_NAME);
+ builder.append(multiAttrMethodSignature(className, EMPTY_STRING,
+ EMPTY_STRING, null,
+ map, CLASS_TYPE))
+ .append(methodBody(SETTER, clsName, EMPTY_STRING,
+ EIGHT_SPACE_INDENTATION, EMPTY_STRING,
+ EMPTY_STRING, false))
+ .append(methodBody(SETTER, SCHEMA_NAME, EMPTY_STRING,
+ EIGHT_SPACE_INDENTATION, EMPTY_STRING,
+ EMPTY_STRING, false))
+ .append(methodClose(FOUR_SPACE));
+
+ return builder.toString();
}
/**
* Returns of method for enum class.
*
- * @param className class name
- * @param pluginConfig plugin configurations
+ * @param className class name
+ * @param type method body type
* @return of method
*/
static String getEnumsOfValueMethod(String className,
YangEnumeration enumeration,
- YangPluginConfig pluginConfig) {
-
- String method =
- FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE +
- getCapitalCase(className) + SPACE + OF +
- OPEN_PARENTHESIS + INT + SPACE + VALUE +
- CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
- NEW_LINE + EIGHT_SPACE_INDENTATION + SWITCH + SPACE +
- OPEN_PARENTHESIS + VALUE + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE;
- int value;
+ MethodBodyTypes type) {
+ String name = getCapitalCase(className);
+ StringBuilder builder = new StringBuilder(getJavaDoc(
+ OF_METHOD, name + SPACE + FOR,
+ false, null));
+ //Switch statement.
+ String sw = EIGHT_SPACE_INDENTATION + SWITCH + SPACE + brackets(
+ OPEN_CLOSE_BRACKET_WITH_VALUE, VALUE, null) +
+ methodSignatureClose(CLASS_TYPE);
String str;
- for (YangEnum yangEnum : enumeration.getEnumSet()) {
- value = yangEnum.getValue();
- str = getEnumJavaAttribute(yangEnum.getNamedValue()).toUpperCase();
- method = method + TWELVE_SPACE_INDENTATION + CASE + SPACE + value +
- COLON + NEW_LINE + SIXTEEN_SPACE_INDENTATION + RETURN +
- SPACE + getCapitalCase(className) + PERIOD + str +
- SEMI_COLAN + NEW_LINE;
- }
- method = method + TWELVE_SPACE_INDENTATION + DEFAULT + SPACE + COLON +
- NEW_LINE + SIXTEEN_SPACE_INDENTATION + RETURN + SPACE + NULL +
- SEMI_COLAN + NEW_LINE + EIGHT_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET + NEW_LINE + FOUR_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET;
-
- return getJavaDoc(OF_METHOD, getCapitalCase(className) + " for value",
- false, pluginConfig, null) + method;
- }
-
- /**
- * Returns of method with string value for enum class.
- *
- * @param enumName enum class name
- * @return of method with string value for enum class
- */
- static String getEnumValueOfSchemaNameMethod(String enumName,
- YangPluginConfig pluginConfig,
- YangEnumeration enumeration) {
-
- String method =
- FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE +
- getCapitalCase(enumName) + SPACE + OF +
- OPEN_PARENTHESIS + STRING_DATA_TYPE + SPACE + VALUE +
- CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
- NEW_LINE + EIGHT_SPACE_INDENTATION + SWITCH + SPACE +
- OPEN_PARENTHESIS + VALUE + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE;
- String value;
- for (YangEnum yangEnum : enumeration.getEnumSet()) {
-
- value = getEnumJavaAttribute(yangEnum.getNamedValue())
- .toUpperCase();
- method = method + TWELVE_SPACE_INDENTATION + CASE + SPACE + QUOTES +
- yangEnum.getNamedValue() + QUOTES + COLON + NEW_LINE +
- SIXTEEN_SPACE_INDENTATION + RETURN + SPACE +
- getCapitalCase(enumName) + PERIOD + value + SEMI_COLAN +
- NEW_LINE;
- }
- method = method + TWELVE_SPACE_INDENTATION + DEFAULT + SPACE + COLON +
- NEW_LINE + SIXTEEN_SPACE_INDENTATION + RETURN + SPACE + NULL +
- SEMI_COLAN + NEW_LINE + EIGHT_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET + NEW_LINE + FOUR_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET;
-
- return getJavaDoc(OF_METHOD, getCapitalCase(enumName) + " for " +
- SCHEMA_NAME, false, pluginConfig, null) + method;
- }
-
- /**
- * Returns from string method parsed string.
- *
- * @param targetDataType target data type
- * @param yangType YANG type
- * @return parsed string
- */
- private static String getParseFromStringMethod(String targetDataType,
- YangType<?> yangType) {
- YangDataTypes type = yangType.getDataType();
-
switch (type) {
- case INT8:
- return BYTE_WRAPPER + PERIOD + PARSE_BYTE;
- case INT16:
- return SHORT_WRAPPER + PERIOD + PARSE_SHORT;
- case INT32:
- return INTEGER_WRAPPER + PERIOD + PARSE_INT;
- case INT64:
- return LONG_WRAPPER + PERIOD + PARSE_LONG;
- case UINT8:
- return SHORT_WRAPPER + PERIOD + PARSE_SHORT;
- case UINT16:
- return INTEGER_WRAPPER + PERIOD + PARSE_INT;
- case UINT32:
- return LONG_WRAPPER + PERIOD + PARSE_LONG;
- case UINT64:
- return NEW + SPACE + BIG_INTEGER;
- case DECIMAL64:
- return NEW + SPACE + BIG_DECIMAL;
- case STRING:
- case IDENTITYREF:
- return EMPTY_STRING;
- case EMPTY:
- case BOOLEAN:
- return BOOLEAN_WRAPPER + PERIOD + PARSE_BOOLEAN;
- case BITS:
- case UNION:
- case ENUMERATION:
- case DERIVED:
- return targetDataType + PERIOD + FROM_STRING_METHOD_NAME;
+ case ENUM_METHOD_INT_VALUE:
+ builder.append(getEnumValueMethodSignature(name, INT))
+ .append(sw);
+ for (YangEnum yangEnum : enumeration.getEnumSet()) {
+ str = getEnumJavaAttribute(yangEnum.getNamedValue())
+ .toUpperCase();
+ builder.append(getEnumValueMethodCases(
+ EMPTY_STRING + yangEnum.getValue(), str, name));
+ }
+ break;
+ case ENUM_METHOD_STRING_VALUE:
+ builder.append(getEnumValueMethodSignature(name,
+ STRING_DATA_TYPE))
+ .append(sw);
+ for (YangEnum yangEnum : enumeration.getEnumSet()) {
+ str = getEnumJavaAttribute(yangEnum.getNamedValue())
+ .toUpperCase();
+ builder.append(getEnumValueMethodCases(
+ QUOTES + yangEnum.getNamedValue() + QUOTES, str,
+ name));
+ }
+ break;
default:
- throw new TranslatorException("given data type is not " +
- "supported. " +
- yangType.getDataTypeName() +
- " in " +
- yangType.getLineNumber() +
- " at " +
- yangType.getCharPosition() +
- " in " +
- yangType.getFileName());
+ return null;
}
+
+ String method = TWELVE_SPACE_INDENTATION + DEFAULT + SPACE + COLON +
+ NEW_LINE;
+ builder.append(method)
+ .append(getReturnString(NULL, SIXTEEN_SPACE_INDENTATION))
+ .append(signatureClose())
+ .append(methodClose(EIGHT_SPACE))
+ .append(methodClose(FOUR_SPACE));
+
+ return builder.toString();
+ }
+
+ /**
+ * Returns enum value method signature.
+ *
+ * @param name method name
+ * @param type param type
+ * @return enum value method signature
+ */
+ private static String getEnumValueMethodSignature(String name, String type) {
+ return methodSignature(OF, EMPTY_STRING, PUBLIC + SPACE +
+ STATIC, VALUE, name, type, CLASS_TYPE);
+ }
+
+ /**
+ * Returns enum value method's cases.
+ *
+ * @param caseType case type
+ * @param value return value
+ * @param name name of class
+ * @return enum value method's cases
+ */
+ private static String getEnumValueMethodCases(String caseType, String value,
+ String name) {
+ return TWELVE_SPACE_INDENTATION + CASE + SPACE + caseType +
+ COLON + NEW_LINE + getReturnString(name,
+ SIXTEEN_SPACE_INDENTATION) +
+ PERIOD + value + signatureClose();
}
/**
@@ -1625,13 +1380,14 @@
((JavaFileInfoContainer) methodNode).getJavaFileInfo()
.getJavaName();
} else {
- curNodeName = getCapitalCase(getCamelCase(methodNode.getName(),
- pluginConfig.getConflictResolver()));
+ curNodeName = getCapitalCase(
+ getCamelCase(methodNode.getName(),
+ pluginConfig.getConflictResolver()));
}
returnType =
getAugmentedClassNameForDataMethods(augmentedNode, parent);
- parentName = getParentNodeNameForDataMethods(augmentedNode,
- pluginConfig);
+ parentName = getCurNodeName(augmentedNode,
+ pluginConfig);
method = generateForGetMethodWithAttribute(returnType) +
getGetMethodWithArgument(returnType, AUGMENTED +
parentName + getCapitalCase(curNodeName)) + NEW_LINE;
@@ -1640,7 +1396,7 @@
method = getJavaDoc(MANAGER_SETTER_METHOD,
AUGMENTED + getCapitalCase(parentName) +
getCapitalCase(curNodeName), false,
- pluginConfig, null) +
+ null) +
getSetterForInterface(getSmallCase(AUGMENTED) + parentName +
getCapitalCase(curNodeName),
returnType, parentName, false,
@@ -1664,84 +1420,57 @@
} else {
newType = INT;
}
- String method = generateForValidatorMethod() + FOUR_SPACE_INDENTATION +
- PRIVATE + SPACE + BOOLEAN_DATA_TYPE + SPACE + VALIDATE_RANGE +
- OPEN_PARENTHESIS + type + SPACE + MIN_RANGE + COMMA + SPACE +
- type + SPACE + MAX_RANGE + COMMA + SPACE + newType + SPACE +
- VALUE + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
- NEW_LINE;
+ StringBuilder builder = new StringBuilder(generateForValidatorMethod());
+ String var = getSmallCase(BIG_INTEGER);
+ LinkedHashMap<String, String> map = new LinkedHashMap<>();
+ map.put(MIN_RANGE, type);
+ map.put(MAX_RANGE, type);
+ map.put(VALUE, newType);
+ builder.append(multiAttrMethodSignature(VALIDATE_RANGE, EMPTY_STRING,
+ PRIVATE, BOOLEAN_DATA_TYPE, map,
+ CLASS_TYPE));
if (type.contentEquals(BIG_INTEGER)) {
- method = method + EIGHT_SPACE_INDENTATION + BIG_INTEGER + SPACE +
- getSmallCase(BIG_INTEGER) + SPACE + EQUAL + SPACE + NEW +
- SPACE + BIG_INTEGER + OPEN_PARENTHESIS + QUOTES + SPACE +
- QUOTES + SPACE + ADD + SPACE + VALUE + CLOSE_PARENTHESIS +
- SEMI_COLAN + NEW_LINE + EIGHT_SPACE_INDENTATION + RETURN +
- SPACE + getSmallCase(BIG_INTEGER) + PERIOD + "compareTo" +
- OPEN_PARENTHESIS + MIN_RANGE + CLOSE_PARENTHESIS + SPACE +
- EQUAL + EQUAL + " 1" + SPACE + AND +
- AND + SPACE + getSmallCase(BIG_INTEGER) + PERIOD +
- "compareTo" + OPEN_PARENTHESIS + MAX_RANGE +
- CLOSE_PARENTHESIS + SPACE + EQUAL + EQUAL + " 1" +
- SEMI_COLAN + NEW_LINE;
+ //Create new instance of big integer.
+ builder.append(getNewInstance(BIG_INTEGER, var, EIGHT_SPACE_INDENTATION,
+ QUOTES + SPACE + QUOTES + SPACE +
+ ADD + SPACE + VALUE))
+ //Add return string.
+ .append(getReturnString(var, EIGHT_SPACE_INDENTATION))
+ //Add compareTo string
+ .append(getCompareToString())
+ //Add && condition.
+ .append(ifAndAndCondition(
+ //Add == condition
+ ifEqualEqualCondition(
+ brackets(OPEN_CLOSE_BRACKET_WITH_VALUE,
+ MIN_RANGE, null), ONE),
+ var))
+ //Add compareTo string.
+ .append(getCompareToString())
+ //Add == condition.
+ .append(ifEqualEqualCondition(
+ brackets(OPEN_CLOSE_BRACKET_WITH_VALUE,
+ MAX_RANGE, null), ONE))
+ .append(signatureClose());
} else {
- method = method + EIGHT_SPACE_INDENTATION + RETURN + SPACE + VALUE +
- SPACE + DIAMOND_CLOSE_BRACKET + EQUAL + SPACE + MIN_RANGE +
- SPACE + AND + AND + SPACE + VALUE + SPACE +
- DIAMOND_OPEN_BRACKET + EQUAL + SPACE + MAX_RANGE +
- SEMI_COLAN + NEW_LINE;
+ builder.append(getReturnString(VALUE, EIGHT_SPACE_INDENTATION))
+ .append(getGreaterThanCondition())
+ .append(ifAndAndCondition(MIN_RANGE, VALUE))
+ .append(getLesserThanCondition())
+ .append(MAX_RANGE)
+ .append(signatureClose());
}
- return method + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
- }
-
- /**
- * Returns if condition string for typedef constructor.
- *
- * @param type type of conflict
- * @param addFirst true int/long need to be added first
- * @return if condition string for typedef constructor
- */
- private static String ifConditionForIntInTypeDefConstructor(ValidatorTypeForUnionTypes type,
- boolean addFirst) {
- String condition =
- EIGHT_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS +
- VALIDATE_RANGE + OPEN_PARENTHESIS;
-
- if (type == INT_TYPE_CONFLICT) {
- if (addFirst) {
- condition = condition + INT_MIN_RANGE + COMMA + SPACE +
- INT_MAX_RANGE + COMMA + SPACE + VALUE;
- } else {
- condition = condition + UINT_MIN_RANGE + COMMA + SPACE +
- UINT_MAX_RANGE + COMMA + SPACE + VALUE;
- }
- } else if (type == SHORT_TYPE_CONFLICT) {
- if (addFirst) {
- condition = condition + SHORT_MIN_RANGE + COMMA + SPACE +
- SHORT_MAX_RANGE + COMMA + SPACE + VALUE;
- } else {
- condition = condition + UINT8_MIN_RANGE + COMMA + SPACE +
- UINT8_MAX_RANGE + COMMA + SPACE + VALUE;
- }
- } else {
- if (addFirst) {
- condition = condition + LONG_MIN_RANGE + COMMA + SPACE +
- LONG_MAX_RANGE + COMMA + SPACE + VALUE;
- } else {
- condition = condition + ULONG_MIN_RANGE + COMMA + SPACE +
- ULONG_MAX_RANGE + COMMA + SPACE + VALUE;
- }
- }
- return condition + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE;
+ builder.append(methodClose(FOUR_SPACE));
+ return builder.toString();
}
//Get method with arguments.
private static String getGetMethodWithArgument(String returnType,
String yangName) {
- return FOUR_SPACE_INDENTATION + returnType + SPACE + GET_METHOD_PREFIX +
- getCapitalCase(yangName) + OPEN_PARENTHESIS + returnType +
- OP_PARAM + SPACE + getSmallCase(returnType) +
- CLOSE_PARENTHESIS + SEMI_COLAN;
+ return methodSignature(getCapitalCase(yangName), GET_METHOD_PREFIX,
+ null, getSmallCase(returnType),
+ returnType, returnType + OP_PARAM,
+ INTERFACE_TYPE);
}
/**
@@ -1753,39 +1482,54 @@
*/
public static String getAddToListMethodInterface(JavaAttributeInfo attr,
String className) {
- return FOUR_SPACE_INDENTATION + className + BUILDER + SPACE +
- ADD_STRING + getCapitalCase(TO) +
- getCapitalCase(attr.getAttributeName()) + OPEN_PARENTHESIS +
- getReturnType(attr) + SPACE +
- VALUE + CLOSE_PARENTHESIS + SEMI_COLAN;
+
+ return methodSignature(ADD_STRING + TO_CAPS + getCapitalCase(
+ attr.getAttributeName()), EMPTY_STRING, EMPTY_STRING,
+ ADD_STRING + TO_CAPS,
+ className + BUILDER, getReturnType(attr),
+ INTERFACE_TYPE);
}
/**
* Returns add to list method impl.
*
- * @param attr java attribute
- * @param generatedJavaClassName class name
- * @param isRoot is root
+ * @param attr java attribute
+ * @param name class name
+ * @param isRoot is root
* @return add to list method impl
*/
public static String getAddToListMethodImpl(JavaAttributeInfo attr,
- String generatedJavaClassName,
+ String name,
boolean isRoot) {
+ String attrName = attr.getAttributeName();
String retString = "";
if (!isRoot) {
retString = getOverRideString();
}
- return retString + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
- generatedJavaClassName + BUILDER + SPACE + ADD_STRING +
- getCapitalCase(TO) + getCapitalCase(attr.getAttributeName()) +
- OPEN_PARENTHESIS + getReturnType(attr) + SPACE + VALUE +
- CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
- EIGHT_SPACE_INDENTATION + attr.getAttributeName() +
- OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD + ADD_STRING +
- OPEN_PARENTHESIS + VALUE + CLOSE_PARENTHESIS + SEMI_COLAN +
- NEW_LINE + EIGHT_SPACE_INDENTATION + RETURN + SPACE + THIS +
- SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET;
+ StringBuilder builder = new StringBuilder(retString);
+ builder.append(methodSignature(ADD_STRING + TO_CAPS +
+ getCapitalCase(attrName),
+ EMPTY_STRING, PUBLIC, ADD_STRING + TO_CAPS,
+ name + BUILDER, getReturnType(attr),
+ CLASS_TYPE))
+ .append(getIfConditionForAddToListMethod(attrName));
+ retString = EIGHT_SPACE_INDENTATION + attrName + PERIOD + ADD_STRING +
+ OPEN_PARENTHESIS + ADD_STRING + TO_CAPS + CLOSE_PARENTHESIS;
+ builder.append(retString)
+ .append(signatureClose())
+ .append(getReturnString(THIS, EIGHT_SPACE_INDENTATION))
+ .append(signatureClose())
+ .append(methodClose(FOUR_SPACE));
+ return builder.toString();
+ }
+
+ // Returns if condition for add to list method.
+ static String getIfConditionForAddToListMethod(String name) {
+ return getIfConditionBegin(EIGHT_SPACE_INDENTATION, name + SPACE + EQUAL +
+ EQUAL + SPACE + NULL) + TWELVE_SPACE_INDENTATION +
+ name + SPACE + EQUAL + SPACE +
+ NEW + SPACE + ARRAY_LIST + signatureClose() + methodClose(
+ EIGHT_SPACE);
}
/**
@@ -1795,15 +1539,14 @@
* @return builder method for class
*/
static String builderMethod(String name) {
- return NEW_LINE + generateForBuilderMethod(name) +
- FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE +
- name + BUILDER + SPACE + getSmallCase(BUILDER) +
- OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE +
- OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION +
- RETURN + SPACE + NEW + SPACE + name +
- BUILDER + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN +
- NEW_LINE + FOUR_SPACE_INDENTATION +
- CLOSE_CURLY_BRACKET;
+ return generateForBuilderMethod(name) +
+ methodSignature(BUILDER_LOWER_CASE,
+ EMPTY_STRING, PUBLIC + SPACE +
+ STATIC, null, name + BUILDER, null, CLASS_TYPE) +
+ getReturnString(NEW + SPACE + name + BUILDER,
+ EIGHT_SPACE_INDENTATION) +
+ brackets(OPEN_CLOSE_BRACKET, null, null) + signatureClose() +
+ methodClose(FOUR_SPACE);
}
/**
@@ -1813,7 +1556,7 @@
* @return is filter content match interface
*/
static String processSubtreeFilteringInterface(String name) {
- String method = " /**\n" +
+ String method = " /**\n" +
" * Checks if the passed " + name +
" maps the content match query condition.\n" +
" *\n" +
@@ -1824,11 +1567,13 @@
" * @param isSelectAllSchemaChild is select all schema child\n" +
" * @return match result\n" +
" */\n";
- return method + FOUR_SPACE_INDENTATION + name + SPACE +
- PROCESS_SUBTREE_FILTERING + OPEN_PARENTHESIS +
- name + SPACE + getSmallCase(name) + COMMA + SPACE +
- BOOLEAN_DATA_TYPE + SPACE + "isSelectAllSchemaChild" +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+ LinkedHashMap<String, String> map = new LinkedHashMap<>();
+ map.put(name, getSmallCase(name));
+ map.put(BOOLEAN_DATA_TYPE, SELECT_ALL_CHILD);
+
+ return method + multiAttrMethodSignature(PROCESS_SUBTREE_FILTERING,
+ EMPTY_STRING, EMPTY_STRING,
+ name, map, INTERFACE_TYPE);
}
/**
@@ -1836,16 +1581,16 @@
*
* @return is value set interface
*/
- static String isLeafValueSetInterface() {
- String method = " /**\n" +
+ static String isLeafValueSetInterface() {
+ String method = "\n /**\n" +
" * Checks if the leaf value is set.\n" +
" *\n" +
" * @param leaf leaf whose value status needs to checked\n" +
" * @return result of leaf value set in object\n" +
" */\n";
- return method + FOUR_SPACE_INDENTATION + BOOLEAN_DATA_TYPE + SPACE +
- VALUE_LEAF_SET + OPEN_PARENTHESIS + LEAF_IDENTIFIER + SPACE +
- "leaf" + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+ return method + methodSignature(VALUE_LEAF_SET, EMPTY_STRING, null,
+ LEAF, BOOLEAN_DATA_TYPE,
+ LEAF_IDENTIFIER, INTERFACE_TYPE);
}
/**
@@ -1854,15 +1599,15 @@
* @return is select leaf set interface
*/
static String isSelectLeafSetInterface() {
- String method = " /**\n" +
+ String method = "\n /**\n" +
" * Checks if the leaf is set to be a selected leaf.\n" +
" *\n" +
" * @param leaf if leaf needs to be selected\n" +
" * @return result of leaf value set in object\n" +
" */\n";
- return method + FOUR_SPACE_INDENTATION + BOOLEAN_DATA_TYPE + SPACE +
- IS_SELECT_LEAF + OPEN_PARENTHESIS + LEAF_IDENTIFIER + SPACE +
- "leaf" + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+ return method + methodSignature(IS_SELECT_LEAF, EMPTY_STRING, null,
+ LEAF, BOOLEAN_DATA_TYPE, LEAF_IDENTIFIER,
+ INTERFACE_TYPE);
}
/**
@@ -1878,9 +1623,10 @@
" * @param leaf leaf needs to be selected\n" +
" * @return builder object for select leaf\n" +
" */\n";
- return method + FOUR_SPACE_INDENTATION + name + BUILDER + SPACE +
- SET_SELECT_LEAF + OPEN_PARENTHESIS + LEAF_IDENTIFIER + SPACE +
- "leaf" + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+ return method + methodSignature(SET_SELECT_LEAF, EMPTY_STRING,
+ null, LEAF, name +
+ BUILDER, LEAF_IDENTIFIER,
+ INTERFACE_TYPE) + NEW_LINE;
}
/**
@@ -1890,7 +1636,7 @@
* @return leaf identifier interface enum signature
*/
static String getInterfaceLeafIdEnumSignature(String name) {
- String start = " /**\n" +
+ String start = "\n /**\n" +
" * Identify the leaf of " + name + PERIOD + NEW_LINE +
" */\n";
return start + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + ENUM + SPACE +
@@ -1898,69 +1644,6 @@
}
/**
- * Returns interface leaf identifier enum method.
- *
- * @return interface leaf identifier enum method
- */
- static String getInterfaceLeafIdEnumMethods() {
- return " private int leafIndex;\n" +
- "\n" +
- " public int getLeafIndex() {\n" +
- " return leafIndex;\n" +
- " }\n" +
- "\n" +
- " LeafIdentifier(int value) {\n" +
- " this.leafIndex = value;\n" +
- " }\n" +
- " }\n";
- }
-
- /**
- * Returns getter methods for operation attributes.
- *
- * @return getter methods for operation attributes
- */
- static String getOperationAttributesGetters() {
- return "\n" +
- " /**\n" +
- " * Returns the valueLeafFlags.\n" +
- " *\n" +
- " * @return value of valueLeafFlags\n" +
- " */\n" +
- " public BitSet getValueLeafFlags() {\n" +
- " return valueLeafFlags;\n" +
- " }\n" +
- "\n" +
- " /**\n" +
- " * Returns the selectLeafFlags.\n" +
- " *\n" +
- " * @return value of selectLeafFlags\n" +
- " */\n" +
- " public BitSet getSelectLeafFlags() {\n" +
- " return selectLeafFlags;\n" +
- " }\n" +
- "\n";
- }
-
- /**
- * Returns getters for value and select leaf.
- *
- * @return getters for value and select leaf
- */
- static String getGettersForValueAndSelectLeaf() {
- return "\n" +
- " @Override\n" +
- " public boolean isLeafValueSet(LeafIdentifier leaf) {\n" +
- " return getValueLeafFlags().get(leaf.getLeafIndex());\n" +
- " }\n" +
- "\n" +
- " @Override\n" +
- " public boolean isSelectLeaf(LeafIdentifier leaf) {\n" +
- " return getSelectLeafFlags().get(leaf.getLeafIndex());\n" +
- " }\n";
- }
-
- /**
* Returns setter for select leaf.
*
* @param name name of node
@@ -1980,37 +1663,4 @@
" return this;\n" +
" }\n";
}
-
- private static String getListAttribute(String attrType,
- YangCompilerAnnotation compilerAnnotation) {
- String listAttr;
- if (compilerAnnotation != null &&
- compilerAnnotation.getYangAppDataStructure() != null) {
- switch (compilerAnnotation.getYangAppDataStructure()
- .getDataStructure()) {
- case QUEUE: {
- listAttr = QUEUE + DIAMOND_OPEN_BRACKET + attrType +
- DIAMOND_CLOSE_BRACKET;
- break;
- }
- case SET: {
- listAttr = SET + DIAMOND_OPEN_BRACKET + attrType +
- DIAMOND_CLOSE_BRACKET;
- break;
- }
- case LIST: {
- listAttr = getListString() + attrType +
- DIAMOND_CLOSE_BRACKET;
- break;
- }
- default: {
- listAttr = getListString() + attrType +
- DIAMOND_CLOSE_BRACKET;
- }
- }
- } else {
- listAttr = getListString() + attrType + DIAMOND_CLOSE_BRACKET;
- }
- return listAttr;
- }
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/StringGenerator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/StringGenerator.java
new file mode 100644
index 0000000..6d5a14c
--- /dev/null
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/StringGenerator.java
@@ -0,0 +1,1057 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.yangutils.translator.tojava.utils;
+
+import org.onosproject.yangutils.datamodel.YangCompilerAnnotation;
+import org.onosproject.yangutils.datamodel.YangType;
+import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes;
+import org.onosproject.yangutils.translator.exception.TranslatorException;
+
+import java.util.Map;
+
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.BOOLEAN;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.DECIMAL64;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.EMPTY;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT16;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT32;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT64;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT8;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT16;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT32;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT64;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT8;
+import static org.onosproject.yangutils.translator.tojava.utils.BracketType.OPEN_CLOSE_BRACKET;
+import static org.onosproject.yangutils.translator.tojava.utils.BracketType.OPEN_CLOSE_BRACKET_WITH_VALUE;
+import static org.onosproject.yangutils.translator.tojava.utils.BracketType.OPEN_CLOSE_BRACKET_WITH_VALUE_AND_RETURN_TYPE;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodClassTypes.CLASS_TYPE;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getIfConditionForAddToListMethod;
+import static org.onosproject.yangutils.utils.UtilConstants.ADD_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.AND;
+import static org.onosproject.yangutils.utils.UtilConstants.AT;
+import static org.onosproject.yangutils.utils.UtilConstants.BIG_DECIMAL;
+import static org.onosproject.yangutils.utils.UtilConstants.BIG_INTEGER;
+import static org.onosproject.yangutils.utils.UtilConstants.BOOLEAN_DATA_TYPE;
+import static org.onosproject.yangutils.utils.UtilConstants.BOOLEAN_WRAPPER;
+import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
+import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_LOWER_CASE;
+import static org.onosproject.yangutils.utils.UtilConstants.BYTE;
+import static org.onosproject.yangutils.utils.UtilConstants.BYTE_WRAPPER;
+import static org.onosproject.yangutils.utils.UtilConstants.CATCH;
+import static org.onosproject.yangutils.utils.UtilConstants.CHECK_NOT_NULL_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.CLASS;
+import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET;
+import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS;
+import static org.onosproject.yangutils.utils.UtilConstants.COLON;
+import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
+import static org.onosproject.yangutils.utils.UtilConstants.COMPARE_TO;
+import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT_CAPS;
+import static org.onosproject.yangutils.utils.UtilConstants.DIAMOND_CLOSE_BRACKET;
+import static org.onosproject.yangutils.utils.UtilConstants.DIAMOND_OPEN_BRACKET;
+import static org.onosproject.yangutils.utils.UtilConstants.DOUBLE;
+import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.ELSE;
+import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.EQUAL;
+import static org.onosproject.yangutils.utils.UtilConstants.EXCEPTION;
+import static org.onosproject.yangutils.utils.UtilConstants.EXCEPTION_VAR;
+import static org.onosproject.yangutils.utils.UtilConstants.EXTEND;
+import static org.onosproject.yangutils.utils.UtilConstants.FALSE;
+import static org.onosproject.yangutils.utils.UtilConstants.FOR;
+import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_METHOD_NAME;
+import static org.onosproject.yangutils.utils.UtilConstants.GET;
+import static org.onosproject.yangutils.utils.UtilConstants.IF;
+import static org.onosproject.yangutils.utils.UtilConstants.IMPLEMENTS;
+import static org.onosproject.yangutils.utils.UtilConstants.IMPORT;
+import static org.onosproject.yangutils.utils.UtilConstants.IN;
+import static org.onosproject.yangutils.utils.UtilConstants.INT;
+import static org.onosproject.yangutils.utils.UtilConstants.INTEGER_WRAPPER;
+import static org.onosproject.yangutils.utils.UtilConstants.INT_MAX_RANGE;
+import static org.onosproject.yangutils.utils.UtilConstants.INT_MIN_RANGE;
+import static org.onosproject.yangutils.utils.UtilConstants.LIST;
+import static org.onosproject.yangutils.utils.UtilConstants.LONG;
+import static org.onosproject.yangutils.utils.UtilConstants.LONG_MAX_RANGE;
+import static org.onosproject.yangutils.utils.UtilConstants.LONG_MIN_RANGE;
+import static org.onosproject.yangutils.utils.UtilConstants.LONG_WRAPPER;
+import static org.onosproject.yangutils.utils.UtilConstants.MAP;
+import static org.onosproject.yangutils.utils.UtilConstants.NEW;
+import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
+import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
+import static org.onosproject.yangutils.utils.UtilConstants.OBJECT_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.OF;
+import static org.onosproject.yangutils.utils.UtilConstants.OMIT_NULL_VALUE_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.OPEN_CURLY_BRACKET;
+import static org.onosproject.yangutils.utils.UtilConstants.OPEN_PARENTHESIS;
+import static org.onosproject.yangutils.utils.UtilConstants.OVERRIDE;
+import static org.onosproject.yangutils.utils.UtilConstants.PARSE_BOOLEAN;
+import static org.onosproject.yangutils.utils.UtilConstants.PARSE_BYTE;
+import static org.onosproject.yangutils.utils.UtilConstants.PARSE_INT;
+import static org.onosproject.yangutils.utils.UtilConstants.PARSE_LONG;
+import static org.onosproject.yangutils.utils.UtilConstants.PARSE_SHORT;
+import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
+import static org.onosproject.yangutils.utils.UtilConstants.PUT;
+import static org.onosproject.yangutils.utils.UtilConstants.QUEUE;
+import static org.onosproject.yangutils.utils.UtilConstants.QUOTES;
+import static org.onosproject.yangutils.utils.UtilConstants.RETURN;
+import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLON;
+import static org.onosproject.yangutils.utils.UtilConstants.SET;
+import static org.onosproject.yangutils.utils.UtilConstants.SHORT;
+import static org.onosproject.yangutils.utils.UtilConstants.SHORT_MAX_RANGE;
+import static org.onosproject.yangutils.utils.UtilConstants.SHORT_MIN_RANGE;
+import static org.onosproject.yangutils.utils.UtilConstants.SHORT_WRAPPER;
+import static org.onosproject.yangutils.utils.UtilConstants.SIXTEEN_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
+import static org.onosproject.yangutils.utils.UtilConstants.THIS;
+import static org.onosproject.yangutils.utils.UtilConstants.TMP_VAL;
+import static org.onosproject.yangutils.utils.UtilConstants.TRY;
+import static org.onosproject.yangutils.utils.UtilConstants.TWELVE_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.TWENTY_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.UINT8_MAX_RANGE;
+import static org.onosproject.yangutils.utils.UtilConstants.UINT8_MIN_RANGE;
+import static org.onosproject.yangutils.utils.UtilConstants.UINT_MAX_RANGE;
+import static org.onosproject.yangutils.utils.UtilConstants.UINT_MIN_RANGE;
+import static org.onosproject.yangutils.utils.UtilConstants.ULONG_MAX_RANGE;
+import static org.onosproject.yangutils.utils.UtilConstants.ULONG_MIN_RANGE;
+import static org.onosproject.yangutils.utils.UtilConstants.VALIDATE_RANGE;
+import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
+import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO_LOWER_CASE;
+import static org.onosproject.yangutils.utils.UtilConstants.YANG_UTILS_TODO;
+import static org.onosproject.yangutils.utils.UtilConstants.ZERO;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.trimAtLast;
+
+/**
+ * Represents string generator for translator.
+ */
+@SuppressWarnings("HardcodedFileSeparator")
+public final class StringGenerator {
+
+ private StringGenerator() {
+ }
+
+ /**
+ * Returns compare to string.
+ *
+ * @return compare to string
+ */
+ static String getCompareToString() {
+ return PERIOD + COMPARE_TO;
+ }
+
+ /**
+ * Returns lesser than and equals condition.
+ *
+ * @return lesser than and equals condition
+ */
+ static String getLesserThanCondition() {
+ return SPACE + DIAMOND_OPEN_BRACKET + EQUAL + SPACE;
+ }
+
+ /**
+ * Returns greater than and equals condition.
+ *
+ * @return greater than and equals condition
+ */
+ static String getGreaterThanCondition() {
+ return SPACE + DIAMOND_CLOSE_BRACKET + EQUAL + SPACE;
+ }
+
+ /**
+ * Returns && conditional string.
+ *
+ * @param cond1 condition one
+ * @param cond2 condition two
+ * @return && conditional string
+ */
+ static String ifAndAndCondition(String cond1, String cond2) {
+ return cond1 + SPACE + AND + AND + SPACE + cond2;
+ }
+
+ /**
+ * Returns equal equal conditional string.
+ *
+ * @param cond1 condition one
+ * @param cond2 condition two
+ * @return equal equal conditional string
+ */
+ static String ifEqualEqualCondition(String cond1, String cond2) {
+ return cond1 + SPACE + EQUAL + EQUAL + SPACE + cond2;
+ }
+
+ /**
+ * Returns new instance string.
+ *
+ * @param returnType return type
+ * @param varName variable name
+ * @param space spaces
+ * @param value value
+ * @return new instance string
+ */
+ static String getNewInstance(String returnType, String varName,
+ String space, String value) {
+ return space + returnType + SPACE + varName + SPACE + EQUAL + SPACE +
+ NEW + returnType + brackets(OPEN_CLOSE_BRACKET_WITH_VALUE,
+ value, null) + signatureClose();
+ }
+
+ /**
+ * Returns return string.
+ *
+ * @param value value to be returned
+ * @param space spaces
+ * @return return string
+ */
+ static String getReturnString(String value, String space) {
+ return space + RETURN + SPACE + value;
+ }
+
+ /**
+ * Returns new line string with spaces.
+ *
+ * @param space spaces
+ * @return new line string with spaces
+ */
+ static String getNewLineAndSpace(String space) {
+ return NEW_LINE + space;
+ }
+
+ /**
+ * Returns method close string.
+ *
+ * @param type indentation type
+ * @return method close string
+ */
+ static String methodClose(IndentationType type) {
+ switch (type) {
+ case EIGHT_SPACE:
+ return EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
+ NEW_LINE;
+ case TWELVE_SPACE:
+ return TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
+ NEW_LINE;
+ case SIXTEEN_SPACE:
+ return SIXTEEN_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
+ NEW_LINE;
+ case TWENTY_SPACE:
+ return TWENTY_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
+ NEW_LINE;
+ case TWENTY_EIGHT_SPACE:
+ return FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
+ NEW_LINE;
+ case TWENTY_FOUR_SPACE:
+ return FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
+ NEW_LINE;
+ default:
+ return FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
+ NEW_LINE;
+ }
+ }
+
+ /**
+ * Returns body of the method.
+ *
+ * @param type type of method body
+ * @param paraName parameter name
+ * @param methodName method name
+ * @param space space to be given before body
+ * @param prefix prefix for internal method
+ * @param paramType parameter type
+ * @param isBuilderSetter is for builder setter
+ * @return body of the method
+ */
+ static String methodBody(MethodBodyTypes type, String paraName,
+ String methodName,
+ String space, String prefix,
+ String paramType, boolean isBuilderSetter) {
+ StringBuilder builder = new StringBuilder();
+ String body;
+ switch (type) {
+ case GETTER:
+ return getReturnString(paraName, space);
+ case SETTER:
+ body = space + THIS + PERIOD + paraName + SPACE + EQUAL + SPACE +
+ paraName + signatureClose();
+ builder.append(body);
+ if (isBuilderSetter) {
+ body = getReturnString(THIS + signatureClose(), space);
+ builder.append(body);
+ }
+ return builder.toString();
+ case BUILD:
+ return getReturnString(
+ NEW + SPACE + paraName + brackets(
+ OPEN_CLOSE_BRACKET_WITH_VALUE, THIS, null) +
+ signatureClose(), space);
+ case CONSTRUCTOR:
+ return space + THIS + PERIOD + paraName + SPACE +
+ EQUAL + SPACE + BUILDER_LOWER_CASE + OBJECT + PERIOD +
+ prefix + methodName +
+ brackets(OPEN_CLOSE_BRACKET, null, null) +
+ signatureClose();
+ case DEFAULT_CONSTRUCTOR:
+ return EMPTY_STRING;
+ case ADD_TO_LIST:
+ return space + getIfConditionForAddToListMethod(paraName) +
+ space + paraName +
+ brackets(OPEN_CLOSE_BRACKET, null, null) + PERIOD +
+ ADD_STRING +
+ brackets(OPEN_CLOSE_BRACKET_WITH_VALUE, VALUE, null) +
+ signatureClose() + getReturnString(
+ THIS + signatureClose(), space);
+ case AUGMENTED_MAP_ADD:
+ return space + YANG_AUGMENTED_INFO_LOWER_CASE + MAP +
+ PERIOD + PUT + OPEN_PARENTHESIS + CLASS +
+ OBJECT_STRING + COMMA + SPACE + VALUE +
+ CLOSE_PARENTHESIS + signatureClose();
+ case AUGMENTED_MAP_GET_VALUE:
+ return getReturnString(
+ YANG_AUGMENTED_INFO_LOWER_CASE + MAP + PERIOD + GET +
+ brackets(OPEN_CLOSE_BRACKET_WITH_VALUE, CLASS +
+ OBJECT_STRING, null) + signatureClose(),
+ space);
+ case AUGMENTED_MAP_GETTER:
+ return getReturnString(YANG_AUGMENTED_INFO_LOWER_CASE + MAP +
+ signatureClose(), space);
+ case MANAGER_METHODS:
+ body = space + YANG_UTILS_TODO + NEW_LINE;
+ builder.append(body);
+ if (paramType != null) {
+ body = getReturnString(parseTypeForReturnValue(paramType),
+ space);
+ builder.append(body)
+ .append(signatureClose());
+ }
+ return builder.toString();
+ case OF_METHOD:
+ return getReturnString(
+ NEW + SPACE + paraName + brackets(
+ OPEN_CLOSE_BRACKET_WITH_VALUE, VALUE, null)
+ + signatureClose(), space);
+ case TO_STRING:
+ return space + PERIOD + ADD_STRING + OPEN_PARENTHESIS + QUOTES +
+ paraName + QUOTES + COMMA + SPACE + paraName +
+ CLOSE_PARENTHESIS;
+ case EQUALS_METHOD:
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Returns end of line.
+ *
+ * @return end of line
+ */
+ static String signatureClose() {
+ return SEMI_COLON + NEW_LINE;
+ }
+
+ /**
+ * Returns method signature close for method class type.
+ *
+ * @param type method class type
+ * @return method signature close for method class type
+ */
+ static String methodSignatureClose(MethodClassTypes type) {
+ switch (type) {
+ case INTERFACE_TYPE:
+ return signatureClose();
+ case CLASS_TYPE:
+ return SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Returns method param.
+ *
+ * @param type type of param
+ * @param name name of param
+ * @return method param
+ */
+ private static String methodParam(String type, String name) {
+ return type + SPACE + name;
+ }
+
+ /**
+ * Returns comma followed by a space.
+ *
+ * @return comma followed by a space
+ */
+ private static String commaWithSpace() {
+ return COMMA + SPACE;
+ }
+
+ /**
+ * Returns bracket string for the given type.
+ *
+ * @param type bracket type
+ * @param value value to be added in brackets
+ * @param returnType returns type to be added for value
+ * @return bracket for the given type.
+ */
+ static String brackets(BracketType type, String value,
+ String returnType) {
+ String ret = EMPTY_STRING;
+ switch (type) {
+ case OPEN_CLOSE_BRACKET:
+ return OPEN_PARENTHESIS + CLOSE_PARENTHESIS;
+ case OPEN_CLOSE_BRACKET_WITH_VALUE:
+ return OPEN_PARENTHESIS + value + CLOSE_PARENTHESIS;
+ case OPEN_CLOSE_BRACKET_WITH_VALUE_AND_RETURN_TYPE:
+ if (returnType != null) {
+ ret = returnType + SPACE;
+ }
+ return OPEN_PARENTHESIS + ret + value +
+ CLOSE_PARENTHESIS;
+ case OPEN_BRACKET_WITH_VALUE:
+ ret = EMPTY_STRING;
+ if (returnType != null) {
+ ret = returnType + SPACE;
+ }
+ return OPEN_PARENTHESIS + ret + value +
+ COMMA;
+ case CLOSE_BRACKET_WITH_VALUE:
+ ret = EMPTY_STRING;
+ if (returnType != null) {
+ ret = returnType + SPACE;
+ }
+ return SPACE + ret + value +
+ CLOSE_PARENTHESIS;
+ case OPEN_CLOSE_DIAMOND:
+ return DIAMOND_OPEN_BRACKET + DIAMOND_CLOSE_BRACKET;
+ case OPEN_CLOSE_DIAMOND_WITH_VALUE:
+ return DIAMOND_OPEN_BRACKET + value + DIAMOND_CLOSE_BRACKET;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Returns method signature for multi attribute methods.
+ *
+ * @param methodName method name
+ * @param prefix prefix for method
+ * @param modifier modifier for method
+ * @param methodReturnType method's return type
+ * @param params parameters
+ * @param type type of method
+ * @return method signature for multi attribute methods
+ */
+ static String multiAttrMethodSignature(String methodName, String
+ prefix, String modifier, String methodReturnType,
+ Map<String, String> params,
+ MethodClassTypes type) {
+ StringBuilder methodBuilder = new StringBuilder(FOUR_SPACE_INDENTATION);
+ String method = EMPTY_STRING;
+ if (modifier != null) {
+ method = modifier + SPACE;
+ }
+ methodBuilder.append(method);
+ if (methodReturnType != null) {
+ method = methodReturnType + SPACE + prefix + methodName;
+ } else {
+ method = prefix + methodName;
+ }
+ //Append method beginning.
+ methodBuilder.append(method)
+ .append(OPEN_PARENTHESIS);
+ for (Map.Entry<String, String> param : params.entrySet()) {
+ methodBuilder.append(methodParam(param.getKey(), param.getValue()));
+ methodBuilder.append(commaWithSpace());
+ }
+ String para = methodBuilder.toString();
+ String[] array = {SPACE, COMMA};
+ para = trimAtLast(para, array);
+ methodBuilder = new StringBuilder(para)
+ .append(CLOSE_PARENTHESIS)
+ .append(methodSignatureClose(type));
+
+ return methodBuilder.toString();
+ }
+
+ /**
+ * Returns method signature for interface and implementation classes.
+ *
+ * @param methodName name of the method
+ * @param prefix prefix which needs to be added for method
+ * @param modifier modifier which needs to be added for method
+ * @param paraVal value which needs to be added as parameter
+ * @param methodReturnType returns type to be added for method
+ * @param paraReturnType return type to be added for parameter
+ * @param type method class type
+ * @return method signature for interface and implementation classes
+ */
+ static String methodSignature(
+ String methodName, String prefix, String modifier, String paraVal,
+ String methodReturnType, String paraReturnType,
+ MethodClassTypes type) {
+ StringBuilder methodBuilder = new StringBuilder(FOUR_SPACE_INDENTATION);
+ String method = EMPTY_STRING;
+ if (modifier != null) {
+ method = modifier + SPACE;
+ }
+ methodBuilder.append(method);
+ if (methodReturnType != null) {
+ method = methodReturnType + SPACE + prefix + methodName;
+ } else {
+ method = prefix + methodName;
+ }
+ //Append method beginning.
+ methodBuilder.append(method);
+
+ if (paraVal != null) {
+ methodBuilder.append(brackets(
+ OPEN_CLOSE_BRACKET_WITH_VALUE_AND_RETURN_TYPE,
+ paraVal, paraReturnType));
+ } else {
+ methodBuilder.append(brackets(OPEN_CLOSE_BRACKET, null,
+ null));
+ }
+
+ methodBuilder.append(methodSignatureClose(type));
+
+ return methodBuilder.toString();
+ }
+
+ /**
+ * Returns list attribute.
+ *
+ * @param attrType attribute type
+ * @param compilerAnnotation compiler annotations
+ * @return list attribute
+ */
+
+ static String getListAttribute(String attrType,
+ YangCompilerAnnotation compilerAnnotation) {
+ String listAttr;
+ if (compilerAnnotation != null &&
+ compilerAnnotation.getYangAppDataStructure() != null) {
+ switch (compilerAnnotation.getYangAppDataStructure()
+ .getDataStructure()) {
+ case QUEUE: {
+ listAttr = QUEUE + DIAMOND_OPEN_BRACKET + attrType +
+ DIAMOND_CLOSE_BRACKET;
+ break;
+ }
+ case SET: {
+ listAttr = SET + DIAMOND_OPEN_BRACKET + attrType +
+ DIAMOND_CLOSE_BRACKET;
+ break;
+ }
+ case LIST: {
+ listAttr = getListString() + attrType +
+ DIAMOND_CLOSE_BRACKET;
+ break;
+ }
+ default: {
+ listAttr = getListString() + attrType +
+ DIAMOND_CLOSE_BRACKET;
+ }
+ }
+ } else {
+ listAttr = getListString() + attrType + DIAMOND_CLOSE_BRACKET;
+ }
+ return listAttr;
+ }
+
+ /**
+ * Returns getters for value and select leaf.
+ *
+ * @return getters for value and select leaf
+ */
+ static String getGettersForValueAndSelectLeaf() {
+ return "\n" +
+ " @Override\n" +
+ " public boolean isLeafValueSet(LeafIdentifier leaf) {\n" +
+ " return getValueLeafFlags().get(leaf.getLeafIndex());\n" +
+ " }\n" +
+ "\n" +
+ " @Override\n" +
+ " public boolean isSelectLeaf(LeafIdentifier leaf) {\n" +
+ " return getSelectLeafFlags().get(leaf.getLeafIndex());\n" +
+ " }\n";
+ }
+
+ /**
+ * Returns getter methods for operation attributes.
+ *
+ * @return getter methods for operation attributes
+ */
+ static String getOperationAttributesGetters() {
+ return "\n" +
+ " /**\n" +
+ " * Returns the valueLeafFlags.\n" +
+ " *\n" +
+ " * @return value of valueLeafFlags\n" +
+ " */\n" +
+ " public BitSet getValueLeafFlags() {\n" +
+ " return valueLeafFlags;\n" +
+ " }\n" +
+ "\n" +
+ " /**\n" +
+ " * Returns the selectLeafFlags.\n" +
+ " *\n" +
+ " * @return value of selectLeafFlags\n" +
+ " */\n" +
+ " public BitSet getSelectLeafFlags() {\n" +
+ " return selectLeafFlags;\n" +
+ " }\n" +
+ "\n";
+ }
+
+ /**
+ * Returns interface leaf identifier enum method.
+ *
+ * @return interface leaf identifier enum method
+ */
+ static String getInterfaceLeafIdEnumMethods() {
+ return "\n\n private int leafIndex;\n" +
+ "\n" +
+ " public int getLeafIndex() {\n" +
+ " return leafIndex;\n" +
+ " }\n" +
+ "\n" +
+ " LeafIdentifier(int value) {\n" +
+ " this.leafIndex = value;\n" +
+ " }\n" +
+ " }\n";
+ }
+
+ /**
+ * Returns if condition string for typedef constructor.
+ *
+ * @param type type of conflict
+ * @param addFirst true int/long need to be added first
+ * @return if condition string for typedef constructor
+ */
+ static String ifConditionForIntInTypeDefConstructor(ValidatorTypeForUnionTypes type,
+ boolean addFirst) {
+ String condition =
+ EIGHT_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS +
+ VALIDATE_RANGE + OPEN_PARENTHESIS;
+
+ switch (type) {
+ case INT_TYPE_CONFLICT:
+ if (addFirst) {
+ condition = condition + INT_MIN_RANGE + COMMA + SPACE +
+ INT_MAX_RANGE + COMMA + SPACE + VALUE;
+ } else {
+ condition = condition + UINT_MIN_RANGE + COMMA + SPACE +
+ UINT_MAX_RANGE + COMMA + SPACE + VALUE;
+ }
+ break;
+ case LONG_TYPE_CONFLICT:
+ if (addFirst) {
+ condition = condition + LONG_MIN_RANGE + COMMA + SPACE +
+ LONG_MAX_RANGE + COMMA + SPACE + VALUE;
+ } else {
+ condition = condition + ULONG_MIN_RANGE + COMMA + SPACE +
+ ULONG_MAX_RANGE + COMMA + SPACE + VALUE;
+ }
+ break;
+ case SHORT_TYPE_CONFLICT:
+ if (addFirst) {
+ condition = condition + SHORT_MIN_RANGE + COMMA + SPACE +
+ SHORT_MAX_RANGE + COMMA + SPACE + VALUE;
+ } else {
+ condition = condition + UINT8_MIN_RANGE + COMMA + SPACE +
+ UINT8_MAX_RANGE + COMMA + SPACE + VALUE;
+ }
+ break;
+ default:
+ return null;
+ }
+
+ return condition + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS + SPACE +
+ OPEN_CURLY_BRACKET + NEW_LINE;
+ }
+
+ /**
+ * Returns from string method parsed string.
+ *
+ * @param targetDataType target data type
+ * @param yangType YANG type
+ * @return parsed string
+ */
+ static String getParseFromStringMethod(String targetDataType,
+ YangType<?> yangType) {
+ YangDataTypes type = yangType.getDataType();
+
+ switch (type) {
+ case INT8:
+ return BYTE_WRAPPER + PERIOD + PARSE_BYTE;
+ case INT16:
+ return SHORT_WRAPPER + PERIOD + PARSE_SHORT;
+ case INT32:
+ return INTEGER_WRAPPER + PERIOD + PARSE_INT;
+ case INT64:
+ return LONG_WRAPPER + PERIOD + PARSE_LONG;
+ case UINT8:
+ return SHORT_WRAPPER + PERIOD + PARSE_SHORT;
+ case UINT16:
+ return INTEGER_WRAPPER + PERIOD + PARSE_INT;
+ case UINT32:
+ return LONG_WRAPPER + PERIOD + PARSE_LONG;
+ case UINT64:
+ return NEW + SPACE + BIG_INTEGER;
+ case DECIMAL64:
+ return NEW + SPACE + BIG_DECIMAL;
+ case STRING:
+ case IDENTITYREF:
+ return EMPTY_STRING;
+ case EMPTY:
+ case BOOLEAN:
+ return BOOLEAN_WRAPPER + PERIOD + PARSE_BOOLEAN;
+ case BITS:
+ case UNION:
+ case ENUMERATION:
+ case DERIVED:
+ return targetDataType + PERIOD + FROM_STRING_METHOD_NAME;
+ default:
+ throw new TranslatorException("given data type is not " +
+ "supported. " +
+ yangType.getDataTypeName() +
+ " in " +
+ yangType.getLineNumber() +
+ " at " +
+ yangType.getCharPosition() +
+ " in " +
+ yangType.getFileName());
+ }
+ }
+
+ /**
+ * Returns sub string with catch statement for union's from string method.
+ *
+ * @return sub string with catch statement for union's from string method
+ */
+ static String getCatchSubString() {
+ return CLOSE_CURLY_BRACKET + SPACE + CATCH + SPACE +
+ brackets(OPEN_CLOSE_BRACKET_WITH_VALUE_AND_RETURN_TYPE, EXCEPTION_VAR,
+ EXCEPTION) + SPACE + OPEN_CURLY_BRACKET;
+ }
+
+ /**
+ * Returns sub string with return statement for union's from string method.
+ *
+ * @return sub string with return statement for union's from string method
+ */
+ static String getReturnOfSubString() {
+ return getReturnString(OF, EIGHT_SPACE_INDENTATION) +
+ brackets(OPEN_CLOSE_BRACKET_WITH_VALUE, TMP_VAL, null) +
+ signatureClose();
+ }
+
+ /**
+ * Returns sub string with try statement for union's from string method.
+ *
+ * @return sub string with try statement for union's from string method
+ */
+ static String getTrySubString() {
+ return TRY + SPACE + OPEN_CURLY_BRACKET;
+ }
+
+ /*
+ * Returns omit null value string.
+ *
+ * @return omit null value string
+ */
+ static String getOmitNullValueString() {
+ return TWELVE_SPACE_INDENTATION + PERIOD + OMIT_NULL_VALUE_STRING +
+ NEW_LINE;
+ }
+
+ /**
+ * Returns collection's iterator method.
+ *
+ * @param indentation indentation
+ * @param loopVar loop variable
+ * @param collection collection
+ * @return collection's iterator method
+ */
+ static String getCollectionIteratorForLoopBegin(String indentation,
+ String loopVar,
+ String collection) {
+ return indentation + FOR + SPACE + OPEN_PARENTHESIS + loopVar + SPACE +
+ COLON + SPACE + collection + CLOSE_PARENTHESIS + SPACE +
+ OPEN_CURLY_BRACKET + NEW_LINE;
+ }
+
+ /**
+ * Returns if else condition's signature.
+ *
+ * @param indentation indentation
+ * @param condition conditions
+ * @return if else condition's signature
+ */
+ static String getElseIfConditionBegin(String indentation,
+ String condition) {
+ return indentation + CLOSE_CURLY_BRACKET + SPACE + ELSE + SPACE +
+ getIfConditionBegin(EMPTY_STRING, condition);
+ }
+
+ /**
+ * Returns if condition's signature.
+ *
+ * @param indentation indentation
+ * @param condition conditions
+ * @return if condition's signature
+ */
+ static String getIfConditionBegin(String indentation, String condition) {
+ return indentation + IF + SPACE + brackets(
+ OPEN_CLOSE_BRACKET_WITH_VALUE, condition, EMPTY_STRING) +
+ methodSignatureClose(CLASS_TYPE);
+ }
+
+ /**
+ * Returns whether the data type is of primitive data type.
+ *
+ * @param dataType data type to be checked
+ * @return true, if data type can have primitive data type, false otherwise
+ */
+ static boolean isPrimitiveDataType(YangDataTypes dataType) {
+ return dataType == INT8 ||
+ dataType == INT16 ||
+ dataType == INT32 ||
+ dataType == INT64 ||
+ dataType == UINT8 ||
+ dataType == UINT16 ||
+ dataType == UINT32 ||
+ dataType == UINT64 ||
+ dataType == DECIMAL64 ||
+ dataType == BOOLEAN ||
+ dataType == EMPTY;
+ }
+
+ /**
+ * Returns list string.
+ *
+ * @return list string
+ */
+ private static String getListString() {
+ return LIST + DIAMOND_OPEN_BRACKET;
+ }
+
+ /**
+ * Returns override string.
+ *
+ * @return override string
+ */
+ public static String getOverRideString() {
+ return NEW_LINE + FOUR_SPACE_INDENTATION + OVERRIDE + NEW_LINE;
+ }
+
+ /**
+ * Returns value leaf flag setter.
+ *
+ * @param name name of leaf
+ * @return value leaf flag setter
+ */
+ static String getValueLeafSetString(String name) {
+ return "\n valueLeafFlags.set(LeafIdentifier." +
+ name.toUpperCase() + ".getLeafIndex());\n";
+ }
+
+ /*Provides string to return for type.*/
+ private static String parseTypeForReturnValue(String type) {
+ switch (type) {
+ case BYTE:
+ case INT:
+ case SHORT:
+ case LONG:
+ case DOUBLE:
+ return ZERO;
+ case BOOLEAN_DATA_TYPE:
+ return FALSE;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Returns check not null string.
+ *
+ * @param name attribute name
+ * @return check not null string
+ */
+ static String getCheckNotNull(String name) {
+ return EIGHT_SPACE_INDENTATION + CHECK_NOT_NULL_STRING +
+ OPEN_PARENTHESIS + name + COMMA + SPACE + name +
+ CLOSE_PARENTHESIS + SEMI_COLON + NEW_LINE;
+ }
+
+ /**
+ * Returns definition close string.
+ *
+ * @return definition close string
+ */
+ private static String defCloseString() {
+ return SPACE + OPEN_CURLY_BRACKET + NEW_LINE + NEW_LINE;
+ }
+
+ /**
+ * Returns default class definition for java file when extends a
+ * interface.
+ *
+ * @param classType class type
+ * @param name name of class
+ * @param modifier modifier for class
+ * @param extend extends class name
+ * @return class definition
+ */
+ static String getDefaultDefinitionWithExtends(String classType,
+ String name, String
+ modifier,
+ String extend) {
+ String mod = EMPTY_STRING;
+ if (modifier != null) {
+ mod = modifier + SPACE;
+ }
+ return mod + classType + SPACE + name + SPACE + EXTEND + SPACE
+ + extend + defCloseString();
+ }
+
+ /**
+ * Returns default class definition for java file when implements a
+ * interface.
+ *
+ * @param classType class type
+ * @param name name of class
+ * @param modifier modifier for class
+ * @param impl implements class name
+ * @return class definition
+ */
+ static String getDefaultDefinitionWithImpl(String classType,
+ String name, String
+ modifier,
+ String impl) {
+ String mod = EMPTY_STRING;
+ if (modifier != null) {
+ mod = modifier + SPACE;
+ }
+ return mod + classType + SPACE + name + SPACE + IMPLEMENTS +
+ SPACE + impl + defCloseString();
+ }
+
+ /**
+ * Returns default class definition for java file.
+ *
+ * @param classType class type
+ * @param name name of class
+ * @param modifier modifier for class
+ * @return class definition
+ */
+ static String getDefaultDefinition(String classType,
+ String name, String modifier) {
+ String mod = EMPTY_STRING;
+ if (modifier != null) {
+ mod = modifier + SPACE;
+ }
+ return mod + classType + SPACE + name + defCloseString();
+ }
+
+ /**
+ * Returns string for service class.
+ *
+ * @param name1 name of even listener class
+ * @param name2 name of even class
+ * @return listener service string for service class
+ */
+ static String getEventExtendsString(String name1, String type,
+ String name2) {
+ StringBuilder builder = new StringBuilder();
+ builder.append(type).append(DIAMOND_OPEN_BRACKET).append(name1)
+ .append(COMMA).append(SPACE).append(name2).append
+ (DIAMOND_CLOSE_BRACKET);
+ return builder.toString();
+ }
+
+ /**
+ * Returns import string.
+ *
+ * @param pkg package
+ * @param cls class
+ * @return import string
+ */
+ public static String getImportString(String pkg, String cls) {
+ StringBuilder builder = new StringBuilder()
+ .append(IMPORT).append(pkg).append(PERIOD).append(cls)
+ .append(signatureClose());
+ return builder.toString();
+ }
+
+ /**
+ * Returns static modifier string.
+ *
+ * @param modifier modifier
+ * @return static modifier string
+ */
+ static String getSpecificModifier(String modifier, String keyWord) {
+ return new StringBuilder(modifier).append(SPACE).append(keyWord)
+ .toString();
+ }
+
+ /**
+ * Returns builder string for class definition.
+ *
+ * @param yangName class name
+ * @return builder string for class definition
+ */
+ static String getBuilderImplStringClassDef(String yangName) {
+ return new StringBuilder(yangName).append(PERIOD).append(yangName)
+ .append(BUILDER).toString();
+ }
+
+ /**
+ * Returns default name string.
+ *
+ * @param yangName class name
+ * @return default name string
+ */
+ static String getDefaultName(String yangName) {
+ return new StringBuilder(DEFAULT_CAPS).append(yangName).toString();
+ }
+
+ /**
+ * Returns suffixed name string.
+ *
+ * @param yangName class name
+ * @param suffix suffix to append to name
+ * @return suffixed name string
+ */
+ static String getSuffixedName(String yangName, String suffix) {
+ return new StringBuilder(yangName).append(suffix).toString();
+ }
+
+ /**
+ * Returns error msg string.
+ *
+ * @param msg message
+ * @param name name of node
+ * @param line line number
+ * @param position char position
+ * @param fileName file name
+ * @return error message string
+ */
+ static String getErrorMsg(String msg, String name, int line, int position,
+ String fileName) {
+ return new StringBuilder().append(msg).append(name).append(IN)
+ .append(line).append(AT).append(position).append(IN)
+ .append(fileName).toString();
+ }
+}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/SubtreeFilteringMethodsGenerator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/SubtreeFilteringMethodsGenerator.java
index 3bda74c..e7e83f4 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/SubtreeFilteringMethodsGenerator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/SubtreeFilteringMethodsGenerator.java
@@ -16,8 +16,6 @@
package org.onosproject.yangutils.translator.tojava.utils;
-import java.io.IOException;
-
import org.onosproject.yangutils.datamodel.YangAugment;
import org.onosproject.yangutils.datamodel.YangCase;
import org.onosproject.yangutils.datamodel.YangChoice;
@@ -28,20 +26,22 @@
import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo;
import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
-import org.onosproject.yangutils.translator.tojava
- .TempJavaCodeFragmentFilesContainer;
+import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
import org.onosproject.yangutils.utils.io.YangPluginConfig;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype
- .YangDataTypes.LEAFREF;
-import static org.onosproject.yangutils.translator.tojava
- .GeneratedTempFileType.FILTER_CONTENT_MATCH_FOR_LEAF_LIST_MASK;
-import static org.onosproject.yangutils.translator.tojava
- .GeneratedTempFileType.FILTER_CONTENT_MATCH_FOR_LEAF_MASK;
-import static org.onosproject.yangutils.translator.tojava
- .GeneratedTempFileType.FILTER_CONTENT_MATCH_FOR_NODES_MASK;
-import static org.onosproject.yangutils.translator.tojava.utils
- .JavaFileGeneratorUtils.getDataFromTempFileHandle;
+import java.io.IOException;
+
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.LEAFREF;
+import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.FILTER_CONTENT_MATCH_FOR_LEAF_LIST_MASK;
+import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.FILTER_CONTENT_MATCH_FOR_LEAF_MASK;
+import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.FILTER_CONTENT_MATCH_FOR_NODES_MASK;
+import static org.onosproject.yangutils.translator.tojava.utils.IndentationType.EIGHT_SPACE;
+import static org.onosproject.yangutils.translator.tojava.utils.IndentationType.SIXTEEN_SPACE;
+import static org.onosproject.yangutils.translator.tojava.utils.IndentationType.TWELVE_SPACE;
+import static org.onosproject.yangutils.translator.tojava.utils.IndentationType.TWENTY_FOUR_SPACE;
+import static org.onosproject.yangutils.translator.tojava.utils.IndentationType.TWENTY_SPACE;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getDataFromTempFileHandle;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.methodClose;
import static org.onosproject.yangutils.utils.UtilConstants.ADD_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.AND_OPERATION;
import static org.onosproject.yangutils.utils.UtilConstants.APP_INSTANCE;
@@ -52,48 +52,38 @@
import static org.onosproject.yangutils.utils.UtilConstants.CATCH;
import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET;
import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS;
-import static org.onosproject.yangutils.utils.UtilConstants.COLAN;
+import static org.onosproject.yangutils.utils.UtilConstants.COLON;
import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
import static org.onosproject.yangutils.utils.UtilConstants.CONTINUE;
-import static org.onosproject.yangutils.utils.UtilConstants
- .EIGHT_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.ELSE;
-import static org.onosproject.yangutils.utils.UtilConstants
- .EMPTY_PARAMETER_FUNCTION_CALL;
+import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_PARAMETER_FUNCTION_CALL;
import static org.onosproject.yangutils.utils.UtilConstants.EQUAL;
import static org.onosproject.yangutils.utils.UtilConstants.EQUALS_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.EXCEPTION_VAR;
import static org.onosproject.yangutils.utils.UtilConstants.FALSE;
import static org.onosproject.yangutils.utils.UtilConstants.FOR;
-import static org.onosproject.yangutils.utils.UtilConstants
- .FOUR_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.GET_CLASS;
import static org.onosproject.yangutils.utils.UtilConstants.GET_LEAF_INDEX;
import static org.onosproject.yangutils.utils.UtilConstants.GET_METHOD;
import static org.onosproject.yangutils.utils.UtilConstants.GET_METHOD_PREFIX;
-import static org.onosproject.yangutils.utils.UtilConstants
- .GET_SELECT_LEAF_FLAGS;
-import static org.onosproject.yangutils.utils.UtilConstants
- .GET_VALUE_LEAF_FLAGS;
+import static org.onosproject.yangutils.utils.UtilConstants.GET_SELECT_LEAF_FLAGS;
+import static org.onosproject.yangutils.utils.UtilConstants.GET_VALUE_LEAF_FLAGS;
import static org.onosproject.yangutils.utils.UtilConstants.IF;
-import static org.onosproject.yangutils.utils.UtilConstants
- .ILLEGAL_ACCESS_EXCEPTION;
+import static org.onosproject.yangutils.utils.UtilConstants.ILLEGAL_ACCESS_EXCEPTION;
import static org.onosproject.yangutils.utils.UtilConstants.INSTANCE;
-import static org.onosproject.yangutils.utils.UtilConstants
- .INVOCATION_TARGET_EXCEPTION;
+import static org.onosproject.yangutils.utils.UtilConstants.INVOCATION_TARGET_EXCEPTION;
import static org.onosproject.yangutils.utils.UtilConstants.INVOKE;
-import static org.onosproject.yangutils.utils.UtilConstants
- .IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG;
+import static org.onosproject.yangutils.utils.UtilConstants.IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG;
import static org.onosproject.yangutils.utils.UtilConstants.IS_EMPTY;
-import static org.onosproject.yangutils.utils.UtilConstants
- .IS_SELECT_ALL_SCHEMA_CHILD_FLAG;
+import static org.onosproject.yangutils.utils.UtilConstants.IS_SELECT_ALL_SCHEMA_CHILD_FLAG;
import static org.onosproject.yangutils.utils.UtilConstants.LEAF_IDENTIFIER;
import static org.onosproject.yangutils.utils.UtilConstants.MAP;
import static org.onosproject.yangutils.utils.UtilConstants.NEW;
import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
import static org.onosproject.yangutils.utils.UtilConstants.NOT;
-import static org.onosproject.yangutils.utils.UtilConstants
- .NO_SUCH_METHOD_EXCEPTION;
+import static org.onosproject.yangutils.utils.UtilConstants.NO_SUCH_METHOD_EXCEPTION;
import static org.onosproject.yangutils.utils.UtilConstants.NULL;
import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
import static org.onosproject.yangutils.utils.UtilConstants.OBJECT_STRING;
@@ -102,44 +92,36 @@
import static org.onosproject.yangutils.utils.UtilConstants.OR_OPERATION;
import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
import static org.onosproject.yangutils.utils.UtilConstants.PRIVATE;
-import static org.onosproject.yangutils.utils.UtilConstants
- .PROCESS_SUBTREE_FILTERING;
+import static org.onosproject.yangutils.utils.UtilConstants.PROCESS_SUBTREE_FILTERING;
import static org.onosproject.yangutils.utils.UtilConstants.PUBLIC;
import static org.onosproject.yangutils.utils.UtilConstants.QUOTES;
import static org.onosproject.yangutils.utils.UtilConstants.RETURN;
-import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
-import static org.onosproject.yangutils.utils.UtilConstants
- .SIXTEEN_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLON;
+import static org.onosproject.yangutils.utils.UtilConstants.SIXTEEN_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
-import static org.onosproject.yangutils.utils.UtilConstants
- .SUBTREE_FILTERING_RESULT_BUILDER;
-import static org.onosproject.yangutils.utils.UtilConstants
- .THIRTY_TWO_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.SUBTREE_FILTERING_RESULT_BUILDER;
+import static org.onosproject.yangutils.utils.UtilConstants.THIRTY_TWO_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.THIS;
import static org.onosproject.yangutils.utils.UtilConstants.TO;
import static org.onosproject.yangutils.utils.UtilConstants.TRUE;
import static org.onosproject.yangutils.utils.UtilConstants.TRY;
-import static org.onosproject.yangutils.utils.UtilConstants
- .TWELVE_SPACE_INDENTATION;
-import static org.onosproject.yangutils.utils.UtilConstants
- .TWENTY_EIGHT_SPACE_INDENTATION;
-import static org.onosproject.yangutils.utils.UtilConstants
- .TWENTY_FOUR_SPACE_INDENTATION;
-import static org.onosproject.yangutils.utils.UtilConstants
- .TWENTY_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.TWELVE_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.TWENTY_EIGHT_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.TWENTY_FOUR_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.TWENTY_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO;
-import static org.onosproject.yangutils.utils.UtilConstants
- .YANG_AUGMENTED_OP_PARAM_INFO;
+import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO_LOWER_CASE;
+import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_OP_PARAM_INFO;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
-import static org.onosproject.yangutils.utils.io.impl.YangIoUtils
- .getCapitalCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase;
/**
* Represents generator for subtree filtering methods of generated files
* based on the file type.
*/
+//TODO: improve class to use string generator.
public final class SubtreeFilteringMethodsGenerator {
/**
@@ -170,14 +152,14 @@
TWELVE_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS +
attrQualifiedType + CLOSE_PARENTHESIS + SPACE +
OPEN_CURLY_BRACKET + NEW_LINE + SIXTEEN_SPACE_INDENTATION +
- RETURN + SPACE + FALSE + SEMI_COLAN + NEW_LINE +
+ RETURN + SPACE + FALSE + SEMI_COLON + NEW_LINE +
TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + SPACE +
ELSE + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
SIXTEEN_SPACE_INDENTATION +
SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + attributeName +
OPEN_PARENTHESIS + APP_INSTANCE + PERIOD + attributeName +
OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
+ CLOSE_PARENTHESIS + SEMI_COLON + NEW_LINE +
TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE +
EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + SPACE + ELSE +
SPACE + IF + SPACE + OPEN_PARENTHESIS +
@@ -189,11 +171,11 @@
CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
TWELVE_SPACE_INDENTATION +
IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG + SPACE + EQUAL +
- SPACE + TRUE + SEMI_COLAN + NEW_LINE +
+ SPACE + TRUE + SEMI_COLON + NEW_LINE +
TWELVE_SPACE_INDENTATION + SUBTREE_FILTERING_RESULT_BUILDER +
PERIOD + attributeName + OPEN_PARENTHESIS + APP_INSTANCE +
PERIOD + attributeName + EMPTY_PARAMETER_FUNCTION_CALL +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
+ CLOSE_PARENTHESIS + SEMI_COLON + NEW_LINE +
EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
}
@@ -229,14 +211,14 @@
YangType dataType) {
String attrQualifiedType;
- if (MethodsGenerator.isPrimitiveDataType(dataType.getDataType())) {
+ if (StringGenerator.isPrimitiveDataType(dataType.getDataType())) {
attrQualifiedType =
getAttrTypeForFilterContentMatchWhenPrimitiveDataType(
attributeName);
} else if (dataType.getDataType() == LEAFREF) {
YangType type = ((YangLeafRef) dataType.getDataTypeExtendedInfo())
.getEffectiveDataType();
- if (MethodsGenerator.isPrimitiveDataType(type.getDataType())) {
+ if (StringGenerator.isPrimitiveDataType(type.getDataType())) {
attrQualifiedType =
getAttrTypeForFilterContentMatchWhenPrimitiveDataType(
attributeName);
@@ -322,7 +304,7 @@
caseName + SPACE + APP_INSTANCE + SPACE +
EQUAL + SPACE + OPEN_PARENTHESIS + caseName +
CLOSE_PARENTHESIS + SPACE + instance +
- SEMI_COLAN + NEW_LINE;
+ SEMI_COLON + NEW_LINE;
}
processSubtreeFilteringMethod +=
@@ -332,7 +314,7 @@
.getBeanTempFiles(), path);
processSubtreeFilteringMethod +=
- EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLAN +
+ EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLON +
NEW_LINE + FOUR_SPACE_INDENTATION +
CLOSE_CURLY_BRACKET + NEW_LINE + NEW_LINE;
@@ -396,7 +378,7 @@
caseName + SPACE + APP_INSTANCE + SPACE +
EQUAL + SPACE + OPEN_PARENTHESIS + caseName +
CLOSE_PARENTHESIS + SPACE + instance +
- SEMI_COLAN + NEW_LINE;
+ SEMI_COLON + NEW_LINE;
}
processSubtreeFilteringMethod += getDataFromTempFileHandle(
@@ -406,7 +388,7 @@
.getBeanTempFiles(), path);
processSubtreeFilteringMethod +=
- EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLAN +
+ EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLON +
NEW_LINE + FOUR_SPACE_INDENTATION +
CLOSE_CURLY_BRACKET + NEW_LINE + NEW_LINE;
@@ -469,7 +451,7 @@
caseName + SPACE + APP_INSTANCE + SPACE +
EQUAL + SPACE + OPEN_PARENTHESIS + caseName +
CLOSE_PARENTHESIS + SPACE + instance +
- SEMI_COLAN + NEW_LINE;
+ SEMI_COLON + NEW_LINE;
}
processSubtreeFilteringMethod +=
@@ -479,7 +461,7 @@
.getBeanTempFiles(), path);
processSubtreeFilteringMethod +=
- EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLAN +
+ EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLON +
NEW_LINE + FOUR_SPACE_INDENTATION +
CLOSE_CURLY_BRACKET + NEW_LINE + NEW_LINE;
@@ -522,7 +504,7 @@
}
}
String processSubtreeFilteringMethod =
- MethodsGenerator.getOverRideString() + FOUR_SPACE_INDENTATION +
+ StringGenerator.getOverRideString() + FOUR_SPACE_INDENTATION +
PUBLIC + SPACE + name + SPACE +
PROCESS_SUBTREE_FILTERING + OPEN_PARENTHESIS + name +
SPACE + instance + COMMA + SPACE + BOOLEAN_DATA_TYPE +
@@ -532,10 +514,10 @@
builderNamePrefix + BUILDER + SPACE +
SUBTREE_FILTERING_RESULT_BUILDER + SPACE + EQUAL +
SPACE + NEW + SPACE + builderNamePrefix + BUILDER +
- OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN +
+ OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLON +
NEW_LINE + EIGHT_SPACE_INDENTATION + "Boolean" + SPACE +
IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG + SPACE +
- EQUAL + SPACE + FALSE + SEMI_COLAN + NEW_LINE;
+ EQUAL + SPACE + FALSE + SEMI_COLON + NEW_LINE;
if (curNode instanceof YangCase) {
String caseName = getCapitalCase(javaFileInfo.getJavaName());
@@ -544,7 +526,7 @@
caseName + SPACE + APP_INSTANCE + SPACE +
EQUAL + SPACE + OPEN_PARENTHESIS + caseName +
CLOSE_PARENTHESIS + SPACE + instance +
- SEMI_COLAN + NEW_LINE;
+ SEMI_COLON + NEW_LINE;
}
return processSubtreeFilteringMethod;
@@ -564,7 +546,7 @@
if (((YangLeavesHolder) curNode).getListOfLeaf() != null
&&
!((YangLeavesHolder) curNode).getListOfLeaf().isEmpty()) {
- method += MethodsGenerator
+ method += StringGenerator
.getIfConditionBegin(EIGHT_SPACE_INDENTATION, NOT +
"processLeafSubtreeFiltering(appInstance, " +
"subTreeFilteringResultBuilder," + NEW_LINE +
@@ -573,9 +555,9 @@
"isSelectAllSchemaChild)");
method += TWELVE_SPACE_INDENTATION + RETURN + SPACE + NULL +
- SEMI_COLAN + NEW_LINE;
+ SEMI_COLON + NEW_LINE;
- method += MethodsGenerator.getBlockEnd(EIGHT_SPACE_INDENTATION);
+ method += methodClose(EIGHT_SPACE);
}
}
@@ -584,7 +566,7 @@
&&
!((YangLeavesHolder) curNode).getListOfLeafList()
.isEmpty()) {
- method += MethodsGenerator
+ method += StringGenerator
.getIfConditionBegin(EIGHT_SPACE_INDENTATION, NOT +
"processLeafListSubTreeFiltering(appInstance," +
" subTreeFilteringResultBuilder," + NEW_LINE
@@ -593,15 +575,15 @@
"isSelectAllSchemaChild)");
method += TWELVE_SPACE_INDENTATION + RETURN + SPACE + NULL +
- SEMI_COLAN + NEW_LINE;
+ SEMI_COLON + NEW_LINE;
- method += MethodsGenerator.getBlockEnd(EIGHT_SPACE_INDENTATION);
+ method += methodClose(EIGHT_SPACE);
}
}
if (curNode.getChild() != null) {
- method += MethodsGenerator
+ method += StringGenerator
.getIfConditionBegin(EIGHT_SPACE_INDENTATION, NOT +
"processChildNodesSubTreeFiltering(appInstance, " +
"subTreeFilteringResultBuilder," + NEW_LINE +
@@ -610,9 +592,9 @@
"isSelectAllSchemaChild)");
method += TWELVE_SPACE_INDENTATION + RETURN + SPACE + NULL +
- SEMI_COLAN + NEW_LINE;
+ SEMI_COLON + NEW_LINE;
- method += MethodsGenerator.getBlockEnd(EIGHT_SPACE_INDENTATION);
+ method += methodClose(EIGHT_SPACE);
}
return method;
@@ -639,7 +621,7 @@
* @return is filter content match close
*/
static String getProcessSubTreeFilteringEnd() {
- String method = MethodsGenerator
+ String method = StringGenerator
.getIfConditionBegin(EIGHT_SPACE_INDENTATION,
NOT + IS_SELECT_ALL_SCHEMA_CHILD_FLAG +
SPACE + AND_OPERATION + SPACE +
@@ -648,14 +630,14 @@
method += TWELVE_SPACE_INDENTATION + RETURN + SPACE +
PROCESS_SUBTREE_FILTERING + OPEN_PARENTHESIS + APP_INSTANCE +
- COMMA + SPACE + TRUE + CLOSE_PARENTHESIS + SEMI_COLAN +
+ COMMA + SPACE + TRUE + CLOSE_PARENTHESIS + SEMI_COLON +
NEW_LINE;
- method += MethodsGenerator.getBlockEnd(EIGHT_SPACE_INDENTATION);
+ method += methodClose(EIGHT_SPACE);
method += EIGHT_SPACE_INDENTATION + RETURN + SPACE +
SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + BUILD +
- EMPTY_PARAMETER_FUNCTION_CALL + SEMI_COLAN + NEW_LINE +
+ EMPTY_PARAMETER_FUNCTION_CALL + SEMI_COLON + NEW_LINE +
FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
return method;
@@ -677,13 +659,13 @@
type;
}
- String method = MethodsGenerator
+ String method = StringGenerator
.getIfConditionBegin(EIGHT_SPACE_INDENTATION, name + "() != " +
"null");
method += TWELVE_SPACE_INDENTATION +
IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG + SPACE + EQUAL + SPACE +
- TRUE + SEMI_COLAN + NEW_LINE;
+ TRUE + SEMI_COLON + NEW_LINE;
method += TWELVE_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS +
APP_INSTANCE + PERIOD + name + OPEN_PARENTHESIS +
@@ -694,7 +676,7 @@
method += SIXTEEN_SPACE_INDENTATION + type + SPACE + "result = " +
name + PERIOD + PROCESS_SUBTREE_FILTERING + OPEN_PARENTHESIS +
APP_INSTANCE + PERIOD + name + EMPTY_PARAMETER_FUNCTION_CALL
- + COMMA + SPACE + FALSE + CLOSE_PARENTHESIS + SEMI_COLAN +
+ + COMMA + SPACE + FALSE + CLOSE_PARENTHESIS + SEMI_COLON +
NEW_LINE;
method += SIXTEEN_SPACE_INDENTATION + "if (result != null) {" +
@@ -702,14 +684,14 @@
method += TWENTY_SPACE_INDENTATION + SUBTREE_FILTERING_RESULT_BUILDER +
PERIOD + name + OPEN_PARENTHESIS + "result" +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
+ CLOSE_PARENTHESIS + SEMI_COLON + NEW_LINE +
SIXTEEN_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
//if app instance is not null
- method += MethodsGenerator.getBlockEnd(TWELVE_SPACE_INDENTATION);
+ method += methodClose(TWELVE_SPACE);
//if query instance is not null
- method += MethodsGenerator.getBlockEnd(EIGHT_SPACE_INDENTATION);
+ method += methodClose(TWELVE_SPACE);
return method;
}
@@ -735,11 +717,11 @@
/*
* If select all schema child
*/
- String method = MethodsGenerator
+ String method = StringGenerator
.getIfConditionBegin(EIGHT_SPACE_INDENTATION,
IS_SELECT_ALL_SCHEMA_CHILD_FLAG);
- method = method + MethodsGenerator
+ method = method + StringGenerator
.getCollectionIteratorForLoopBegin(TWELVE_SPACE_INDENTATION,
type + SPACE + name,
APP_INSTANCE + PERIOD +
@@ -749,13 +731,12 @@
method = method + SIXTEEN_SPACE_INDENTATION +
SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + ADD_STRING +
getCapitalCase(TO) + capitalCaseName + OPEN_PARENTHESIS +
- name + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+ name + CLOSE_PARENTHESIS + SEMI_COLON + NEW_LINE;
- method += MethodsGenerator.getBlockEnd(
- TWELVE_SPACE_INDENTATION); // Close collection Iteration loop
+ method += methodClose(TWELVE_SPACE); // Close collection Iteration loop
//If need to explicitly participate in query
- method += MethodsGenerator
+ method += StringGenerator
.getElseIfConditionBegin(EIGHT_SPACE_INDENTATION,
name + EMPTY_PARAMETER_FUNCTION_CALL +
SPACE + NOT + EQUAL +
@@ -764,11 +745,11 @@
if (!isLeafList) {
method += TWELVE_SPACE_INDENTATION +
IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG + SPACE + EQUAL +
- SPACE + TRUE + SEMI_COLAN + NEW_LINE;
+ SPACE + TRUE + SEMI_COLON + NEW_LINE;
}
//If there is any parameter in the query condition
- method += MethodsGenerator
+ method += StringGenerator
.getIfConditionBegin(TWELVE_SPACE_INDENTATION, NOT + name +
EMPTY_PARAMETER_FUNCTION_CALL + PERIOD + IS_EMPTY);
@@ -776,7 +757,7 @@
/*
* If there is no app instance to perform content match
*/
- method += MethodsGenerator
+ method += StringGenerator
.getIfConditionBegin(SIXTEEN_SPACE_INDENTATION,
APP_INSTANCE + PERIOD + name +
EMPTY_PARAMETER_FUNCTION_CALL +
@@ -788,21 +769,21 @@
PERIOD + IS_EMPTY);
method += TWENTY_SPACE_INDENTATION + RETURN + SPACE + FALSE +
- SEMI_COLAN + NEW_LINE;
+ SEMI_COLON + NEW_LINE;
- method += MethodsGenerator.getBlockEnd(SIXTEEN_SPACE_INDENTATION);
+ method += methodClose(SIXTEEN_SPACE);
// for instance iterator
- method += MethodsGenerator.getCollectionIteratorForLoopBegin(
+ method += StringGenerator.getCollectionIteratorForLoopBegin(
SIXTEEN_SPACE_INDENTATION, type + SPACE + name,
name + EMPTY_PARAMETER_FUNCTION_CALL);
method += TWENTY_SPACE_INDENTATION + BOOLEAN_DATA_TYPE + SPACE +
- "flag" + SPACE + EQUAL + SPACE + FALSE + SEMI_COLAN +
+ "flag" + SPACE + EQUAL + SPACE + FALSE + SEMI_COLON +
NEW_LINE;
// for app instance iterator
- method += MethodsGenerator
+ method += StringGenerator
.getCollectionIteratorForLoopBegin(TWENTY_SPACE_INDENTATION,
type + SPACE + name +
"2",
@@ -811,47 +792,43 @@
EMPTY_PARAMETER_FUNCTION_CALL);
//the content match leaf list attribute value matches
- method += MethodsGenerator
+ method += StringGenerator
.getIfConditionBegin(TWENTY_FOUR_SPACE_INDENTATION,
name + PERIOD + EQUALS_STRING
+ OPEN_PARENTHESIS + name +
"2" + CLOSE_PARENTHESIS);
method += TWENTY_EIGHT_SPACE_INDENTATION + "flag" + SPACE + EQUAL +
- SPACE + TRUE + SEMI_COLAN + NEW_LINE;
+ SPACE + TRUE + SEMI_COLON + NEW_LINE;
method += TWENTY_EIGHT_SPACE_INDENTATION +
SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + ADD_STRING +
getCapitalCase(TO) + capitalCaseName + OPEN_PARENTHESIS +
name + "2" + CLOSE_PARENTHESIS +
- SEMI_COLAN + NEW_LINE + TWENTY_EIGHT_SPACE_INDENTATION +
- BREAK + SEMI_COLAN + NEW_LINE;
+ SEMI_COLON + NEW_LINE + TWENTY_EIGHT_SPACE_INDENTATION +
+ BREAK + SEMI_COLON + NEW_LINE;
//the content match leaf list attribute value matches
- method +=
- MethodsGenerator.getBlockEnd(TWENTY_FOUR_SPACE_INDENTATION);
+ method += methodClose(TWENTY_FOUR_SPACE);
// for app instance iterator
- method += MethodsGenerator.getBlockEnd(TWENTY_SPACE_INDENTATION);
+ method += methodClose(TWENTY_SPACE);
//if the content match failed
- method += MethodsGenerator
+ method += StringGenerator
.getIfConditionBegin(TWENTY_SPACE_INDENTATION, "!flag");
method += TWENTY_FOUR_SPACE_INDENTATION + RETURN + SPACE + FALSE +
- SEMI_COLAN + NEW_LINE;
+ SEMI_COLON + NEW_LINE;
- method += MethodsGenerator
- .getBlockEnd(TWENTY_SPACE_INDENTATION); // if flag == false
+ method +=
+ methodClose(TWENTY_SPACE); // if flag == false
- method += MethodsGenerator.getBlockEnd(
- SIXTEEN_SPACE_INDENTATION); // for instance iterator
-
-
+ method += methodClose(SIXTEEN_SPACE); // for instance iterator
} else {
/*if there is any app instance entry*/
- method += MethodsGenerator
+ method += StringGenerator
.getIfConditionBegin(SIXTEEN_SPACE_INDENTATION,
APP_INSTANCE + PERIOD + name +
EMPTY_PARAMETER_FUNCTION_CALL +
@@ -865,14 +842,14 @@
/*
* loop all the query condition instance(s)
*/
- method += MethodsGenerator
+ method += StringGenerator
.getCollectionIteratorForLoopBegin(TWENTY_SPACE_INDENTATION,
type + SPACE + name,
name +
EMPTY_PARAMETER_FUNCTION_CALL);
//loop all the app instance(s)
- method += MethodsGenerator.getCollectionIteratorForLoopBegin(
+ method += StringGenerator.getCollectionIteratorForLoopBegin(
TWENTY_FOUR_SPACE_INDENTATION, type + SPACE + name + "2",
APP_INSTANCE + PERIOD + name +
EMPTY_PARAMETER_FUNCTION_CALL);
@@ -880,7 +857,7 @@
method += TWENTY_EIGHT_SPACE_INDENTATION + type + SPACE +
"result = " + name + PERIOD +
PROCESS_SUBTREE_FILTERING + OPEN_PARENTHESIS + name + "2" +
- COMMA + SPACE + FALSE + CLOSE_PARENTHESIS + SEMI_COLAN +
+ COMMA + SPACE + FALSE + CLOSE_PARENTHESIS + SEMI_COLON +
NEW_LINE;
method += TWENTY_EIGHT_SPACE_INDENTATION + "if (result != null) {" +
@@ -890,18 +867,18 @@
SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + ADD_STRING +
getCapitalCase(TO) + capitalCaseName + OPEN_PARENTHESIS +
"result" + CLOSE_PARENTHESIS +
- SEMI_COLAN + NEW_LINE + TWENTY_EIGHT_SPACE_INDENTATION +
+ SEMI_COLON + NEW_LINE + TWENTY_EIGHT_SPACE_INDENTATION +
CLOSE_CURLY_BRACKET + NEW_LINE;
//loop all the app instance(s)
method +=
- MethodsGenerator.getBlockEnd(TWENTY_FOUR_SPACE_INDENTATION);
+ methodClose(TWENTY_FOUR_SPACE);
//loop all the query condition instance(s)
- method += MethodsGenerator.getBlockEnd(TWENTY_SPACE_INDENTATION);
+ method += methodClose(TWENTY_SPACE);
//if there is any app instance entry
- method += MethodsGenerator.getBlockEnd(SIXTEEN_SPACE_INDENTATION);
+ method += methodClose(SIXTEEN_SPACE);
}
method += TWELVE_SPACE_INDENTATION + "} else {" + NEW_LINE;
@@ -909,10 +886,10 @@
if (isLeafList) {
method += SIXTEEN_SPACE_INDENTATION +
IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG + SPACE +
- EQUAL + SPACE + TRUE + SEMI_COLAN + NEW_LINE;
+ EQUAL + SPACE + TRUE + SEMI_COLON + NEW_LINE;
}
- method += MethodsGenerator
+ method += StringGenerator
.getIfConditionBegin(SIXTEEN_SPACE_INDENTATION,
APP_INSTANCE + PERIOD + name
+ EMPTY_PARAMETER_FUNCTION_CALL +
@@ -923,7 +900,7 @@
EMPTY_PARAMETER_FUNCTION_CALL +
PERIOD + IS_EMPTY);
- method = method + MethodsGenerator
+ method = method + StringGenerator
.getCollectionIteratorForLoopBegin(TWENTY_SPACE_INDENTATION,
type + SPACE + name,
APP_INSTANCE + PERIOD +
@@ -933,57 +910,54 @@
method = method + TWENTY_FOUR_SPACE_INDENTATION +
SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + ADD_STRING
+ getCapitalCase(TO) + capitalCaseName + OPEN_PARENTHESIS +
- name + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+ name + CLOSE_PARENTHESIS + SEMI_COLON + NEW_LINE;
- method += MethodsGenerator.getBlockEnd(
- TWENTY_SPACE_INDENTATION); // Close collection Iteration loop
+ method += methodClose(TWENTY_SPACE);// Close collection Iteration loop
- method += MethodsGenerator
- .getBlockEnd(SIXTEEN_SPACE_INDENTATION); // close if condition
+ method +=
+ methodClose(SIXTEEN_SPACE); // close if condition
- method += MethodsGenerator
- .getBlockEnd(TWELVE_SPACE_INDENTATION); // close else condition
+ method +=
+ methodClose(TWELVE_SPACE); // close else condition
- method += MethodsGenerator.getBlockEnd(
- EIGHT_SPACE_INDENTATION); // close else if condition
+ method += methodClose(EIGHT_SPACE); // close else if condition
return method;
-
}
//Returns method string for op params augmented syntax
static String getAugmentableSubTreeFiltering() {
return EIGHT_SPACE_INDENTATION + FOR + SPACE + OPEN_PARENTHESIS +
- OBJECT_STRING + SPACE + getSmallCase(YANG_AUGMENTED_INFO) +
- SPACE + COLAN + SPACE + THIS + PERIOD +
- getSmallCase(YANG_AUGMENTED_INFO) + MAP +
+ OBJECT_STRING + SPACE + YANG_AUGMENTED_INFO_LOWER_CASE +
+ SPACE + COLON + SPACE + THIS + PERIOD +
+ YANG_AUGMENTED_INFO_LOWER_CASE + MAP +
OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD
+ VALUE + "s" + OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
NEW_LINE + TWELVE_SPACE_INDENTATION + OBJECT_STRING + SPACE +
getSmallCase(YANG_AUGMENTED_OP_PARAM_INFO) + SPACE + EQUAL +
SPACE + APP_INSTANCE + PERIOD +
- getSmallCase(YANG_AUGMENTED_INFO) + OPEN_PARENTHESIS +
- getSmallCase(YANG_AUGMENTED_INFO) + PERIOD +
- GET_CLASS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
+ YANG_AUGMENTED_INFO_LOWER_CASE + OPEN_PARENTHESIS +
+ YANG_AUGMENTED_INFO_LOWER_CASE + PERIOD +
+ GET_CLASS + CLOSE_PARENTHESIS + SEMI_COLON + NEW_LINE +
TWELVE_SPACE_INDENTATION + OBJECT + SPACE +
- PROCESS_SUBTREE_FILTERING + SEMI_COLAN
+ PROCESS_SUBTREE_FILTERING + SEMI_COLON
+ NEW_LINE + TWELVE_SPACE_INDENTATION + TRY + SPACE +
OPEN_CURLY_BRACKET + NEW_LINE +
SIXTEEN_SPACE_INDENTATION +
- "Class<?>[] interfaces = " + getSmallCase(YANG_AUGMENTED_INFO) +
+ "Class<?>[] interfaces = " + YANG_AUGMENTED_INFO_LOWER_CASE +
".getClass().getInterfaces();" +
NEW_LINE + SIXTEEN_SPACE_INDENTATION +
PROCESS_SUBTREE_FILTERING + SPACE + EQUAL + SPACE +
- getSmallCase(YANG_AUGMENTED_INFO) + PERIOD + GET_CLASS +
+ YANG_AUGMENTED_INFO_LOWER_CASE + PERIOD + GET_CLASS +
NEW_LINE + TWENTY_SPACE_INDENTATION + PERIOD +
GET_METHOD + OPEN_PARENTHESIS + QUOTES +
PROCESS_SUBTREE_FILTERING + QUOTES + COMMA + SPACE +
"interfaces[0]" + CLOSE_PARENTHESIS + PERIOD + INVOKE +
- OPEN_PARENTHESIS + getSmallCase(YANG_AUGMENTED_INFO) +
+ OPEN_PARENTHESIS + YANG_AUGMENTED_INFO_LOWER_CASE +
COMMA + NEW_LINE + TWENTY_FOUR_SPACE_INDENTATION +
getSmallCase(YANG_AUGMENTED_OP_PARAM_INFO) +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
+ CLOSE_PARENTHESIS + SEMI_COLON + NEW_LINE +
SIXTEEN_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS +
PROCESS_SUBTREE_FILTERING + SPACE + NOT + EQUAL + SPACE +
NULL + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
@@ -992,7 +966,7 @@
YANG_AUGMENTED_INFO + OPEN_PARENTHESIS +
PROCESS_SUBTREE_FILTERING + COMMA + SPACE +
PROCESS_SUBTREE_FILTERING + PERIOD + GET_CLASS +
- CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
+ CLOSE_PARENTHESIS + SEMI_COLON + NEW_LINE +
SIXTEEN_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
NEW_LINE + TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
SPACE + CATCH + SPACE + OPEN_PARENTHESIS +
@@ -1000,7 +974,7 @@
INVOCATION_TARGET_EXCEPTION + " | " + ILLEGAL_ACCESS_EXCEPTION +
SPACE + EXCEPTION_VAR + CLOSE_PARENTHESIS + SPACE +
OPEN_CURLY_BRACKET + NEW_LINE + SIXTEEN_SPACE_INDENTATION +
- CONTINUE + SEMI_COLAN + NEW_LINE +
+ CONTINUE + SEMI_COLON + NEW_LINE +
TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE +
EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TranslatorErrorType.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TranslatorErrorType.java
index a2c80e6..2871f16 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TranslatorErrorType.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TranslatorErrorType.java
@@ -43,6 +43,11 @@
INVALID_LEAF_HOLDER("Invalid holder of leaf"),
/**
+ * Represents the invalid child node.
+ */
+ INVALID_CHILD_NODE("Invalid child of node "),
+
+ /**
* Represents the invalid leaf list without JAVA information.
*/
INVALID_LEAF_LIST("Leaf-list does not have java information"),
@@ -61,16 +66,15 @@
/**
* Represents that code generation failed for a node at exit.
*/
- FAIL_AT_EXIT("Failed to generate code for notification node"),
+ FAIL_AT_EXIT("Failed to generate code for "),
/**
* Represents that code generation preparation failed for a node at entry.
*/
- FAIL_AT_ENTRY("Failed to prepare generate code entry for " +
- "notification node");
+ FAIL_AT_ENTRY("Failed to prepare generate code entry for ");
// Prefix of an error type.
- private String prefix;
+ private final String prefix;
/**
* Creates translator error type.
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TranslatorUtils.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TranslatorUtils.java
index 2116ab8..cc7781d 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TranslatorUtils.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TranslatorUtils.java
@@ -23,18 +23,17 @@
import org.onosproject.yangutils.translator.tojava.TempJavaBeanFragmentFiles;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
import org.onosproject.yangutils.translator.tojava.TempJavaTypeFragmentFiles;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import java.io.IOException;
+import static org.onosproject.yangutils.utils.UtilConstants.AT;
+import static org.onosproject.yangutils.utils.UtilConstants.IN;
+
/**
* Represents common translator utilities.
*/
public final class TranslatorUtils {
- private static final String IN = " in ";
- private static final String AT = " at ";
-
// No instantiation
private TranslatorUtils() {
}
@@ -119,7 +118,7 @@
* @param curNode current YANG node
* @return type files
*/
- public static TempJavaTypeFragmentFiles getTypeFiles(YangNode curNode) {
+ static TempJavaTypeFragmentFiles getTypeFiles(YangNode curNode) {
return ((TempJavaCodeFragmentFilesContainer) curNode)
.getTempJavaCodeFragmentFiles().getTypeTempFiles();
}
@@ -130,19 +129,15 @@
* @param node YANG node
* @param modifier modifier for constructor.
* @param toAppend string which need to be appended with the class name
- * @param config plugin configurations
- * @param curNode YANG node
* @return default constructor for class
* @throws IOException when fails to append to file
*/
- public static String addDefaultConstructor(YangNode node, String modifier,
- String toAppend,
- YangPluginConfig config,
- YangNode curNode)
+ static String addDefaultConstructor(YangNode node, String modifier,
+ String toAppend)
throws IOException {
return ((TempJavaCodeFragmentFilesContainer) node)
.getTempJavaCodeFragmentFiles()
- .addDefaultConstructor(modifier, toAppend, config, curNode);
+ .addDefaultConstructor(modifier, toAppend);
/*
* TODO update addDefaultConstructor, it doesn't need YANG node as an
* input.