[
https://issues.apache.org/jira/browse/RYA-303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16319137#comment-16319137
]
ASF GitHub Bot commented on RYA-303:
------------------------------------
Github user kchilton2 commented on a diff in the pull request:
https://github.com/apache/incubator-rya/pull/172#discussion_r160518292
--- Diff:
extras/indexing/src/main/java/org/apache/rya/indexing/pcj/matching/provider/AbstractPcjIndexSetProvider.java
---
@@ -0,0 +1,160 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.rya.indexing.pcj.matching.provider;
+
+import static java.util.Objects.requireNonNull;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.log4j.Logger;
+import org.apache.rya.api.instance.RyaDetails;
+import
org.apache.rya.indexing.IndexPlanValidator.IndexedExecutionPlanGenerator;
+import
org.apache.rya.indexing.IndexPlanValidator.ValidIndexCombinationGenerator;
+import org.apache.rya.indexing.external.matching.ExternalSetProvider;
+import org.apache.rya.indexing.external.matching.QuerySegment;
+import org.apache.rya.indexing.external.tupleSet.ExternalTupleSet;
+import org.apache.rya.indexing.pcj.matching.PCJOptimizerUtilities;
+import org.apache.rya.indexing.pcj.matching.PCJToSegmentConverter;
+import org.openrdf.query.algebra.TupleExpr;
+
+import com.google.common.annotations.VisibleForTesting;
+
+/**
+ * Abstraction of {@link ExternalSetProvider} that provides {@link
ExternalTupleSet}s.
+ * Implementations of this use either user specified configuration
information or user a specified
+ * List of ExternalTupleSets to populate an internal cache of
ExternalTupleSets. If a configuration
+ * is provided, the provider connects to an instance of RyaDetails and
populates the cache with
+ * PCJs registered in RyaDetails.
+ */
+public abstract class AbstractPcjIndexSetProvider implements
ExternalSetProvider<ExternalTupleSet> {
+ protected static final Logger log =
Logger.getLogger(AbstractPcjIndexSetProvider.class);
+ protected static final PCJToSegmentConverter converter = new
PCJToSegmentConverter();
+ protected List<ExternalTupleSet> indexCache;
+ protected final Configuration conf;
+ protected boolean init = false;
+
+ /**
+ * Creates a new {@link AbstractPcjIndexSetProvider} based on
configuration only.
+ * @param conf - The {@link Configuration} used to connect to {@link
RyaDetails}.
+ */
+ public AbstractPcjIndexSetProvider(final Configuration conf) {
+ requireNonNull(conf);
+ this.conf = conf;
+ }
+
+ /**
+ * Creates a new {@link AbstractPcjIndexSetProvider} based user
provided {@link ExternalTupleSet}s.
+ * @param conf - The {@link Configuration} used to connect to {@link
RyaDetails}.
+ * @param indices - The {@link ExternalTupleSet}s to populate the
internal cache.
+ */
+ public AbstractPcjIndexSetProvider(final Configuration conf, final
List<ExternalTupleSet> indices) {
+ requireNonNull(conf);
+ this.conf = conf;
+ indexCache = indices;
+ init = true;
+ }
+
+
+ /**
+ *
+ * @param indices
+ */
+ @VisibleForTesting
+ public void setIndices(final List<ExternalTupleSet> indices) {
--- End diff --
If this is going to be exposed for testing, could it at least be package
scoped? Would prefer if this method did not exist. If it's going to stay, it
should be documented.
> Mongo PCJ indexer support
> -------------------------
>
> Key: RYA-303
> URL: https://issues.apache.org/jira/browse/RYA-303
> Project: Rya
> Issue Type: Improvement
> Reporter: Andrew Smith
> Assignee: Andrew Smith
>
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)