public Builder project(final String... projection) { current.setProjection(projection); transformer.getComponents().add(current); return new Builder(transformer); } }
@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())); }
.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"))
final ElementTransformer descriptionTransformer = new ElementTransformer.Builder() .select("SOURCE", "DESTINATION", "count") .execute(new DescriptionTransform())
final ElementTransformer mean = new ElementTransformer.Builder() .select("thing", "count") .project("mean")
.build()) .transformer(new ElementTransformer.Builder() .select(Property.RATING, Property.COUNT) .project(TransientProperty.FIVE_STAR_RATING)
.entity("entity", new ViewElementDefinition.Builder() .transientProperty("score", Integer.class) .transformer(new ElementTransformer.Builder() .select("VERTEX", "count") .execute(new ExampleScoreFunction()) .build()) .build()) .edge("edge", new ViewElementDefinition.Builder() .transientProperty("score", Integer.class) .transformer(new ElementTransformer.Builder() .select("DESTINATION", "count") .execute(new ExampleScoreFunction())
.entity("entity", new ViewElementDefinition.Builder() .transientProperty("score", Integer.class) .transformer(new ElementTransformer.Builder() .select("VERTEX", "count") .execute(new ExampleScoreFunction()) .build()) .build()) .edge("edge", new ViewElementDefinition.Builder() .transientProperty("score", Integer.class) .transformer(new ElementTransformer.Builder() .select("DESTINATION", "count") .execute(new ExampleScoreFunction())
.entity("entity", new ViewElementDefinition.Builder() .transientProperty("score", Integer.class) .transformer(new ElementTransformer.Builder() .select("VERTEX", "count") .execute(new ExampleScoreFunction()) .build()) .build()) .edge("edge", new ViewElementDefinition.Builder() .transientProperty("score", Integer.class) .transformer(new ElementTransformer.Builder() .select("DESTINATION", "count") .execute(new ExampleScoreFunction())
public Builder project(final String... projection) { current.setProjection(projection); transformer.getComponents().add(current); return new Builder(transformer); } }
private void addOldGroupTransform() { if (null != oldGroup && !oldGroup.equals(newGroup)) { toOldPrivateTransform = new Builder() .select("GROUP") .execute(new SetValue(oldGroup)) .project("GROUP") .build(); } }
private void addNewGroupTransform() { if (null != newGroup && !newGroup.equals(oldGroup)) { toNewPrivateTransform = new Builder() .select("GROUP") .execute(new SetValue(newGroup)) .project("GROUP") .build(); } }
final ElementTransformer transformer = new ElementTransformer.Builder() .select(property1) .execute(func1)
.execute(new Max()) .build()) .postAggregationFilter(new ElementFilter.Builder() .select(TestPropertyNames.COUNT) .execute(new IsLessThan(10))
@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 shouldTransformElementUsingInlineFunction() { // Given final Function<String, Integer> function = String::length; final ElementTransformer transformer = new ElementTransformer.Builder() .select("prop1") .execute(function) .project("prop3") .build(); final Entity element = new Entity.Builder() .group("test") .property("prop1", "value") .property("prop2", 1) .build(); // When final Element result = transformer.apply(element); // Then assertEquals("prop1".length(), result.getProperty("prop3")); }
@Test public void shouldTransformElementUsingMockFunction() { // Given final String selection = "reference1"; final String projection = "reference1"; final Integer valueResult = 3; final Function<String, Integer> function = mock(Function.class); given(function.apply("value1")).willReturn(valueResult); final ElementTransformer transformer = new ElementTransformer.Builder() .select(selection) .execute(function) .project(projection) .build(); final Edge edge = new Edge.Builder() .property(selection, "value1") .build(); // When final Element result = transformer.apply(edge); // Then assertEquals(valueResult, result.getProperty(projection)); }
@Test public void shouldTransformElementUsingIdentityFunction() { // Given final ElementTransformer transformer = new ElementTransformer.Builder() .select("prop1") .execute(new Identity()) .project("prop3") .build(); final Entity element = new Entity.Builder() .group("test") .property("prop1", "value") .property("prop2", 1) .build(); // When final Element result = transformer.apply(element); // Then assertEquals(element.getProperty("prop1"), result.getProperty("prop3")); }