[ONOS-5003][ONOS-5004][ONOS-5005]Generated Code modification for YangUtils+added interface for augmentation method and other api changes.
Change-Id: I954b9c99e182f21d01fcc5cd76fbac7d61a6c3aa
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 331878b..434e09f 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
@@ -21,21 +21,20 @@
import java.util.ArrayList;
import java.util.List;
-import org.onosproject.yangutils.datamodel.YangAugment;
import org.onosproject.yangutils.datamodel.YangAugmentableNode;
+import org.onosproject.yangutils.datamodel.YangChoice;
import org.onosproject.yangutils.datamodel.YangDerivedInfo;
-import org.onosproject.yangutils.datamodel.YangLeaf;
-import org.onosproject.yangutils.datamodel.YangLeafList;
import org.onosproject.yangutils.datamodel.YangLeavesHolder;
import org.onosproject.yangutils.datamodel.YangModule;
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangSubModule;
import org.onosproject.yangutils.datamodel.YangType;
import org.onosproject.yangutils.datamodel.YangTypeDef;
+import org.onosproject.yangutils.datamodel.javadatamodel.JavaFileInfo;
+import org.onosproject.yangutils.datamodel.javadatamodel.YangPluginConfig;
import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes;
import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo;
import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
-import org.onosproject.yangutils.datamodel.javadatamodel.JavaFileInfo;
import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
@@ -43,11 +42,12 @@
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.datamodel.javadatamodel.YangPluginConfig;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.BINARY;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.BITS;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_INTERFACE_MASK;
+import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.DEFAULT_CLASS_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_CLASS;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_LISTENER_INTERFACE;
@@ -55,10 +55,9 @@
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_TYPEDEF_CLASS;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_UNION_CLASS;
-import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.IMPL_CLASS_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.INTERFACE_MASK;
-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.ADD_TO_LIST_IMPL_MASK;
+import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ADD_TO_LIST_INTERFACE_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ATTRIBUTES_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_FOR_TYPE_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_IMPL_MASK;
@@ -73,8 +72,8 @@
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.GETTER_FOR_CLASS_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.GETTER_FOR_INTERFACE_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.HASH_CODE_IMPL_MASK;
+import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.LEAF_IDENTIFIER_ENUM_ATTRIBUTES_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.OF_STRING_IMPL_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.RPC_IMPL_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.RPC_INTERFACE_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_CLASS_MASK;
import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_INTERFACE_MASK;
@@ -82,19 +81,19 @@
import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData;
import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator.getQualifiedTypeInfoOfCurNode;
import static org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles.getCurNodeAsAttributeInTarget;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.addAugmentationAttribute;
import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getEnumsValueAttribute;
import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getEventEnumTypeStart;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getOperationAttributeForConstructor;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getOperationAttributes;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getOperationTypeAttr;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getOperationTypeEnum;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getOperationTypeForConstructor;
import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getDataFromTempFileHandle;
import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.initiateJavaFileGeneration;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.addActivateMethod;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.addDeActivateMethod;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.builderMethod;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAddAugmentInfoMethodImpl;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAugmentInfoImpl;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAugmentInfoMapImpl;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAugmentsDataMethodForManager;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAddAugmentInfoMethodInterface;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAugmentsDataMethodForService;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getBaseClassMethodImpl;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getConstructorStart;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEnumsConstructor;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEnumsOfMethod;
@@ -103,78 +102,62 @@
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getFromStringMethodClose;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getFromStringMethodSignature;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetter;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterForClass;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterForOperationType;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterString;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGettersForValueAndSelectLeaf;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethodClose;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethodOpen;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getInterfaceLeafIdEnumMethods;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getInterfaceLeafIdEnumSignature;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getIsFilterContentMatch;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOmitNullValueString;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOpParamConstructorStart;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOperationTypeSetter;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOperationTypegetter;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOperationAttributesGetters;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOverRideString;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForClass;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForLeaf;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForLeafList;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRangeValidatorMethodForUnion;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForOperationType;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForSelectLeaf;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterString;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringLeafListgetter;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringLeafgetter;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethodClose;
import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethodOpen;
-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.translator.tojava.utils.MethodsGenerator.getYangAugmentInfoImpl;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getYangAugmentInfoInterface;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getYangAugmentInfoMapImpl;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getYangAugmentInfoMapInterface;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.isFilterContentMatchInterface;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.isLeafValueSetInterface;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.isSelectLeafSetInterface;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.setSelectLeafSetInterface;
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;
import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS;
import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
-import static org.onosproject.yangutils.utils.UtilConstants.CREATE;
import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT;
-import static org.onosproject.yangutils.utils.UtilConstants.DELETE;
import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.ENCODE_TO_STRING;
-import static org.onosproject.yangutils.utils.UtilConstants.ENUM;
-import static org.onosproject.yangutils.utils.UtilConstants.EQUAL;
import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.EVENT_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.EVENT_SUBJECT_NAME_SUFFIX;
-import static org.onosproject.yangutils.utils.UtilConstants.FILTER_LEAF;
-import static org.onosproject.yangutils.utils.UtilConstants.FILTER_LEAF_LIST;
import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.GET_ENCODER;
-import static org.onosproject.yangutils.utils.UtilConstants.GET_FILTER_LEAF;
-import static org.onosproject.yangutils.utils.UtilConstants.GET_FILTER_LEAF_LIST;
import static org.onosproject.yangutils.utils.UtilConstants.IMPORT;
import static org.onosproject.yangutils.utils.UtilConstants.INT;
import static org.onosproject.yangutils.utils.UtilConstants.JAVA_UTIL_IMPORT_BASE64_CLASS;
import static org.onosproject.yangutils.utils.UtilConstants.JAVA_UTIL_OBJECTS_IMPORT_PKG;
-import static org.onosproject.yangutils.utils.UtilConstants.LOGGER_STATEMENT;
-import static org.onosproject.yangutils.utils.UtilConstants.MANAGER;
-import static org.onosproject.yangutils.utils.UtilConstants.MERGE;
-import static org.onosproject.yangutils.utils.UtilConstants.NEW;
import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
-import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
import static org.onosproject.yangutils.utils.UtilConstants.OPEN_CURLY_BRACKET;
import static org.onosproject.yangutils.utils.UtilConstants.OPEN_PARENTHESIS;
-import static org.onosproject.yangutils.utils.UtilConstants.OPERATION_ENUM;
-import static org.onosproject.yangutils.utils.UtilConstants.OP_PARAM_TYPE;
+import static org.onosproject.yangutils.utils.UtilConstants.OP_PARAM;
import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
import static org.onosproject.yangutils.utils.UtilConstants.PRIVATE;
import static org.onosproject.yangutils.utils.UtilConstants.PUBLIC;
-import static org.onosproject.yangutils.utils.UtilConstants.REMOVE;
-import static org.onosproject.yangutils.utils.UtilConstants.REPLACE;
import static org.onosproject.yangutils.utils.UtilConstants.RETURN;
-import static org.onosproject.yangutils.utils.UtilConstants.SELECT_LEAF;
-import static org.onosproject.yangutils.utils.UtilConstants.SELECT_LEAF_LIST;
import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
import static org.onosproject.yangutils.utils.UtilConstants.SERVICE_METHOD_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
-import static org.onosproject.yangutils.utils.UtilConstants.STATIC;
import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
-import static org.onosproject.yangutils.utils.UtilConstants.SUPER;
import static org.onosproject.yangutils.utils.UtilConstants.TO;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.TYPE_CONSTRUCTOR;
@@ -218,21 +201,63 @@
String className = getCapitalCase(javaFileInfo.getJavaName());
- initiateJavaFileGeneration(file, INTERFACE_MASK, imports, curNode, className);
+ boolean isLeavesPresent;
+ YangLeavesHolder leavesHolder;
+ if (curNode instanceof YangLeavesHolder) {
+ leavesHolder = (YangLeavesHolder) curNode;
+ isLeavesPresent = leavesHolder.getListOfLeaf() != null && !leavesHolder.getListOfLeaf().isEmpty()
+ || leavesHolder.getListOfLeafList() != null && !leavesHolder.getListOfLeafList().isEmpty();
+ } else {
+ isLeavesPresent = false;
+ }
+ initiateJavaFileGeneration(file, INTERFACE_MASK, imports, curNode, className);
+ List<String> methods = new ArrayList<>();
if (isAttrPresent) {
// Add getter methods to interface file.
try {
+ //Leaf identifier enum.
+ if (isLeavesPresent) {
+ insertDataIntoJavaFile(file, NEW_LINE + getInterfaceLeafIdEnumSignature(className) + NEW_LINE +
+ trimAtLast(trimAtLast(
+ getDataFromTempFileHandle(LEAF_IDENTIFIER_ENUM_ATTRIBUTES_MASK,
+ ((TempJavaCodeFragmentFilesContainer) curNode)
+ .getTempJavaCodeFragmentFiles()
+ .getBeanTempFiles(), path), COMMA), NEW_LINE) + SEMI_COLAN
+ + NEW_LINE + NEW_LINE + getInterfaceLeafIdEnumMethods());
+ }
+
//Getter methods.
insertDataIntoJavaFile(file, getDataFromTempFileHandle(GETTER_FOR_INTERFACE_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getBeanTempFiles(), path));
+ //Add to list method.
+ insertDataIntoJavaFile(file, getDataFromTempFileHandle(ADD_TO_LIST_INTERFACE_MASK,
+ ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
+ .getBeanTempFiles(), path));
} catch (IOException e) {
throw new IOException("No data found in temporary java code fragment files for " + className
+ " while interface file generation");
}
}
+
+ if (curNode instanceof YangAugmentableNode && !(curNode instanceof YangChoice)) {
+ methods.add(getAddAugmentInfoMethodInterface());
+ methods.add(getYangAugmentInfoInterface());
+ methods.add(getYangAugmentInfoMapInterface(javaFileInfo.getPluginConfig()));
+ }
+ if (!(curNode instanceof YangChoice)) {
+ methods.add(NEW_LINE + isFilterContentMatchInterface(className));
+ }
+ if (!(curNode instanceof YangChoice) && isLeavesPresent) {
+ methods.add(NEW_LINE + isLeafValueSetInterface());
+ methods.add(NEW_LINE + isSelectLeafSetInterface());
+ }
+ for (String method : methods) {
+ insertDataIntoJavaFile(file, method);
+ }
return validateLineLength(file);
+
}
/**
@@ -250,6 +275,16 @@
JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
YangPluginConfig pluginConfig = javaFileInfo.getPluginConfig();
+ boolean isLeavesPresent;
+ YangLeavesHolder leavesHolder;
+ if (curNode instanceof YangLeavesHolder) {
+ leavesHolder = (YangLeavesHolder) curNode;
+ isLeavesPresent = leavesHolder.getListOfLeaf() != null && !leavesHolder.getListOfLeaf().isEmpty()
+ || leavesHolder.getListOfLeafList() != null && !leavesHolder.getListOfLeafList().isEmpty();
+ } else {
+ isLeavesPresent = false;
+ }
+
String className = getCapitalCase(javaFileInfo.getJavaName());
String path;
if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
@@ -279,6 +314,9 @@
}
}
+ if (isLeavesPresent) {
+ methods.add(NEW_LINE + setSelectLeafSetInterface(className));
+ }
//Add build method to builder interface file.
methods.add(
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
@@ -303,16 +341,28 @@
* @return builder class file
* @throws IOException when fails to write in file
*/
+
public static File generateBuilderClassFile(File file, YangNode curNode,
boolean isAttrPresent) throws IOException {
JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
YangPluginConfig pluginConfig = javaFileInfo.getPluginConfig();
- String className = getCapitalCase(javaFileInfo.getJavaName());
+ boolean isLeavesPresent;
+ YangLeavesHolder leavesHolder;
+ if (curNode instanceof YangLeavesHolder) {
+ leavesHolder = (YangLeavesHolder) curNode;
+ isLeavesPresent = leavesHolder.getListOfLeaf() != null && !leavesHolder.getListOfLeaf().isEmpty()
+ || leavesHolder.getListOfLeafList() != null && !leavesHolder.getListOfLeafList().isEmpty();
+ } else {
+ isLeavesPresent = false;
+ }
+ String className = getCapitalCase(javaFileInfo.getJavaName());
+ boolean isRootNode = false;
String path;
if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
+ isRootNode = true;
path = javaFileInfo.getPluginConfig().getCodeGenDir() + javaFileInfo.getPackageFilePath();
} else {
path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
@@ -334,6 +384,10 @@
+ " while builder class file generation");
}
+ insertDataIntoJavaFile(file, getOperationTypeAttr());
+ if (isLeavesPresent) {
+ insertDataIntoJavaFile(file, getOperationAttributes());
+ }
try {
//Getter methods.
methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK,
@@ -345,6 +399,14 @@
.getBeanTempFiles(), path));
insertDataIntoJavaFile(file, NEW_LINE);
+
+ methods.add(getGetterForOperationType());
+ methods.add(getSetterForOperationType(className));
+ //Add operation attribute methods.
+ if (isLeavesPresent) {
+ methods.add(getOperationAttributesGetters() + NEW_LINE);
+ methods.add(getSetterForSelectLeaf(className, isRootNode));
+ }
} catch (IOException e) {
throw new IOException("No data found in temporary java code fragment files for " + className
+ " while builder class file generation");
@@ -355,191 +417,22 @@
// Add default constructor and build method impl.
methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
- .addBuildMethodImpl());
+ .addBuildMethodImpl(curNode));
methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
- .addDefaultConstructor(PUBLIC, BUILDER, pluginConfig));
+ .addDefaultConstructor(PUBLIC, BUILDER, pluginConfig, curNode));
//Add methods in builder class.
for (String method : methods) {
insertDataIntoJavaFile(file, method);
}
+
insertDataIntoJavaFile(file, CLOSE_CURLY_BRACKET);
return validateLineLength(file);
}
/**
- * Returns generated op param builder class file for current node.
- *
- * @param file file handle
- * @param curNode current YANG node
- * @param isAttrPresent if any attribute is present or not
- * @return builder class file
- * @throws IOException when fails to write in file
- */
- public static File generateOpParamBuilderClassFile(File file, YangNode curNode,
- boolean isAttrPresent) throws IOException {
-
- JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
- YangPluginConfig pluginConfig = javaFileInfo.getPluginConfig();
-
- String className = getCapitalCase(javaFileInfo.getJavaName());
-
- initiateJavaFileGeneration(file, OPERATION_BUILDER_CLASS_MASK, null, curNode, className);
- List<String> methods = new ArrayList<>();
-
- if (isAttrPresent) {
- //Add attribute strings.
- try {
- insertDataIntoJavaFile(file, FOUR_SPACE_INDENTATION + PRIVATE + SPACE +
- OPERATION_ENUM + SPACE + OP_PARAM_TYPE + SEMI_COLAN + NEW_LINE);
-
- } catch (IOException e) {
- throw new IOException("No data found in temporary java code fragment files for " + className
- + " while impl class file generation");
- }
-
- try {
- if (curNode instanceof YangLeavesHolder) {
- YangLeavesHolder leavesHolder = (YangLeavesHolder) curNode;
- List<YangLeaf> leaves = leavesHolder.getListOfLeaf();
- List<YangLeafList> listOfLeafList = leavesHolder.getListOfLeafList();
-
- if (leaves != null && !leaves.isEmpty()) {
- insertDataIntoJavaFile(file, FOUR_SPACE_INDENTATION + PRIVATE + SPACE +
- BITSET + SPACE + FILTER_LEAF + SPACE + EQUAL + SPACE +
- NEW + SPACE + BITSET + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN
- + NEW_LINE);
-
- insertDataIntoJavaFile(file, FOUR_SPACE_INDENTATION + PRIVATE + SPACE +
- BITSET + SPACE + SELECT_LEAF + SPACE + EQUAL + SPACE +
- NEW + SPACE + BITSET + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
- + SEMI_COLAN + NEW_LINE);
- }
-
- if (listOfLeafList != null && !listOfLeafList.isEmpty()) {
- insertDataIntoJavaFile(file, FOUR_SPACE_INDENTATION + PRIVATE + SPACE +
- BITSET + SPACE + FILTER_LEAF_LIST + SPACE + EQUAL + SPACE +
- NEW + SPACE + BITSET + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
- + SEMI_COLAN + NEW_LINE);
-
- insertDataIntoJavaFile(file, FOUR_SPACE_INDENTATION + PRIVATE + SPACE +
- BITSET + SPACE + SELECT_LEAF_LIST + SPACE + EQUAL + SPACE +
- NEW + SPACE + BITSET + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
- + SEMI_COLAN + NEW_LINE);
- }
- }
-
- } catch (IOException e) {
- throw new IOException("No data found in temporary java code fragment files for " + className
- + " while impl class file generation");
- }
-
- try {
- // Setter methods.
- methods.add(getSetterForLeaf(className, curNode, pluginConfig));
- methods.add(getSetterForLeafList(className, curNode, pluginConfig));
-
- if (curNode instanceof YangLeavesHolder) {
- YangLeavesHolder leavesHolder = (YangLeavesHolder) curNode;
- List<YangLeaf> leaves = leavesHolder.getListOfLeaf();
- List<YangLeafList> listOfLeafList = leavesHolder.getListOfLeafList();
-
- if (leaves != null && !leaves.isEmpty()) {
- methods.add(getToStringLeafgetter());
- methods.add(getToStringSelectLeafgetter());
- }
-
- if (listOfLeafList != null && !listOfLeafList.isEmpty()) {
- methods.add(getToStringLeafListgetter());
- methods.add(getToStringSelectLeafListgetter());
- }
- }
-
- methods.add(getOperationTypegetter());
- methods.add(getOperationTypeSetter());
- insertDataIntoJavaFile(file, NEW_LINE);
- } catch (IOException e) {
- throw new IOException("No data found in temporary java code fragment files for " + className
- + " while builder class file generation");
- }
- } else {
- insertDataIntoJavaFile(file, NEW_LINE);
- }
-
- // Add methods in builder class.
- for (String method : methods) {
- insertDataIntoJavaFile(file, method);
- }
- insertDataIntoJavaFile(file, CLOSE_CURLY_BRACKET);
- return validateLineLength(file);
- }
-
-
- /**
- * Returns generated manager class file for current node.
- *
- * @param file file
- * @param imports imports for the file
- * @param curNode current YANG node
- * @return builder class file
- * @throws IOException when fails to write in file
- */
- public static File generateManagerClassFile(File file, List<String> imports, YangNode curNode)
- throws IOException {
-
- JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
-
- String className = getCapitalCase(javaFileInfo.getJavaName()) + MANAGER;
- String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
-
- initiateJavaFileGeneration(file, GENERATE_SERVICE_AND_MANAGER, imports, curNode, className);
-
- List<String> methods = new ArrayList<>();
-
- insertDataIntoJavaFile(file, LOGGER_STATEMENT);
- methods.add(addActivateMethod());
- methods.add(addDeActivateMethod());
-
- TempJavaServiceFragmentFiles tempJavaServiceFragmentFiles = ((JavaCodeGeneratorInfo) curNode)
- .getTempJavaCodeFragmentFiles().getServiceTempFiles();
-
- JavaAttributeInfo rootAttribute = getCurNodeAsAttributeInTarget(curNode, curNode, false,
- tempJavaServiceFragmentFiles);
- try {
- //Getter methods.
- methods.add(getOverRideString() +
- getGetterForClass(rootAttribute, GENERATE_SERVICE_AND_MANAGER) + NEW_LINE);
- // Setter methods.
- methods.add(getOverRideString() +
- getSetterForClass(rootAttribute, className, GENERATE_SERVICE_AND_MANAGER)
- + NEW_LINE);
-
- methods.add(getAugmentsDataMethodForManager(curNode) + NEW_LINE);
-
- if (((JavaCodeGeneratorInfo) curNode).getTempJavaCodeFragmentFiles().getServiceTempFiles() != null) {
- JavaCodeGeneratorInfo javaGenInfo = (JavaCodeGeneratorInfo) curNode;
-
- //Rpc methods
- methods.add(getDataFromTempFileHandle(RPC_IMPL_MASK,
- javaGenInfo.getTempJavaCodeFragmentFiles().getServiceTempFiles(), path));
- }
- insertDataIntoJavaFile(file, NEW_LINE);
-
- } catch (IOException e) {
- throw new IOException("No data found in temporary java code fragment files for " + className
- + " while manager class file generation");
- }
-
- // Add methods in builder class.
- for (String method : methods) {
- insertDataIntoJavaFile(file, method);
- }
- return validateLineLength(file);
- }
-
- /**
- * Returns generated impl class file for current node.
+ * Returns generated default class file for current node.
*
* @param file file
* @param curNode current YANG node
@@ -548,25 +441,41 @@
* @return impl class file
* @throws IOException when fails to write in file
*/
- public static File generateImplClassFile(File file, YangNode curNode, boolean isAttrPresent, List<String> imports)
+ public static File generateDefaultClassFile(File file, YangNode curNode, boolean isAttrPresent,
+ List<String> imports)
throws IOException {
JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
YangPluginConfig pluginConfig = javaFileInfo.getPluginConfig();
+ boolean isLeavesPresent;
+ YangLeavesHolder leavesHolder;
+ if (curNode instanceof YangLeavesHolder) {
+ leavesHolder = (YangLeavesHolder) curNode;
+ isLeavesPresent = leavesHolder.getListOfLeaf() != null && !leavesHolder.getListOfLeaf().isEmpty()
+ || leavesHolder.getListOfLeafList() != null && !leavesHolder.getListOfLeafList().isEmpty();
+ } else {
+ isLeavesPresent = false;
+ }
+
+ boolean isRootNode = false;
+
String className = getCapitalCase(javaFileInfo.getJavaName());
+ String opParamClassName = className;
String path;
if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
+ opParamClassName = className + OP_PARAM;
+ isRootNode = true;
path = javaFileInfo.getPluginConfig().getCodeGenDir() + javaFileInfo.getPackageFilePath();
} else {
path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
}
- initiateJavaFileGeneration(file, IMPL_CLASS_MASK, imports, curNode, className);
+ initiateJavaFileGeneration(file, DEFAULT_CLASS_MASK, imports, curNode, className);
List<String> methods = new ArrayList<>();
if (curNode instanceof YangAugmentableNode) {
- insertDataIntoJavaFile(file, addAugmentationAttribute());
+ insertDataIntoJavaFile(file, JavaCodeSnippetGen.addAugmentationAttribute());
}
if (isAttrPresent) {
@@ -581,12 +490,23 @@
+ " while impl class file generation");
}
+ //Add operation attributes
+ insertDataIntoJavaFile(file, getOperationTypeEnum());
+ insertDataIntoJavaFile(file, getOperationTypeAttr());
+ if (isLeavesPresent) {
+ insertDataIntoJavaFile(file, getOperationAttributes());
+ }
+
try {
//Getter methods.
methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getBeanTempFiles(), path));
+ //Add to list impl method.
+ methods.add(getDataFromTempFileHandle(ADD_TO_LIST_IMPL_MASK,
+ ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
+ .getBeanTempFiles(), path));
// Hash code method.
methods.add(getHashCodeMethodClose(getHashCodeMethodOpen() +
@@ -595,11 +515,17 @@
.getBeanTempFiles(), path).replace(NEW_LINE, EMPTY_STRING)));
//Equals method.
- methods.add(getEqualsMethodClose(getEqualsMethodOpen(getCapitalCase(DEFAULT) + className)
- + getDataFromTempFileHandle(EQUALS_IMPL_MASK,
- ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
- .getBeanTempFiles(), path)));
-
+ if (isRootNode) {
+ methods.add(getEqualsMethodClose(getEqualsMethodOpen(opParamClassName)
+ + getDataFromTempFileHandle(EQUALS_IMPL_MASK,
+ ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
+ .getBeanTempFiles(), path)));
+ } else {
+ methods.add(getEqualsMethodClose(getEqualsMethodOpen(getCapitalCase(DEFAULT) + className)
+ + getDataFromTempFileHandle(EQUALS_IMPL_MASK,
+ ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
+ .getBeanTempFiles(), path)));
+ }
// To string method.
methods.add(getToStringMethodOpen() + getDataFromTempFileHandle(TO_STRING_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
@@ -613,26 +539,40 @@
} else {
insertDataIntoJavaFile(file, NEW_LINE);
}
- try {
+ if (curNode instanceof YangAugmentableNode) {
+ methods.add(getAddAugmentInfoMethodImpl());
+ methods.add(getYangAugmentInfoImpl());
+ methods.add(getYangAugmentInfoMapImpl());
+ }
+ try {
//Constructor.
- String constructor = getConstructorStart(className, pluginConfig);
+ String constructor = getConstructorStart(className, pluginConfig, isRootNode);
constructor = constructor + getDataFromTempFileHandle(CONSTRUCTOR_IMPL_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
.getBeanTempFiles(), path);
- methods.add(constructor + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET);
+ if (isAttrPresent) {
+ constructor = constructor + getOperationTypeForConstructor();
+ }
+ if (isLeavesPresent) {
+ constructor = constructor + getOperationAttributeForConstructor();
+ }
+ methods.add(constructor + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE);
} catch (IOException e) {
throw new IOException("No data found in temporary java code fragment files for " + className
+ " while impl class file generation");
}
- if (curNode instanceof YangAugmentableNode) {
- methods.add(getAddAugmentInfoMethodImpl());
- methods.add(getAugmentInfoImpl());
- methods.add(getAugmentInfoMapImpl(javaFileInfo.getPluginConfig()));
- }
+ methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
+ .addDefaultConstructor(PUBLIC, DEFAULT, pluginConfig, curNode));
+ methods.add(builderMethod(className));
+ methods.add(getIsFilterContentMatch(curNode, pluginConfig));
+ if (isLeavesPresent) {
+ methods.add(getOperationAttributesGetters());
+ methods.add(getGettersForValueAndSelectLeaf());
+ }
// Add methods in impl class.
for (String method : methods) {
insertDataIntoJavaFile(file, method);
@@ -642,161 +582,6 @@
}
/**
- * Returns generated op param class file for current node.
- *
- * @param file file handle
- * @param curNode current YANG node
- * @param isAttrPresent if any attribute is present or not
- * @param imports import list
- * @return returns generated op param class file for current node
- * @throws IOException when fails to write in file
- */
- public static File generateOpParamImplClassFile(File file, YangNode curNode,
- boolean isAttrPresent, List<String> imports)
- throws IOException {
-
- JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
- YangPluginConfig pluginConfig = javaFileInfo.getPluginConfig();
-
- String className = getCapitalCase(javaFileInfo.getJavaName());
-
- initiateJavaFileGeneration(file, OPERATION_CLASS_MASK, imports, curNode, className);
-
- List<String> methods = new ArrayList<>();
-
- if (isAttrPresent) {
-
- // Add attribute strings.
- try {
- insertDataIntoJavaFile(file, FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC +
- SPACE + ENUM + SPACE + OPERATION_ENUM + SPACE + OPEN_CURLY_BRACKET +
- NEW_LINE + EIGHT_SPACE_INDENTATION + MERGE +
- NEW_LINE + EIGHT_SPACE_INDENTATION + REPLACE +
- NEW_LINE + EIGHT_SPACE_INDENTATION + CREATE +
- NEW_LINE + EIGHT_SPACE_INDENTATION + DELETE +
- NEW_LINE + EIGHT_SPACE_INDENTATION + REMOVE +
- NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE);
-
- } catch (IOException e) {
- throw new IOException("No data found in temporary java code fragment files for " + className
- + " while impl class file generation");
- }
-
-
- // Add attribute strings.
- try {
- insertDataIntoJavaFile(file, FOUR_SPACE_INDENTATION + PRIVATE + SPACE +
- OPERATION_ENUM + SPACE + OP_PARAM_TYPE + SEMI_COLAN + NEW_LINE);
-
- } catch (IOException e) {
- throw new IOException("No data found in temporary java code fragment files for " + className
- + " while impl class file generation");
- }
-
- try {
- if (curNode instanceof YangLeavesHolder) {
- YangLeavesHolder leavesHolder = (YangLeavesHolder) curNode;
- List<YangLeaf> leaves = leavesHolder.getListOfLeaf();
- List<YangLeafList> listOfLeafList = leavesHolder.getListOfLeafList();
-
- if (leaves != null && !leaves.isEmpty()) {
- insertDataIntoJavaFile(file, FOUR_SPACE_INDENTATION + PRIVATE + SPACE +
- BITSET + SPACE + FILTER_LEAF + SPACE + EQUAL + SPACE +
- NEW + SPACE + BITSET + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
- + SEMI_COLAN + NEW_LINE);
-
- insertDataIntoJavaFile(file, FOUR_SPACE_INDENTATION + PRIVATE + SPACE +
- BITSET + SPACE + SELECT_LEAF + SPACE + EQUAL + SPACE +
- NEW + SPACE + BITSET + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
- + SEMI_COLAN + NEW_LINE);
- }
-
- if (listOfLeafList != null && !listOfLeafList.isEmpty()) {
- insertDataIntoJavaFile(file, FOUR_SPACE_INDENTATION + PRIVATE + SPACE +
- BITSET + SPACE + FILTER_LEAF_LIST + SPACE + EQUAL + SPACE +
- NEW + SPACE + BITSET + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
- + SEMI_COLAN + NEW_LINE);
-
- insertDataIntoJavaFile(file, FOUR_SPACE_INDENTATION + PRIVATE + SPACE +
- BITSET + SPACE + SELECT_LEAF_LIST + SPACE + EQUAL + SPACE +
- NEW + SPACE + BITSET + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
- + SEMI_COLAN + NEW_LINE);
- }
- }
-
- } catch (IOException e) {
- throw new IOException("No data found in temporary java code fragment files for " + className
- + " while impl class file generation");
- }
-
- if (curNode instanceof YangLeavesHolder) {
- YangLeavesHolder leavesHolder = (YangLeavesHolder) curNode;
- List<YangLeaf> leaves = leavesHolder.getListOfLeaf();
- List<YangLeafList> listOfLeafList = leavesHolder.getListOfLeafList();
-
- if (leaves != null && !leaves.isEmpty()) {
- methods.add(getToStringLeafgetter());
- methods.add(getToStringSelectLeafgetter());
- }
-
- if (listOfLeafList != null && !listOfLeafList.isEmpty()) {
- methods.add(getToStringLeafListgetter());
- methods.add(getToStringSelectLeafListgetter());
- }
- }
-
- methods.add(getOperationTypegetter());
- methods.add(getIsFilterContentMatch(className, curNode, pluginConfig));
-
- } else {
- insertDataIntoJavaFile(file, NEW_LINE);
- }
- String constructor = getOpParamConstructorStart(className, pluginConfig);
-
- constructor = constructor + EIGHT_SPACE_INDENTATION + SUPER + OPEN_PARENTHESIS
- + BUILDER.toLowerCase() + OBJECT
- + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
-
- if (curNode instanceof YangLeavesHolder) {
- YangLeavesHolder leavesHolder = (YangLeavesHolder) curNode;
- List<YangLeaf> leaves = leavesHolder.getListOfLeaf();
- List<YangLeafList> listOfLeafList = leavesHolder.getListOfLeafList();
- String filterLeaf = "";
- String filterLeafList = "";
-
- if (leaves != null && !leaves.isEmpty()) {
- filterLeaf = EIGHT_SPACE_INDENTATION + FILTER_LEAF + SPACE + EQUAL + SPACE
- + BUILDER.toLowerCase() + OBJECT + PERIOD + GET_FILTER_LEAF + OPEN_PARENTHESIS
- + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
- }
-
- if (listOfLeafList != null && !listOfLeafList.isEmpty()) {
- filterLeafList = EIGHT_SPACE_INDENTATION + FILTER_LEAF_LIST + SPACE + EQUAL + SPACE
- + BUILDER.toLowerCase() + OBJECT + PERIOD + GET_FILTER_LEAF_LIST + OPEN_PARENTHESIS
- + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
- }
-
- constructor = constructor + filterLeaf + filterLeafList;
- }
-
- methods.add(constructor + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET);
-
- if (curNode instanceof YangAugment) {
- String clsName = getCapitalCase(DEFAULT) +
- getCapitalCase(YangJavaModelUtils.getAugmentClassName((YangAugment) curNode, pluginConfig));
- methods.add(getBaseClassMethodImpl(clsName));
- }
-
- // Add methods in impl class.
- for (String method : methods) {
- insertDataIntoJavaFile(file, method);
- }
-
-
- return validateLineLength(file);
- }
-
- /**
* Generates class file for type def.
*
* @param file generated file
@@ -818,7 +603,7 @@
List<YangType<?>> types = typeDef.getTypeList();
YangType type = types.get(0);
YangDataTypes yangDataTypes = type.getDataType();
- if (type.getDataType().equals(YangDataTypes.BINARY)) {
+ if (type.getDataType().equals(BINARY)) {
imports.add(IMPORT + JAVA_UTIL_OBJECTS_IMPORT_PKG + PERIOD + JAVA_UTIL_IMPORT_BASE64_CLASS);
}
@@ -841,11 +626,10 @@
//Default constructor.
methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
- .addDefaultConstructor(PRIVATE, EMPTY_STRING, pluginConfig));
+ .addDefaultConstructor(PRIVATE, EMPTY_STRING, pluginConfig, curNode));
try {
-
//Type constructor.
methods.add(getDataFromTempFileHandle(CONSTRUCTOR_FOR_TYPE_MASK,
((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles(),
@@ -879,27 +663,27 @@
//To string method.
- if (type.getDataType().equals(YangDataTypes.BINARY)) {
+ if (type.getDataType().equals(BINARY)) {
JavaQualifiedTypeInfoTranslator 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
+ String bitsToStringMethod = getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC
+ SPACE + STRING_DATA_TYPE + SPACE + TO + STRING_DATA_TYPE + OPEN_PARENTHESIS
+ CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION
+ RETURN + SPACE + BASE64 + PERIOD + GET_ENCODER + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
+ PERIOD + ENCODE_TO_STRING + OPEN_PARENTHESIS + attributeName + CLOSE_PARENTHESIS
+ SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
methods.add(bitsToStringMethod);
- } else if (type.getDataType().equals(YangDataTypes.BITS)) {
+ } else if (type.getDataType().equals(BITS)) {
JavaQualifiedTypeInfoTranslator 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
+ String bitsToStringMethod = getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC
+ SPACE + STRING_DATA_TYPE + SPACE + TO + STRING_DATA_TYPE + OPEN_PARENTHESIS
+ CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION
+ RETURN + SPACE + attributeName + PERIOD + TO + STRING_DATA_TYPE + OPEN_PARENTHESIS
@@ -914,6 +698,7 @@
JavaCodeGeneratorInfo javaGenInfo = (JavaCodeGeneratorInfo) curNode;
+ //From string method.
if ((type.getDataType().equals(YangDataTypes.DERIVED))
&& (((YangDerivedInfo) type.getDataTypeExtendedInfo()).getEffectiveBuiltInType()
.equals(YangDataTypes.IDENTITYREF))) {
@@ -925,14 +710,10 @@
}
if (!yangDataTypes.equals(YangDataTypes.IDENTITYREF)) {
-
-
- //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());
+ + getFromStringMethodClose());
}
} catch (IOException e) {
@@ -1022,7 +803,7 @@
//Default constructor.
methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
- .addDefaultConstructor(PRIVATE, EMPTY_STRING, pluginConfig));
+ .addDefaultConstructor(PRIVATE, EMPTY_STRING, pluginConfig, curNode));
try {
@@ -1074,10 +855,10 @@
+ getFromStringMethodClose());
if (isIntConflict) {
- methods.add(MethodsGenerator.getRangeValidatorMethodForUnion(INT));
+ methods.add(getRangeValidatorMethodForUnion(INT));
}
if (isLongConflict) {
- methods.add(MethodsGenerator.getRangeValidatorMethodForUnion(BIG_INTEGER));
+ methods.add(getRangeValidatorMethodForUnion(BIG_INTEGER));
}
} catch (IOException e) {