+
+ return sb.toString();
+ }
+
+ /**
+ * Given a YangInstanceIdentifier.PathArgument return a serialized version
+ * of the same as a String.
+ *
+ * @param pathArgument the path argument
+ * @return the path argument as a String
+ */
+ public static String toString(PathArgument pathArgument) {
+ if (pathArgument instanceof NodeIdentifier) {
+ return toString((NodeIdentifier) pathArgument);
+ } else if (pathArgument instanceof AugmentationIdentifier) {
+ return toString((AugmentationIdentifier) pathArgument);
+ } else if (pathArgument instanceof NodeWithValue) {
+ return toString((NodeWithValue<?>) pathArgument);
+ } else if (pathArgument instanceof NodeIdentifierWithPredicates) {
+ return toString((NodeIdentifierWithPredicates) pathArgument);
+ }
+
+ return pathArgument.toString();
+ }
+
+ private static String toString(NodeIdentifier pathArgument) {
+ return pathArgument.getNodeType().toString();
+ }
+
+ private static String toString(AugmentationIdentifier pathArgument) {
+ Set<QName> childNames = pathArgument.getPossibleChildNames();
+ final StringBuilder sb = new StringBuilder("AugmentationIdentifier{");
+ sb.append("childNames=").append(childNames).append('}');
+ return sb.toString();
+
+ }
+
+ private static String toString(NodeWithValue<?> pathArgument) {
+ return pathArgument.getNodeType().toString() + "[" + pathArgument.getValue() + "]";
+ }
+
+ private static String toString(NodeIdentifierWithPredicates pathArgument) {
+ return pathArgument.getNodeType().toString() + '[' + pathArgument.getKeyValues() + ']';