[
https://issues.apache.org/jira/browse/RYA-50?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15224999#comment-15224999
]
ASF GitHub Bot commented on RYA-50:
-----------------------------------
Github user amihalik commented on a diff in the pull request:
https://github.com/apache/incubator-rya/pull/35#discussion_r58443882
--- Diff:
extras/indexing/src/main/java/mvm/rya/indexing/external/tupleSet/AccumuloPcjSerializer.java
---
@@ -19,104 +19,198 @@
* under the License.
*/
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkArgument;
import static mvm.rya.api.RdfCloudTripleStoreConstants.DELIM_BYTE;
import static mvm.rya.api.RdfCloudTripleStoreConstants.DELIM_BYTES;
import static mvm.rya.api.RdfCloudTripleStoreConstants.TYPE_DELIM_BYTE;
-import java.util.ArrayList;
+import java.nio.ByteBuffer;
import java.util.Arrays;
+import java.util.LinkedList;
import java.util.List;
+import java.util.Set;
+
+import javax.annotation.ParametersAreNonnullByDefault;
import mvm.rya.api.domain.RyaType;
import mvm.rya.api.resolver.RdfToRyaConversions;
import mvm.rya.api.resolver.RyaContext;
import mvm.rya.api.resolver.RyaToRdfConversions;
import mvm.rya.api.resolver.RyaTypeResolverException;
+import mvm.rya.indexing.external.tupleSet.PcjTables.VariableOrder;
import org.openrdf.model.Value;
+import org.openrdf.query.Binding;
import org.openrdf.query.BindingSet;
import org.openrdf.query.algebra.evaluation.QueryBindingSet;
-import com.google.common.base.Preconditions;
import com.google.common.primitives.Bytes;
/**
- * AccumuloPcjSerializer provides two methods, serialize and deserialize,
which
- * are used for writing BindingSets to PCJ tables and reading serialized
byte
- * representations of BindingSets from PCJ tables.
- *
+ * Converts {@link BindingSet}s to byte[]s and back again. The bytes do not
+ * include the binding names and are ordered with a {@link VariableOrder}.
*/
-public class AccumuloPcjSerializer {
+@ParametersAreNonnullByDefault
+public class AccumuloPcjSerializer implements BindingSetConverter<byte[]> {
+
+ @Override
+ public byte[] convert(BindingSet bindingSet, VariableOrder varOrder)
throws BindingSetConversionException {
+ checkNotNull(bindingSet);
+ checkNotNull(varOrder);
+
+ try {
+ return serialize(bindingSet, varOrder.toArray());
+ } catch (RyaTypeResolverException e) {
+ throw new BindingSetConversionException("Could not convert the
BindingSet into a byte[].", e);
+ }
+ }
+ @Override
+ public BindingSet convert(byte[] bindingSetBytes, VariableOrder
varOrder) throws BindingSetConversionException {
+ checkNotNull(bindingSetBytes);
+ checkNotNull(varOrder);
+
+ try {
+ return deSerialize(bindingSetBytes, varOrder.toArray());
+ } catch (RyaTypeResolverException e) {
+ throw new BindingSetConversionException("Could not convert the
byte[] into a BindingSet.", e);
+ }
+ }
+
/**
- *
+ *
* @param bs {@link BindingSet} to be serialized
* @param varOrder order in which binding values should be written to
byte array
* @return byte array containing serialized values written in order
indicated by varOrder
* @throws RyaTypeResolverException
+ * @deprecated Use {@link #convert(BindingSet, VariableOrder)} instead.
*/
+ @Deprecated
--- End diff --
Why not remove the method?
> Add Support for Sparql Optional Statements in Precomputed Joins
> ---------------------------------------------------------------
>
> Key: RYA-50
> URL: https://issues.apache.org/jira/browse/RYA-50
> Project: Rya
> Issue Type: Improvement
> Affects Versions: 3.2.10
> Reporter: Caleb Meier
> Assignee: Caleb Meier
> Original Estimate: 60h
> Remaining Estimate: 60h
>
> Rya currently only supports Precomputed Joins for SPARQL queries consisting
> of StatementPatterns, Joins, and Filters. The task is to extend Rya's
> Precomputed Join capability to allow for queries that contain OPTIONAL
> statements.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)