[ONOS-5232] bits enum class generation modifications and code refactoring.
Change-Id: I67fb31c586802e9cf682aa6e707475ad8fdc096f
diff --git a/generator/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java b/generator/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
index 77bf0f2..5fc99c0 100644
--- a/generator/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
+++ b/generator/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
@@ -16,13 +16,13 @@
package org.onosproject.yangutils.translator.tojava.utils;
+import org.onosproject.yangutils.datamodel.InvalidOpTypeHolder;
import org.onosproject.yangutils.datamodel.YangAtomicPath;
import org.onosproject.yangutils.datamodel.YangCompilerAnnotation;
import org.onosproject.yangutils.datamodel.YangEnum;
import org.onosproject.yangutils.datamodel.YangEnumeration;
import org.onosproject.yangutils.datamodel.YangLeafRef;
import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.datamodel.YangNotification;
import org.onosproject.yangutils.datamodel.YangType;
import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes;
import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo;
@@ -37,7 +37,6 @@
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_UNION_CLASS;
import static org.onosproject.yangutils.translator.tojava.utils.BracketType.OPEN_CLOSE_BRACKET;
-import static org.onosproject.yangutils.translator.tojava.utils.BracketType.OPEN_CLOSE_BRACKET_WITH_VALUE;
import static org.onosproject.yangutils.translator.tojava.utils.IndentationType.EIGHT_SPACE;
import static org.onosproject.yangutils.translator.tojava.utils.IndentationType.FOUR_SPACE;
import static org.onosproject.yangutils.translator.tojava.utils.IndentationType.TWELVE_SPACE;
@@ -60,11 +59,13 @@
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getForLoopString;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getGreaterThanCondition;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getIfConditionBegin;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getLeafFlagSetString;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getLesserThanCondition;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getListAttribute;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getNewInstance;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getNewLineAndSpace;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getOmitNullValueString;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getOpenCloseParaWithValue;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getOverRideString;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getParseFromStringMethod;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getPatternQuoteString;
@@ -75,7 +76,6 @@
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getStringBuilderAttr;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getToStringCall;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getTrySubString;
-import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getValueLeafSetString;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.ifAndAndCondition;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.ifConditionForIntInTypeDefConstructor;
import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.ifEqualEqualCondition;
@@ -99,6 +99,7 @@
import static org.onosproject.yangutils.utils.UtilConstants.BUILD;
import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_LOWER_CASE;
+import static org.onosproject.yangutils.utils.UtilConstants.BUILD_FOR_FILTER;
import static org.onosproject.yangutils.utils.UtilConstants.CASE;
import static org.onosproject.yangutils.utils.UtilConstants.CLASS;
import static org.onosproject.yangutils.utils.UtilConstants.CLASS_STRING;
@@ -176,6 +177,7 @@
import static org.onosproject.yangutils.utils.UtilConstants.STATIC;
import static org.onosproject.yangutils.utils.UtilConstants.STRING_BUILDER_VAR;
import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
+import static org.onosproject.yangutils.utils.UtilConstants.SUBTREE_FILTERED;
import static org.onosproject.yangutils.utils.UtilConstants.SUFFIX_S;
import static org.onosproject.yangutils.utils.UtilConstants.SWITCH;
import static org.onosproject.yangutils.utils.UtilConstants.THIS;
@@ -187,6 +189,7 @@
import static org.onosproject.yangutils.utils.UtilConstants.TWELVE_SPACE_INDENTATION;
import static org.onosproject.yangutils.utils.UtilConstants.VALIDATE_RANGE;
import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
+import static org.onosproject.yangutils.utils.UtilConstants.VALUE_LEAF;
import static org.onosproject.yangutils.utils.UtilConstants.VALUE_LEAF_SET;
import static org.onosproject.yangutils.utils.UtilConstants.VOID;
import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO;
@@ -469,7 +472,8 @@
PUBLIC, name, getCapitalCase(className) +
BUILDER, type, CLASS_TYPE));
if (!isTypeNull && !isList) {
- builder.append(getValueLeafSetString(name));
+ builder.append(getLeafFlagSetString(name, VALUE_LEAF, EIGHT_SPACE_INDENTATION,
+ SET_METHOD_PREFIX)).append(signatureClose());
} else {
builder.append(EMPTY_STRING);
}
@@ -681,7 +685,10 @@
*/
public static String getRpcServiceMethod(String rpcName, String input,
String output) {
- String inputVal = input == null ? null : RPC_INPUT_VAR_NAME;
+ String inputVal = null;
+ if (input != null) {
+ inputVal = RPC_INPUT_VAR_NAME;
+ }
return methodSignature(rpcName, EMPTY_STRING, null,
inputVal, output, input, INTERFACE_TYPE) +
NEW_LINE;
@@ -790,15 +797,14 @@
* @param attr attribute info
* @param fromAttr attribute info for the from string wrapper
* type
- * @param name class name
* @return from string method's body string
*/
public static String getFromStringMethod(JavaAttributeInfo attr,
- JavaAttributeInfo fromAttr, String name) {
+ JavaAttributeInfo fromAttr) {
return EIGHT_SPACE_INDENTATION + getTrySubString() +
getNewLineAndSpace(TWELVE_SPACE_INDENTATION) +
- getParsedSubString(attr, fromAttr, name) +
+ getParsedSubString(attr, fromAttr) +
getReturnOfSubString() + EIGHT_SPACE_INDENTATION +
getCatchSubString() +
getNewLineAndSpace(EIGHT_SPACE_INDENTATION) +
@@ -809,11 +815,10 @@
* Returns sub string with parsed statement for union's from string method.
*
* @param attr attribute info
- * @param name class name
* @return sub string with parsed statement for union's from string method
*/
private static String getParsedSubString(JavaAttributeInfo attr,
- JavaAttributeInfo fromStringAttr, String name) {
+ JavaAttributeInfo fromStringAttr) {
String targetDataType = getReturnType(attr);
YangDataTypes types = fromStringAttr.getAttributeType()
@@ -822,10 +827,10 @@
switch (types) {
case BITS:
return targetDataType + SPACE + TMP_VAL + SPACE + EQUAL +
- SPACE + getCapitalCase(name) + getCapitalCase(attr.getAttributeName()) +
+ SPACE + getCapitalCase(attr.getAttributeName()) +
PERIOD + FROM_STRING_METHOD_NAME +
- brackets(OPEN_CLOSE_BRACKET_WITH_VALUE,
- FROM_STRING_PARAM_NAME, null) + signatureClose();
+ getOpenCloseParaWithValue(FROM_STRING_PARAM_NAME) +
+ signatureClose();
case BINARY:
return method.append(targetDataType).append(SPACE).append(TMP_VAL)
.append(SPACE).append(EQUAL).append(SPACE).append(
@@ -835,8 +840,8 @@
return targetDataType + SPACE + TMP_VAL + SPACE + EQUAL +
SPACE + getParseFromStringMethod(
targetDataType, fromStringAttr.getAttributeType()) +
- brackets(OPEN_CLOSE_BRACKET_WITH_VALUE,
- FROM_STRING_PARAM_NAME, null) + signatureClose();
+ getOpenCloseParaWithValue(FROM_STRING_PARAM_NAME) +
+ signatureClose();
}
}
@@ -850,8 +855,7 @@
StringBuilder builder = new StringBuilder();
return builder.append(BASE64).append(PERIOD)
.append(GET_DECODER).append(OPEN_CLOSE_BRACKET_STRING).append(PERIOD)
- .append(DECODE).append(brackets(OPEN_CLOSE_BRACKET_WITH_VALUE,
- var, null)).toString();
+ .append(DECODE).append(getOpenCloseParaWithValue(var)).toString();
}
/**
@@ -865,8 +869,7 @@
return builder.append(BASE64).append(PERIOD)
.append(GET_ENCODER).append(OPEN_CLOSE_BRACKET_STRING)
.append(PERIOD).append(ENCODE_TO_STRING)
- .append(brackets(OPEN_CLOSE_BRACKET_WITH_VALUE, var, null))
- .toString();
+ .append(getOpenCloseParaWithValue(var)).toString();
}
/**
@@ -1099,8 +1102,8 @@
if (genType == GENERATE_UNION_CLASS) {
builder.append(EIGHT_SPACE_INDENTATION).append(SET_VALUE_PARA)
.append(PERIOD).append(SET_METHOD_PREFIX).append(
- brackets(OPEN_CLOSE_BRACKET_WITH_VALUE, count + EMPTY_STRING,
- null)).append(signatureClose());
+ getOpenCloseParaWithValue(count + EMPTY_STRING))
+ .append(signatureClose());
}
builder.append(methodBody(SETTER, name, null, EIGHT_SPACE_INDENTATION,
EMPTY_STRING, null, false, null))
@@ -1125,8 +1128,8 @@
null, type, CLASS_TYPE))
.append(EIGHT_SPACE_INDENTATION).append(SET_VALUE_PARA)
.append(PERIOD).append(SET_METHOD_PREFIX).append(
- brackets(OPEN_CLOSE_BRACKET_WITH_VALUE, count + EMPTY_STRING,
- null)).append(signatureClose())
+ getOpenCloseParaWithValue(count + EMPTY_STRING))
+ .append(signatureClose())
.append(ifConditionForIntInTypeDefConstructor(validatorType,
addInt, attr1))
.append(methodBody(SETTER, attr1, null,
@@ -1252,8 +1255,8 @@
OF_METHOD, name + SPACE + FOR,
false, null));
//Switch statement.
- String sw = EIGHT_SPACE_INDENTATION + SWITCH + SPACE + brackets(
- OPEN_CLOSE_BRACKET_WITH_VALUE, VALUE, null) +
+ String sw = EIGHT_SPACE_INDENTATION + SWITCH + SPACE +
+ getOpenCloseParaWithValue(VALUE) +
methodSignatureClose(CLASS_TYPE);
String str;
switch (type) {
@@ -1336,7 +1339,7 @@
YangNode first = targets.get(0).getResolvedNode();
//If target path is for notification then no need to generate get/set
// for that augment in service class.
- if (first instanceof YangNotification) {
+ if (first instanceof InvalidOpTypeHolder) {
return EMPTY_STRING;
}
YangNode augmentedNode;
@@ -1420,15 +1423,13 @@
.append(ifAndAndCondition(
//Add == condition
ifEqualEqualCondition(
- brackets(OPEN_CLOSE_BRACKET_WITH_VALUE,
- MIN_RANGE, null), ONE),
+ getOpenCloseParaWithValue(MIN_RANGE), ONE),
var))
//Add compareTo string.
.append(getCompareToString())
//Add == condition.
.append(ifEqualEqualCondition(
- brackets(OPEN_CLOSE_BRACKET_WITH_VALUE,
- MAX_RANGE, null), ONE))
+ getOpenCloseParaWithValue(MAX_RANGE), ONE))
.append(signatureClose());
} else {
builder.append(getReturnString(VALUE, EIGHT_SPACE_INDENTATION))
@@ -1523,33 +1524,6 @@
}
/**
- * Returns is filter content match interface.
- *
- * @param name name of node
- * @return is filter content match interface
- */
- static String processSubtreeFilteringInterface(String name) {
- String method = " /**\n" +
- " * Checks if the passed " + name +
- " maps the content match query condition.\n" +
- " *\n" +
- " * @param " + getSmallCase(name) + SPACE +
- getSmallCase(name) + SPACE + "being passed to check" +
- " for" +
- " content match\n" +
- " * @param isSelectAllSchemaChild is select all schema child\n" +
- " * @return match result\n" +
- " */\n";
- LinkedHashMap<String, String> map = new LinkedHashMap<>();
- map.put(getSmallCase(name), name);
- map.put(SELECT_ALL_CHILD, BOOLEAN_DATA_TYPE);
-
- return method + multiAttrMethodSignature(PROCESS_SUBTREE_FILTERING,
- EMPTY_STRING, EMPTY_STRING,
- name, map, INTERFACE_TYPE);
- }
-
- /**
* Returns is value set interface.
*
* @return is value set interface
@@ -1650,18 +1624,16 @@
.append(SQUARE_BRACKETS).append(SPACE).append(BIT_NAMES_VAR)
.append(SPACE).append(EQUAL).append(SPACE).append(FROM_STRING_PARAM_NAME)
.append(PERIOD).append(TRIM_STRING).append(OPEN_CLOSE_BRACKET_STRING)
- .append(PERIOD).append(SPLIT_STRING).append(brackets(
- OPEN_CLOSE_BRACKET_WITH_VALUE, getPatternQuoteString(SPACE),
- null)).append(signatureClose()).append(getForLoopString(
- EIGHT_SPACE_INDENTATION, STRING_DATA_TYPE, BIT_NAME_VAR,
- BIT_NAMES_VAR));
+ .append(PERIOD).append(SPLIT_STRING).append(getOpenCloseParaWithValue(
+ getPatternQuoteString(SPACE))).append(signatureClose()).append(
+ getForLoopString(EIGHT_SPACE_INDENTATION, STRING_DATA_TYPE, BIT_NAME_VAR,
+ BIT_NAMES_VAR));
String small = getSmallCase(bitClassName);
- sBuild.append(TWELVE_SPACE_INDENTATION).append(bitClassName).append
- (SPACE).append(small).append(SPACE).append(EQUAL).append
- (SPACE).append(bitClassName).append(PERIOD).append(OF).append
- (brackets(OPEN_CLOSE_BRACKET_WITH_VALUE, BIT_NAME_VAR, null))
- .append(signatureClose());
+ sBuild.append(TWELVE_SPACE_INDENTATION).append(bitClassName).append(
+ SPACE).append(small).append(SPACE).append(EQUAL).append(
+ SPACE).append(bitClassName).append(PERIOD).append(OF).append(
+ getOpenCloseParaWithValue(BIT_NAME_VAR)).append(signatureClose());
String condition = small + SPACE + NOT + EQUAL + SPACE + NULL;
sBuild.append(getIfConditionBegin(TWELVE_SPACE_INDENTATION, condition))
.append(TWELVE_SPACE_INDENTATION)
@@ -1680,17 +1652,15 @@
/**
* Returns to string method for typedef.
*
- * @param attr attribute name
- * @param className class name
+ * @param attr attribute name
* @return to string method for typedef
*/
- static String getToStringForType(String attr, YangType type,
- String className) {
+ static String getToStringForType(String attr, YangType type) {
StringBuilder builder = new StringBuilder(getOverRideString())
.append(methodSignature(TO_STRING_METHOD, null, PUBLIC, null,
STRING_DATA_TYPE, null, CLASS_TYPE));
builder.append(getReturnString(
- getToStringForSpecialType(className, type, attr), EIGHT_SPACE_INDENTATION))
+ getToStringForSpecialType(type, attr), EIGHT_SPACE_INDENTATION))
.append(signatureClose()).append(methodClose(FOUR_SPACE));
return builder.toString();
}
@@ -1698,12 +1668,10 @@
/**
* Returns to string method body for type class.
*
- * @param className class name
- * @param type type of attribute
- * @param name @return to string method body for typedef class
+ * @param type type of attribute
+ * @param name @return to string method body for typedef class
*/
- private static String getToStringForSpecialType(String className, YangType type,
- String name) {
+ private static String getToStringForSpecialType(YangType type, String name) {
switch (type.getDataType()) {
case INT8:
case INT16:
@@ -1712,16 +1680,15 @@
case UINT8:
case UINT16:
case UINT32:
- return STRING_DATA_TYPE + PERIOD + VALUE + OF_CAPS + brackets(
- OPEN_CLOSE_BRACKET_WITH_VALUE, name, null);
+ return STRING_DATA_TYPE + PERIOD + VALUE + OF_CAPS +
+ getOpenCloseParaWithValue(name);
case BINARY:
return getToStringCall(getToStringForBinary(name));
case BITS:
- return className + getCapitalCase(name) + PERIOD +
- TO_STRING_METHOD + brackets(
- OPEN_CLOSE_BRACKET_WITH_VALUE, name, null);
+ return getCapitalCase(name) + PERIOD +
+ TO_STRING_METHOD + getOpenCloseParaWithValue(name);
case BOOLEAN:
case EMPTY:
@@ -1733,7 +1700,7 @@
YangType<?> rt = lri.isInGrouping() ? null : lri
.getEffectiveDataType();
return rt == null ? getToStringCall(name) :
- getToStringForSpecialType(className, rt, name);
+ getToStringForSpecialType(rt, name);
case ENUMERATION:
case INSTANCE_IDENTIFIER:
@@ -1753,10 +1720,9 @@
* Returns union class's to string method.
*
* @param types list of types
- * @param name class name
* @return union class's to string method
*/
- static String getUnionToStringMethod(List<YangType<?>> types, String name) {
+ static String getUnionToStringMethod(List<YangType<?>> types) {
StringBuilder builder = new StringBuilder(getOverRideString());
builder.append(methodSignature(TO_STRING_METHOD, null, PUBLIC, null,
@@ -1765,7 +1731,7 @@
builder.append(getIfConditionBegin(
EIGHT_SPACE_INDENTATION, getSetValueParaCondition(
types.indexOf(type)))).append(getReturnString(
- getToStringForSpecialType(name, type,
+ getToStringForSpecialType(type,
getCamelCase(type.getDataTypeName(), null)),
TWELVE_SPACE_INDENTATION))
.append(signatureClose()).append(methodClose(EIGHT_SPACE));
@@ -1843,4 +1809,52 @@
.append(signatureClose()).append(methodClose(FOUR_SPACE));
return builder.toString();
}
+
+ /**
+ * Returns is filter content match interface.
+ *
+ * @param name name of node
+ * @return is filter content match interface
+ */
+ static String processSubtreeFilteringInterface(String name) {
+ String method = " /**\n" +
+ " * Checks if the passed " + name +
+ " maps the content match query condition.\n" +
+ " *\n" +
+ " * @param " + getSmallCase(name) + SPACE +
+ getSmallCase(name) + SPACE + "being passed to check" +
+ " for" +
+ " content match\n" +
+ " * @param isSelectAllSchemaChild is select all schema child\n" +
+ " * @return match result\n" +
+ " */\n";
+ LinkedHashMap<String, String> map = new LinkedHashMap<>();
+ map.put(getSmallCase(name), name);
+ map.put(SELECT_ALL_CHILD, BOOLEAN_DATA_TYPE);
+
+ return method + multiAttrMethodSignature(PROCESS_SUBTREE_FILTERING,
+ EMPTY_STRING, EMPTY_STRING,
+ name, map, INTERFACE_TYPE);
+ }
+
+ /**
+ * Returns build method for augment class.
+ *
+ * @param name class name
+ * @return build method for augment class
+ */
+ static String generateBuildMethodInAugmentClass(String name) {
+ StringBuilder builder = new StringBuilder(getJavaDoc(BUILD_METHOD,
+ name, false, null));
+ String def = DEFAULT_CAPS + name;
+ builder.append(methodSignature(BUILD_FOR_FILTER, null, PUBLIC, null,
+ name, null, CLASS_TYPE))
+ .append(EIGHT_SPACE_INDENTATION).append(SUBTREE_FILTERED)
+ .append(SPACE).append(EQUAL).append(SPACE).append(TRUE)
+ .append(signatureClose()).append(methodBody(
+ MethodBodyTypes.BUILD, def, null, EIGHT_SPACE_INDENTATION,
+ null, null, false, null)).append(methodClose(FOUR_SPACE));
+ return builder.toString();
+ }
+
}