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/develop 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());
