final ElementTransformer transformer = new ElementTransformer.Builder() .select(property1) .execute(func1) .project(property1Proj) .select(property2a, property2b) .execute(func2) .project(property2aProj, property2bProj) .select(identifier3.name()) .execute(func3) .project(identifier3Proj.name()) .build();
.execute(new IsLessThan(JAN_01_2001, false)) .build()) .postAggregationFilter(new ElementFilter.Builder() .select("countByVehicleType") .execute(new PredicateMap<>("BUS", new IsMoreThan(1000L))) .transformer(new ElementTransformer.Builder() .select("countByVehicleType") .execute(new FreqMapExtractor("BUS")) .project("busCount") .build()) .build()) .build())
final ElementTransformer descriptionTransformer = new ElementTransformer.Builder() .select("SOURCE", "DESTINATION", "count") .execute(new DescriptionTransform()) .project("description") .build();
final ElementTransformer mean = new ElementTransformer.Builder() .select("thing", "count") .project("mean") .execute(new MeanTransform()) .build();
.build()) .transformer(new ElementTransformer.Builder() .select(Property.RATING, Property.COUNT) .project(TransientProperty.FIVE_STAR_RATING) .execute(new StarRatingTransform()) .build()) .build()) .build())
.entity("entity", new ViewElementDefinition.Builder() .transientProperty("score", Integer.class) .transformer(new ElementTransformer.Builder() .select("VERTEX", "count") .execute(new ExampleScoreFunction()) .project("score") .build()) .build()) .edge("edge", new ViewElementDefinition.Builder() .transientProperty("score", Integer.class) .transformer(new ElementTransformer.Builder() .select("DESTINATION", "count") .execute(new ExampleScoreFunction()) .project("score") .build()) .build()) .build())
.entity("entity", new ViewElementDefinition.Builder() .transientProperty("score", Integer.class) .transformer(new ElementTransformer.Builder() .select("VERTEX", "count") .execute(new ExampleScoreFunction()) .project("score") .build()) .build()) .edge("edge", new ViewElementDefinition.Builder() .transientProperty("score", Integer.class) .transformer(new ElementTransformer.Builder() .select("DESTINATION", "count") .execute(new ExampleScoreFunction()) .project("score") .build()) .build()) .build())
.entity("entity", new ViewElementDefinition.Builder() .transientProperty("score", Integer.class) .transformer(new ElementTransformer.Builder() .select("VERTEX", "count") .execute(new ExampleScoreFunction()) .project("score") .build()) .build()) .edge("edge", new ViewElementDefinition.Builder() .transientProperty("score", Integer.class) .transformer(new ElementTransformer.Builder() .select("DESTINATION", "count") .execute(new ExampleScoreFunction()) .project("score") .build()) .build()) .build())
public Builder project(final String... projection) { current.setProjection(projection); transformer.getComponents().add(current); return new Builder(transformer); } }
.transientProperty(TestPropertyNames.PROP_3, String.class) .transformer(new ElementTransformer.Builder() .select(TestPropertyNames.PROP_1, TestPropertyNames.PROP_2) .execute(new ExampleTransformFunction()) .project(TestPropertyNames.PROP_3) .build()) .postTransformFilter(new ElementFilter.Builder() .select(TestPropertyNames.PROP_3)
.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)
.transientProperty(TestPropertyNames.PROP_3, String.class) .transformer(new ElementTransformer.Builder() .select(TestPropertyNames.PROP_1, TestPropertyNames.PROP_2) .execute(new ExampleTransformFunction()) .project(TestPropertyNames.PROP_3) .build()) .postTransformFilter(new ElementFilter.Builder() .select(TestPropertyNames.PROP_3)
.transientProperty(TestPropertyNames.PROP_3, String.class) .transformer(new ElementTransformer.Builder() .select(TestPropertyNames.PROP_1, TestPropertyNames.PROP_2) .execute(new ExampleTransformFunction()) .project(TestPropertyNames.PROP_3) .build()) .postTransformFilter(new ElementFilter.Builder() .select(TestPropertyNames.PROP_3)
.transientProperty(TestPropertyNames.PROP_3, String.class) .transformer(new ElementTransformer.Builder() .select(TestPropertyNames.PROP_1, TestPropertyNames.PROP_2) .execute(new ExampleTransformFunction()) .project(TestPropertyNames.PROP_3) .build()) .postTransformFilter(new ElementFilter.Builder() .select(TestPropertyNames.PROP_3)
@Test public void shouldAddGlobalTransformToEdgeGroup() { // Given final ElementTransformer elementTransformer = new ElementTransformer.Builder() .select(TestPropertyNames.PROP_3) .execute(new Identity()) .project(TestPropertyNames.PROP_1) .build(); final View view = new View.Builder() .globalEdges(new GlobalViewElementDefinition.Builder() .groups(TestGroups.EDGE) .transformer(elementTransformer) .build()) .edge(TestGroups.EDGE, new ViewElementDefinition.Builder() .excludeProperties(TestPropertyNames.PROP_3) .build()) .build(); // When view.expandGlobalDefinitions(); // Then assertEquals(elementTransformer.getComponents().get(0).getFunction().getClass().getSimpleName(), view.getEdge(TestGroups.EDGE).getTransformer().getComponents().get(0).getFunction().getClass().getSimpleName()); assertEquals(Sets.newHashSet(TestPropertyNames.PROP_3), Sets.newHashSet(view.getEdge(TestGroups.EDGE).getExcludeProperties())); }
@Test public void shouldAddGlobalElementTransformToEntityGroup() { // Given final ElementTransformer elementTransformer = new ElementTransformer.Builder() .select(TestPropertyNames.PROP_3) .execute(new Identity()) .project(TestPropertyNames.PROP_1) .build(); final View view = new View.Builder() .globalElements(new GlobalViewElementDefinition.Builder() .groups(TestGroups.ENTITY) .transformer(elementTransformer) .build()) .entity(TestGroups.ENTITY, new ViewElementDefinition.Builder() .excludeProperties(TestPropertyNames.PROP_3) .build()) .build(); // When view.expandGlobalDefinitions(); // Then assertEquals(elementTransformer.getComponents().get(0).getFunction().getClass().getSimpleName(), view.getEntity(TestGroups.ENTITY).getTransformer().getComponents().get(0).getFunction().getClass().getSimpleName()); assertEquals(Sets.newHashSet(TestPropertyNames.PROP_3), Sets.newHashSet(view.getEntity(TestGroups.ENTITY).getExcludeProperties())); }
@Test public void shouldAddGlobalElementTransformToEntityGroupFromBuilder() { // Given final ElementTransformer elementTransformer = new ElementTransformer.Builder() .select(TestPropertyNames.PROP_3) .execute(new Identity()) .project(TestPropertyNames.PROP_1) .build(); // When final View view = new View.Builder() .globalElements(new GlobalViewElementDefinition.Builder() .groups(TestGroups.ENTITY) .transformer(elementTransformer) .build()) .entity(TestGroups.ENTITY, new ViewElementDefinition.Builder() .excludeProperties(TestPropertyNames.PROP_3) .build()) .expandGlobalDefinitions() .build(); // Then assertEquals(elementTransformer.getComponents().get(0).getFunction().getClass().getSimpleName(), view.getEntity(TestGroups.ENTITY).getTransformer().getComponents().get(0).getFunction().getClass().getSimpleName()); assertEquals(Sets.newHashSet(TestPropertyNames.PROP_3), Sets.newHashSet(view.getEntity(TestGroups.ENTITY).getExcludeProperties())); }
@Test public void shouldAddGlobalTransformToEntityGroup() { // Given final ElementTransformer elementTransformer = new ElementTransformer.Builder() .select(TestPropertyNames.PROP_3) .execute(new Identity()) .project(TestPropertyNames.PROP_1) .build(); final View view = new View.Builder() .globalEntities(new GlobalViewElementDefinition.Builder() .groups(TestGroups.ENTITY) .transformer(elementTransformer) .build()) .entity(TestGroups.ENTITY, new ViewElementDefinition.Builder() .excludeProperties(TestPropertyNames.PROP_3) .build()) .build(); // When view.expandGlobalDefinitions(); // Then assertEquals(elementTransformer.getComponents().get(0).getFunction().getClass().getSimpleName(), view.getEntity(TestGroups.ENTITY).getTransformer().getComponents().get(0).getFunction().getClass().getSimpleName()); assertEquals(Sets.newHashSet(TestPropertyNames.PROP_3), Sets.newHashSet(view.getEntity(TestGroups.ENTITY).getExcludeProperties())); }