/** * @see GraphTraversal#not(Traversal) */ public static <A> GraphTraversal<A, A> not(final Traversal<?, ?> notTraversal) { return __.<A>start().not(notTraversal); }
@Override public Traversal<Vertex, Long> get_g_V_notXhasIdXwithinXemptyXXX_count() { return g.V().not(__.hasId(P.within(Collections.emptyList()))).count(); }
@Override public Traversal<Vertex, String> get_g_V_notXmatchXa_age_b__a_name_cX_whereXb_eqXcXX_selectXaXX_name() { return g.V().not(match(__.as("a").values("age").as("b"), __.as("a").values("name").as("c")).where("b", eq("c")).select("a")).values("name"); }
/** * @see GraphTraversal#not(Traversal) */ public static <A> GraphTraversal<A, A> not(final Traversal<?, ?> notTraversal) { return __.<A>start().not(notTraversal); }
@Override public GremlinSteps<GraphTraversal, P> not(GremlinSteps<GraphTraversal, P> notTraversal) { g.not(notTraversal.current()); return this; }
@Override public GraphTraversal<S, E> transformTraversal(final ChronoSphereTransactionInternal tx, final GraphTraversal<S, E> traversal) { GraphTraversal innerTraversal = resolveTraversalChain(this.subquery, tx, false); return traversal.not(innerTraversal); } }
@Override public GraphTraversal<S, Vertex> transformTraversal(final ChronoSphereTransactionInternal tx, final GraphTraversal<S, Vertex> traversal) { // apply the transforms on the subquery. We can hand over the vertex // representations here directly because we made sure above that the // incoming chain has an EObject query step as its first step. GraphTraversal innerTraversal = resolveTraversalChain(this.subquery, tx, false); return traversal.not(innerTraversal); }
@Override public GraphTraversal<Vertex, ? extends Element> applyTraversalInner( GraphTraversal<Vertex, ? extends Element> traversal, EmbeddedGraknTx<?> graph, Collection<Var> vars) { return traversal.not(__.hasLabel(Schema.BaseType.SHARD.name())); }
@Override public List<T> findAllWithoutProperty(final String key, final Object value) { return ExecutionStatistics.performBenchmarked("GraphService.findAllWithoutProperty(" + key + ")", () -> { //return (List<T>)findAllQuery().traverse(g -> g.hasNot(key).or(g.has(key, P.neq(value)))).toList(type); return findAllQuery().getRawTraversal().not(__.has(key, P.eq(value))).toList() .stream() .map(v -> frame((Vertex)v)) .collect(Collectors.toList()); }); }
@Override public List<T> findAllWithoutProperty(final String key, final Object value) { return ExecutionStatistics.performBenchmarked("GraphService.findAllWithoutProperty(" + key + ")", () -> { //return (List<T>)findAllQuery().traverse(g -> g.hasNot(key).or(g.has(key, P.neq(value)))).toList(type); return findAllQuery().getRawTraversal().not(__.has(key, P.eq(value))).toList() .stream() .map(v -> frame((Vertex)v)) .collect(Collectors.toList()); }); }
@Override public boolean databaseIsEmptyExceptForMigrations() { return !traversal.V() .not(has("type", DatabaseMigrator.EXECUTED_MIGRATIONS_TYPE)) .hasNext(); }
@Override public Traversal<Vertex, Long> get_g_V_notXhasIdXwithinXemptyXXX_count() { return g.V().not(__.hasId(P.within(Collections.emptyList()))).count(); }
private static Optional<Vertex> getEntityByFullIteration(GraphTraversalSource traversal, UUID id) { return getFirst(traversal .V() .has("tim_id", id.toString()) .not(has("deleted", true)) .has("isLatest", true)); }
@Override public void applyTraversal(GraphTraversal<Vertex, Vertex> traversal) { // Whenever looking up by ID, we have to confirm this is not a casting traversal.has(ITEM_IDENTIFIER.name(), id).not(__.hasLabel(CASTING.name())); }
@Override public void applyTraversal(GraphTraversal<Vertex, Vertex> traversal) { if (!allowCastings) { // Make sure we never get instances of role types traversal.not(__.hasLabel(ROLE_TYPE.name())); } inSubs(inSubs(traversal).in(ISA.getLabel())); }
@Override public void applyTraversal(GraphTraversal<Vertex, Vertex> traversal) { if (!allowCastings) { // Make sure we never get castings' types traversal.not(__.hasLabel(CASTING.name())); } outSubs(outSubs(traversal).out(ISA.getLabel())); }
static <T> GraphTraversal<T, Vertex> outSubs(GraphTraversal<T, Vertex> traversal) { // These traversals make sure to only navigate types by checking they do not have a `THING_TYPE_LABEL_ID` property return union(traversal, ImmutableSet.of( __.<Vertex>not(__.has(THING_TYPE_LABEL_ID.name())).not(__.hasLabel(Schema.BaseType.SHARD.name())), __.repeat(__.out(SUB.getLabel())).emit() )).unfold(); }
static <T> GraphTraversal<T, Vertex> inSubs(GraphTraversal<T, Vertex> traversal) { // These traversals make sure to only navigate types by checking they do not have a `THING_TYPE_LABEL_ID` property return union(traversal, ImmutableSet.of( __.<Vertex>not(__.has(THING_TYPE_LABEL_ID.name())).not(__.hasLabel(Schema.BaseType.SHARD.name())), __.repeat(__.in(SUB.getLabel())).emit() )).unfold(); }
@Override public Traversal<Vertex, List<Object>> getAllShortestPaths() { // TODO: remove .withoutStrategies(PathRetractionStrategy.class) return g.withoutStrategies(ComputerVerificationStrategy.class, PathRetractionStrategy.class). V().as("v").both().as("v"). project("src", "tgt", "p"). by(select(first, "v")). by(select(last, "v")). by(select(all, "v")).as("triple"). group("x"). by(select("src", "tgt")). by(select("p").fold()).select("tgt").barrier(). repeat(both().as("v"). project("src", "tgt", "p"). by(select(first, "v")). by(select(last, "v")). by(select(all, "v")).as("t"). filter(select(all, "p").count(local).as("l"). select(last, "t").select(all, "p").dedup(local).count(local).where(eq("l"))). select(last, "t"). not(select(all, "p").as("p").count(local).as("l"). select(all, "x").unfold().filter(select(keys).where(eq("t")).by(select("src", "tgt"))). filter(select(values).unfold().or(count(local).where(lt("l")), where(eq("p"))))). barrier(). group("x"). by(select("src", "tgt")). by(select(all, "p").fold()).select("tgt").barrier()). cap("x").select(values).unfold().unfold().map(unfold().id().fold()); }
@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()); }