.properties(TestPropertyNames.COUNT, TestPropertyNames.DATE) .preAggregationFilter(new ElementFilter.Builder() .select(TestPropertyNames.COUNT) .execute(new IsMoreThan(5)) .build()) .aggregator(new ElementAggregator.Builder() .select(TestPropertyNames.COUNT) .execute(new Max()) .build()) .postAggregationFilter(new ElementFilter.Builder() .select(TestPropertyNames.COUNT) .execute(new IsLessThan(10)) .build()) .transformer(new ElementTransformer.Builder() .select(TestPropertyNames.COUNT) .execute(new TestTransform()) .project(TestPropertyNames.PROP_1) .build()) .postTransformFilter(new ElementFilter.Builder() .select(TestPropertyNames.PROP_1) .execute(new IsEqual("9")) .build()) .build();
.input(new EntitySeed("10")) .view(new View.Builder() .entity("Cardinality", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("edgeGroup") .execute(new IsEqual(CollectionUtil.treeSet("RoadUse"))) .build()) .build()) .build()) .entity("Cardinality", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("edgeGroup") .execute(new IsEqual(CollectionUtil.treeSet("RoadUse"))) .build()) .groupBy() .postAggregationFilter(new ElementFilter.Builder() .select("hllp") .execute(new HyperLogLogPlusIsLessThan(5)) .build()) .build()) .build()) .build()) .then(new GetElements.Builder() .view(new View.Builder() .edge("RoadUse")
.view(new View.Builder() .edge("RoadUse", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("startDate") .execute(new IsMoreThan(MAY_01_2000, true)) .select("endDate") .execute(new IsLessThan(MAY_02_2000, false)) .build() .view(new View.Builder() .edge("RoadUse", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("startDate") .execute(new IsMoreThan(MAY_01_2000, true)) .select("endDate") .execute(new IsLessThan(MAY_03_2000, false)) .build()
.then(new GetElements.Builder() .view(new View.Builder() .globalElements(new GlobalViewElementDefinition.Builder() .groupBy() .build()) .entity("JunctionUse", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("startDate") .execute(new IsMoreThan(JAN_01_2000, true)) .select("endDate") .execute(new IsLessThan(JAN_01_2001, false)) .build()) .postAggregationFilter(new ElementFilter.Builder() .select("countByVehicleType") .execute(new PredicateMap<>("BUS", new IsMoreThan(1000L))) .build())
.addSeed(new EntitySeed("1")) .view(new View.Builder() .entity("Cardinality", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("edgeGroup") .execute(new IsEqual(CollectionUtil.treeSet("red"))) .build()) .build()) .build())
.preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(1)) .build()) .build()) .build();
.addSeed(new EntitySeed("user02")) .build()) .then(new GetEntities.Builder() .view(new View.Builder() .entity(Group.REVIEW, new ViewElementDefinition.Builder() .transientProperty(TransientProperty.FIVE_STAR_RATING, Float.class) .preAggregationFilter(new ElementFilter.Builder() .select(Property.USER_ID) .execute(new Not(new IsEqual("user02"))) .build())
.preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(3)) .build()) .build()) .build();
.postAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(2L)) .build()) .build()) .build();
.inOutType(IncludeIncomingOutgoingType.OUTGOING) .view(new View.Builder() .edge("RoadUse", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(1L)) .build()) .build()) .build())
public CloseableIterable<? extends Element> getEdgesRelatedTo2WhenSourceIsLessThan2OrDestinationIsMoreThan3() { // --------------------------------------------------------- final GetElements operation = new GetElements.Builder() .input(new EntitySeed(2)) .view(new View.Builder() .edge("edge", new ViewElementDefinition.Builder() .preAggregationFilter( new ElementFilter.Builder() .select(IdentifierType.SOURCE.name(), IdentifierType.DESTINATION.name()) .execute(new Or.Builder<>() .select(0) .execute(new IsLessThan(2)) .select(1) .execute(new IsMoreThan(3)) .build()) .build()) .build()) .build()) .build(); // --------------------------------------------------------- return runExample(operation, "When using an Or predicate with a multiple selected values, it is more complicated. " + "First, you need to select all the values you want: 'select(a, b, c)'. This will create an array of the selected values, [a, b, c]. " + "You then need to use the Or.Builder to build your Or predicate, using .select() then .execute(). " + "When selecting values in the Or.Builder you need to refer to the position in the [a,b,c] array. So to use property 'a', use position 0 - select(0)."); } }
public CloseableIterable<? extends EntityId> getAdjacentIdsAlongOutboundEdgesFromVertex2WithCountGreaterThan1() { // --------------------------------------------------------- final GetAdjacentIds operation = new GetAdjacentIds.Builder() .input(new EntitySeed(2)) .inOutType(IncludeIncomingOutgoingType.OUTGOING) .view(new View.Builder() .entity("entity", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(1)) .build()) .build()) .edge("edge", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(1)) .build()) .build()) .build()) .build(); // --------------------------------------------------------- return runExample(operation, null); } }
public CloseableIterable<? extends Element> getElementsWithinSetOfVertices1And2And4WithCountGreaterThan2() { // --------------------------------------------------------- final GetElementsBetweenSets operation = new GetElementsBetweenSets.Builder() .input(new EntitySeed(1)) .inputB(new EntitySeed(2), new EntitySeed(4)) .view(new View.Builder() .entity("entity", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(2)) .build()) .build()) .edge("edge", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(2)) .build()) .build()) .build()) .build(); // --------------------------------------------------------- return runExample(operation, null); } }
public CloseableIterable<Element> getEntitiesAndEdgesByEntitySeed2AndEdgeSeed2to3WithCountGreaterThan1() { // --------------------------------------------------------- final GetElements<ElementSeed, Element> operation = new GetElements.Builder<>() .addSeed(new EntitySeed(2)) .addSeed(new EdgeSeed(2, 3, true)) .view(new View.Builder() .entity("entity", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(1)) .build()) .build()) .edge("edge", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(1)) .build()) .build()) .build()) .build(); // --------------------------------------------------------- return runExample(operation); } }
public CloseableIterable<EntitySeed> getAdjacentEntitySeedsAlongOutboundEdgesFromVertex2WithCountGreaterThan1() { // --------------------------------------------------------- final GetAdjacentEntitySeeds operation = new GetAdjacentEntitySeeds.Builder() .addSeed(new EntitySeed(2)) .inOutType(IncludeIncomingOutgoingType.OUTGOING) .view(new View.Builder() .entity("entity", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(1)) .build()) .build()) .edge("edge", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(1)) .build()) .build()) .build()) .build(); // --------------------------------------------------------- return runExample(operation); } }
public CloseableIterable<? extends Element> getElementsWithinSetOfVertices1And2And3WithCountGreaterThan2() { // --------------------------------------------------------- final GetElementsWithinSet operation = new GetElementsWithinSet.Builder() .input(new EntitySeed(1), new EntitySeed(2), new EntitySeed(3)) .view(new View.Builder() .entity("entity", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(2)) .build()) .build()) .edge("edge", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(2)) .build()) .build()) .build()) .build(); // --------------------------------------------------------- return runExample(operation, null); } }
public CloseableIterable<? extends Element> getEntitiesAndEdgesByEntityId2AndEdgeId2to3WithCountMoreThan1() { // --------------------------------------------------------- final GetElements operation = new GetElements.Builder() .input(new EntitySeed(2), new EdgeSeed(2, 3, DirectedType.EITHER)) .view(new View.Builder() .entity("entity", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(1)) .build()) .build()) .edge("edge", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(1)) .build()) .build()) .build()) .build(); // --------------------------------------------------------- return runExample(operation, null); }
public Iterable<Element> getAllEntitiesAndEdgesThatAreRelatedToEdge1to2WithCountGreaterThan1() { // --------------------------------------------------------- final GetElements<EdgeSeed, Element> operation = new GetElements.Builder<EdgeSeed, Element>() .addSeed(new EdgeSeed(1, 2, true)) .view(new View.Builder() .entity("entity", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(1)) .build()) .build()) .edge("edge", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(1)) .build()) .build()) .build()) .build(); // --------------------------------------------------------- return runExample(operation); }
public Iterable<Element> getElementsWithinSetOfVertices1And2And3WithCountGreaterThan2() { // --------------------------------------------------------- final GetElementsWithinSet<Element> operation = new GetElementsWithinSet.Builder<>() .addSeed(new EntitySeed(1)) .addSeed(new EntitySeed(2)) .addSeed(new EntitySeed(3)) .view(new View.Builder() .entity("entity", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(2)) .build()) .build()) .edge("edge", new ViewElementDefinition.Builder() .preAggregationFilter(new ElementFilter.Builder() .select("count") .execute(new IsMoreThan(2)) .build()) .build()) .build()) .build(); // --------------------------------------------------------- return runExample(operation); } }