Merge "Fix usage of StringBuilder when getting parent path in PathUtils Making consta...
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / utils / InstanceIdentifierUtils.java
1 package org.opendaylight.controller.cluster.datastore.utils;
2
3 import org.opendaylight.controller.cluster.datastore.node.utils.NodeIdentifierFactory;
4 import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages;
5 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
6 import org.slf4j.Logger;
7 import org.slf4j.LoggerFactory;
8
9 import java.util.ArrayList;
10 import java.util.List;
11
12 /**
13  * @author: syedbahm
14  */
15 public class InstanceIdentifierUtils {
16
17     protected static final Logger logger = LoggerFactory
18         .getLogger(InstanceIdentifierUtils.class);
19
20     public static String getParentPath(String currentElementPath) {
21
22         StringBuilder parentPath = new StringBuilder();
23
24         if (currentElementPath != null) {
25             String[] parentPaths = currentElementPath.split("/");
26             if (parentPaths.length > 2) {
27                 for (int i = 0; i < parentPaths.length - 1; i++) {
28                     if (parentPaths[i].length() > 0) {
29                         parentPath.append( "/");
30                         parentPath.append( parentPaths[i]);
31                     }
32                 }
33             }
34         }
35         return parentPath.toString();
36     }
37
38     @Deprecated
39     public static YangInstanceIdentifier from(String path) {
40         String[] ids = path.split("/");
41
42         List<YangInstanceIdentifier.PathArgument> pathArguments =
43             new ArrayList<>();
44         for (String nodeId : ids) {
45             if (!"".equals(nodeId)) {
46                 pathArguments
47                     .add(NodeIdentifierFactory.getArgument(nodeId));
48             }
49         }
50         final YangInstanceIdentifier instanceIdentifier =
51             YangInstanceIdentifier.create(pathArguments);
52         return instanceIdentifier;
53     }
54
55     /**
56      * @deprecated Use {@link org.opendaylight.controller.cluster.datastore.util.InstanceIdentifierUtils} instead
57      * @param path
58      * @return
59      */
60     @Deprecated
61     public static NormalizedNodeMessages.InstanceIdentifier toSerializable(YangInstanceIdentifier path){
62         return org.opendaylight.controller.cluster.datastore.util.InstanceIdentifierUtils.toSerializable(path);
63     }
64
65     /**
66      * @deprecated Use {@link org.opendaylight.controller.cluster.datastore.util.InstanceIdentifierUtils} instead
67      * @param path
68      * @return
69      */
70     @Deprecated
71     public static YangInstanceIdentifier fromSerializable(NormalizedNodeMessages.InstanceIdentifier path){
72         return org.opendaylight.controller.cluster.datastore.util.InstanceIdentifierUtils.fromSerializable(path);
73     }
74 }