@Override protected Iterator<MarkedEdge> getIteratorFullRange( final Collection<Shard> readShards ) { final SearchByEdgeType searchFullRange = new SimpleSearchByEdgeType( edgeType.getNode(), edgeType.getType(), Long.MAX_VALUE, SearchByEdgeType.Order.DESCENDING, Optional.absent(), false ); return shardedEdgeSerialization.getEdgesFromSource( edgeColumnFamilies, scope, searchFullRange, readShards ); } };
@Override protected Iterator<MarkedEdge> getIteratorFullRange( final Collection<Shard> readShards ) { final SearchByEdgeType edgeTypeFullRange = new SimpleSearchByEdgeType( edgeType.getNode(), edgeType.getType(), Long.MAX_VALUE, SearchByEdgeType.Order.DESCENDING, Optional.absent(), false ); return shardedEdgeSerialization.getEdgesToTarget( edgeColumnFamilies, scope, edgeTypeFullRange, readShards ); }
/** * Validate the search edge */ public static void validateSearchByEdgeType( final SearchByEdgeType search ) { Preconditions.checkNotNull( search, "search is required" ); ValidationUtils.verifyIdentity( search.getNode() ); ValidationUtils.verifyString( search.getType(), "type" ); validateTimestamp( search.getMaxTimestamp(), "maxTimestamp" ); //only validate if the value is present if(search.last().isPresent()){ validateEdge( search.last().get() ); } }
@Override public Iterator<MarkedEdge> getEdgesFromSource( final ApplicationScope scope, final SearchByEdgeType edgeType ) { ValidationUtils.validateApplicationScope( scope ); GraphValidation.validateSearchByEdgeType( edgeType ); final Id sourceId = edgeType.getNode(); final String type = edgeType.getType(); final long maxTimestamp = edgeType.getMaxTimestamp(); final DirectedEdgeMeta directedEdgeMeta = DirectedEdgeMeta.fromSourceNode( sourceId, type ); final Iterator<ShardEntryGroup> readShards = edgeShardStrategy.getReadShards( scope, maxTimestamp, directedEdgeMeta ); return new ShardGroupColumnIterator( scope, directedEdgeMeta, shardGroupDeletion, readShards ) { @Override protected Iterator<MarkedEdge> getIterator( final Collection<Shard> readShards ) { return shardedEdgeSerialization.getEdgesFromSource( edgeColumnFamilies, scope, edgeType, readShards ); } @Override protected Iterator<MarkedEdge> getIteratorFullRange( final Collection<Shard> readShards ) { final SearchByEdgeType searchFullRange = new SimpleSearchByEdgeType( edgeType.getNode(), edgeType.getType(), Long.MAX_VALUE, SearchByEdgeType.Order.DESCENDING, Optional.absent(), false ); return shardedEdgeSerialization.getEdgesFromSource( edgeColumnFamilies, scope, searchFullRange, readShards ); } }; }
@Override public Iterator<MarkedEdge> getEdgesToTarget( final ApplicationScope scope, final SearchByEdgeType edgeType ) { ValidationUtils.validateApplicationScope( scope ); GraphValidation.validateSearchByEdgeType( edgeType ); final Id targetId = edgeType.getNode(); final String type = edgeType.getType(); final long maxTimestamp = edgeType.getMaxTimestamp(); final DirectedEdgeMeta directedEdgeMeta = DirectedEdgeMeta.fromTargetNode( targetId, type ); final Iterator<ShardEntryGroup> readShards = edgeShardStrategy.getReadShards( scope, maxTimestamp, directedEdgeMeta ); return new ShardGroupColumnIterator( scope, directedEdgeMeta, shardGroupDeletion, readShards ) { @Override protected Iterator<MarkedEdge> getIterator( final Collection<Shard> readShards ) { return shardedEdgeSerialization.getEdgesToTarget( edgeColumnFamilies, scope, edgeType, readShards ); } @Override protected Iterator<MarkedEdge> getIteratorFullRange( final Collection<Shard> readShards ) { final SearchByEdgeType edgeTypeFullRange = new SimpleSearchByEdgeType( edgeType.getNode(), edgeType.getType(), Long.MAX_VALUE, SearchByEdgeType.Order.DESCENDING, Optional.absent(), false ); return shardedEdgeSerialization.getEdgesToTarget( edgeColumnFamilies, scope, edgeTypeFullRange, readShards ); } }; }
final Id sourceId = search.getNode(); final String type = search.getType(); final long maxTimestamp = search.getMaxTimestamp();
GraphValidation.validateSearchByEdgeType( search ); final Id targetId = search.getNode(); final String type = search.getType(); final long maxTimestamp = search.getMaxTimestamp();