[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;
}
diff --git a/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java b/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
index 5901f25..1c1de71 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
@@ -130,7 +130,8 @@
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(getCopyrightHeader());
- bufferedWriter.write(getJavaDoc(PACKAGE_INFO, classInfo, isChildNode, pluginConfig));
+ //TODO: get the compiler annotations and pass the info
+ bufferedWriter.write(getJavaDoc(PACKAGE_INFO, classInfo, isChildNode, pluginConfig, null));
String pkg = PACKAGE + SPACE + pack + SEMI_COLAN;
if (pkg.length() > LINE_SIZE) {
pkg = whenDelimiterIsPresent(pkg, LINE_SIZE);