X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-clustering-commons%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fnode%2Futils%2FPathUtils.java;h=930dbceab44b83f98aa54d8a8613ec80d73304f9;hb=4ed6793fcad89fcb4a3c0f7ec230753cb7ed31a9;hp=25b65f01681ac4b9dcaa6354ec001c85bc531981;hpb=e90bec01888e6b2a2503d21de25f3a674d607163;p=controller.git diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/PathUtils.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/PathUtils.java index 25b65f0168..930dbceab4 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/PathUtils.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/PathUtils.java @@ -10,32 +10,16 @@ package org.opendaylight.controller.cluster.datastore.node.utils; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; - +import com.google.common.base.Splitter; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; public class PathUtils { - - public static String getParentPath(String currentElementPath){ - StringBuilder parentPath = new StringBuilder(); - - if(currentElementPath != null){ - String[] parentPaths = currentElementPath.split("/"); - if(parentPaths.length > 2){ - for(int i=0;i 0){ - parentPath.append("/"); - parentPath.append(parentPaths[i]); - } - } - } - } - return parentPath.toString(); - } + private static final Splitter SLASH_SPLITTER = Splitter.on('/').omitEmptyStrings(); /** * Given a YangInstanceIdentifier return a serialized version of the same @@ -44,17 +28,22 @@ public class PathUtils { * @param path * @return */ - public static String toString(YangInstanceIdentifier path){ - StringBuilder sb = new StringBuilder(); - Iterator iterator = + public static String toString(YangInstanceIdentifier path) { + final Iterator it = path.getPathArguments().iterator(); + if (!it.hasNext()) { + return ""; + } - while(iterator.hasNext()){ - sb.append(toString(iterator.next())); - if(iterator.hasNext()){ - sb.append("/"); + final StringBuilder sb = new StringBuilder(); + for (;;) { + sb.append(toString(it.next())); + if (!it.hasNext()) { + break; } + sb.append('/'); } + return sb.toString(); } @@ -87,13 +76,9 @@ public class PathUtils { * @return */ public static YangInstanceIdentifier toYangInstanceIdentifier(String path){ - String[] segments = path.split("/"); - List pathArguments = new ArrayList<>(); - for (String segment : segments) { - if (!"".equals(segment)) { - pathArguments.add(NodeIdentifierFactory.getArgument(segment)); - } + for (String segment : SLASH_SPLITTER.split(path)) { + pathArguments.add(NodeIdentifierFactory.getArgument(segment)); } return YangInstanceIdentifier.create(pathArguments); }