refactor DocumentPath comparator

Change-Id: I7b0a8a741d21aff61581e207bfe34e6ce2070955
diff --git a/core/api/src/main/java/org/onosproject/store/service/DocumentPath.java b/core/api/src/main/java/org/onosproject/store/service/DocumentPath.java
index 0ef9aef..0198444 100644
--- a/core/api/src/main/java/org/onosproject/store/service/DocumentPath.java
+++ b/core/api/src/main/java/org/onosproject/store/service/DocumentPath.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.store.service;
 
+import com.google.common.collect.Comparators;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import org.apache.commons.collections.CollectionUtils;
@@ -24,6 +25,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Objects;
@@ -233,19 +235,7 @@
 
     @Override
     public int compareTo(DocumentPath that) {
-        int shorterLength = this.pathElements.size() > that.pathElements.size()
-                ? that.pathElements.size() : this.pathElements.size();
-        for (int i = 0; i < shorterLength; i++) {
-            if (this.pathElements.get(i).compareTo(that.pathElements.get(i)) != 0) {
-                return this.pathElements.get(i).compareTo(that.pathElements.get(i));
-            }
-        }
-        if (this.pathElements.size() > that.pathElements.size()) {
-            return 1;
-        } else if (that.pathElements.size() > this.pathElements.size()) {
-            return -1;
-        } else {
-            return 0;
-        }
+        return Comparators.lexicographical(Comparator.<String>naturalOrder())
+                .compare(this.pathElements, that.pathElements);
     }
 }
diff --git a/core/api/src/test/java/org/onosproject/store/service/DocumentPathTest.java b/core/api/src/test/java/org/onosproject/store/service/DocumentPathTest.java
index 6e69eb6..c0137c8 100644
--- a/core/api/src/test/java/org/onosproject/store/service/DocumentPathTest.java
+++ b/core/api/src/test/java/org/onosproject/store/service/DocumentPathTest.java
@@ -16,8 +16,13 @@
 
 package org.onosproject.store.service;
 
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.greaterThan;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.lessThan;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
 import java.util.Arrays;
@@ -73,10 +78,10 @@
         DocumentPath one = path("root");
         DocumentPath four = path("root.a.b.c.d");
         DocumentPath difFour = path("root.e.c.b.a");
-        assertEquals(-1, one.compareTo(four));
-        assertEquals(1, four.compareTo(one));
-        assertEquals(4, difFour.compareTo(four));
-        assertEquals(0, difFour.compareTo(difFour));
+        assertThat(one.compareTo(four), is(lessThan(0)));
+        assertThat(four.compareTo(one), is(greaterThan(0)));
+        assertThat(difFour.compareTo(four), is(greaterThan(0)));
+        assertThat(difFour.compareTo(difFour), is(equalTo(0)));
     }
 
     private static DocumentPath exceptions(String nodeName, DocumentPath path) {