@Test public void shouldPerformThetaJoin() { final SopremoTestPlan sopremoPlan = new SopremoTestPlan(2, 1); final AndExpression condition = new AndExpression(new ComparativeExpression(createPath("0", "id"), BinaryOperator.LESS, createPath("1", "userid"))); final Join join = new Join().withJoinCondition(condition); join.setInputs(sopremoPlan.getInputOperators(0, 2)); sopremoPlan.getOutputOperator(0).setInputs(join); sopremoPlan.getInput(0).addObject("name", "Jon Doe", "password", "asdf1234", "id", 1).addObject("name", "Jane Doe", "password", "qwertyui", "id", 2) .addObject("name", "Max Mustermann", "password", "q1w2e3r4", "id", 3); sopremoPlan.getInput(1).addObject("userid", 1, "url", "code.google.com/p/jaql/").addObject("userid", 2, "url", "www.cnn.com") .addObject("userid", 4, "url", "www.nbc.com").addObject("userid", 1, "url", "java.sun.com/javase/6/docs/api/"); sopremoPlan .getExpectedOutput(0) .addArray(JsonUtil.createObjectNode("name", "Jon Doe", "password", "asdf1234", "id", 1), JsonUtil.createObjectNode("userid", 2, "url", "www.cnn.com")) .addArray(JsonUtil.createObjectNode("name", "Jon Doe", "password", "asdf1234", "id", 1), JsonUtil.createObjectNode("userid", 4, "url", "www.nbc.com")) .addArray(JsonUtil.createObjectNode("name", "Jane Doe", "password", "qwertyui", "id", 2), JsonUtil.createObjectNode("userid", 4, "url", "www.nbc.com")) .addArray(JsonUtil.createObjectNode("name", "Max Mustermann", "password", "q1w2e3r4", "id", 3), JsonUtil.createObjectNode("userid", 4, "url", "www.nbc.com")); sopremoPlan.run(); }
public Join withJoinCondition(final BooleanExpression joinCondition) { this.setJoinCondition(joinCondition); return this; }
Join extends CompositeOperator<Join> { public Join withJoinCondition(final BooleanExpression joinCondition) { this.setJoinCondition(joinCondition); return this; } }
Join extends CompositeOperator<Join> { public Join withJoinCondition(final BooleanExpression joinCondition) { this.setJoinCondition(joinCondition); return this; }  }
Join extends CompositeOperator<Join> { public Join withJoinCondition(final BooleanExpression joinCondition) { this.setJoinCondition(joinCondition); return this; }  @Override void addImplementation(final SopremoModule module); @Override boolean equals(final Object obj); BooleanExpression getJoinCondition(); int[] getOuterJoinIndices(); EvaluationExpression getOuterJoinSources(); EvaluationExpression getResultProjection(); @Override int hashCode(); @Property @Name(preposition = "where") void setJoinCondition(final BooleanExpression joinCondition); void setOuterJoinIndices(final int... outerJoinIndices); @Property @Name(verb = "preserve") void setOuterJoinSources(final EvaluationExpression outerJoinSources); @Property @Name(preposition = "into") void setResultProjection(final EvaluationExpression resultProjection); @Override String toString(); Join withJoinCondition(final BooleanExpression joinCondition); Join withOuterJoinIndices(final int... outerJoinIndices); Join withOuterJoinSources(final EvaluationExpression outerJoinSources); Join withResultProjection(final EvaluationExpression resultProjection); }
Join extends CompositeOperator<Join> { public Join withJoinCondition(final BooleanExpression joinCondition) { this.setJoinCondition(joinCondition); return this; }  @Override void addImplementation(final SopremoModule module); @Override boolean equals(final Object obj); BooleanExpression getJoinCondition(); int[] getOuterJoinIndices(); EvaluationExpression getOuterJoinSources(); EvaluationExpression getResultProjection(); @Override int hashCode(); @Property @Name(preposition = "where") void setJoinCondition(final BooleanExpression joinCondition); void setOuterJoinIndices(final int... outerJoinIndices); @Property @Name(verb = "preserve") void setOuterJoinSources(final EvaluationExpression outerJoinSources); @Property @Name(preposition = "into") void setResultProjection(final EvaluationExpression resultProjection); @Override String toString(); Join withJoinCondition(final BooleanExpression joinCondition); Join withOuterJoinIndices(final int... outerJoinIndices); Join withOuterJoinSources(final EvaluationExpression outerJoinSources); Join withResultProjection(final EvaluationExpression resultProjection);  }