[ONOS-5630][ONOS-5615][ONOS-5634][ONOS-5635][ONOS-5568] defect fix for generated code.
Change-Id: I1d07e8c836005cdc9107186df18b468bc3b13cd1
diff --git a/generator/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java b/generator/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
index 6b9f346..b7928ce 100644
--- a/generator/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
+++ b/generator/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
@@ -21,12 +21,10 @@
import org.onosproject.yangutils.datamodel.YangChoice;
import org.onosproject.yangutils.datamodel.YangEnumeration;
import org.onosproject.yangutils.datamodel.YangLeavesHolder;
-import org.onosproject.yangutils.datamodel.YangList;
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangType;
import org.onosproject.yangutils.datamodel.YangTypeDef;
import org.onosproject.yangutils.datamodel.YangUnion;
-import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes;
import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
@@ -104,6 +102,7 @@
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getConstructorStart;
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.getEqualsMethod;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEqualsMethodClose;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEqualsMethodOpen;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getFromStringMethodClose;
@@ -111,6 +110,7 @@
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetter;
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.getHashCodeMethodClose;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethodOpen;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getInterfaceLeafIdEnumSignature;
@@ -162,6 +162,8 @@
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.JAVA_UTIL_OBJECTS_IMPORT_CLASS;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_UTIL_PKG;
import static org.onosproject.yangutils.utils.UtilConstants.KEYS;
import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
import static org.onosproject.yangutils.utils.UtilConstants.OP_PARAM;
@@ -489,7 +491,6 @@
info.setPkgInfo(fileInfo.getPackage());
importData.addImportInfo(info, parent.getJavaClassNameOrBuiltInType(),
parent.getJavaPackage());
- List<String> keys = ((YangList) curNode).getKeyList();
List<JavaAttributeInfo> attrs = getListOfAttributesForKey(curNode);
Iterator<JavaAttributeInfo> attrIt = attrs.iterator();
@@ -506,6 +507,9 @@
}
}
+ imports.add(getImportString(JAVA_UTIL_PKG,
+ JAVA_UTIL_OBJECTS_IMPORT_CLASS));
+
initiateJavaFileGeneration(file, GENERATE_KEY_CLASS, imports, curNode,
className);
String pkg = null;
@@ -535,6 +539,22 @@
attr, className, GENERATE_EVENT_SUBJECT_CLASS));
insertDataIntoJavaFile(file, NEW_LINE);
}
+ //add hashcode and equals method.
+ insertDataIntoJavaFile(file, getHashCodeMethodOpen());
+ StringBuilder builder = new StringBuilder();
+ for (JavaAttributeInfo att : attrs) {
+ builder.append(getHashCodeMethod(att));
+ }
+ insertDataIntoJavaFile(file, getHashCodeMethodClose(builder.toString()));
+
+ insertDataIntoJavaFile(file, getEqualsMethodOpen(className));
+ StringBuilder builder2 = new StringBuilder();
+ for (JavaAttributeInfo att : attrs) {
+ builder2.append(getEqualsMethod(att)).append(NEW_LINE);
+ }
+ insertDataIntoJavaFile(file, getEqualsMethodClose(builder2.toString()));
+
+
insertDataIntoJavaFile(file, getCompareToForKeyClass(attrs, className));
insertDataIntoJavaFile(file, CLOSE_CURLY_BRACKET);
@@ -736,11 +756,6 @@
String className = getCapitalCase(fileInfo.getJavaName());
String path = fileInfo.getBaseCodeGenPath() +
fileInfo.getPackageFilePath();
- YangTypeDef typeDef = (YangTypeDef) curNode;
- List<YangType<?>> types = typeDef.getTypeList();
- YangType type = types.get(0);
- YangDataTypes yangDataTypes = type.getDataType();
-
initiateJavaFileGeneration(file, className, GENERATE_TYPEDEF_CLASS,
imports, path);