You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rya.apache.org by ca...@apache.org on 2018/01/09 21:48:58 UTC
[41/50] [abbrv] incubator-rya git commit: RYA-377 Repackaged the
common Aggregation code into the rya.api.functions project.
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/8363724b/extras/rya.pcj.fluo/pcj.fluo.app/src/main/java/org/apache/rya/indexing/pcj/fluo/app/query/SparqlFluoQueryBuilder.java
----------------------------------------------------------------------
diff --git a/extras/rya.pcj.fluo/pcj.fluo.app/src/main/java/org/apache/rya/indexing/pcj/fluo/app/query/SparqlFluoQueryBuilder.java b/extras/rya.pcj.fluo/pcj.fluo.app/src/main/java/org/apache/rya/indexing/pcj/fluo/app/query/SparqlFluoQueryBuilder.java
index 7b21575..57ae9d2 100644
--- a/extras/rya.pcj.fluo/pcj.fluo.app/src/main/java/org/apache/rya/indexing/pcj/fluo/app/query/SparqlFluoQueryBuilder.java
+++ b/extras/rya.pcj.fluo/pcj.fluo.app/src/main/java/org/apache/rya/indexing/pcj/fluo/app/query/SparqlFluoQueryBuilder.java
@@ -42,13 +42,13 @@ import java.util.concurrent.atomic.AtomicReference;
import org.apache.rya.api.client.CreatePCJ.ExportStrategy;
import org.apache.rya.api.client.CreatePCJ.QueryType;
+import org.apache.rya.api.function.aggregation.AggregationElement;
+import org.apache.rya.api.function.aggregation.AggregationType;
import org.apache.rya.indexing.pcj.fluo.app.ConstructGraph;
import org.apache.rya.indexing.pcj.fluo.app.ConstructProjection;
import org.apache.rya.indexing.pcj.fluo.app.FluoStringConverter;
import org.apache.rya.indexing.pcj.fluo.app.IncrementalUpdateConstants;
import org.apache.rya.indexing.pcj.fluo.app.NodeType;
-import org.apache.rya.indexing.pcj.fluo.app.query.AggregationMetadata.AggregationElement;
-import org.apache.rya.indexing.pcj.fluo.app.query.AggregationMetadata.AggregationType;
import org.apache.rya.indexing.pcj.fluo.app.query.JoinMetadata.JoinType;
import org.apache.rya.indexing.pcj.fluo.app.util.FilterSerializer;
import org.apache.rya.indexing.pcj.fluo.app.util.FilterSerializer.FilterParseException;
@@ -103,73 +103,73 @@ public class SparqlFluoQueryBuilder {
private String queryId;
private NodeIds nodeIds;
private Optional<Integer> joinBatchSize = Optional.empty();
-
- //Default behavior is to export to Kafka - subject to change when user can
+
+ //Default behavior is to export to Kafka - subject to change when user can
//specify their own export strategy
private Set<ExportStrategy> exportStrategies = new HashSet<>(Arrays.asList(ExportStrategy.KAFKA));
-
- public SparqlFluoQueryBuilder setSparql(String sparql) {
+
+ public SparqlFluoQueryBuilder setSparql(final String sparql) {
this.sparql = Preconditions.checkNotNull(sparql);
return this;
}
-
- public SparqlFluoQueryBuilder setTupleExpr(TupleExpr te) {
+
+ public SparqlFluoQueryBuilder setTupleExpr(final TupleExpr te) {
this.te = Preconditions.checkNotNull(te);
return this;
}
-
+
/**
* Sets the FluoQuery id as generated by {@link NodeType#generateNewFluoIdForType(NodeType)} or
* {@link NodeType#generateNewIdForType(NodeType, String)}, where NodeType is of type Query.
* @param queryId for the {@link FluoQuery}
* @return SparqlFluoQueryBuilder for chaining method calls
*/
- public SparqlFluoQueryBuilder setFluoQueryId(String queryId) {
+ public SparqlFluoQueryBuilder setFluoQueryId(final String queryId) {
this.queryId = Preconditions.checkNotNull(queryId);
return this;
}
-
- public SparqlFluoQueryBuilder setNodeIds(NodeIds nodeIds) {
+
+ public SparqlFluoQueryBuilder setNodeIds(final NodeIds nodeIds) {
this.nodeIds = Preconditions.checkNotNull(nodeIds);
return this;
}
-
- public SparqlFluoQueryBuilder setExportStrategies(Set<ExportStrategy> exportStrategies) {
+
+ public SparqlFluoQueryBuilder setExportStrategies(final Set<ExportStrategy> exportStrategies) {
this.exportStrategies = exportStrategies;
return this;
}
-
- public SparqlFluoQueryBuilder setJoinBatchSize(int joinBatchSize) {
- Preconditions.checkArgument(joinBatchSize > 0);
+
+ public SparqlFluoQueryBuilder setJoinBatchSize(final int joinBatchSize) {
+ Preconditions.checkArgument(joinBatchSize > 0);
this.joinBatchSize = Optional.of(joinBatchSize);
return this;
}
-
+
public FluoQuery build() throws UnsupportedQueryException {
Preconditions.checkNotNull(sparql);
Preconditions.checkNotNull(queryId);
Preconditions.checkNotNull(exportStrategies);
-
+
if(nodeIds == null) {
nodeIds = new NodeIds();
}
-
+
if(te == null) {
- SPARQLParser parser = new SPARQLParser();
+ final SPARQLParser parser = new SPARQLParser();
ParsedQuery pq;
try {
pq = parser.parseQuery(sparql, null);
- } catch (MalformedQueryException e) {
+ } catch (final MalformedQueryException e) {
throw new RuntimeException(e);
}
te = pq.getTupleExpr();
}
-
+
PeriodicQueryUtil.placePeriodicQueryNode(te);
- String childNodeId = nodeIds.getOrMakeId(te);
-
+ final String childNodeId = nodeIds.getOrMakeId(te);
+
final FluoQuery.Builder fluoQueryBuilder = FluoQuery.builder();
- QueryMetadata.Builder queryBuilder = QueryMetadata.builder(queryId);
+ final QueryMetadata.Builder queryBuilder = QueryMetadata.builder(queryId);
//sets {@link QueryType} and VariableOrder
setVarOrderAndQueryType(queryBuilder, te);
queryBuilder
@@ -177,18 +177,18 @@ public class SparqlFluoQueryBuilder {
.setChildNodeId(childNodeId)
.setExportStrategies(exportStrategies)
.setJoinBatchSize(joinBatchSize);
-
+
fluoQueryBuilder.setQueryMetadata(queryBuilder);
-
+
setChildMetadata(fluoQueryBuilder, childNodeId, queryBuilder.getVariableOrder(), queryId);
-
+
final NewQueryVisitor visitor = new NewQueryVisitor(fluoQueryBuilder, nodeIds);
te.visit( visitor );
-
+
final FluoQuery fluoQuery = fluoQueryBuilder.build();
return fluoQuery;
}
-
+
/**
* A data structure that creates and keeps track of Node IDs for the nodes
* of a {@link ParsedQuery}. This structure should only be used while creating
@@ -275,7 +275,7 @@ public class SparqlFluoQueryBuilder {
// Put them together to create the Node ID.
return prefix + "_" + unique;
}
-
+
}
/**
@@ -327,7 +327,7 @@ public class SparqlFluoQueryBuilder {
} else {
groupByVariableOrder = new VariableOrder();
}
-
+
// The aggregations that need to be performed are the Group Elements.
final List<AggregationElement> aggregations = new ArrayList<>();
@@ -361,15 +361,15 @@ public class SparqlFluoQueryBuilder {
aggregationBuilder.setChildNodeId(childNodeId);
aggregationBuilder.setGroupByVariableOrder(groupByVariableOrder);
-
- Set<String> aggregationVars = getVarsToDelete(groupByVariableOrder.getVariableOrders(), aggregationBuilder.getVariableOrder().getVariableOrders());
+
+ final Set<String> aggregationVars = getVarsToDelete(groupByVariableOrder.getVariableOrders(), aggregationBuilder.getVariableOrder().getVariableOrders());
FluoQueryUtils.updateVarOrders(fluoQueryBuilder, UpdateAction.DeleteVariable, Lists.newArrayList(aggregationVars), aggregationId);
-
+
for(final AggregationElement aggregation : aggregations) {
aggregationBuilder.addAggregation(aggregation);
}
-
-
+
+
// Update the child node's metadata.
final Set<String> childVars = getVars(child);
@@ -459,7 +459,7 @@ public class SparqlFluoQueryBuilder {
@Override
public void meet(final Filter node) {
-
+
// Get or create a builder for this node populated with the known metadata.
final String filterId = nodeIds.getOrMakeId(node);
@@ -472,7 +472,7 @@ public class SparqlFluoQueryBuilder {
String filterString;
try {
filterString = FilterSerializer.serialize(node);
- } catch (FilterParseException e) {
+ } catch (final FilterParseException e) {
throw new RuntimeException(e);
}
filterBuilder.setFilterSparql(filterString);
@@ -493,10 +493,11 @@ public class SparqlFluoQueryBuilder {
// Walk to the next node.
super.meet(node);
}
-
+
+ @Override
public void meetOther(final QueryModelNode qNode) {
if (qNode instanceof PeriodicQueryNode) {
- PeriodicQueryNode node = (PeriodicQueryNode) qNode;
+ final PeriodicQueryNode node = (PeriodicQueryNode) qNode;
// Get or create a builder for this node populated with the
// known metadata.
final String periodicId = nodeIds.getOrMakeId(node);
@@ -531,9 +532,9 @@ public class SparqlFluoQueryBuilder {
FluoQueryUtils.updateVarOrders(fluoQueryBuilder, UpdateAction.AddVariable, Arrays.asList(IncrementalUpdateConstants.PERIODIC_BIN_ID), periodicId);
// Walk to the next node.
node.getArg().visit(this);
- }
+ }
}
-
+
@Override
public void meet(final Projection node) {
@@ -564,25 +565,26 @@ public class SparqlFluoQueryBuilder {
// Walk to the next node.
super.meet(node);
}
-
-
- public void meet(Reduced node) {
- //create id, initialize ConstructQueryMetadata builder, register ConstructQueryMetadata
+
+
+ @Override
+ public void meet(final Reduced node) {
+ //create id, initialize ConstructQueryMetadata builder, register ConstructQueryMetadata
//builder with FluoQueryBuilder, and add metadata that we currently have
final String constructId = nodeIds.getOrMakeId(node);
-
+
ConstructQueryMetadata.Builder constructBuilder = fluoQueryBuilder.getConstructQueryBuilder().orNull();
if(constructBuilder == null) {
constructBuilder = ConstructQueryMetadata.builder();
constructBuilder.setNodeId(constructId);
fluoQueryBuilder.setConstructQueryMetadata(constructBuilder);
}
-
+
//get child node
QueryModelNode child = node.getArg();
Preconditions.checkArgument(child instanceof Projection || child instanceof MultiProjection);
- UnaryTupleOperator unary = (UnaryTupleOperator) child;
-
+ final UnaryTupleOperator unary = (UnaryTupleOperator) child;
+
//get ProjectionElemList to build ConstructGraph
final List<ProjectionElemList> projections = new ArrayList<>();
if(unary instanceof Projection) {
@@ -590,15 +592,15 @@ public class SparqlFluoQueryBuilder {
} else {
projections.addAll(((MultiProjection)unary).getProjections());
}
-
+
//get ExtensionElems to build ConstructGraph
- QueryModelNode grandChild = unary.getArg();
+ final QueryModelNode grandChild = unary.getArg();
Preconditions.checkArgument(grandChild instanceof Extension);
- Extension extension = (Extension) grandChild;
+ final Extension extension = (Extension) grandChild;
final List<ExtensionElem> extensionElems = extension.getElements();
final ConstructGraph graph = getConstructGraph(projections, extensionElems);
constructBuilder.setConstructGraph(graph);
-
+
//set child to the next node we care about in Fluo
//if Extension's arg is a Group node, then it is an Aggregation, so set child to Extension
//otherwise set child to Extension's child (only care about Extensions if they are Aggregations)
@@ -607,42 +609,42 @@ public class SparqlFluoQueryBuilder {
} else {
child = extension.getArg();
}
-
+
//Set the child node in the ConstructQueryMetadataBuilder
- String childNodeId = nodeIds.getOrMakeId(child);
+ final String childNodeId = nodeIds.getOrMakeId(child);
constructBuilder.setChildNodeId(childNodeId);
-
+
// Update the child node's metadata.
final Set<String> childVars = getVars((TupleExpr)child);
final VariableOrder childVarOrder = new VariableOrder(childVars);
setChildMetadata(fluoQueryBuilder, childNodeId, childVarOrder, constructId);
-
+
//fast forward visitor to next node we care about
child.visit(this);
}
-
- private ConstructGraph getConstructGraph(List<ProjectionElemList> projections, List<ExtensionElem> extensionElems) {
- Map<String, Value> valueMap = new HashMap<>();
+
+ private ConstructGraph getConstructGraph(final List<ProjectionElemList> projections, final List<ExtensionElem> extensionElems) {
+ final Map<String, Value> valueMap = new HashMap<>();
//create valueMap to associate source names with Values
- for(ExtensionElem elem: extensionElems) {
- String name = elem.getName();
- ValueExpr expr = elem.getExpr();
+ for(final ExtensionElem elem: extensionElems) {
+ final String name = elem.getName();
+ final ValueExpr expr = elem.getExpr();
if(expr instanceof ValueConstant) {
- Value value = ((ValueConstant) expr).getValue();
+ final Value value = ((ValueConstant) expr).getValue();
valueMap.put(name, value);
} else if(expr instanceof BNodeGenerator) {
valueMap.put(name, new BNodeImpl(UUID.randomUUID().toString()));
}
}
-
- Set<ConstructProjection> constructProj = new HashSet<>();
+
+ final Set<ConstructProjection> constructProj = new HashSet<>();
//build ConstructProjection for each ProjectionElemList
- for(ProjectionElemList list: projections) {
+ for(final ProjectionElemList list: projections) {
validateProjectionElemList(list);
- List<Var> vars = new ArrayList<>();
- for(ProjectionElem elem: list.getElements()) {
- String sourceName = elem.getSourceName();
- Var var = new Var(sourceName);
+ final List<Var> vars = new ArrayList<>();
+ for(final ProjectionElem elem: list.getElements()) {
+ final String sourceName = elem.getSourceName();
+ final Var var = new Var(sourceName);
if(valueMap.containsKey(sourceName)) {
var.setValue(valueMap.get(sourceName));
}
@@ -650,25 +652,25 @@ public class SparqlFluoQueryBuilder {
}
constructProj.add(new ConstructProjection(vars.get(0), vars.get(1), vars.get(2)));
}
-
+
return new ConstructGraph(constructProj);
}
-
- private Set<String> getVarsToDelete(Collection<String> groupByVars, Collection<String> varOrderVars) {
- Set<String> groupBySet = Sets.newHashSet(groupByVars);
- Set<String> varOrderSet = Sets.newHashSet(varOrderVars);
-
+
+ private Set<String> getVarsToDelete(final Collection<String> groupByVars, final Collection<String> varOrderVars) {
+ final Set<String> groupBySet = Sets.newHashSet(groupByVars);
+ final Set<String> varOrderSet = Sets.newHashSet(varOrderVars);
+
return Sets.difference(varOrderSet, groupBySet);
}
-
- private void validateProjectionElemList(ProjectionElemList list) {
- List<ProjectionElem> elements = list.getElements();
+
+ private void validateProjectionElemList(final ProjectionElemList list) {
+ final List<ProjectionElem> elements = list.getElements();
checkArgument(elements.size() == 3);
checkArgument(elements.get(0).getTargetName().equals("subject"));
checkArgument(elements.get(1).getTargetName().equals("predicate"));
checkArgument(elements.get(2).getTargetName().equals("object"));
}
-
+
/**
* Get the non-constant variables from a {@link TupleExpr}.
*
@@ -769,55 +771,58 @@ public class SparqlFluoQueryBuilder {
return shifted;
}
}
-
- private void setVarOrderAndQueryType(QueryMetadata.Builder builder, TupleExpr te) {
- QueryMetadataLocator locator = new QueryMetadataLocator();
+
+ private void setVarOrderAndQueryType(final QueryMetadata.Builder builder, final TupleExpr te) {
+ final QueryMetadataLocator locator = new QueryMetadataLocator();
try {
te.visit(locator);
- } catch (Exception e) {
+ } catch (final Exception e) {
throw new RuntimeException(e);
}
-
+
builder.setVarOrder(locator.getVarOrder());
builder.setQueryType(locator.getQueryType());
}
-
+
public static class QueryMetadataLocator extends QueryModelVisitorBase<Exception> {
-
+
private VariableOrder varOrder;
private QueryType queryType;
-
+
public VariableOrder getVarOrder() {
return varOrder;
}
-
+
public QueryType getQueryType() {
return queryType;
}
-
- public void meet(Projection node) throws Exception {
- Set<String> bindingNames = node.getBindingNames();
+
+ @Override
+ public void meet(final Projection node) throws Exception {
+ final Set<String> bindingNames = node.getBindingNames();
if(varOrder == null) {
varOrder = new VariableOrder(bindingNames);
}
-
+
if(queryType == null) {
queryType = QueryType.PROJECTION;
}
super.meet(node);
}
-
- public void meet(Reduced node) throws Exception {
+
+ @Override
+ public void meet(final Reduced node) throws Exception {
if(varOrder == null) {
varOrder = getConstructGraphVarOrder(node);
}
-
+
if(queryType == null) {
queryType = QueryType.CONSTRUCT;
}
super.meet(node);
}
-
+
+ @Override
public void meetOther(final QueryModelNode node) throws Exception {
if (node instanceof PeriodicQueryNode) {
queryType = QueryType.PERIODIC;
@@ -826,14 +831,14 @@ public class SparqlFluoQueryBuilder {
}
}
}
-
- private static VariableOrder getConstructGraphVarOrder(Reduced node) {
-
+
+ private static VariableOrder getConstructGraphVarOrder(final Reduced node) {
+
//get child node
- QueryModelNode child = node.getArg();
+ final QueryModelNode child = node.getArg();
Preconditions.checkArgument(child instanceof Projection || child instanceof MultiProjection);
- UnaryTupleOperator unary = (UnaryTupleOperator) child;
-
+ final UnaryTupleOperator unary = (UnaryTupleOperator) child;
+
//get ProjectionElemList to build ConstructGraph
final List<ProjectionElemList> projections = new ArrayList<>();
if(unary instanceof Projection) {
@@ -841,26 +846,26 @@ public class SparqlFluoQueryBuilder {
} else {
projections.addAll(((MultiProjection)unary).getProjections());
}
-
+
return getConstructGraphVarOrder(projections);
}
-
- private static VariableOrder getConstructGraphVarOrder(List<ProjectionElemList> projections) {
- Set<String> varOrders = new HashSet<>();
-
- for(ProjectionElemList elems: projections) {
- for(ProjectionElem elem: elems.getElements()) {
- String name = elem.getSourceName();
+
+ private static VariableOrder getConstructGraphVarOrder(final List<ProjectionElemList> projections) {
+ final Set<String> varOrders = new HashSet<>();
+
+ for(final ProjectionElemList elems: projections) {
+ for(final ProjectionElem elem: elems.getElements()) {
+ final String name = elem.getSourceName();
if(!name.startsWith("-const-") && !name.startsWith("-anon-")) {
varOrders.add(name);
}
}
}
-
+
return new VariableOrder(varOrders);
}
-
-
+
+
/**
* Update a query node's metadata to include it's binding set variable order
* and it's parent node id. This information is only known when handling
@@ -921,21 +926,21 @@ public class SparqlFluoQueryBuilder {
aggregationBuilder.setVarOrder(childVarOrder);
aggregationBuilder.setParentNodeId(parentNodeId);
break;
-
+
case PROJECTION:
ProjectionMetadata.Builder projectionBuilder = fluoQueryBuilder.getProjectionBuilder(childNodeId).orNull();
if(projectionBuilder == null) {
projectionBuilder = ProjectionMetadata.builder(childNodeId);
fluoQueryBuilder.addProjectionBuilder(projectionBuilder);
}
-
+
projectionBuilder.setVarOrder(childVarOrder);
projectionBuilder.setParentNodeId(parentNodeId);
break;
-
+
case QUERY:
throw new IllegalArgumentException("A QUERY node cannot be the child of another node.");
-
+
case CONSTRUCT:
ConstructQueryMetadata.Builder constructBuilder = fluoQueryBuilder.getConstructQueryBuilder().orNull();
if(constructBuilder == null) {
@@ -943,12 +948,12 @@ public class SparqlFluoQueryBuilder {
constructBuilder.setNodeId(childNodeId);
fluoQueryBuilder.setConstructQueryMetadata(constructBuilder);
}
-
+
Preconditions.checkArgument(childNodeId.equals(constructBuilder.getNodeId()));
constructBuilder.setVarOrder(childVarOrder);
constructBuilder.setParentNodeId(parentNodeId);
break;
-
+
case PERIODIC_QUERY:
PeriodicQueryMetadata.Builder periodicQueryBuilder = fluoQueryBuilder.getPeriodicQueryBuilder().orNull();
if (periodicQueryBuilder == null) {
@@ -959,7 +964,7 @@ public class SparqlFluoQueryBuilder {
periodicQueryBuilder.setVarOrder(childVarOrder);
periodicQueryBuilder.setParentNodeId(parentNodeId);
break;
-
+
default:
throw new IllegalArgumentException("Unsupported NodeType: " + childType);
}
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/8363724b/extras/rya.pcj.fluo/pcj.fluo.integration/src/test/java/org/apache/rya/indexing/pcj/fluo/app/query/FluoQueryMetadataDAOIT.java
----------------------------------------------------------------------
diff --git a/extras/rya.pcj.fluo/pcj.fluo.integration/src/test/java/org/apache/rya/indexing/pcj/fluo/app/query/FluoQueryMetadataDAOIT.java b/extras/rya.pcj.fluo/pcj.fluo.integration/src/test/java/org/apache/rya/indexing/pcj/fluo/app/query/FluoQueryMetadataDAOIT.java
index 45492de..384ec5d 100644
--- a/extras/rya.pcj.fluo/pcj.fluo.integration/src/test/java/org/apache/rya/indexing/pcj/fluo/app/query/FluoQueryMetadataDAOIT.java
+++ b/extras/rya.pcj.fluo/pcj.fluo.integration/src/test/java/org/apache/rya/indexing/pcj/fluo/app/query/FluoQueryMetadataDAOIT.java
@@ -31,10 +31,10 @@ import org.apache.fluo.api.client.Snapshot;
import org.apache.fluo.api.client.Transaction;
import org.apache.rya.api.client.CreatePCJ.ExportStrategy;
import org.apache.rya.api.client.CreatePCJ.QueryType;
+import org.apache.rya.api.function.aggregation.AggregationElement;
+import org.apache.rya.api.function.aggregation.AggregationType;
import org.apache.rya.indexing.pcj.fluo.app.ConstructGraph;
import org.apache.rya.indexing.pcj.fluo.app.NodeType;
-import org.apache.rya.indexing.pcj.fluo.app.query.AggregationMetadata.AggregationElement;
-import org.apache.rya.indexing.pcj.fluo.app.query.AggregationMetadata.AggregationType;
import org.apache.rya.indexing.pcj.fluo.app.query.JoinMetadata.JoinType;
import org.apache.rya.indexing.pcj.storage.accumulo.VariableOrder;
import org.apache.rya.pcj.fluo.test.base.RyaExportITBase;
@@ -146,7 +146,7 @@ public class FluoQueryMetadataDAOIT extends RyaExportITBase {
final FluoQueryMetadataDAO dao = new FluoQueryMetadataDAO();
// Create the object that will be serialized.
- String queryId = NodeType.generateNewFluoIdForType(NodeType.QUERY);
+ final String queryId = NodeType.generateNewFluoIdForType(NodeType.QUERY);
final QueryMetadata.Builder builder = QueryMetadata.builder(queryId);
builder.setQueryType(QueryType.PROJECTION);
builder.setVarOrder(new VariableOrder("y;s;d"));
@@ -172,7 +172,7 @@ public class FluoQueryMetadataDAOIT extends RyaExportITBase {
assertEquals(originalMetadata, storedMetdata);
}
}
-
+
@Test
public void projectionMetadataTest() {
final FluoQueryMetadataDAO dao = new FluoQueryMetadataDAO();
@@ -202,15 +202,15 @@ public class FluoQueryMetadataDAOIT extends RyaExportITBase {
assertEquals(originalMetadata, storedMetdata);
}
}
-
+
@Test
public void constructQueryMetadataTest() throws MalformedQueryException {
-
- String query = "select ?x ?y where {?x <uri:p1> ?y. ?y <uri:p2> <uri:o1> }";
- SPARQLParser parser = new SPARQLParser();
- ParsedQuery pq = parser.parseQuery(query, null);
- List<StatementPattern> patterns = StatementPatternCollector.process(pq.getTupleExpr());
-
+
+ final String query = "select ?x ?y where {?x <uri:p1> ?y. ?y <uri:p2> <uri:o1> }";
+ final SPARQLParser parser = new SPARQLParser();
+ final ParsedQuery pq = parser.parseQuery(query, null);
+ final List<StatementPattern> patterns = StatementPatternCollector.process(pq.getTupleExpr());
+
final FluoQueryMetadataDAO dao = new FluoQueryMetadataDAO();
// Create the object that will be serialized.
@@ -301,13 +301,13 @@ public class FluoQueryMetadataDAOIT extends RyaExportITBase {
assertEquals(originalMetadata, storedMetadata);
}
}
-
+
@Test
public void periodicQueryMetadataTest() {
final FluoQueryMetadataDAO dao = new FluoQueryMetadataDAO();
// Create the object that will be serialized.
- PeriodicQueryMetadata originalMetadata = PeriodicQueryMetadata.builder()
+ final PeriodicQueryMetadata originalMetadata = PeriodicQueryMetadata.builder()
.setNodeId("nodeId")
.setParentNodeId("parentNodeId")
.setVarOrder(new VariableOrder("a","b","c"))
@@ -317,7 +317,7 @@ public class FluoQueryMetadataDAOIT extends RyaExportITBase {
.setUnit(TimeUnit.DAYS)
.setTemporalVariable("a")
.build();
-
+
try(FluoClient fluoClient = FluoFactory.newClient(super.getFluoConfiguration())) {
// Write it to the Fluo table.
@@ -352,14 +352,14 @@ public class FluoQueryMetadataDAOIT extends RyaExportITBase {
"?worker <http://worksAt> <http://Chipotle>. " +
"}";
- SparqlFluoQueryBuilder builder = new SparqlFluoQueryBuilder();
+ final SparqlFluoQueryBuilder builder = new SparqlFluoQueryBuilder();
builder.setSparql(sparql);
builder.setFluoQueryId(NodeType.generateNewFluoIdForType(NodeType.QUERY));
final FluoQuery originalQuery = builder.build();
assertEquals(QueryType.PROJECTION, originalQuery.getQueryType());
assertEquals(false, originalQuery.getConstructQueryMetadata().isPresent());
-
+
try(FluoClient fluoClient = FluoFactory.newClient(super.getFluoConfiguration())) {
// Write it to the Fluo table.
try(Transaction tx = fluoClient.newTransaction()) {
@@ -377,7 +377,7 @@ public class FluoQueryMetadataDAOIT extends RyaExportITBase {
assertEquals(originalQuery, storedQuery);
}
}
-
+
@Test
public void fluoConstructQueryTest() throws MalformedQueryException, UnsupportedQueryException {
final FluoQueryMetadataDAO dao = new FluoQueryMetadataDAO();
@@ -393,11 +393,11 @@ public class FluoQueryMetadataDAOIT extends RyaExportITBase {
"?worker <http://worksAt> <http://Chipotle>. " +
"}";
- SparqlFluoQueryBuilder builder = new SparqlFluoQueryBuilder();
+ final SparqlFluoQueryBuilder builder = new SparqlFluoQueryBuilder();
builder.setSparql(sparql);
builder.setFluoQueryId(NodeType.generateNewFluoIdForType(NodeType.QUERY));
final FluoQuery originalQuery = builder.build();
-
+
assertEquals(QueryType.CONSTRUCT, originalQuery.getQueryType());
assertEquals(true, originalQuery.getConstructQueryMetadata().isPresent());
@@ -418,8 +418,8 @@ public class FluoQueryMetadataDAOIT extends RyaExportITBase {
assertEquals(originalQuery, storedQuery);
}
}
-
-
+
+
@Test
public void fluoNestedQueryTest() throws MalformedQueryException, UnsupportedQueryException {
final FluoQueryMetadataDAO dao = new FluoQueryMetadataDAO();
@@ -435,13 +435,13 @@ public class FluoQueryMetadataDAOIT extends RyaExportITBase {
"?id <urn:price> ?price ." +
"} " +
"GROUP BY ?type ?location }}";
-
-
- SparqlFluoQueryBuilder builder = new SparqlFluoQueryBuilder();
+
+
+ final SparqlFluoQueryBuilder builder = new SparqlFluoQueryBuilder();
builder.setSparql(sparql);
builder.setFluoQueryId(NodeType.generateNewFluoIdForType(NodeType.QUERY));
final FluoQuery originalQuery = builder.build();
-
+
assertEquals(QueryType.PROJECTION, originalQuery.getQueryType());
try(FluoClient fluoClient = FluoFactory.newClient(super.getFluoConfiguration())) {
@@ -461,7 +461,7 @@ public class FluoQueryMetadataDAOIT extends RyaExportITBase {
assertEquals(originalQuery, storedQuery);
}
}
-
+
@Test
public void fluoNestedConstructQueryTest() throws MalformedQueryException, UnsupportedQueryException {
final FluoQueryMetadataDAO dao = new FluoQueryMetadataDAO();
@@ -478,16 +478,16 @@ public class FluoQueryMetadataDAOIT extends RyaExportITBase {
+ "SELECT ?location (count(?obs) AS ?obsCount) (avg(?velocity) AS ?avgVelocity) "
+ "WHERE { "
+ "FILTER(?velocity > 75) "
- + "?obs <urn:hasVelocity> ?velocity. "
- + "?obs <urn:hasLocation> ?location. "
+ + "?obs <urn:hasVelocity> ?velocity. "
+ + "?obs <urn:hasLocation> ?location. "
+ "}GROUP BY ?location }}";
-
-
- SparqlFluoQueryBuilder builder = new SparqlFluoQueryBuilder();
+
+
+ final SparqlFluoQueryBuilder builder = new SparqlFluoQueryBuilder();
builder.setSparql(sparql);
builder.setFluoQueryId(NodeType.generateNewFluoIdForType(NodeType.QUERY));
final FluoQuery originalQuery = builder.build();
-
+
assertEquals(QueryType.CONSTRUCT, originalQuery.getQueryType());
try(FluoClient fluoClient = FluoFactory.newClient(super.getFluoConfiguration())) {
@@ -507,5 +507,5 @@ public class FluoQueryMetadataDAOIT extends RyaExportITBase {
assertEquals(originalQuery, storedQuery);
}
}
-
+
}
\ No newline at end of file