+ 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(YangInstanceIdentifier.PathArgument pathArgument){
+ if(pathArgument instanceof YangInstanceIdentifier.NodeIdentifier){
+ return toString((YangInstanceIdentifier.NodeIdentifier) pathArgument);
+ } else if(pathArgument instanceof YangInstanceIdentifier.AugmentationIdentifier){
+ return toString((YangInstanceIdentifier.AugmentationIdentifier) pathArgument);
+ } else if(pathArgument instanceof YangInstanceIdentifier.NodeWithValue){
+ return toString((YangInstanceIdentifier.NodeWithValue) pathArgument);
+ } else if(pathArgument instanceof YangInstanceIdentifier.NodeIdentifierWithPredicates){
+ return toString((YangInstanceIdentifier.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<YangInstanceIdentifier.PathArgument> pathArguments = new ArrayList<>();
+ for (String segment : SLASH_SPLITTER.split(path)) {
+ pathArguments.add(NodeIdentifierFactory.getArgument(segment));