@Override public VertexQuery queryVertex(Graph graph, Vertex vertex, String queryString, Authorizations authorizations) { return new DefaultVertexQuery(graph, vertex, queryString, authorizations); }
@Override public QueryResultsIterable<Edge> edges(FetchHints fetchHints) { Iterable<Edge> edges = allEdges(fetchHints); return new DefaultGraphQueryIterableWithAggregations<>(getParameters(), edges, true, true, true, getAggregations()); }
@Override public QueryResultsIterable<Vertex> vertices(FetchHints fetchHints) { Iterable<Vertex> vertices = allVertices(fetchHints); return new DefaultGraphQueryIterableWithAggregations<>(getParameters(), vertices, true, true, true, getAggregations()); }
private Iterable<Edge> allEdges(FetchHints fetchHints) { Iterable<Edge> results = getSourceVertex().getEdges(getDirection(), fetchHints, getParameters().getAuthorizations()); if (getOtherVertexId() != null) { results = new FilterIterable<Edge>(results) { @Override protected boolean isIncluded(Edge edge) { return edge.getOtherVertexId(getSourceVertex().getId()).equals(getOtherVertexId()); } }; } return results; }
@Override protected QueryResultsIterable<? extends VertexiumObject> extendedData(FetchHints extendedDataFetchHints) { FetchHints fetchHints = FetchHints.builder() .setIncludeExtendedDataTableNames(true) .build(); return extendedData(extendedDataFetchHints, new JoinIterable<>( allVertices(fetchHints), allEdges(fetchHints) )); }
@Override protected boolean isIncluded(Edge edge) { return edge.getOtherVertexId(getSourceVertex().getId()).equals(getOtherVertexId()); } };
@Override protected boolean isIncluded(Vertex otherVertex) { return getParameters().getIds().contains(otherVertex.getId()); } };
@Override protected boolean isIncluded(Vertex otherVertex) { return otherVertex.getId().equals(getOtherVertexId()); } };
private Iterable<Edge> allEdges(FetchHints fetchHints) { Iterable<Edge> results = getSourceVertex().getEdges(getDirection(), fetchHints, getParameters().getAuthorizations()); if (getOtherVertexId() != null) { results = new FilterIterable<Edge>(results) { @Override protected boolean isIncluded(Edge edge) { return edge.getOtherVertexId(getSourceVertex().getId()).equals(getOtherVertexId()); } }; } return results; }
@Override protected QueryResultsIterable<? extends VertexiumObject> extendedData(FetchHints extendedDataFetchHints) { FetchHints fetchHints = FetchHints.builder() .setIncludeExtendedDataTableNames(true) .build(); return extendedData(extendedDataFetchHints, new JoinIterable<>( allVertices(fetchHints), allEdges(fetchHints) )); }
@Override protected boolean isIncluded(Edge edge) { return edge.getOtherVertexId(getSourceVertex().getId()).equals(getOtherVertexId()); } };
@Override protected boolean isIncluded(Vertex otherVertex) { return getParameters().getIds().contains(otherVertex.getId()); } };
@Override protected boolean isIncluded(Vertex otherVertex) { return otherVertex.getId().equals(getOtherVertexId()); } };
private Iterable<Vertex> allVertices(FetchHints fetchHints) { List<String> edgeLabels = getParameters().getEdgeLabels(); String[] edgeLabelsArray = edgeLabels == null || edgeLabels.size() == 0 ? null : edgeLabels.toArray(new String[edgeLabels.size()]); Iterable<Vertex> results = getSourceVertex().getVertices( getDirection(), edgeLabelsArray, fetchHints, getParameters().getAuthorizations() ); if (getOtherVertexId() != null) { results = new FilterIterable<Vertex>(results) { @Override protected boolean isIncluded(Vertex otherVertex) { return otherVertex.getId().equals(getOtherVertexId()); } }; } if (getParameters().getIds() != null) { results = new FilterIterable<Vertex>(results) { @Override protected boolean isIncluded(Vertex otherVertex) { return getParameters().getIds().contains(otherVertex.getId()); } }; } return results; }
@Override public QueryResultsIterable<Vertex> vertices(FetchHints fetchHints) { Iterable<Vertex> vertices = allVertices(fetchHints); return new DefaultGraphQueryIterableWithAggregations<>(getParameters(), vertices, true, true, true, getAggregations()); }
@Override public QueryResultsIterable<Edge> edges(FetchHints fetchHints) { Iterable<Edge> edges = allEdges(fetchHints); return new DefaultGraphQueryIterableWithAggregations<>(getParameters(), edges, true, true, true, getAggregations()); }
@Override public VertexQuery queryVertex(Graph graph, Vertex vertex, String queryString, Authorizations authorizations) { return new DefaultVertexQuery(graph, vertex, queryString, authorizations); }
private Iterable<Vertex> allVertices(FetchHints fetchHints) { List<String> edgeLabels = getParameters().getEdgeLabels(); String[] edgeLabelsArray = edgeLabels == null || edgeLabels.size() == 0 ? null : edgeLabels.toArray(new String[edgeLabels.size()]); Iterable<Vertex> results = getSourceVertex().getVertices( getDirection(), edgeLabelsArray, fetchHints, getParameters().getAuthorizations() ); if (getOtherVertexId() != null) { results = new FilterIterable<Vertex>(results) { @Override protected boolean isIncluded(Vertex otherVertex) { return otherVertex.getId().equals(getOtherVertexId()); } }; } if (getParameters().getIds() != null) { results = new FilterIterable<Vertex>(results) { @Override protected boolean isIncluded(Vertex otherVertex) { return getParameters().getIds().contains(otherVertex.getId()); } }; } return results; }