removed code duplication in translator, and addressed review comments
Change-Id: I27767a81c4bf279c80d2b98192f75f8f507b4457
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java
index e2d27ac..70869b2 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java
@@ -18,7 +18,6 @@
import org.onosproject.yangutils.datamodel.YangDataTypes;
import org.onosproject.yangutils.datamodel.YangType;
-import org.onosproject.yangutils.translator.tojava.AttributeInfo;
import org.onosproject.yangutils.utils.UtilConstants;
/**
@@ -33,41 +32,14 @@
}
/**
- * Returns YANG type.
+ * Returns java type.
*
* @param yangType YANG type
- * @return YANG type
+ * @return java type
*/
- public static YangType<?> getJavaDataType(YangType<?> yangType) {
- yangType.setDataTypeName(yangType.getDataTypeName().replace("\"", ""));
- if (yangType.getDataType() != null) {
- yangType.setDataTypeName(parseYangDataType(yangType.getDataType()));
- }
- return yangType;
- }
+ public static String getJavaDataType(YangType<?> yangType) {
+ YangDataTypes type = yangType.getDataType();
- /**
- * Returns list string as attribute name when attribute is a list.
- *
- * @param attr attribute info.
- * @return list attribute
- */
- @SuppressWarnings("rawtypes")
- public static YangType<?> getListString(AttributeInfo attr) {
- String listString = JavaCodeSnippetGen.getListAttribute(attr.getAttributeType().getDataTypeName());
- YangType<?> type = new YangType();
- type.setDataTypeName(listString);
- attr.setAttributeType(type);
- return type;
- }
-
- /**
- * Parses YANG data type and returns corresponding java data type.
- *
- * @param type YANG data type
- * @return java data type
- */
- private static String parseYangDataType(YangDataTypes type) {
if (type.equals(YangDataTypes.INT8)) {
return UtilConstants.BYTE;
} else if (type.equals(YangDataTypes.INT16)) {
@@ -111,4 +83,161 @@
}
return null;
}
+
+ /**
+ * Returns java import class.
+ *
+ * @param yangType YANG type
+ * @param isListAttr if the attribute need to be a list
+ * @return java import class
+ */
+ public static String getJavaImportClass(YangType<?> yangType, boolean isListAttr) {
+ YangDataTypes type = yangType.getDataType();
+
+ if (isListAttr) {
+ if (type.equals(YangDataTypes.INT8)) {
+ return UtilConstants.BYTE_WRAPPER;
+ } else if (type.equals(YangDataTypes.INT16)) {
+ return UtilConstants.SHORT_WRAPPER;
+ } else if (type.equals(YangDataTypes.INT32)) {
+ return UtilConstants.INTEGER_WRAPPER;
+ } else if (type.equals(YangDataTypes.INT64)) {
+ return UtilConstants.LONG_WRAPPER;
+ } else if (type.equals(YangDataTypes.UINT8)) {
+ return UtilConstants.SHORT_WRAPPER;
+ } else if (type.equals(YangDataTypes.UINT16)) {
+ return UtilConstants.INTEGER_WRAPPER;
+ } else if (type.equals(YangDataTypes.UINT32)) {
+ return UtilConstants.LONG_WRAPPER;
+ } else if (type.equals(YangDataTypes.UINT64)) {
+ //TODO: BIGINTEGER.
+ } else if (type.equals(YangDataTypes.DECIMAL64)) {
+ //TODO: DECIMAL64.
+ } else if (type.equals(YangDataTypes.STRING)) {
+ return UtilConstants.STRING;
+ } else if (type.equals(YangDataTypes.BOOLEAN)) {
+ return UtilConstants.BOOLEAN_WRAPPER;
+ } else if (type.equals(YangDataTypes.ENUMERATION)) {
+ //TODO: ENUMERATION.
+ } else if (type.equals(YangDataTypes.BITS)) {
+ //TODO:BITS
+ } else if (type.equals(YangDataTypes.BINARY)) {
+ //TODO:BINARY
+ } else if (type.equals(YangDataTypes.LEAFREF)) {
+ //TODO:LEAFREF
+ } else if (type.equals(YangDataTypes.IDENTITYREF)) {
+ //TODO:IDENTITYREF
+ } else if (type.equals(YangDataTypes.EMPTY)) {
+ //TODO:EMPTY
+ } else if (type.equals(YangDataTypes.UNION)) {
+ //TODO:UNION
+ } else if (type.equals(YangDataTypes.INSTANCE_IDENTIFIER)) {
+ //TODO:INSTANCE_IDENTIFIER
+ } else if (type.equals(YangDataTypes.DERIVED)) {
+ //TODO:DERIVED
+ }
+ } else {
+ if (type.equals(YangDataTypes.UINT64)) {
+ //TODO: BIGINTEGER.
+ } else if (type.equals(YangDataTypes.DECIMAL64)) {
+ //TODO: DECIMAL64.
+ } else if (type.equals(YangDataTypes.STRING)) {
+ return UtilConstants.STRING;
+ } else if (type.equals(YangDataTypes.ENUMERATION)) {
+ //TODO: ENUMERATION.
+ } else if (type.equals(YangDataTypes.BITS)) {
+ //TODO:BITS
+ } else if (type.equals(YangDataTypes.BINARY)) {
+ //TODO:BINARY
+ } else if (type.equals(YangDataTypes.LEAFREF)) {
+ //TODO:LEAFREF
+ } else if (type.equals(YangDataTypes.IDENTITYREF)) {
+ //TODO:IDENTITYREF
+ } else if (type.equals(YangDataTypes.EMPTY)) {
+ //TODO:EMPTY
+ } else if (type.equals(YangDataTypes.UNION)) {
+ //TODO:UNION
+ } else if (type.equals(YangDataTypes.INSTANCE_IDENTIFIER)) {
+ //TODO:INSTANCE_IDENTIFIER
+ } else if (type.equals(YangDataTypes.DERIVED)) {
+ //TODO:DERIVED
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns java import package.
+ *
+ * @param yangType YANG type
+ * @param isListAttr if the attribute is of list type
+ * @return java import package
+ */
+ public static String getJavaImportPackage(YangType<?> yangType, boolean isListAttr) {
+ YangDataTypes type = yangType.getDataType();
+
+ if (isListAttr) {
+ if (type.equals(YangDataTypes.INT8)
+ || type.equals(YangDataTypes.INT16)
+ || type.equals(YangDataTypes.INT32)
+ || type.equals(YangDataTypes.INT64)
+ || type.equals(YangDataTypes.UINT8)
+ || type.equals(YangDataTypes.UINT16)
+ || type.equals(YangDataTypes.UINT32)
+ || type.equals(YangDataTypes.STRING)
+ || type.equals(YangDataTypes.BOOLEAN)) {
+ return UtilConstants.JAVA_LANG;
+ } else if (type.equals(YangDataTypes.UINT64)) {
+ //TODO: BIGINTEGER.
+ } else if (type.equals(YangDataTypes.DECIMAL64)) {
+ //TODO: DECIMAL64.
+ } else if (type.equals(YangDataTypes.ENUMERATION)) {
+ //TODO: ENUMERATION.
+ } else if (type.equals(YangDataTypes.BITS)) {
+ //TODO:BITS
+ } else if (type.equals(YangDataTypes.BINARY)) {
+ //TODO:BINARY
+ } else if (type.equals(YangDataTypes.LEAFREF)) {
+ //TODO:LEAFREF
+ } else if (type.equals(YangDataTypes.IDENTITYREF)) {
+ //TODO:IDENTITYREF
+ } else if (type.equals(YangDataTypes.EMPTY)) {
+ //TODO:EMPTY
+ } else if (type.equals(YangDataTypes.UNION)) {
+ //TODO:UNION
+ } else if (type.equals(YangDataTypes.INSTANCE_IDENTIFIER)) {
+ //TODO:INSTANCE_IDENTIFIER
+ } else if (type.equals(YangDataTypes.DERIVED)) {
+ //TODO:DERIVED
+ }
+ } else {
+
+ if (type.equals(YangDataTypes.UINT64)) {
+ //TODO: BIGINTEGER.
+ } else if (type.equals(YangDataTypes.DECIMAL64)) {
+ //TODO: DECIMAL64.
+ } else if (type.equals(YangDataTypes.STRING)) {
+ return UtilConstants.JAVA_LANG;
+ } else if (type.equals(YangDataTypes.ENUMERATION)) {
+ //TODO: ENUMERATION.
+ } else if (type.equals(YangDataTypes.BITS)) {
+ //TODO:BITS
+ } else if (type.equals(YangDataTypes.BINARY)) {
+ //TODO:BINARY
+ } else if (type.equals(YangDataTypes.LEAFREF)) {
+ //TODO:LEAFREF
+ } else if (type.equals(YangDataTypes.IDENTITYREF)) {
+ //TODO:IDENTITYREF
+ } else if (type.equals(YangDataTypes.EMPTY)) {
+ //TODO:EMPTY
+ } else if (type.equals(YangDataTypes.UNION)) {
+ //TODO:UNION
+ } else if (type.equals(YangDataTypes.INSTANCE_IDENTIFIER)) {
+ //TODO:INSTANCE_IDENTIFIER
+ } else if (type.equals(YangDataTypes.DERIVED)) {
+ //TODO:DERIVED
+ }
+ }
+ return null;
+ }
}