Use change notes instead of index lookup when possible

Don't perform index lookup for change notes creation, as it is readily
available in ChangeData for has:a_depends-on operand. This change
improves the performance of "change:<> has:a_depends-on" by 2ms against
ES index backend (i.e. on avg took 16ms before and 14ms after this
change over 50 samples).

Change-Id: I404fea1ebc42beb8679cbc923bf8ba70aa55cbf8
diff --git a/src/main/java/com/googlesource/gerrit/plugins/depends/on/ChangeMessageStore.java b/src/main/java/com/googlesource/gerrit/plugins/depends/on/ChangeMessageStore.java
index a125a88..0bc8122 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/depends/on/ChangeMessageStore.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/depends/on/ChangeMessageStore.java
@@ -89,14 +89,22 @@
     return loadWithOrder(cid).stream().collect(Collectors.toSet());
   }
 
+  public Set<DependsOn> load(ChangeNotes changeNotes) throws StorageException {
+    return loadWithOrder(changeNotes).stream().collect(Collectors.toSet());
+  }
+
   public List<DependsOn> loadWithOrder(Change.Id cid) throws StorageException {
-    ChangeNotes changeNote;
+    ChangeNotes changeNotes;
     try {
-      changeNote = changeNotesFactory.createCheckedUsingIndexLookup(cid);
+      changeNotes = changeNotesFactory.createCheckedUsingIndexLookup(cid);
     } catch (NoSuchChangeException e) {
       return Collections.emptyList();
     }
-    for (ChangeMessage message : Lists.reverse(cmUtil.byChange(changeNote))) {
+    return loadWithOrder(changeNotes);
+  }
+
+  public List<DependsOn> loadWithOrder(ChangeNotes changeNotes) throws StorageException {
+    for (ChangeMessage message : Lists.reverse(cmUtil.byChange(changeNotes))) {
       Optional<List<DependsOn>> deps = Comment.from(message.getMessage());
       if (deps.isPresent()) {
         return deps.get();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/depends/on/HasDependsOnOperator.java b/src/main/java/com/googlesource/gerrit/plugins/depends/on/HasDependsOnOperator.java
index b9d1e15..cb9e4ac 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/depends/on/HasDependsOnOperator.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/depends/on/HasDependsOnOperator.java
@@ -32,7 +32,7 @@
 
     @Override
     public boolean match(ChangeData change) {
-      return !changeMessageStore.load(change.getId()).isEmpty();
+      return !changeMessageStore.load(change.notes()).isEmpty();
     }
 
     @Override