private static GraphTraversal<?, ?> transform(final E_Exists expression) { final OpBGP opBGP = (OpBGP) expression.getGraphPattern(); final List<Triple> triples = opBGP.getPattern().getList(); if (triples.size() != 1) throw new IllegalStateException("Unhandled EXISTS pattern"); final GraphTraversal<?, ?> traversal = TraversalBuilder.transform(triples.get(0)); final Step endStep = traversal.asAdmin().getEndStep(); final String label = (String) endStep.getLabels().iterator().next(); endStep.removeLabel(label); return traversal; }
@Override public int hashCode() { return symbol.hashCode() ^ getGraphPattern().hashCode() ; }
@Override public boolean equals(Expr other, boolean bySyntax) { if ( other == null ) return false ; if ( this == other ) return true ; if ( ! ( other instanceof E_Exists ) ) return false ; E_Exists ex = (E_Exists)other ; if ( bySyntax ) return this.getElement().equals(ex.getElement()) ; else return this.getGraphPattern().equals(ex.getGraphPattern()) ; }
@Override public Expr copySubstitute(Binding binding) { Op op2 = Substitute.substitute(getGraphPattern(), binding) ; return new E_Exists(getElement(), op2) ; }
public static GraphTraversal<?, ?> transform(final E_Exists expression) { final OpBGP opBGP = (OpBGP) expression.getGraphPattern(); final List<Triple> triples = opBGP.getPattern().getList(); if (triples.size() != 1) throw new IllegalStateException("Unhandled EXISTS pattern"); final GraphTraversal<?, ?> traversal = TraversalBuilder.transform(triples.get(0)); final Step endStep = traversal.asAdmin().getEndStep(); final String label = (String) endStep.getLabels().iterator().next(); endStep.removeLabel(label); return traversal; }
@Override public Expr applyNodeTransform(NodeTransform nodeTransform) { Op op2 = NodeTransformLib.transform(nodeTransform, getGraphPattern()) ; return new E_Exists(getElement(), op2) ; }