@Test public void testValueCoerser() throws UIMAException { EntityGraphOptions options = EntityGraphOptions.builder().withValueCoercer((v) -> 1).build(); EntityGraphFactory factory = createfactory(options); JCas jCas = JCasFactory.createJCas(); JCasTestGraphUtil.populateJcas(jCas); Graph graph = factory.create(jCas); final GraphTraversalSource traversal = graph.traversal(); traversal .V() .forEachRemaining( v -> { Set<Object> values = ElementHelper.propertyValueMap(v).values().stream().collect(Collectors.toSet()); assertAllValuesCoerceTo1(v, values); }); traversal .E() .forEachRemaining( v -> { Set<Object> values = ElementHelper.propertyValueMap(v).values().stream().collect(Collectors.toSet()); assertTrue(values.contains(1) && values.size() == 1 || values.size() == 0); }); }
@Override public void doInitialize(UimaContext aContext) throws ResourceInitializationException { super.doInitialize(aContext); try { Set<Class<? extends Entity>> typeClasses = TypeUtils.getTypeClasses(Entity.class, typeNames); EntityGraphOptions.Builder builder = EntityGraphOptions.builder() .withContentHashAsId(contentHashAsId) .withEvents(outputEvents) .withStopFeatures(filterFeatures) .withAggregateProperties(aggregate) .withTypeClasses(typeClasses) .withMultiValueProperties(multiValueProperties) .withDefaultValueStrategy(createValueStrategy(defaultValueStrategyType)) .withValueCoercer(valueCoercer); if (valueStrategyTypes != null) { for (int i = 0; i < valueStrategyTypes.length; i += 2) { builder.withValueStrategy( valueStrategyTypes[i], createValueStrategy(valueStrategyTypes[i + 1])); } } addOptions(builder); factory = new EntityGraphFactory(getMonitor(), builder.build()); } catch (Exception e) { throw new ResourceInitializationException(e); } }
EntityGraphOptions.builder().withMultiValueProperties(true).build();
.withValueStrategy("value", new Longest()) .withValueStrategy("gender", new Mode<String>()) .build(); EntityGraphFactory factory = createfactory(options);
@Override public void doInitialize(UimaContext aContext) throws ResourceInitializationException { super.doInitialize(aContext); try { Set<Class<? extends Entity>> typeClasses = TypeUtils.getTypeClasses(Entity.class, typeNames); EntityGraphOptions.Builder builder = EntityGraphOptions.builder() .withContentHashAsId(contentHashAsId) .withEvents(outputEvents) .withStopFeatures(filterFeatures) .withAggregateProperties(aggregate) .withTypeClasses(typeClasses) .withMultiValueProperties(multiValueProperties) .withDefaultValueStrategy(createValueStrategy(defaultValueStrategyType)) .withValueCoercer(valueCoercer); if (valueStrategyTypes != null) { for (int i = 0; i < valueStrategyTypes.length; i += 2) { builder.withValueStrategy( valueStrategyTypes[i], createValueStrategy(valueStrategyTypes[i + 1])); } } addOptions(builder); factory = new EntityGraphFactory(getMonitor(), builder.build()); } catch (Exception e) { throw new ResourceInitializationException(e); } }
@Test public void testNoEvents() throws UIMAException { EntityGraphOptions options = EntityGraphOptions.builder().withEvents(false).build(); EntityGraphFactory factory = createfactory(options); JCas jCas = JCasFactory.createJCas(); JCasTestGraphUtil.populateJcas(jCas); Graph graph = factory.create(jCas); final GraphTraversalSource traversal = graph.traversal(); assertEquals(3, traversal.V().hasLabel(ENTITY).count().next().intValue()); assertEquals(0, traversal.V().hasLabel(EVENT).count().next().intValue()); assertEquals(0, traversal.E().hasLabel(PARTICIPANT_IN).count().next().intValue()); assertEquals(2, traversal.E().hasLabel(RELATION).count().next().intValue()); assertEquals(3, IteratorUtils.count(graph.vertices())); assertEquals(2, IteratorUtils.count(graph.edges())); }
@Override protected void addOptions(EntityGraphOptions.Builder builder) { builder.withValueCoercer(new Neo4JValueCoercer()); }
@Override protected void addOptions(EntityGraphOptions.Builder builder) { builder.withValueCoercer(new Neo4JValueCoercer()); }
/** @return a Builder to create {@link EntityGraphOptions}. */ public static Builder builder() { return new EntityGraphOptions.Builder(); } }
@Test public void testStopFetures() throws UIMAException { EntityGraphOptions options = EntityGraphOptions.builder().withStopFeatures("gender").build(); EntityGraphFactory factory = createfactory(options); JCas jCas = JCasFactory.createJCas(); JCasTestGraphUtil.populateJcas(jCas); Graph graph = factory.create(jCas); final GraphTraversalSource traversal = graph.traversal(); assertTrue(traversal.V().not(has("gender")).hasNext()); }
/** @return a Builder to create {@link EntityGraphOptions}. */ public static Builder builder() { return new EntityGraphOptions.Builder(); } }