[ONOS-5058][ONOS-4796][ONOS-4893]compiler annotation implementation + defect fix

Change-Id: Ie317409d9ab1d36e626433558b2d51f26daaac82
diff --git a/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java b/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
index d71d882..31e454f 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
@@ -65,8 +65,10 @@
 import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC;
 import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC_OF_CHILD;
 import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
+import static org.onosproject.yangutils.utils.UtilConstants.QUEUE;
 import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.RPC_OUTPUT_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.SET;
 import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
 import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
 import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
@@ -93,9 +95,11 @@
      * @param name         name of the YangNode
      * @param isList       is list attribute
      * @param pluginConfig plugin configurations
-     * @return javaDocs.
+     * @param compilerAnnotation compiler annotations for user defined data type
+     * @return javadocs.
      */
-    public static String getJavaDoc(JavaDocType type, String name, boolean isList, YangPluginConfig pluginConfig) {
+    public static String getJavaDoc(JavaDocType type, String name, boolean isList, YangPluginConfig pluginConfig,
+            String compilerAnnotation) {
 
         name = YangIoUtils.getSmallCase(getCamelCase(name, pluginConfig.getConflictResolver()));
         switch (type) {
@@ -121,16 +125,16 @@
                 return generateForPackage(name, isList);
             }
             case GETTER_METHOD: {
-                return generateForGetters(name, isList);
+                return generateForGetters(name, isList, compilerAnnotation);
             }
             case TYPE_DEF_SETTER_METHOD: {
                 return generateForTypeDefSetter(name);
             }
             case SETTER_METHOD: {
-                return generateForSetters(name, isList);
+                return generateForSetters(name, isList, compilerAnnotation);
             }
             case MANAGER_SETTER_METHOD: {
-                return generateForManagerSetters(name, isList);
+                return generateForManagerSetters(name, isList, compilerAnnotation);
             }
             case OF_METHOD: {
                 return generateForOf(name);
@@ -277,16 +281,39 @@
      *
      * @param attribute attribute
      * @param isList    is list attribute
+     * @param compilerAnnotation compiler annotation
      * @return javaDocs
      */
-    private static String generateForGetters(String attribute, boolean isList) {
+    private static String generateForGetters(String attribute, boolean isList,
+            String compilerAnnotation) {
 
         String getter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
                 + JAVA_DOC_GETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
                 + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN;
         if (isList) {
-            String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
-            getter = getter + listAttribute;
+            String attrParam;
+            if (compilerAnnotation != null) {
+                switch (compilerAnnotation) {
+                    case QUEUE: {
+                        attrParam = QUEUE.toLowerCase() + SPACE + OF + SPACE;
+                        break;
+                    }
+                    case SET: {
+                        attrParam = SET.toLowerCase() + SPACE + OF + SPACE;
+                        break;
+                    }
+                    case LIST: {
+                        attrParam = LIST.toLowerCase() + SPACE + OF + SPACE;
+                        break;
+                    }
+                    default: {
+                        attrParam = LIST.toLowerCase() + SPACE + OF + SPACE;
+                    }
+                }
+            } else {
+                attrParam = LIST.toLowerCase() + SPACE + OF + SPACE;
+            }
+            getter = getter + attrParam;
         } else {
             getter = getter + VALUE + SPACE + OF + SPACE;
         }
@@ -300,16 +327,41 @@
      *
      * @param attribute attribute
      * @param isList    is list attribute
+     * @param compilerAnnotation compiler annotation
      * @return javaDocs
      */
-    private static String generateForSetters(String attribute, boolean isList) {
+    private static String generateForSetters(String attribute, boolean isList,
+            String compilerAnnotation) {
 
         String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
                 + JAVA_DOC_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
                 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
-        if (isList) {
-            String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
-            setter = setter + listAttribute;
+
+        String attributeParam;
+        if (compilerAnnotation != null) {
+            switch (compilerAnnotation) {
+                case QUEUE: {
+                    attributeParam = QUEUE.toLowerCase() + SPACE + OF + SPACE;
+                    setter = setter + attributeParam;
+                    break;
+                }
+                case SET: {
+                    attributeParam = SET.toLowerCase() + SPACE + OF + SPACE;
+                    setter = setter + attributeParam;
+                    break;
+                }
+                case LIST: {
+                    attributeParam = LIST.toLowerCase() + SPACE + OF + SPACE;
+                    setter = setter + attributeParam;
+                    break;
+                }
+                default: {
+
+                }
+            }
+        } else if (isList) {
+            attributeParam = LIST.toLowerCase() + SPACE + OF + SPACE;
+            setter = setter + attributeParam;
         } else {
             setter = setter + VALUE + SPACE + OF + SPACE;
         }
@@ -324,16 +376,41 @@
      *
      * @param attribute attribute
      * @param isList    is list attribute
+     * @param compilerAnnotation compiler annotation
      * @return javaDocs
      */
-    private static String generateForManagerSetters(String attribute, boolean isList) {
+    private static String generateForManagerSetters(String attribute, boolean isList,
+            String compilerAnnotation) {
 
         String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
                 + JAVA_DOC_MANAGER_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ASTERISK
                 + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
-        if (isList) {
-            String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
-            setter = setter + listAttribute;
+
+        String attributeParam;
+        if (compilerAnnotation != null) {
+            switch (compilerAnnotation) {
+                case QUEUE: {
+                    attributeParam = QUEUE.toLowerCase() + SPACE + OF + SPACE;
+                    setter = setter + attributeParam;
+                    break;
+                }
+                case SET: {
+                    attributeParam = SET.toLowerCase() + SPACE + OF + SPACE;
+                    setter = setter + attributeParam;
+                    break;
+                }
+                case LIST: {
+                    attributeParam = LIST.toLowerCase() + SPACE + OF + SPACE;
+                    setter = setter + attributeParam;
+                    break;
+                }
+                default: {
+
+                }
+            }
+        } else if (isList) {
+            attributeParam = LIST.toLowerCase() + SPACE + OF + SPACE;
+            setter = setter + attributeParam;
         } else {
             setter = setter + VALUE + SPACE + OF + SPACE;
         }