RYA-81 Converting the PCJ Details to be a map for easier lookup.

Project: http://git-wip-us.apache.org/repos/asf/incubator-rya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rya/commit/42ca0875
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rya/tree/42ca0875
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rya/diff/42ca0875

Branch: refs/heads/master
Commit: 42ca0875d9b6a4090dc6c99e96ca837287828354
Parents: ec598be
Author: Kevin Chilton <[email protected]>
Authored: Tue Jun 28 16:22:54 2016 -0400
Committer: Aaron Mihalik <[email protected]>
Committed: Tue Aug 23 10:41:37 2016 -0400

----------------------------------------------------------------------
 .../main/java/mvm/rya/api/instance/RyaDetails.java   | 15 +++++++++------
 .../rya/mongodb/instance/MongoDetailsAdapter.java    |  4 +++-
 2 files changed, 12 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/42ca0875/common/rya.api/src/main/java/mvm/rya/api/instance/RyaDetails.java
----------------------------------------------------------------------
diff --git a/common/rya.api/src/main/java/mvm/rya/api/instance/RyaDetails.java 
b/common/rya.api/src/main/java/mvm/rya/api/instance/RyaDetails.java
index 9130144..91d6608 100644
--- a/common/rya.api/src/main/java/mvm/rya/api/instance/RyaDetails.java
+++ b/common/rya.api/src/main/java/mvm/rya/api/instance/RyaDetails.java
@@ -30,7 +30,7 @@ import javax.annotation.ParametersAreNonnullByDefault;
 import javax.annotation.concurrent.Immutable;
 
 import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
 
 /**
  * Details about how a Rya instance's state.
@@ -518,7 +518,7 @@ public class RyaDetails implements Serializable {
 
         public final boolean enabled;
         private final Optional<FluoDetails> fluoDetails;
-        private final ImmutableList<PCJDetails> pcjDetails;
+        private final ImmutableMap<String, PCJDetails> pcjDetails;
 
         /**
          * Private to prevent initialization through the constructor. To build
@@ -534,7 +534,7 @@ public class RyaDetails implements Serializable {
         private PCJIndexDetails(
                 final boolean enabled,
                 final Optional<FluoDetails> fluoDetails,
-                final ImmutableList<PCJDetails> pcjDetails) {
+                final ImmutableMap<String, PCJDetails> pcjDetails) {
             this.enabled = enabled;
             this.fluoDetails = requireNonNull(fluoDetails);
             this.pcjDetails = requireNonNull(pcjDetails);
@@ -557,8 +557,9 @@ public class RyaDetails implements Serializable {
 
         /**
          * @return Details about the PCJs that have been created for this Rya 
instance.
+         *   The key is the PCJ ID and the value are the details for the ID.
          */
-        public ImmutableList<PCJDetails> getPCJDetails() {
+        public ImmutableMap<String, PCJDetails> getPCJDetails() {
             return pcjDetails;
         }
 
@@ -596,7 +597,7 @@ public class RyaDetails implements Serializable {
 
             private Boolean enabled = null;
             private FluoDetails fluoDetails = null;
-            private final ImmutableList.Builder<PCJDetails> pcjDetails = 
ImmutableList.builder();
+            private final ImmutableMap.Builder<String, PCJDetails> pcjDetails 
= ImmutableMap.builder();
 
             /**
              * @param enabled - Whether or not a Precomputed Join Index will 
be maintained by the Rya instance.
@@ -622,7 +623,9 @@ public class RyaDetails implements Serializable {
              * @return This {@link Builder} so that method invocations may be 
chained.
              */
             public Builder addPCJDetails(@Nullable final PCJDetails 
pcjDetails) {
-                this.pcjDetails.add( pcjDetails );
+                if(pcjDetails != null) {
+                    this.pcjDetails.put(pcjDetails.getId(), pcjDetails);
+                }
                 return this;
             }
 

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/42ca0875/dao/mongodb.rya/src/main/java/mvm/rya/mongodb/instance/MongoDetailsAdapter.java
----------------------------------------------------------------------
diff --git 
a/dao/mongodb.rya/src/main/java/mvm/rya/mongodb/instance/MongoDetailsAdapter.java
 
b/dao/mongodb.rya/src/main/java/mvm/rya/mongodb/instance/MongoDetailsAdapter.java
index ffc4ab1..e1662e8 100644
--- 
a/dao/mongodb.rya/src/main/java/mvm/rya/mongodb/instance/MongoDetailsAdapter.java
+++ 
b/dao/mongodb.rya/src/main/java/mvm/rya/mongodb/instance/MongoDetailsAdapter.java
@@ -3,6 +3,7 @@ package mvm.rya.mongodb.instance;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map.Entry;
 
 import javax.annotation.ParametersAreNonnullByDefault;
 
@@ -104,7 +105,8 @@ public class MongoDetailsAdapter {
             pcjBuilder.add(PCJ_FLUO_KEY, 
pcjDetails.getFluoDetails().get().getUpdateAppName());
         }
         final List<DBObject> pcjDetailList = new ArrayList<>();
-        for(final PCJDetails pcjDetail : pcjDetails.getPCJDetails()) {
+        for(final Entry<String, PCJDetails> entry : 
pcjDetails.getPCJDetails().entrySet()) {
+            final PCJDetails pcjDetail = entry.getValue();
             final BasicDBObjectBuilder indBuilbder = 
BasicDBObjectBuilder.start()
                 .add(PCJ_ID_KEY, pcjDetail.getId())
                 .add(PCJ_UPDATE_STRAT_KEY, 
pcjDetail.getUpdateStrategy().name());

Reply via email to