Make sure we optimize DOMDataTreeIdentifier
[mdsal.git] / dom / mdsal-dom-api / src / main / java / org / opendaylight / mdsal / dom / api / DOMDataTreeIdentifier.java
index c61722c5b43f5d3376abc914305b75ca11ab242e..2d4b4f94983a42c7a8b82ebba0ba69090e601e1b 100644 (file)
@@ -24,8 +24,10 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgum
  * A unique identifier for a particular subtree. It is composed of the logical
  * data store type and the instance identifier of the root node.
  */
-public final class DOMDataTreeIdentifier implements Immutable, Path<DOMDataTreeIdentifier>, Serializable, Comparable<DOMDataTreeIdentifier> {
+public final class DOMDataTreeIdentifier implements Immutable, Path<DOMDataTreeIdentifier>, Serializable,
+        Comparable<DOMDataTreeIdentifier> {
     private static final long serialVersionUID = 1L;
+
     private final YangInstanceIdentifier rootIdentifier;
     private final LogicalDatastoreType datastoreType;
 
@@ -57,6 +59,11 @@ public final class DOMDataTreeIdentifier implements Immutable, Path<DOMDataTreeI
         return datastoreType == other.datastoreType && rootIdentifier.contains(other.rootIdentifier);
     }
 
+    public DOMDataTreeIdentifier toOptimized() {
+        final YangInstanceIdentifier opt = rootIdentifier.toOptimized();
+        return opt == rootIdentifier ? this : new DOMDataTreeIdentifier(datastoreType, opt);
+    }
+
     @Override
     public int hashCode() {
         final int prime = 31;