[ONOS-4583] Union defect fix.
Change-Id: Ic31866b9a1b7bd5d8209d5d22f4292ab9c79a118
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 e778a84..7631bb6 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
@@ -182,7 +182,7 @@
* @return definition
*/
private static String getBuilderInterfaceDefinition(String yangName, YangNode curNode) {
- if (!(curNode instanceof YangCase)) {
+ if (!(curNode instanceof YangCase) && !(curNode instanceof YangAugment)) {
String clsDef = getClassDefinitionForWhenExtended(curNode, yangName, BUILDER_INTERFACE_MASK);
if (clsDef != null) {
return clsDef;
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 cd361d0..1057bde 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
@@ -42,10 +42,14 @@
import static org.onosproject.yangutils.utils.UtilConstants.IMMEDIATE;
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.LOGGER_FACTORY_IMPORT;
import static org.onosproject.yangutils.utils.UtilConstants.LOGGER_IMPORT;
+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;
@@ -61,6 +65,10 @@
import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
import static org.onosproject.yangutils.utils.UtilConstants.TRUE;
import static org.onosproject.yangutils.utils.UtilConstants.TYPE;
+import static org.onosproject.yangutils.utils.UtilConstants.UINT_MAX_RANGE_ATTR;
+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.io.impl.JavaDocGen.JavaDocType.ENUM_ATTRIBUTE;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
@@ -97,22 +105,23 @@
* @param importInfo import info
* @return the textual java code information corresponding to the import list
*/
- public static String getImportText(JavaQualifiedTypeInfo importInfo) {
+ static String getImportText(JavaQualifiedTypeInfo importInfo) {
return IMPORT + importInfo.getPkgInfo() + PERIOD + importInfo.getClassInfo() + SEMI_COLAN + NEW_LINE;
}
/**
* Returns the textual java code for attribute definition in class.
*
- * @param javaAttributeTypePkg Package of the attribute type
- * @param javaAttributeType java attribute type
- * @param javaAttributeName name of the attribute
- * @param isList is list attribute
- * @param attributeAccessType attribute access type
- * @return the textual java code for attribute definition in class
+ * @param javaAttributeTypePkg Package of the attribute type
+ * @param javaAttributeType java attribute type
+ * @param javaAttributeName name of the attribute
+ * @param isList is list attribute
+ * @param attributeAccessType attribute access type
+ * @return the textual java code for attribute definition in class
*/
public static String getJavaAttributeDefination(String javaAttributeTypePkg, String javaAttributeType,
- String javaAttributeName, boolean isList, String attributeAccessType) {
+ String javaAttributeName, boolean isList,
+ String attributeAccessType) {
String attributeDefination = attributeAccessType + SPACE;
@@ -209,7 +218,7 @@
*
* @return event enum start
*/
- public static String getEventEnumTypeStart() {
+ static String getEventEnumTypeStart() {
return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + ENUM + SPACE + TYPE + SPACE + OPEN_CURLY_BRACKET
+ NEW_LINE;
}
@@ -261,7 +270,7 @@
* @param className enum's class name
* @return enum's attribute
*/
- public static String getEnumsValueAttribute(String className) {
+ static String getEnumsValueAttribute(String className) {
return NEW_LINE + FOUR_SPACE_INDENTATION + PRIVATE + SPACE + INT + SPACE + getSmallCase(className)
+ SEMI_COLAN + NEW_LINE;
}
@@ -271,7 +280,7 @@
*
* @return component string
*/
- public static String addComponentString() {
+ static String addComponentString() {
return NEW_LINE + COMPONENT_ANNOTATION + OPEN_PARENTHESIS + IMMEDIATE + SPACE
+ EQUAL + SPACE + TRUE + CLOSE_PARENTHESIS + NEW_LINE + SERVICE_ANNOTATION;
}
@@ -281,11 +290,46 @@
*
* @return attribute for augmentation
*/
- public static String addAugmentationAttribute() {
+ static String addAugmentationAttribute() {
return NEW_LINE + FOUR_SPACE_INDENTATION + PRIVATE + SPACE + MAP + DIAMOND_OPEN_BRACKET + CLASS_STRING
+ DIAMOND_OPEN_BRACKET + QUESTION_MARK + DIAMOND_CLOSE_BRACKET + COMMA + SPACE + YANG_AUGMENTED_INFO
+ 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;
}
+
+ /**
+ * Adds attribute for int ranges.
+ *
+ * @param modifier modifier for attribute
+ * @param addFirst true if int need to be added fist.
+ * @return attribute for int ranges
+ */
+ 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;
+ } else {
+ return NEW_LINE + FOUR_SPACE_INDENTATION + modifier + SPACE + UINT_MIN_RANGE_ATTR + FOUR_SPACE_INDENTATION +
+ modifier + SPACE + UINT_MAX_RANGE_ATTR;
+ }
+ }
+
+ /**
+ * Adds attribute for long ranges.
+ *
+ * @param modifier modifier for attribute
+ * @param addFirst if need to be added first
+ * @return attribute for long ranges
+ */
+ 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;
+ } else {
+ return NEW_LINE + FOUR_SPACE_INDENTATION + modifier + SPACE + ULONG_MIN_RANGE_ATTR +
+ FOUR_SPACE_INDENTATION + modifier + SPACE + ULONG_MAX_RANGE_ATTR;
+ }
+ }
}
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 c8d55d7..fa0ef19 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
@@ -28,6 +28,7 @@
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.utils.builtindatatype.YangDataTypes;
@@ -40,6 +41,7 @@
import org.onosproject.yangutils.translator.tojava.TempJavaEnumerationFragmentFiles;
import org.onosproject.yangutils.translator.tojava.TempJavaEventFragmentFiles;
import org.onosproject.yangutils.translator.tojava.TempJavaServiceFragmentFiles;
+import org.onosproject.yangutils.translator.tojava.TempJavaTypeFragmentFiles;
import org.onosproject.yangutils.translator.tojava.YangJavaModelUtils;
import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
@@ -121,6 +123,7 @@
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringSelectLeafListgetter;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringSelectLeafgetter;
import static org.onosproject.yangutils.utils.UtilConstants.BASE64;
+import static org.onosproject.yangutils.utils.UtilConstants.BIG_INTEGER;
import static org.onosproject.yangutils.utils.UtilConstants.BITSET;
import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET;
@@ -179,6 +182,7 @@
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.insertDataIntoJavaFile;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.trimAtLast;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.validateLineLength;
+import static java.util.Collections.sort;
/**
* Representation of java file generator.
@@ -205,7 +209,7 @@
JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
String path;
- if (curNode instanceof YangModule) {
+ if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
path = javaFileInfo.getPluginConfig().getCodeGenDir() + javaFileInfo.getPackageFilePath();
} else {
path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
@@ -216,13 +220,9 @@
initiateJavaFileGeneration(file, INTERFACE_MASK, imports, curNode, className);
if (isAttrPresent) {
- /**
- * Add getter methods to interface file.
- */
+ // Add getter methods to interface file.
try {
- /**
- * Getter methods.
- */
+ //Getter methods.
insertDataIntoJavaFile(file, getDataFromTempFileHandle(GETTER_FOR_INTERFACE_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getBeanTempFiles(), path));
@@ -251,7 +251,7 @@
String className = getCapitalCase(javaFileInfo.getJavaName());
String path;
- if (curNode instanceof YangModule) {
+ if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
path = javaFileInfo.getPluginConfig().getCodeGenDir() + javaFileInfo.getPackageFilePath();
} else {
path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
@@ -261,15 +261,13 @@
List<String> methods = new ArrayList<>();
if (isAttrPresent) {
try {
- /**
- * Getter methods.
- */
+
+ //Getter methods.
methods.add(FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(GETTER_FOR_INTERFACE_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getBeanTempFiles(), path));
- /**
- * Setter methods.
- */
+
+ //Setter methods.
methods.add(NEW_LINE);
methods.add(FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(SETTER_FOR_INTERFACE_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
@@ -279,16 +277,14 @@
+ " while builder interface file generation");
}
}
- /**
- * Add build method to builder interface file.
- */
+
+ //Add build method to builder interface file.
methods.add(
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.addBuildMethodForInterface(pluginConfig));
- /**
- * Add getters and setters in builder interface.
- */
+
+ //Add getters and setters in builder interface.
for (String method : methods) {
insertDataIntoJavaFile(file, method);
}
@@ -315,7 +311,7 @@
String className = getCapitalCase(javaFileInfo.getJavaName());
String path;
- if (curNode instanceof YangModule) {
+ if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
path = javaFileInfo.getPluginConfig().getCodeGenDir() + javaFileInfo.getPackageFilePath();
} else {
path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
@@ -325,9 +321,8 @@
List<String> methods = new ArrayList<>();
if (isAttrPresent) {
- /**
- * Add attribute strings.
- */
+
+ //Add attribute strings.
try {
insertDataIntoJavaFile(file,
NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK,
@@ -339,15 +334,11 @@
}
try {
- /**
- * Getter methods.
- */
+ //Getter methods.
methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getBeanTempFiles(), path));
- /**
- * Setter methods.
- */
+ // Setter methods.
methods.add(getDataFromTempFileHandle(SETTER_FOR_CLASS_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getBeanTempFiles(), path));
@@ -360,17 +351,15 @@
} else {
insertDataIntoJavaFile(file, NEW_LINE);
}
- /**
- * Add default constructor and build method impl.
- */
+
+ // Add default constructor and build method impl.
methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.addBuildMethodImpl());
methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.addDefaultConstructor(PUBLIC, BUILDER, pluginConfig));
- /**
- * Add methods in builder class.
- */
+
+ //Add methods in builder class.
for (String method : methods) {
insertDataIntoJavaFile(file, method);
}
@@ -399,9 +388,7 @@
List<String> methods = new ArrayList<>();
if (isAttrPresent) {
- /**
- * Add attribute strings.
- */
+ //Add attribute strings.
try {
insertDataIntoJavaFile(file, FOUR_SPACE_INDENTATION + PRIVATE + SPACE +
OPERATION_ENUM + SPACE + OP_PARAM_TYPE + SEMI_COLAN + NEW_LINE);
@@ -448,9 +435,7 @@
}
try {
- /**
- * Setter methods.
- */
+ // Setter methods.
methods.add(getSetterForLeaf(className, curNode, pluginConfig));
methods.add(getSetterForLeafList(className, curNode, pluginConfig));
@@ -481,9 +466,7 @@
insertDataIntoJavaFile(file, NEW_LINE);
}
- /**
- * Add methods in builder class.
- */
+ // Add methods in builder class.
for (String method : methods) {
insertDataIntoJavaFile(file, method);
}
@@ -523,14 +506,10 @@
JavaAttributeInfo rootAttribute = getCurNodeAsAttributeInTarget(curNode, curNode, false,
tempJavaServiceFragmentFiles);
try {
- /**
- * Getter methods.
- */
+ //Getter methods.
methods.add(getOverRideString() +
getGetterForClass(rootAttribute, GENERATE_SERVICE_AND_MANAGER) + NEW_LINE);
- /**
- * Setter methods.
- */
+ // Setter methods.
methods.add(getOverRideString() +
getSetterForClass(rootAttribute, className, GENERATE_SERVICE_AND_MANAGER)
+ NEW_LINE);
@@ -538,12 +517,11 @@
methods.add(getAugmentsDataMethodForManager(curNode) + NEW_LINE);
if (((JavaCodeGeneratorInfo) curNode).getTempJavaCodeFragmentFiles().getServiceTempFiles() != null) {
- JavaCodeGeneratorInfo javaGeninfo = (JavaCodeGeneratorInfo) curNode;
- /**
- * Rpc methods
- */
+ JavaCodeGeneratorInfo javaGenInfo = (JavaCodeGeneratorInfo) curNode;
+
+ //Rpc methods
methods.add(getDataFromTempFileHandle(RPC_IMPL_MASK,
- javaGeninfo.getTempJavaCodeFragmentFiles().getServiceTempFiles(), path));
+ javaGenInfo.getTempJavaCodeFragmentFiles().getServiceTempFiles(), path));
}
insertDataIntoJavaFile(file, NEW_LINE);
@@ -552,9 +530,7 @@
+ " while manager class file generation");
}
- /**
- * Add methods in builder class.
- */
+ // Add methods in builder class.
for (String method : methods) {
insertDataIntoJavaFile(file, method);
}
@@ -579,7 +555,7 @@
String className = getCapitalCase(javaFileInfo.getJavaName());
String path;
- if (curNode instanceof YangModule) {
+ if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
path = javaFileInfo.getPluginConfig().getCodeGenDir() + javaFileInfo.getPackageFilePath();
} else {
path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
@@ -592,9 +568,8 @@
insertDataIntoJavaFile(file, addAugmentationAttribute());
}
if (isAttrPresent) {
- /**
- * Add attribute strings.
- */
+
+ //Add attribute strings.
try {
insertDataIntoJavaFile(file,
NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK,
@@ -606,30 +581,25 @@
}
try {
- /**
- * Getter methods.
- */
+ //Getter methods.
methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getBeanTempFiles(), path));
- /**
- * Hash code method.
- */
+
+ // Hash code method.
methods.add(getHashCodeMethodClose(getHashCodeMethodOpen() +
getDataFromTempFileHandle(HASH_CODE_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getBeanTempFiles(), path).replace(NEW_LINE, EMPTY_STRING)));
- /**
- * Equals method.
- */
+
+ //Equals method.
methods.add(getEqualsMethodClose(getEqualsMethodOpen(getCapitalCase(DEFAULT) + className)
+ getDataFromTempFileHandle(EQUALS_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getBeanTempFiles(), path)));
- /**
- * To string method.
- */
+
+ // To string method.
methods.add(getToStringMethodOpen() + getDataFromTempFileHandle(TO_STRING_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getBeanTempFiles(), path)
@@ -644,9 +614,7 @@
}
try {
- /**
- * Constructor.
- */
+ //Constructor.
String constructor = getConstructorStart(className, pluginConfig);
constructor = constructor + getDataFromTempFileHandle(CONSTRUCTOR_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
@@ -664,9 +632,7 @@
methods.add(getAugmentInfoMapImpl(javaFileInfo.getPluginConfig()));
}
- /**
- * Add methods in impl class.
- */
+ // Add methods in impl class.
for (String method : methods) {
insertDataIntoJavaFile(file, method);
}
@@ -698,9 +664,8 @@
List<String> methods = new ArrayList<>();
if (isAttrPresent) {
- /**
- * Add attribute strings.
- */
+
+ // Add attribute strings.
try {
insertDataIntoJavaFile(file, FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC +
SPACE + ENUM + SPACE + OPERATION_ENUM + SPACE + OPEN_CURLY_BRACKET +
@@ -716,9 +681,8 @@
+ " while impl class file generation");
}
- /**
- * Add attribute strings.
- */
+
+ // Add attribute strings.
try {
insertDataIntoJavaFile(file, FOUR_SPACE_INDENTATION + PRIVATE + SPACE +
OPERATION_ENUM + SPACE + OP_PARAM_TYPE + SEMI_COLAN + NEW_LINE);
@@ -822,9 +786,7 @@
methods.add(getBaseClassMethodImpl(clsName));
}
- /**
- * Add methods in impl class.
- */
+ // Add methods in impl class.
for (String method : methods) {
insertDataIntoJavaFile(file, method);
}
@@ -862,9 +824,8 @@
List<String> methods = new ArrayList<>();
- /**
- * Add attribute strings.
- */
+
+ //Add attribute strings.
try {
insertDataIntoJavaFile(file,
NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK,
@@ -875,94 +836,85 @@
+ " while type def class file generation");
}
- /**
- * Default constructor.
- */
+
+ //Default constructor.
methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.addDefaultConstructor(PRIVATE, EMPTY_STRING, pluginConfig));
try {
- /**
- * Type constructor.
- */
+
+ //Type constructor.
methods.add(getDataFromTempFileHandle(CONSTRUCTOR_FOR_TYPE_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles(),
path));
- /**
- * Of method.
- */
+
+ //Of method.
methods.add(getDataFromTempFileHandle(OF_STRING_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles(),
path));
- /**
- * Getter method.
- */
+ //Getter methods.
methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles(),
path));
- /**
- * Hash code method.
- */
+
+ // Hash code method.
methods.add(getHashCodeMethodClose(getHashCodeMethodOpen() +
getDataFromTempFileHandle(HASH_CODE_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getTypeTempFiles(), path)
.replace(NEW_LINE, EMPTY_STRING)));
- /**
- * Equals method.
- */
+
+ //Equals method.
methods.add(getEqualsMethodClose(getEqualsMethodOpen(className + EMPTY_STRING)
+ getDataFromTempFileHandle(EQUALS_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getTypeTempFiles(), path)));
- /**
- * To string method.
- */
- if (type.getDataType().equals(YangDataTypes.BINARY)) {
- JavaQualifiedTypeInfo qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode,
- getCapitalCase("binary"));
- JavaAttributeInfo attr = getAttributeInfoForTheData(qualifiedTypeInfo, "binary", null, false,
- false);
- String attributeName = attr.getAttributeName();
- String bitsToStringMethod = MethodsGenerator.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;
- methods.add(bitsToStringMethod);
- } else if (type.getDataType().equals(YangDataTypes.BITS)) {
- JavaQualifiedTypeInfo qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode,
- getCapitalCase("bits"));
+ //To string method.
+ if (type.getDataType().equals(YangDataTypes.BINARY)) {
+ JavaQualifiedTypeInfo qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode,
+ getCapitalCase("binary"));
- JavaAttributeInfo attr = getAttributeInfoForTheData(qualifiedTypeInfo, "bits", null, false, false);
- String attributeName = attr.getAttributeName();
- String bitsToStringMethod = MethodsGenerator.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;
- methods.add(bitsToStringMethod);
+ JavaAttributeInfo attr = getAttributeInfoForTheData(qualifiedTypeInfo, "binary", null, false,
+ false);
+ String attributeName = attr.getAttributeName();
+ String bitsToStringMethod = MethodsGenerator.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;
+ methods.add(bitsToStringMethod);
+ } else if (type.getDataType().equals(YangDataTypes.BITS)) {
+ JavaQualifiedTypeInfo qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode,
+ getCapitalCase("bits"));
+
+ JavaAttributeInfo attr = getAttributeInfoForTheData(qualifiedTypeInfo, "bits", null, false, false);
+ String attributeName = attr.getAttributeName();
+ String bitsToStringMethod = MethodsGenerator.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;
+ methods.add(bitsToStringMethod);
} else {
methods.add(getToStringMethodOpen() + getDataFromTempFileHandle(TO_STRING_IMPL_MASK,
- ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles(),
- path) + getToStringMethodClose());
+ ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
+ .getTypeTempFiles(), path) + getToStringMethodClose());
}
- JavaCodeGeneratorInfo javaGeninfo = (JavaCodeGeneratorInfo) curNode;
- /**
- * From string method.
- */
+ JavaCodeGeneratorInfo javaGenInfo = (JavaCodeGeneratorInfo) curNode;
+
+ //From string method.
methods.add(getFromStringMethodSignature(className, pluginConfig)
- + getDataFromTempFileHandle(FROM_STRING_IMPL_MASK, javaGeninfo.getTempJavaCodeFragmentFiles()
+ + getDataFromTempFileHandle(FROM_STRING_IMPL_MASK, javaGenInfo.getTempJavaCodeFragmentFiles()
.getTypeTempFiles(), path)
+ getFromStringMethodClose());
@@ -997,14 +949,50 @@
String className = getCapitalCase(javaFileInfo.getJavaName());
String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
+ TempJavaTypeFragmentFiles tempJavaTypeFragmentFiles = ((JavaCodeGeneratorInfo) curNode)
+ .getTempJavaCodeFragmentFiles().getTypeTempFiles();
+
+ boolean isIntConflict = false;
+ boolean isLongConflict = false;
+ JavaAttributeInfo intAttr = tempJavaTypeFragmentFiles.getIntAttribute();
+ if (intAttr == null) {
+ intAttr = tempJavaTypeFragmentFiles.getUIntAttribute();
+ }
+
+ JavaAttributeInfo longAttr = tempJavaTypeFragmentFiles.getLongAttribute();
+ if (longAttr == null) {
+ longAttr = tempJavaTypeFragmentFiles.getULongAttribute();
+ }
+
+ if (intAttr != null) {
+ isIntConflict = intAttr.isIntConflict();
+ }
+ if (longAttr != null) {
+ isLongConflict = longAttr.isLongConflict();
+ }
+
+ if (isLongConflict) {
+ imports.add(tempJavaTypeFragmentFiles.getJavaImportData().getBigIntegerImport());
+ sort(imports);
+ }
+
initiateJavaFileGeneration(file, className, GENERATE_UNION_CLASS, imports, path, pluginConfig);
List<String> methods = new ArrayList<>();
- /**
- * Add attribute strings.
- */
+
+ // Add attribute strings.
try {
+ if (isIntConflict) {
+ insertDataIntoJavaFile(file, JavaCodeSnippetGen.addStaticAttributeIntRange(PRIVATE,
+ tempJavaTypeFragmentFiles.getIntIndex() < tempJavaTypeFragmentFiles.getUIntIndex()));
+ }
+
+ if (isLongConflict) {
+ insertDataIntoJavaFile(file, JavaCodeSnippetGen.addStaticAttributeLongRange(PRIVATE,
+ tempJavaTypeFragmentFiles.getLongIndex() < tempJavaTypeFragmentFiles.getULongIndex()));
+ }
+
insertDataIntoJavaFile(file,
NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
@@ -1014,70 +1002,67 @@
+ " while union class file generation");
}
- /**
- * Default constructor.
- */
+
+ //Default constructor.
methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.addDefaultConstructor(PRIVATE, EMPTY_STRING, pluginConfig));
try {
- /**
- * Type constructor.
- */
+
+ //Type constructor.
methods.add(getDataFromTempFileHandle(CONSTRUCTOR_FOR_TYPE_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles(),
path));
- /**
- * Of string method.
- */
+
+ // Of string method.
methods.add(getDataFromTempFileHandle(OF_STRING_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles(),
path));
- /**
- * Getter method.
- */
+ //Getter methods.
methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles(),
path));
- /**
- * Hash code method.
- */
+
+ //Hash code method.
methods.add(getHashCodeMethodClose(getHashCodeMethodOpen() +
getDataFromTempFileHandle(HASH_CODE_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getTypeTempFiles(), path)
.replace(NEW_LINE, EMPTY_STRING)));
- /**
- * Equals method.
- */
+ //Equals method.
methods.add(getEqualsMethodClose(getEqualsMethodOpen(className + EMPTY_STRING)
+ getDataFromTempFileHandle(EQUALS_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getTypeTempFiles(), path)));
- /**
- * To string method.
- */
+
+ //To string method.
methods.add(getToStringMethodOpen() + getOmitNullValueString() +
getDataFromTempFileHandle(TO_STRING_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getTypeTempFiles(), path)
+ getToStringMethodClose());
- /**
- * From string method.
- */
+
+ //From string method.
methods.add(getFromStringMethodSignature(className, pluginConfig)
+ getDataFromTempFileHandle(FROM_STRING_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getTypeTempFiles(), path)
+ getFromStringMethodClose());
+ if (isIntConflict) {
+ methods.add(MethodsGenerator.getRangeValidatorMethodForUnion(INT));
+ }
+ if (isLongConflict) {
+ methods.add(MethodsGenerator.getRangeValidatorMethodForUnion(BIG_INTEGER));
+ }
+
} catch (IOException e) {
throw new IOException("No data found in temporary java code fragment files for " + className
+ " while union class file generation");
@@ -1109,13 +1094,12 @@
String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
initiateJavaFileGeneration(file, getCapitalCase(className), GENERATE_ENUM_CLASS, null, path, pluginConfig);
- /**
- * Add attribute strings.
- */
+
+ //Add attribute strings.
try {
- JavaCodeGeneratorInfo javaGeninfo = (JavaCodeGeneratorInfo) curNode;
+ JavaCodeGeneratorInfo javaGenInfo = (JavaCodeGeneratorInfo) curNode;
insertDataIntoJavaFile(file,
- trimAtLast(trimAtLast(getDataFromTempFileHandle(ENUM_IMPL_MASK, javaGeninfo
+ trimAtLast(trimAtLast(getDataFromTempFileHandle(ENUM_IMPL_MASK, javaGenInfo
.getTempJavaCodeFragmentFiles().getEnumerationTempFiles(), path), COMMA), NEW_LINE)
+ SEMI_COLAN + NEW_LINE);
} catch (IOException e) {
@@ -1123,15 +1107,11 @@
+ " while enum class file generation");
}
- /**
- * Add an
- * attribute to get the enum's values.
- */
+
+ // Add an attribute to get the enum's values.
insertDataIntoJavaFile(file, getEnumsValueAttribute(getCapitalCase(className)));
- /**
- * Add a constructor for enum.
- */
+ // Add a constructor for enum.
insertDataIntoJavaFile(file, getJavaDoc(TYPE_CONSTRUCTOR, className, false, pluginConfig)
+ getEnumsConstructor(getCapitalCase(className)) + NEW_LINE);
@@ -1144,9 +1124,7 @@
enumFragFiles.getEnumStringList(), pluginConfig)
+ NEW_LINE);
- /**
- * Add a getter method for enum.
- */
+ // Add a getter method for enum.
insertDataIntoJavaFile(file, getJavaDoc(GETTER_METHOD, className, false, pluginConfig)
+ getGetter(INT, className, GENERATE_ENUM_CLASS) + NEW_LINE);
@@ -1169,9 +1147,9 @@
/**
* Generates interface file for rpc.
*
- * @param file generated file
- * @param curNode current YANG node
- * @param imports imports for file
+ * @param file generated file
+ * @param curNode current YANG node
+ * @param imports imports for file
* @return rpc class file
* @throws IOException when fails to generate class file
*/
@@ -1191,26 +1169,22 @@
tempJavaServiceFragmentFiles);
try {
- /**
- * Getter methods.
- */
+
+ //Getter methods.
methods.add(getGetterString(rootAttribute, GENERATE_SERVICE_AND_MANAGER,
javaFileInfo.getPluginConfig()) + NEW_LINE);
- /**
- * Setter methods.
- */
+ // Setter methods.
methods.add(getSetterString(rootAttribute, className, GENERATE_SERVICE_AND_MANAGER,
javaFileInfo.getPluginConfig()) + NEW_LINE);
methods.add(getAugmentsDataMethodForService(curNode) + NEW_LINE);
if (((JavaCodeGeneratorInfo) curNode).getTempJavaCodeFragmentFiles().getServiceTempFiles() != null) {
- JavaCodeGeneratorInfo javaGeninfo = (JavaCodeGeneratorInfo) curNode;
- /**
- * Rpc methods
- */
+ JavaCodeGeneratorInfo javaGenInfo = (JavaCodeGeneratorInfo) curNode;
+
+ // Rpc methods
methods.add(getDataFromTempFileHandle(RPC_INTERFACE_MASK,
- javaGeninfo.getTempJavaCodeFragmentFiles().getServiceTempFiles(), path));
+ javaGenInfo.getTempJavaCodeFragmentFiles().getServiceTempFiles(), path));
}
} catch (IOException e) {
throw new IOException("No data found in temporary java code fragment files for " + className
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 f76d9b2..c5558ff 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
@@ -57,7 +57,6 @@
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.OPERATION_BUILDER_CLASS_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.OPERATION_CLASS_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ATTRIBUTES_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.AUGMENTE_CLASS_CONSTRUCTOR_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_FOR_TYPE_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_IMPL_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ENUM_IMPL_MASK;
@@ -120,10 +119,10 @@
/**
* Returns a file object for generated file.
*
- * @param filePath file package path
- * @param fileName file name
- * @param extension file extension
- * @param baseCodePath cached file handle
+ * @param filePath file package path
+ * @param fileName file name
+ * @param extension file extension
+ * @param baseCodePath cached file handle
* @return file object
*/
public static File getFileObject(String filePath, String fileName, String extension, String baseCodePath) {
@@ -205,10 +204,6 @@
return tempJavaFragmentFiles
.getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getToStringImplTempFileHandle(),
absolutePath);
- } else if ((generatedTempFiles & AUGMENTE_CLASS_CONSTRUCTOR_MASK) != 0) {
- return tempJavaFragmentFiles
- .getTemporaryDataFromFileHandle(tempJavaFragmentFiles.getAugmentConstructorImplTempFileHandle(),
- absolutePath);
} else if ((generatedTempFiles & OF_STRING_IMPL_MASK) != 0) {
if (typeFragmentFiles == null) {
throw new TranslatorException("Required of string implementation info is missing.");
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 a8159a6..95b8af2 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
@@ -23,6 +23,7 @@
import org.onosproject.yangutils.datamodel.YangAugmentableNode;
import org.onosproject.yangutils.datamodel.YangLeaf;
import org.onosproject.yangutils.datamodel.YangLeafList;
+import org.onosproject.yangutils.datamodel.YangLeafRef;
import org.onosproject.yangutils.datamodel.YangLeavesHolder;
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangType;
@@ -44,6 +45,7 @@
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.LEAFREF;
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;
@@ -55,8 +57,10 @@
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.getSetOfNodeIdentifiers;
+import static org.onosproject.yangutils.translator.tojava.utils.ValidatorTypeForUnionTypes.INT_TYPE_CONFLICT;
import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE;
import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE_ANNOTATION;
+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.APP_INSTANCE;
@@ -91,6 +95,7 @@
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.EQUALS_STRING;
@@ -121,10 +126,16 @@
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.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;
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;
@@ -148,6 +159,7 @@
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.PUBLIC;
import static org.onosproject.yangutils.utils.UtilConstants.PUT;
import static org.onosproject.yangutils.utils.UtilConstants.QUESTION_MARK;
@@ -182,6 +194,11 @@
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.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.VOID;
import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO;
@@ -199,6 +216,7 @@
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.TYPE_CONSTRUCTOR;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateForAddAugmentation;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateForGetAugmentation;
+import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateForValidatorMethod;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
@@ -262,7 +280,7 @@
String attrType = getReturnType(attr);
String attributeName = attr.getAttributeName();
JavaDocGen.JavaDocType type;
- if ((generatedJavaFiles & GENERATE_SERVICE_AND_MANAGER) != 0) {
+ if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
type = MANAGER_SETTER_METHOD;
} else {
type = SETTER_METHOD;
@@ -348,7 +366,7 @@
*/
public static String getGetter(String type, String name, int generatedJavaFiles) {
String ret = parseTypeForReturnValue(type);
- if ((generatedJavaFiles & GENERATE_SERVICE_AND_MANAGER) != 0) {
+ 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 +
@@ -406,7 +424,7 @@
* @return setter for attribute
*/
private static String getSetter(String className, String name, String type, int generatedJavaFiles) {
- if ((generatedJavaFiles & GENERATE_SERVICE_AND_MANAGER) != 0) {
+ 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 +
@@ -489,7 +507,7 @@
*/
private static String getGetterInterfaceString(String returnType, String yangName,
int generatedJavaFiles) {
- if ((generatedJavaFiles & GENERATE_SERVICE_AND_MANAGER) != 0) {
+ if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
return FOUR_SPACE_INDENTATION + returnType + SPACE + GET_METHOD_PREFIX + getCapitalCase(yangName)
+ OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN;
} else {
@@ -528,7 +546,7 @@
*/
private static String getSetterInterfaceString(String className, String attrName, String attrType,
int generatedJavaFiles) {
- if ((generatedJavaFiles & GENERATE_SERVICE_AND_MANAGER) != 0) {
+ if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
return FOUR_SPACE_INDENTATION + VOID + SPACE + SET_METHOD_PREFIX + getCapitalCase(attrName)
+ OPEN_PARENTHESIS + attrType + SPACE + attrName + CLOSE_PARENTHESIS + SEMI_COLAN;
@@ -620,7 +638,7 @@
String attributeName = attr.getAttributeName();
String constructor;
- if ((generatedJavaFiles & GENERATE_SERVICE_AND_MANAGER) != 0) {
+ 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
@@ -884,7 +902,7 @@
* @param dataType data type to be checked
* @return true, if data type can have primitive data type, false otherwise
*/
- public static boolean isPrimitiveDataType(YangDataTypes dataType) {
+ private static boolean isPrimitiveDataType(YangDataTypes dataType) {
return dataType == INT8
|| dataType == INT16
|| dataType == INT32
@@ -896,6 +914,42 @@
|| dataType == DECIMAL64
|| dataType == BOOLEAN
|| dataType == EMPTY;
+
+ }
+
+ private static String getAttrTypeForFilterContentMatchWhenPrimitiveDataType(String attributeName) {
+ return APP_INSTANCE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
+ + SPACE + NOT + EQUAL + SPACE + attributeName + OPEN_PARENTHESIS
+ + CLOSE_PARENTHESIS;
+ }
+
+ private static String getAttrTypeForFilterContentMatchWhenNonPremitiveDatatype(String attributeName) {
+ return APP_INSTANCE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
+ + SPACE + EQUAL + EQUAL + SPACE + NULL + SPACE + OR_OPERATION + SPACE
+ + NOT + OPEN_PARENTHESIS + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
+ + PERIOD + EQUALS_STRING + OPEN_PARENTHESIS + APP_INSTANCE + PERIOD
+ + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
+ + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS;
+ }
+
+ private static String getIfFilterContentMatchMethodImpl(String attributeName,
+ String filterMethod, int numleaf, YangType dataType) {
+ String attrQualifiedType;
+
+ if (isPrimitiveDataType(dataType.getDataType())) {
+ attrQualifiedType = getAttrTypeForFilterContentMatchWhenPrimitiveDataType(attributeName);
+ } else if (dataType.getDataType() == LEAFREF) {
+ YangType type = ((YangLeafRef) dataType.getDataTypeExtendedInfo()).getEffectiveDataType();
+ if (isPrimitiveDataType(type.getDataType())) {
+ attrQualifiedType = getAttrTypeForFilterContentMatchWhenPrimitiveDataType(attributeName);
+ } else {
+ attrQualifiedType = getAttrTypeForFilterContentMatchWhenNonPremitiveDatatype(attributeName);
+ }
+ } else {
+ attrQualifiedType = getAttrTypeForFilterContentMatchWhenNonPremitiveDatatype(attributeName);
+ }
+
+ return attrQualifiedType;
}
/**
@@ -908,94 +962,71 @@
*/
public static String getIsFilterContentMatch(String className, YangNode curNode, YangPluginConfig pluginConfig) {
- int numleaf = 1;
- String filterMethod = NEW_LINE + NEW_LINE + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + BOOLEAN_DATA_TYPE
- + SPACE + FILTER_CONTENT_MATCH + OPEN_PARENTHESIS + getCapitalCase(OBJECT)
- + SPACE + OBJ +
- CLOSE_PARENTHESIS + SPACE
- + OPEN_CURLY_BRACKET + NEW_LINE;
+ int numLeaf = 1;
+ String filterMethod = "";
TempJavaBeanFragmentFiles tempFragmentFiles = ((JavaCodeGeneratorInfo) curNode)
.getTempJavaCodeFragmentFiles().getBeanTempFiles();
- filterMethod = filterMethod + EIGHT_SPACE_INDENTATION + getCapitalCase(DEFAULT)
- + getCapitalCase(className) + SPACE + APP_INSTANCE + SPACE + EQUAL + SPACE + OPEN_PARENTHESIS +
- getCapitalCase(DEFAULT) + getCapitalCase(className) + CLOSE_PARENTHESIS + OBJ +
- SEMI_COLAN + NEW_LINE;
- if (curNode instanceof YangAugmentableNode) {
- filterMethod = filterMethod + getAugmentableOpParamSyntax();
- }
-
if (curNode instanceof YangLeavesHolder) {
+ filterMethod = NEW_LINE + NEW_LINE + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + BOOLEAN_DATA_TYPE
+ + SPACE + FILTER_CONTENT_MATCH + OPEN_PARENTHESIS + getCapitalCase(OBJECT)
+ + SPACE + OBJ +
+ CLOSE_PARENTHESIS + SPACE
+ + OPEN_CURLY_BRACKET + NEW_LINE;
+ filterMethod = filterMethod + EIGHT_SPACE_INDENTATION + getCapitalCase(DEFAULT)
+ + getCapitalCase(className) + SPACE + APP_INSTANCE + SPACE + EQUAL + SPACE + OPEN_PARENTHESIS +
+ getCapitalCase(DEFAULT) + getCapitalCase(className) + CLOSE_PARENTHESIS + OBJ +
+ SEMI_COLAN + NEW_LINE;
+ if (curNode instanceof YangAugmentableNode) {
+ filterMethod = filterMethod + getAugmentableOpParamSyntax();
+ }
+
YangLeavesHolder leavesHolder = (YangLeavesHolder) curNode;
List<YangLeaf> leaves = leavesHolder.getListOfLeaf();
List<YangLeafList> listOfLeafList = leavesHolder.getListOfLeafList();
+ String attrQualifiedType;
if (leaves != null) {
for (YangLeaf leaf : leaves) {
JavaAttributeInfo javaAttributeInfo = getJavaAttributeOfLeaf(tempFragmentFiles, leaf,
pluginConfig);
String attributeName = javaAttributeInfo.getAttributeName();
-
- String attrQuaifiedType = "";
- if (isPrimitiveDataType(leaf.getDataType().getDataType())) {
- attrQuaifiedType = APP_INSTANCE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
- + SPACE + NOT + EQUAL + SPACE + attributeName + OPEN_PARENTHESIS
- + CLOSE_PARENTHESIS;
- } else {
- attrQuaifiedType = APP_INSTANCE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
- + SPACE + EQUAL + EQUAL + SPACE + NULL + SPACE + OR_OPERATION + SPACE
- + NOT + OPEN_PARENTHESIS + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
- + PERIOD + EQUALS_STRING + OPEN_PARENTHESIS + APP_INSTANCE + PERIOD
- + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
- + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS;
- }
-
+ attrQualifiedType = getIfFilterContentMatchMethodImpl(attributeName,
+ filterMethod, numLeaf, leaf.getDataType());
filterMethod = filterMethod + EIGHT_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS
+ GET_FILTER_LEAF + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD + GET_METHOD_PREFIX
- + OPEN_PARENTHESIS + String.valueOf(numleaf) + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS
+ + OPEN_PARENTHESIS + String.valueOf(numLeaf) + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS
+ SPACE + OPEN_CURLY_BRACKET + NEW_LINE + TWELVE_SPACE_INDENTATION + IF + SPACE
- + OPEN_PARENTHESIS + attrQuaifiedType + CLOSE_PARENTHESIS + SPACE
+ + OPEN_PARENTHESIS + attrQualifiedType + CLOSE_PARENTHESIS + SPACE
+ OPEN_CURLY_BRACKET + NEW_LINE + SIXTEEN_SPACE_INDENTATION + RETURN + SPACE + FALSE
+ SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE
+ EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
- numleaf++;
+
+ numLeaf++;
}
}
if (listOfLeafList != null) {
- numleaf = 1;
+ numLeaf = 1;
for (YangLeafList leafList : listOfLeafList) {
JavaAttributeInfo javaAttributeInfo = getJavaAttributeOfLeafList(tempFragmentFiles, leafList,
pluginConfig);
String attributeName = javaAttributeInfo.getAttributeName();
- String attrQuaifiedType = "";
- if (isPrimitiveDataType(leafList.getDataType().getDataType())) {
- attrQuaifiedType = APP_INSTANCE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
- + SPACE + NOT + EQUAL + SPACE + attributeName + OPEN_PARENTHESIS
- + CLOSE_PARENTHESIS;
- } else {
- attrQuaifiedType = APP_INSTANCE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
- + SPACE + EQUAL + EQUAL + SPACE + NULL + OR_OPERATION + OPEN_PARENTHESIS + NOT
- + OPEN_PARENTHESIS + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
- + PERIOD + EQUALS_STRING + OPEN_PARENTHESIS + APP_INSTANCE + PERIOD
- + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS
- + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS;
- }
-
+ attrQualifiedType = getIfFilterContentMatchMethodImpl(
+ attributeName, filterMethod, numLeaf, leafList.getDataType());
filterMethod = filterMethod + EIGHT_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS
+ GET_FILTER_LEAF_LIST + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD + GET_METHOD_PREFIX
- + OPEN_PARENTHESIS + String.valueOf(numleaf) + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS
+ + OPEN_PARENTHESIS + String.valueOf(numLeaf) + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS
+ SPACE + OPEN_CURLY_BRACKET + NEW_LINE + TWELVE_SPACE_INDENTATION + IF + SPACE
- + OPEN_PARENTHESIS + attrQuaifiedType + CLOSE_PARENTHESIS + SPACE
+ + OPEN_PARENTHESIS + attrQualifiedType + CLOSE_PARENTHESIS + SPACE
+ OPEN_CURLY_BRACKET + NEW_LINE + SIXTEEN_SPACE_INDENTATION + RETURN + SPACE + FALSE
+ SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE
+ EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
- numleaf++;
+ numLeaf++;
}
}
- if (leaves != null || listOfLeafList != null) {
- filterMethod = filterMethod + EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLAN +
- NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
- }
+ filterMethod = filterMethod + EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLAN +
+ NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
+
}
return filterMethod;
}
@@ -1003,7 +1034,7 @@
/*Returns method string for op parms augmented syntax*/
private static String getAugmentableOpParamSyntax() {
return EIGHT_SPACE_INDENTATION + FOR + SPACE + OPEN_PARENTHESIS + YANG_AUGMENTED_INFO + SPACE +
- getSmallCase(YANG_AUGMENTED_INFO) + SPACE + COLAN + SPACE + APP_INSTANCE +
+ getSmallCase(YANG_AUGMENTED_INFO) + SPACE + COLAN + SPACE + THIS +
PERIOD + GET_METHOD_PREFIX + YANG_AUGMENTED_INFO + MAP + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD
+ VALUE + "s" + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
NEW_LINE + TWELVE_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS + NOT + OPEN_PARENTHESIS +
@@ -1361,6 +1392,35 @@
}
/**
+ * 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
+ * @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) {
+
+ String attrType = getReturnType(attr1);
+ String attrName1 = "";
+ String attrName2 = "";
+ if (attr1 != null) {
+ attrName1 = attr1.getAttributeName();
+ }
+ if (attr2 != null) {
+ attrName2 = attr2.getAttributeName();
+ }
+
+ return getJavaDoc(TYPE_CONSTRUCTOR, generatedJavaClassName + " for type " + attrName1, false, pluginConfig)
+ + getTypeConstructorString(attrType, attrName1, attrName2, generatedJavaClassName, type, addFirst);
+ }
+
+ /**
* Returns type constructor string.
*
* @param type data type
@@ -1377,6 +1437,42 @@
}
/**
+ * Returns type constructor string.
+ *
+ * @param type data type
+ * @param attr1 attribute attr1
+ * @param className class attr1
+ * @return type constructor string
+ */
+ 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;
+
+ String name1;
+ String name2;
+ if (addInt) {
+ name1 = attr1;
+ name2 = attr2;
+ } else {
+ name1 = attr2;
+ name2 = attr1;
+ }
+ constructor = constructor + ifConditionForIntInTypeDefConstrcutor(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;
+ }
+
+ /**
* Returns implementation of add augmentation.
*
* @return implementation of add augmentation
@@ -1469,7 +1565,7 @@
+ 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 type" + attrName, false, pluginConfig)
+ return getJavaDoc(OF_METHOD, getCapitalCase(className) + " for type " + attrName, false, pluginConfig)
+ method;
}
@@ -1577,13 +1673,15 @@
StringBuilder methods = new StringBuilder();
String parentName;
String returnType;
+ YangNode methodNode;
YangPluginConfig pluginConfig = ((JavaFileInfoContainer) parent).getJavaFileInfo().getPluginConfig();
for (YangAtomicPath nodeId : targets) {
augmentedNode = nodeId.getResolvedNode().getParent();
- if (((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName() != null) {
- curNodeName = ((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName();
+ methodNode = nodeId.getResolvedNode();
+ if (((JavaFileInfoContainer) methodNode).getJavaFileInfo().getJavaName() != null) {
+ curNodeName = ((JavaFileInfoContainer) methodNode).getJavaFileInfo().getJavaName();
} else {
- curNodeName = getCapitalCase(getCamelCase(augmentedNode.getName(), pluginConfig
+ curNodeName = getCapitalCase(getCamelCase(methodNode.getName(), pluginConfig
.getConflictResolver()));
}
returnType = getAugmentedClassNameForDataMethods(augmentedNode, parent);
@@ -1596,7 +1694,7 @@
methods.append(method);
method = getJavaDoc(MANAGER_SETTER_METHOD, AUGMENTED +
- getCapitalCase(parentName) + curNodeName, false, pluginConfig) +
+ getCapitalCase(parentName) + getCapitalCase(curNodeName), false, pluginConfig) +
getSetterForInterface(getSmallCase(AUGMENTED) + parentName +
getCapitalCase(curNodeName), returnType, parentName,
false,
@@ -1620,13 +1718,15 @@
String method;
StringBuilder methods = new StringBuilder();
String parentName;
+ YangNode methodNode;
YangPluginConfig pluginConfig = ((JavaFileInfoContainer) parent).getJavaFileInfo().getPluginConfig();
for (YangAtomicPath nodeId : targets) {
augmentedNode = nodeId.getResolvedNode().getParent();
- if (((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName() != null) {
- curNodeName = ((JavaFileInfoContainer) augmentedNode).getJavaFileInfo().getJavaName();
+ methodNode = nodeId.getResolvedNode();
+ if (((JavaFileInfoContainer) methodNode).getJavaFileInfo().getJavaName() != null) {
+ curNodeName = ((JavaFileInfoContainer) methodNode).getJavaFileInfo().getJavaName();
} else {
- curNodeName = getCapitalCase(getCamelCase(augmentedNode.getName(), pluginConfig
+ curNodeName = getCapitalCase(getCamelCase(methodNode.getName(), pluginConfig
.getConflictResolver()));
}
returnType = getAugmentedClassNameForDataMethods(augmentedNode, parent);
@@ -1646,4 +1746,66 @@
return methods.toString();
}
+ /**
+ * Returns validator method for range in union class.
+ *
+ * @param type type
+ * @return validator method for range in union class
+ */
+ public static String getRangeValidatorMethodForUnion(String type) {
+ String newType;
+ if (type.contentEquals(BIG_INTEGER)) {
+ newType = LONG;
+ } 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;
+ 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;
+ } else {
+ method = method + EIGHT_SPACE_INDENTATION
+ + RETURN + SPACE + VALUE + SPACE + DIAMOND_CLOSE_BRACKET + EQUAL + SPACE + MIN_RANGE + SPACE + AND +
+ AND + SPACE + VALUE + DIAMOND_OPEN_BRACKET + EQUAL + SPACE + MAX_RANGE + SEMI_COLAN + NEW_LINE;
+ }
+ 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 ifConditionForIntInTypeDefConstrcutor(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 (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;
+ }
+
+
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ValidatorTypeForUnionTypes.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ValidatorTypeForUnionTypes.java
new file mode 100644
index 0000000..1f5276b
--- /dev/null
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ValidatorTypeForUnionTypes.java
@@ -0,0 +1,33 @@
+/*
+ * 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;
+
+/**
+ * Validator types for union when there is conflict between two types.
+ */
+public enum ValidatorTypeForUnionTypes {
+
+ /**
+ * When conflict is there for int32 and uint16.
+ */
+ INT_TYPE_CONFLICT,
+
+ /**
+ * When conflict is there for int64 and uint32.
+ */
+ LONG_TYPE_CONFLICT
+}