+ sb.append('/');
+ }
+
+ return sb.toString();
+ }
+
+ /**
+ * Given a YangInstanceIdentifier.PathArgument return a serialized version
+ * of the same as a String
+ *
+ * @param pathArgument
+ * @return
+ */
+ 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();
+ }
+
+ /**
+ * Given a serialized string version of a YangInstanceIdentifier convert
+ * to a YangInstanceIdentifier
+ *
+ * @param path
+ * @return
+ */
+ public static YangInstanceIdentifier toYangInstanceIdentifier(String path){
+ List<PathArgument> pathArguments = new ArrayList<>();
+ for (String segment : SLASH_SPLITTER.split(path)) {
+ pathArguments.add(NodeIdentifierFactory.getArgument(segment));