@Test public void shouldPerformEquiJoin() { final SopremoTestPlan sopremoPlan = new SopremoTestPlan(2, 1); final AndExpression condition = new AndExpression(new ComparativeExpression(createPath("0", "id"), BinaryOperator.EQUAL, 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", 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", 1, "url", "code.google.com/p/jaql/")) .addArray(JsonUtil.createObjectNode("name", "Jon Doe", "password", "asdf1234", "id", 1), JsonUtil.createObjectNode("userid", 1, "url", "java.sun.com/javase/6/docs/api/")) .addArray(JsonUtil.createObjectNode("name", "Jane Doe", "password", "qwertyui", "id", 2), JsonUtil.createObjectNode("userid", 2, "url", "www.cnn.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);  }