[ONOS-5142] [ONOS-5137] defect fixes
Change-Id: I2856a7a41b242b16c981915dd97986aa9c6ab676
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/exception/InvalidNodeForTranslatorException.java b/plugin/src/main/java/org/onosproject/yangutils/translator/exception/InvalidNodeForTranslatorException.java
index 03b0382..c737175 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/exception/InvalidNodeForTranslatorException.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/exception/InvalidNodeForTranslatorException.java
@@ -22,10 +22,10 @@
public class InvalidNodeForTranslatorException extends RuntimeException {
private static final long serialVersionUID = 20160311L;
- private String fileName;
+ private transient String fileName;
/**
- * Create a new exception.
+ * Creates a new exception.
*/
public InvalidNodeForTranslatorException() {
super();
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/exception/TranslatorException.java b/plugin/src/main/java/org/onosproject/yangutils/translator/exception/TranslatorException.java
index cf2c07d..a033a00 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/exception/TranslatorException.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/exception/TranslatorException.java
@@ -22,7 +22,7 @@
public class TranslatorException extends RuntimeException {
private static final long serialVersionUID = 20160311L;
- private String fileName;
+ private transient String fileName;
/**
* Create a new translator exception.
@@ -44,7 +44,7 @@
* Creates a new translator exception from given message and cause.
*
* @param message the detail of exception in string
- * @param cause underlying cause of the error
+ * @param cause underlying cause of the error
*/
public TranslatorException(final String message, final Throwable cause) {
super(message, cause);
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaAttributeInfo.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaAttributeInfo.java
index ffa7b21..a5a644a 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaAttributeInfo.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaAttributeInfo.java
@@ -18,6 +18,7 @@
import org.onosproject.yangutils.datamodel.YangCompilerAnnotation;
import org.onosproject.yangutils.datamodel.YangType;
+import org.onosproject.yangutils.datamodel.javadatamodel.JavaQualifiedTypeInfo;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.isTypeLeafref;
@@ -70,6 +71,11 @@
private boolean isLongConflict;
/**
+ * If conflict occurs.
+ */
+ private boolean isShortConflict;
+
+ /**
* Creates a java attribute info object.
*/
private JavaAttributeInfo() {
@@ -244,6 +250,24 @@
}
/**
+ * Returns true if conflict between short and uint8.
+ *
+ * @return true if conflict between short and uint8
+ */
+ public boolean isShortConflict() {
+ return isShortConflict;
+ }
+
+ /**
+ * Sets true if conflict between short and uint8.
+ *
+ * @param shortConflict true if conflict between short and uint8
+ */
+ public void setShortConflict(boolean shortConflict) {
+ isShortConflict = shortConflict;
+ }
+
+ /**
* Returns java attribute info.
*
* @param importInfo java qualified type info
@@ -253,7 +277,7 @@
* @param isListAttribute is list attribute
* @return java attribute info.
*/
- public static JavaAttributeInfo getAttributeInfoForTheData(JavaQualifiedTypeInfoTranslator importInfo,
+ public static JavaAttributeInfo getAttributeInfoForTheData(JavaQualifiedTypeInfo importInfo,
String attributeName,
YangType<?> attributeType, boolean isQualifiedAccess,
boolean isListAttribute) {
@@ -263,7 +287,7 @@
}
attributeName = isTypeNameLeafref(attributeName, attributeType);
JavaAttributeInfo newAttr = new JavaAttributeInfo();
- newAttr.setImportInfo(importInfo);
+ newAttr.setImportInfo((JavaQualifiedTypeInfoTranslator) importInfo);
newAttr.setAttributeName(attributeName);
newAttr.setAttributeType(attributeType);
newAttr.setIsQualifiedAccess(isQualifiedAccess);
@@ -275,11 +299,11 @@
/**
* Returns java attribute info.
*
- * @param importInfo java qualified type info
- * @param attributeName attribute name
- * @param attributeType attribute type
- * @param isQualifiedAccess is the attribute a qualified access
- * @param isListAttribute is list attribute
+ * @param importInfo java qualified type info
+ * @param attributeName attribute name
+ * @param attributeType attribute type
+ * @param isQualifiedAccess is the attribute a qualified access
+ * @param isListAttribute is list attribute
* @param compilerAnnotation compiler annotation
* @return java attribute info.
*/
@@ -288,7 +312,7 @@
boolean isQualifiedAccess, boolean isListAttribute,
YangCompilerAnnotation compilerAnnotation) {
JavaAttributeInfo newAttr = getAttributeInfoForTheData(importInfo, attributeName, attributeType,
- isQualifiedAccess, isListAttribute);
+ isQualifiedAccess, isListAttribute);
newAttr.setCompilerAnnotation(compilerAnnotation);
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
index 671635e..089a1b3 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
@@ -17,22 +17,12 @@
package org.onosproject.yangutils.translator.tojava;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.onosproject.yangutils.datamodel.TraversalType;
-import org.onosproject.yangutils.datamodel.YangAugment;
-import org.onosproject.yangutils.datamodel.YangCase;
-import org.onosproject.yangutils.datamodel.YangChoice;
import org.onosproject.yangutils.datamodel.YangInput;
-import org.onosproject.yangutils.datamodel.YangLeaf;
-import org.onosproject.yangutils.datamodel.YangLeafList;
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangNodeType;
import org.onosproject.yangutils.datamodel.YangOutput;
-import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.translator.exception.InvalidNodeForTranslatorException;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.utils.io.YangPluginConfig;
@@ -41,11 +31,6 @@
import static org.onosproject.yangutils.datamodel.TraversalType.PARENT;
import static org.onosproject.yangutils.datamodel.TraversalType.ROOT;
import static org.onosproject.yangutils.datamodel.TraversalType.SIBILING;
-import static org.onosproject.yangutils.datamodel.utils.GeneratedLanguage.JAVA_GENERATION;
-import static org.onosproject.yangutils.translator.tojava.YangDataModelFactory.getYangCaseNode;
-import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.getAugmentClassName;
-import static org.onosproject.yangutils.utils.UtilConstants.CASE;
-import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.searchAndDeleteTempDir;
/**
@@ -53,7 +38,6 @@
*/
public final class JavaCodeGeneratorUtil {
- private static final Log log = LogFactory.getLog(JavaCodeGeneratorUtil.class);
/**
* Current YANG node.
*/
@@ -64,8 +48,6 @@
*/
private static YangNode rootNode;
- private static int calls = 0;
-
/**
* Creates a java code generator utility object.
*/
@@ -106,11 +88,6 @@
TraversalType curTraversal = ROOT;
while (codeGenNode != null) {
- if (codeGenNode instanceof YangAugment) {
- if (((YangAugment) codeGenNode).getAugmentedNode() instanceof YangChoice) {
- addCaseNodeToChoiceTarget((YangAugment) codeGenNode);
- }
- }
if (curTraversal != PARENT) {
if (!(codeGenNode instanceof JavaCodeGenerator)) {
throw new TranslatorException("Unsupported node to generate code");
@@ -129,9 +106,7 @@
}
continue;
} catch (Exception e) {
- if (log.isDebugEnabled()) {
- e.printStackTrace();
- }
+ e.printStackTrace();
close(codeGenNode, yangPlugin);
throw new TranslatorException(e.getMessage());
}
@@ -144,9 +119,7 @@
try {
generateCodeExit(codeGenNode, yangPlugin);
} catch (Exception e) {
- if (log.isDebugEnabled()) {
- e.printStackTrace();
- }
+ e.printStackTrace();
close(codeGenNode, yangPlugin);
throw new TranslatorException(e.getMessage());
}
@@ -156,9 +129,7 @@
try {
generateCodeExit(codeGenNode, yangPlugin);
} catch (Exception e) {
- if (log.isDebugEnabled()) {
- e.printStackTrace();
- }
+ e.printStackTrace();
close(codeGenNode, yangPlugin);
throw new TranslatorException(e.getMessage());
}
@@ -381,49 +352,4 @@
return null;
}
- /**
- * Adds a case node in augment when augmenting a choice node.
- *
- * @param augment augment node
- */
- private static void addCaseNodeToChoiceTarget(YangAugment augment) {
- calls++;
- if (calls == 1) {
- YangCase javaCase = getYangCaseNode(JAVA_GENERATION);
-
- YangPluginConfig pluginConfig = new YangPluginConfig();
- javaCase.setName(getAugmentClassName(augment, pluginConfig) + getCapitalCase(CASE));
-
- if (augment.getListOfLeaf() != null) {
- for (YangLeaf leaf : augment.getListOfLeaf()) {
- javaCase.addLeaf(leaf);
- }
- augment.getListOfLeaf().clear();
- }
- if (augment.getListOfLeafList() != null) {
- for (YangLeafList leafList : augment.getListOfLeafList()) {
- javaCase.addLeafList(leafList);
- }
- augment.getListOfLeafList().clear();
- }
- YangNode child = augment.getChild();
- List<YangNode> childNodes = new ArrayList<>();
- while (child != null) {
- child.setParent(javaCase);
- childNodes.add(child);
- child = child.getNextSibling();
- }
- augment.setChild(null);
- try {
- augment.addChild(javaCase);
- for (YangNode node : childNodes) {
- node.setNextSibling(null);
- node.setPreviousSibling(null);
- javaCase.addChild(node);
- }
- } catch (DataModelException e) {
- throw new TranslatorException("Failed to add child nodes to case node of augment " + augment.getName());
- }
- }
- }
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoContainer.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoContainer.java
deleted file mode 100644
index 7791773..0000000
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoContainer.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2016 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;
-
-/**
- * Maintain the java qualified access details for an attribute or a class.
- */
-public interface JavaQualifiedTypeInfoContainer {
-
- /**
- * Obtain the java qualified details.
- *
- * @return java qualified type details
- */
- JavaQualifiedTypeInfoTranslator getJavaQualifiedInfo();
-
- /**
- * Assign the qualified type info.
- *
- * @param typeInfo qualified type information
- */
- void setJavaQualifiedInfo(JavaQualifiedTypeInfoTranslator typeInfo);
-}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoTranslator.java
index 63aa535..420dc27 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoTranslator.java
@@ -21,10 +21,10 @@
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.javadatamodel.JavaQualifiedTypeInfo;
-import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.javamodel.AttributesJavaDataType;
import org.onosproject.yangutils.translator.tojava.javamodel.JavaLeafInfoContainer;
+import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
import com.google.common.base.MoreObjects;
@@ -42,6 +42,7 @@
* Creates a java qualified type info object.
*/
public JavaQualifiedTypeInfoTranslator() {
+ super();
}
/**
@@ -87,7 +88,7 @@
*/
public static void updateLeavesJavaQualifiedInfo(JavaLeafInfoContainer leaf) {
- JavaQualifiedTypeInfoTranslator importInfo = leaf.getJavaQualifiedInfo();
+ JavaQualifiedTypeInfoTranslator importInfo = (JavaQualifiedTypeInfoTranslator) leaf.getJavaQualifiedInfo();
if (leaf.getDataType() == null) {
throw new TranslatorException("missing data type of leaf " + leaf.getName());
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 d17c081..5068458 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
@@ -25,9 +25,9 @@
import org.onosproject.yangutils.datamodel.YangEnum;
import org.onosproject.yangutils.datamodel.YangEnumeration;
import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaTypeTranslator;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT32;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ENUM_IMPL_MASK;
@@ -229,7 +229,7 @@
* @return java attribute
*/
public JavaAttributeInfo getJavaAttributeForEnum(YangPluginConfig pluginConfig) {
- YangJavaTypeTranslator<?> javaType = new YangJavaTypeTranslator<>();
+ YangJavaTypeTranslator javaType = new YangJavaTypeTranslator();
javaType.setDataType(INT32);
javaType.setDataTypeName(INT);
javaType.updateJavaQualifiedInfo(pluginConfig.getConflictResolver());
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 1988e5a..37ce7ee 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
@@ -30,6 +30,7 @@
import org.onosproject.yangutils.datamodel.YangModule;
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangSubModule;
+import org.onosproject.yangutils.datamodel.javadatamodel.JavaQualifiedTypeInfo;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.javamodel.JavaLeafInfoContainer;
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaGroupingTranslator;
@@ -1584,7 +1585,7 @@
addLeafIdAttributes(newAttrInfo, leafCount, pluginConfig);
}
if (!newAttrInfo.isIntConflict() &&
- !newAttrInfo.isLongConflict()) {
+ !newAttrInfo.isLongConflict() && !newAttrInfo.isShortConflict()) {
if ((getGeneratedTempFiles() & GETTER_FOR_CLASS_MASK) != 0) {
addGetterImpl(newAttrInfo, pluginConfig);
}
@@ -1863,8 +1864,9 @@
* @return status of the qualified access to the attribute
*/
boolean getIsQualifiedAccessOrAddToImportList(
- JavaQualifiedTypeInfoTranslator importInfo) {
- return getJavaImportData().addImportInfo(importInfo, getGeneratedJavaClassName(),
+ JavaQualifiedTypeInfo importInfo) {
+ return getJavaImportData().addImportInfo((JavaQualifiedTypeInfoTranslator) importInfo,
+ getGeneratedJavaClassName(),
getJavaFileInfo().getPackage());
}
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 b8f12e6..62c6390 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
@@ -29,10 +29,12 @@
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaTypeTranslator;
import org.onosproject.yangutils.utils.io.YangPluginConfig;
+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.UINT16;
import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT32;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT8;
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.GeneratedTempFileType.CONSTRUCTOR_FOR_TYPE_MASK;
@@ -47,6 +49,7 @@
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getTypeConstructorStringAndJavaDoc;
import static org.onosproject.yangutils.translator.tojava.utils.ValidatorTypeForUnionTypes.INT_TYPE_CONFLICT;
import static org.onosproject.yangutils.translator.tojava.utils.ValidatorTypeForUnionTypes.LONG_TYPE_CONFLICT;
+import static org.onosproject.yangutils.translator.tojava.utils.ValidatorTypeForUnionTypes.SHORT_TYPE_CONFLICT;
import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.closeFile;
@@ -100,6 +103,16 @@
private int uLongIndex = 0;
/**
+ * short index in type list.
+ */
+ private int shortIndex = 0;
+
+ /**
+ * Uint8 index in type list.
+ */
+ private int uInt8Index = 0;
+
+ /**
* Temporary file handle for of string method of class.
*/
private File ofStringImplTempFileHandle;
@@ -130,6 +143,16 @@
private JavaAttributeInfo longAttribute;
/**
+ * Java attribute for short.
+ */
+ private JavaAttributeInfo shortAttribute;
+
+ /**
+ * Java attribute for uint8.
+ */
+ private JavaAttributeInfo uInt8Attribute;
+
+ /**
* Java attribute for uInt.
*/
private JavaAttributeInfo uIntAttribute;
@@ -270,7 +293,7 @@
* @return java attribute
*/
private JavaAttributeInfo getAttributeForType(YangType yangType, YangPluginConfig pluginConfig) {
- YangJavaTypeTranslator<?> javaType = (YangJavaTypeTranslator<?>) yangType;
+ YangJavaTypeTranslator javaType = (YangJavaTypeTranslator) yangType;
javaType.updateJavaQualifiedInfo(pluginConfig.getConflictResolver());
String typeName = javaType.getDataTypeName();
typeName = getCamelCase(typeName, pluginConfig.getConflictResolver());
@@ -290,12 +313,19 @@
* @throws IOException IO operation fail
*/
private void addJavaSnippetInfoToApplicableTempFiles(JavaAttributeInfo javaAttributeInfo,
- YangPluginConfig pluginConfig, List<YangType<?>> typeList)
+ YangPluginConfig pluginConfig, List<YangType<?>> typeList)
throws IOException {
YangDataTypes attrType = javaAttributeInfo.getAttributeType().getDataType();
- if (attrType == INT32 || attrType == UINT16) {
+ if (attrType == INT16 || attrType == UINT8) {
+ boolean isShortConflict = validateForConflictingShortTypes(typeList);
+ javaAttributeInfo.setShortConflict(isShortConflict);
+ updateAttributeCondition(javaAttributeInfo);
+ if (!isShortConflict) {
+ addMethodsWhenNoConflictingTypes(javaAttributeInfo, pluginConfig);
+ }
+ } else if (attrType == INT32 || attrType == UINT16) {
boolean isIntConflict = validateForConflictingIntTypes(typeList);
javaAttributeInfo.setIntConflict(isIntConflict);
updateAttributeCondition(javaAttributeInfo);
@@ -324,7 +354,7 @@
* @throws IOException when fails to do IO operations
*/
private void addMethodsWhenNoConflictingTypes(JavaAttributeInfo javaAttributeInfo,
- YangPluginConfig pluginConfig)
+ YangPluginConfig pluginConfig)
throws IOException {
if ((getGeneratedTempFiles() & OF_STRING_IMPL_MASK) != 0) {
addOfStringMethod(javaAttributeInfo, pluginConfig);
@@ -385,6 +415,28 @@
}
}
}
+
+ attr = getShortAttribute();
+ if (attr != null) {
+ attr = getUInt8Attribute();
+ }
+ if (attr != null) {
+ if (attr.isShortConflict()) {
+ if (getShortIndex() < getUInt8Index()) {
+ appendToFile(getOfStringImplTempFileHandle(), getOfMethodStringAndJavaDoc(getShortAttribute(),
+ getGeneratedJavaClassName(), pluginConfig)
+ + NEW_LINE);
+ addGetterImpl(getShortAttribute(), pluginConfig);
+ addFromStringMethod(getShortAttribute(), pluginConfig);
+ } else {
+ appendToFile(getOfStringImplTempFileHandle(), getOfMethodStringAndJavaDoc(getUInt8Attribute(),
+ getGeneratedJavaClassName(), pluginConfig)
+ + NEW_LINE);
+ addGetterImpl(getUInt8Attribute(), pluginConfig);
+ addFromStringMethod(getUInt8Attribute(), pluginConfig);
+ }
+ }
+ }
}
/**
@@ -458,6 +510,19 @@
< getULongIndex()) + NEW_LINE);
}
}
+ attr = getShortAttribute();
+ if (attr != null) {
+ attr = getUInt8Attribute();
+ }
+ if (attr != null) {
+ if (attr.isShortConflict()) {
+ appendToFile(getConstructorForTypeTempFileHandle(), getTypeConstructorStringAndJavaDoc(
+ getShortAttribute(),
+ getUInt8Attribute(), getGeneratedJavaClassName(), pluginConfig, SHORT_TYPE_CONFLICT,
+ getShortIndex()
+ < getUInt8Index()) + NEW_LINE);
+ }
+ }
}
/**
@@ -555,6 +620,42 @@
}
/**
+ * Returns short type index from type list.
+ *
+ * @return short type index from type list
+ */
+ public int getShortIndex() {
+ return shortIndex;
+ }
+
+ /**
+ * Sets short type index from type list.
+ *
+ * @param shortIndex short type index from type list.
+ */
+ private void setShortIndex(int shortIndex) {
+ this.shortIndex = shortIndex;
+ }
+
+ /**
+ * Returns uInt type index from type list.
+ *
+ * @return uInt type index from type list
+ */
+ public int getUInt8Index() {
+ return uInt8Index;
+ }
+
+ /**
+ * Sets uInt8 type index from type list.
+ *
+ * @param uInt8Index uInt8 type index from type list.
+ */
+ private void setUInt8Index(int uInt8Index) {
+ this.uInt8Index = uInt8Index;
+ }
+
+ /**
* Returns int type index from type list.
*
* @return int type index from type list
@@ -650,6 +751,29 @@
}
/**
+ * Validates conflict for int and uInt.
+ *
+ * @param typeList type list
+ * @return true if conflict is there
+ */
+ private boolean validateForConflictingShortTypes(List<YangType<?>> typeList) {
+ boolean isShortPresent = false;
+ boolean isUInt8Present = false;
+ for (YangType type : typeList) {
+ if (type.getDataType().equals(INT16)) {
+ setShortIndex(typeList.indexOf(type));
+ isShortPresent = true;
+ }
+ if (type.getDataType().equals(UINT8)) {
+ setUInt8Index(typeList.indexOf(type));
+ isUInt8Present = true;
+ }
+ }
+
+ return isShortPresent && isUInt8Present;
+ }
+
+ /**
* Validates conflict for long and uLong.
*
* @param typeList type list
@@ -695,6 +819,14 @@
}
}
+ if (javaAttributeInfo.isShortConflict()) {
+ if (javaAttributeInfo.getAttributeType().getDataType() == UINT8) {
+ setUInt8Attribute(javaAttributeInfo);
+ } else if (javaAttributeInfo.getAttributeType().getDataType() == INT16) {
+ setShortAttribute(javaAttributeInfo);
+ }
+
+ }
}
/**
@@ -768,4 +900,41 @@
private void setULongAttribute(JavaAttributeInfo uLongAttribute) {
this.uLongAttribute = uLongAttribute;
}
+
+ /**
+ * Returns attribute for uInt8.
+ *
+ * @return attribute for uInt8
+ */
+ public JavaAttributeInfo getUInt8Attribute() {
+ return uInt8Attribute;
+ }
+
+ /**
+ * Sets attribute for uInt8.
+ *
+ * @param uInt8Attribute attribute for uInt8
+ */
+ private void setUInt8Attribute(JavaAttributeInfo uInt8Attribute) {
+ this.uInt8Attribute = uInt8Attribute;
+ }
+
+ /**
+ * Returns attribute for short.
+ *
+ * @return attribute for short
+ */
+ public JavaAttributeInfo getShortAttribute() {
+ return shortAttribute;
+ }
+
+ /**
+ * Sets attribute for short.
+ *
+ * @param shortAttribute attribute for short
+ */
+ private void setShortAttribute(JavaAttributeInfo shortAttribute) {
+ this.shortAttribute = shortAttribute;
+ }
+
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TraversalType.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TraversalType.java
deleted file mode 100644
index 35f529a..0000000
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TraversalType.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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;
-
-/**
- * Represents data model tree traversal types.
- */
-public enum TraversalType {
-
- /**
- * Start of traversal at the tree root.
- */
- ROOT,
-
- /**
- * Child node traversal.
- */
- CHILD,
-
- /**
- * Sibling node traversal.
- */
- SIBLING,
-
- /**
- * Parent node traversal.
- */
- PARENT
-}
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 eb02fd7..1ea7f48 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
@@ -19,6 +19,7 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+
import org.onosproject.yangutils.datamodel.RpcNotificationContainer;
import org.onosproject.yangutils.datamodel.YangAtomicPath;
import org.onosproject.yangutils.datamodel.YangAugment;
@@ -31,13 +32,13 @@
import org.onosproject.yangutils.datamodel.YangSubModule;
import org.onosproject.yangutils.datamodel.YangTranslatorOperatorNode;
import org.onosproject.yangutils.datamodel.YangTypeHolder;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
import org.onosproject.yangutils.datamodel.utils.DataModelUtils;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaAugmentTranslator;
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaEnumerationTranslator;
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModuleTranslator;
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaSubModuleTranslator;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.isRpcChildNodePresent;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
@@ -508,7 +509,8 @@
String name = getCapitalCase(getCamelCase(yangNodeIdentifier.getName(), yangPluginConfig
.getConflictResolver()));
if (yangNodeIdentifier.getPrefix() != null) {
- return AUGMENTED + getCapitalCase(yangNodeIdentifier.getPrefix()) + name;
+ return AUGMENTED + getCapitalCase(getCamelCase(yangNodeIdentifier.getPrefix(), yangPluginConfig
+ .getConflictResolver())) + name;
} else {
return AUGMENTED + name;
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaLeafInfoContainer.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaLeafInfoContainer.java
index d07aaac..49f2f41 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaLeafInfoContainer.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaLeafInfoContainer.java
@@ -17,7 +17,7 @@
import org.onosproject.yangutils.datamodel.YangType;
import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
-import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoContainer;
+import org.onosproject.yangutils.datamodel.javadatamodel.JavaQualifiedTypeInfoContainer;
/**
* Represent java based identification of the YANG leaves.
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaQualifiedTypeResolver.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaQualifiedTypeResolver.java
index ad3de56..909c6f4 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaQualifiedTypeResolver.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaQualifiedTypeResolver.java
@@ -16,13 +16,11 @@
package org.onosproject.yangutils.translator.tojava.javamodel;
import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
-import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoContainer;
/**
* Represent java based identification of the YANG leaves.
*/
-interface JavaQualifiedTypeResolver
- extends JavaQualifiedTypeInfoContainer {
+interface JavaQualifiedTypeResolver {
/**
* updates the qualified access details of the type.
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeafListTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeafListTranslator.java
index 08c4fb3..c79d86b 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeafListTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeafListTranslator.java
@@ -16,8 +16,8 @@
package org.onosproject.yangutils.translator.tojava.javamodel;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaLeafList;
-import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator;
+import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator.updateLeavesJavaQualifiedInfo;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
@@ -56,16 +56,6 @@
updateLeavesJavaQualifiedInfo(this);
}
- @Override
- public JavaQualifiedTypeInfoTranslator getJavaQualifiedInfo() {
- return (JavaQualifiedTypeInfoTranslator) javaQualifiedTypeInfo;
- }
-
- @Override
- public void setJavaQualifiedInfo(JavaQualifiedTypeInfoTranslator typeInfo) {
- javaQualifiedTypeInfo = typeInfo;
- }
-
/**
* Returns java naming conflict resolve configurations.
*
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeafTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeafTranslator.java
index d7dfb9b..a846e59 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeafTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeafTranslator.java
@@ -16,8 +16,8 @@
package org.onosproject.yangutils.translator.tojava.javamodel;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaLeaf;
-import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator;
+import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator.updateLeavesJavaQualifiedInfo;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
@@ -42,17 +42,6 @@
}
@Override
- public JavaQualifiedTypeInfoTranslator getJavaQualifiedInfo() {
- return (JavaQualifiedTypeInfoTranslator) javaQualifiedTypeInfo;
- }
-
- @Override
- public void setJavaQualifiedInfo(JavaQualifiedTypeInfoTranslator typeInfo) {
- javaQualifiedTypeInfo = typeInfo;
-
- }
-
- @Override
public String getJavaName(YangToJavaNamingConflictUtil conflictResolveConfig) {
return getCamelCase(getName(), conflictResolveConfig);
}
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 774e422..0f46f76 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
@@ -18,6 +18,7 @@
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;
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 4f403c9..009a86f 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
@@ -18,15 +18,16 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+
import org.onosproject.yangutils.datamodel.YangBelongsTo;
import org.onosproject.yangutils.datamodel.YangModule;
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangNotification;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaSubModule;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
import org.onosproject.yangutils.utils.io.YangPluginConfig;
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeTranslator.java
index cb8d3ba..911e0c4 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeTranslator.java
@@ -15,7 +15,7 @@
*/
package org.onosproject.yangutils.translator.tojava.javamodel;
-import org.onosproject.yangutils.datamodel.YangType;
+import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaType;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator;
import org.onosproject.yangutils.utils.io.YangToJavaNamingConflictUtil;
@@ -26,15 +26,11 @@
/**
* Represents java information corresponding to the YANG type.
- *
- * @param <T> generic parameter for YANG java type
*/
-public class YangJavaTypeTranslator<T>
- extends YangType<T>
+public class YangJavaTypeTranslator
+ extends YangJavaType
implements JavaQualifiedTypeResolver {
- private JavaQualifiedTypeInfoTranslator javaQualifiedAccess;
-
/**
* Create a YANG leaf object with java qualified access details.
*/
@@ -45,7 +41,7 @@
@Override
public void updateJavaQualifiedInfo(YangToJavaNamingConflictUtil conflictResolver) {
- JavaQualifiedTypeInfoTranslator importInfo = getJavaQualifiedInfo();
+ JavaQualifiedTypeInfoTranslator importInfo = (JavaQualifiedTypeInfoTranslator) getJavaQualifiedInfo();
/*
* Type is added as an attribute in the class.
@@ -58,7 +54,7 @@
*/
importInfo.setClassInfo(className);
String classPkg = getJavaImportPackage(this,
- false, conflictResolver);
+ false, conflictResolver);
if (classPkg == null) {
throw new TranslatorException("import package cannot be null when the class is used");
}
@@ -77,13 +73,4 @@
setJavaQualifiedInfo(importInfo);
}
- @Override
- public JavaQualifiedTypeInfoTranslator getJavaQualifiedInfo() {
- return javaQualifiedAccess;
- }
-
- @Override
- public void setJavaQualifiedInfo(JavaQualifiedTypeInfoTranslator typeInfo) {
- javaQualifiedAccess = typeInfo;
- }
}
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 da23e83..60191de 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
@@ -23,9 +23,9 @@
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangNotification;
import org.onosproject.yangutils.datamodel.YangSubModule;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
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.translator.tojava.JavaQualifiedTypeInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
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 6b4da44..ca0dd02 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
@@ -60,8 +60,12 @@
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 org.onosproject.yangutils.utils.UtilConstants.SHORT_MAX_RANGE_ATTR;
+import static org.onosproject.yangutils.utils.UtilConstants.SHORT_MIN_RANGE_ATTR;
import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
import static org.onosproject.yangutils.utils.UtilConstants.TYPE;
+import static org.onosproject.yangutils.utils.UtilConstants.UINT8_MAX_RANGE_ATTR;
+import static org.onosproject.yangutils.utils.UtilConstants.UINT8_MIN_RANGE_ATTR;
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;
@@ -114,7 +118,7 @@
* @param javaAttributeName name of the attribute
* @param isList is list attribute
* @param attributeAccessType attribute access type
- * @param compilerAnnotation compiler annotation
+ * @param compilerAnnotation compiler annotation
* @return the textual java code for attribute definition in class
*/
public static String getJavaAttributeDefinition(String javaAttributeTypePkg, String javaAttributeType,
@@ -318,6 +322,24 @@
}
/**
+ * 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 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;
+ } else {
+ return NEW_LINE + FOUR_SPACE_INDENTATION + modifier + SPACE + UINT8_MIN_RANGE_ATTR +
+ FOUR_SPACE_INDENTATION + modifier + SPACE + UINT8_MAX_RANGE_ATTR;
+ }
+ }
+
+ /**
* Returns operation type enum.
*
* @return operation type enum
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 dcca748..43946f7 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
@@ -206,7 +206,7 @@
* @throws IOException when fails to write in file
*/
public static File generateInterfaceFile(File file, List<String> imports, YangNode curNode,
- boolean isAttrPresent)
+ boolean isAttrPresent)
throws IOException {
JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
@@ -376,7 +376,7 @@
*/
public static File generateBuilderClassFile(File file, YangNode curNode,
- boolean isAttrPresent)
+ boolean isAttrPresent)
throws IOException {
JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
@@ -490,7 +490,7 @@
* @throws IOException when fails to write in file
*/
public static File generateDefaultClassFile(File file, YangNode curNode, boolean isAttrPresent,
- List<String> imports)
+ List<String> imports)
throws IOException {
JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
@@ -806,6 +806,7 @@
boolean isIntConflict = false;
boolean isLongConflict = false;
+ boolean isShortConflict = false;
JavaAttributeInfo intAttr = tempJavaTypeFragmentFiles.getIntAttribute();
if (intAttr == null) {
intAttr = tempJavaTypeFragmentFiles.getUIntAttribute();
@@ -816,13 +817,20 @@
longAttr = tempJavaTypeFragmentFiles.getULongAttribute();
}
+ JavaAttributeInfo shortAttr = tempJavaTypeFragmentFiles.getShortAttribute();
+ if (shortAttr == null) {
+ shortAttr = tempJavaTypeFragmentFiles.getUInt8Attribute();
+ }
+
if (intAttr != null) {
isIntConflict = intAttr.isIntConflict();
}
if (longAttr != null) {
isLongConflict = longAttr.isLongConflict();
}
-
+ if (shortAttr != null) {
+ isShortConflict = shortAttr.isShortConflict();
+ }
if (isLongConflict) {
imports.add(tempJavaTypeFragmentFiles.getJavaImportData().getBigIntegerImport());
sort(imports);
@@ -845,6 +853,11 @@
tempJavaTypeFragmentFiles.getLongIndex() < tempJavaTypeFragmentFiles.getULongIndex()));
}
+ if (isShortConflict) {
+ insertDataIntoJavaFile(file, JavaCodeSnippetGen.addStaticAttributeShortRange(PRIVATE,
+ tempJavaTypeFragmentFiles.getShortIndex() < tempJavaTypeFragmentFiles.getUInt8Index()));
+ }
+
insertDataIntoJavaFile(file,
NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
@@ -914,6 +927,9 @@
if (isLongConflict) {
methods.add(getRangeValidatorMethodForUnion(BIG_INTEGER));
}
+ if (isShortConflict) {
+ methods.add(getRangeValidatorMethodForUnion(INT));
+ }
} 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/MethodsGenerator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
index a816234..82cff15 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
@@ -45,11 +45,11 @@
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.JavaFileGeneratorUtils
- .getAugmentedClassNameForDataMethods;
+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.translator.tojava.utils.ValidatorTypeForUnionTypes.SHORT_TYPE_CONFLICT;
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;
@@ -148,6 +148,8 @@
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;
@@ -165,6 +167,8 @@
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;
@@ -229,7 +233,7 @@
* @return getter string
*/
public static String getGetterString(JavaAttributeInfo attr, int generatedJavaFiles,
- YangPluginConfig pluginConfig) {
+ YangPluginConfig pluginConfig) {
String returnType = getReturnType(attr);
String attributeName = attr.getAttributeName();
@@ -258,7 +262,7 @@
* @return setter string
*/
public static String getSetterString(JavaAttributeInfo attr, String className, int generatedJavaFiles,
- YangPluginConfig pluginConfig) {
+ YangPluginConfig pluginConfig) {
String attrType = getReturnType(attr);
String attributeName = attr.getAttributeName();
@@ -298,7 +302,7 @@
* @return default constructor string
*/
public static String getDefaultConstructorString(String name, String modifierType,
- YangPluginConfig pluginConfig) {
+ YangPluginConfig pluginConfig) {
return getJavaDoc(DEFAULT_CONSTRUCTOR, name, false, pluginConfig, null)
+ getDefaultConstructor(name, modifierType) + NEW_LINE;
}
@@ -419,7 +423,7 @@
* @return setter for attribute
*/
private static String getSetter(String className, String name, String type, int generatedJavaFiles,
- boolean isTypeNull, boolean isList) {
+ 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 +
@@ -499,7 +503,7 @@
* @return getter method for interface
*/
static String getGetterForInterface(String yangName, String returnType, boolean isList,
- int generatedJavaFiles, YangCompilerAnnotation compilerAnnotation) {
+ int generatedJavaFiles, YangCompilerAnnotation compilerAnnotation) {
if (!isList) {
return getGetterInterfaceString(returnType, yangName, generatedJavaFiles);
}
@@ -515,7 +519,7 @@
* @return getter for interface
*/
private static String getGetterInterfaceString(String returnType, String yangName,
- int generatedJavaFiles) {
+ int generatedJavaFiles) {
if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
return getGetMethodWithArgument(returnType, yangName);
} else {
@@ -536,8 +540,8 @@
* @return setter method for interface
*/
static String getSetterForInterface(String attrName, String attrType, String className,
- boolean isList, int generatedJavaFiles,
- YangCompilerAnnotation compilerAnnotation) {
+ boolean isList, int generatedJavaFiles,
+ YangCompilerAnnotation compilerAnnotation) {
if (!isList) {
return getSetterInterfaceString(className, attrName, attrType, generatedJavaFiles);
}
@@ -555,10 +559,10 @@
* @return setter string
*/
private static String getSetterInterfaceString(String className, String attrName, String attrType,
- int generatedJavaFiles) {
+ int generatedJavaFiles) {
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;
+ + 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;
@@ -630,7 +634,7 @@
* @return constructor for class
*/
public static String getConstructor(JavaAttributeInfo attr, int generatedJavaFiles,
- YangPluginConfig pluginConfig) {
+ YangPluginConfig pluginConfig) {
String attributeName = attr.getAttributeName();
String constructor;
@@ -661,7 +665,7 @@
* @return rpc method string
*/
public static String getRpcServiceMethod(String rpcName, String inputName, String outputName,
- YangPluginConfig pluginConfig) {
+ YangPluginConfig pluginConfig) {
rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
if (!inputName.equals(EMPTY_STRING)) {
@@ -681,7 +685,7 @@
* @return rpc method string
*/
public static String getRpcManagerMethod(String rpcName, String inputName, String outputName,
- YangPluginConfig pluginConfig) {
+ YangPluginConfig pluginConfig) {
rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
if (!inputName.equals(EMPTY_STRING)) {
@@ -846,7 +850,7 @@
* @return from string method's body string
*/
public static String getFromStringMethod(JavaAttributeInfo attr,
- JavaAttributeInfo fromStringAttributeInfo) {
+ JavaAttributeInfo fromStringAttributeInfo) {
return EIGHT_SPACE_INDENTATION + getTrySubString() + NEW_LINE + TWELVE_SPACE_INDENTATION
+ getParsedSubString(attr, fromStringAttributeInfo) + NEW_LINE + TWELVE_SPACE_INDENTATION
@@ -889,7 +893,7 @@
* @return sub string with parsed statement for union's from string method
*/
private static String getParsedSubString(JavaAttributeInfo attr,
- JavaAttributeInfo fromStringAttributeInfo) {
+ JavaAttributeInfo fromStringAttributeInfo) {
String targetDataType = getReturnType(attr);
if (fromStringAttributeInfo.getAttributeType().getDataType() == BITS) {
@@ -1055,7 +1059,7 @@
* @return of method's string and java doc for special type
*/
public static String getOfMethodStringAndJavaDoc(JavaAttributeInfo attr, String generatedJavaClassName,
- YangPluginConfig pluginConfig) {
+ YangPluginConfig pluginConfig) {
String attrType = getReturnType(attr);
String attrName = attr.getAttributeName();
@@ -1087,8 +1091,8 @@
* @return string and java doc for constructor of type class
*/
public static String getTypeConstructorStringAndJavaDoc(JavaAttributeInfo attr,
- String generatedJavaClassName,
- YangPluginConfig pluginConfig) {
+ String generatedJavaClassName,
+ YangPluginConfig pluginConfig) {
String attrType = getReturnType(attr);
String attrName = attr.getAttributeName();
@@ -1109,7 +1113,7 @@
*/
public static String getTypeConstructorStringAndJavaDoc(JavaAttributeInfo attr1, JavaAttributeInfo
attr2, String generatedJavaClassName, YangPluginConfig pluginConfig, ValidatorTypeForUnionTypes type,
- boolean addFirst) {
+ boolean addFirst) {
String attrType = getReturnType(attr1);
String attrName1 = "";
@@ -1122,7 +1126,7 @@
}
String appDataStructure = null;
- if (attr1.getCompilerAnnotation() != null) {
+ if (attr1 != null && attr1.getCompilerAnnotation() != null) {
appDataStructure = attr1.getCompilerAnnotation().getYangAppDataStructure().getDataStructure().name();
}
return getJavaDoc(TYPE_CONSTRUCTOR, generatedJavaClassName + " for type " + attrName1, false, pluginConfig,
@@ -1154,7 +1158,7 @@
* @return type constructor string
*/
private static String getTypeConstructorString(String type, String attr1, String attr2, String className,
- ValidatorTypeForUnionTypes validatorType, boolean addInt) {
+ ValidatorTypeForUnionTypes validatorType, boolean addInt) {
String constructor;
constructor = FOUR_SPACE_INDENTATION + PUBLIC + SPACE + className + OPEN_PARENTHESIS + type + SPACE + VALUE
@@ -1285,8 +1289,8 @@
* @return of method
*/
static String getEnumsOfMethod(String className, JavaAttributeInfo attr,
- Map<String, Integer> enumMap, List<String> enumList,
- YangPluginConfig pluginConfig) {
+ Map<String, Integer> enumMap, List<String> enumList,
+ YangPluginConfig pluginConfig) {
String attrType = getReturnType(attr);
String attrName = attr.getAttributeName();
@@ -1449,6 +1453,12 @@
} 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;
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
index a9890bd..9ccceb1 100644
--- 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
@@ -27,6 +27,11 @@
INT_TYPE_CONFLICT,
/**
+ * When conflict is there for int16 and uInt8.
+ */
+ SHORT_TYPE_CONFLICT,
+
+ /**
* When conflict is there for int64 and uInt32.
*/
LONG_TYPE_CONFLICT