@Override protected Id getId( final MarkedEdge edge ) { return edge.getSourceNode(); } }
@Override protected Id getId( final MarkedEdge edge ) { return edge.getTargetNode(); } }
@Override public GraphManager getGraphManager( ApplicationScope appScope ) { return gmf.createEdgeManager( appScope ); }
public SimpleMarkedEdge( final Edge edge, final boolean isDeleted ) { this( edge.getSourceNode(), edge.getType(), edge.getTargetNode(), edge.getTimestamp(), isDeleted ); }
@Override public MutationBatch removeEdgeTypeToTarget( final ApplicationScope scope, final Edge edge ) { return removeEdgeTypeToTarget( scope, edge.getTargetNode(), edge.getType(), edge.getTimestamp() ); }
public Observable<MarkedEdge> getApplicationInfoEdges( final UUID applicationId ) { final ApplicationScope managementAppScope = getApplicationScope( CpNamingUtils.MANAGEMENT_APPLICATION_ID ); final GraphManager gm = graphManagerFactory.createEdgeManager( managementAppScope ); String edgeType = CpNamingUtils.getEdgeTypeFromCollectionName( CpNamingUtils.APPLICATION_INFOS ); final SimpleSearchByEdge simpleSearchByEdgeType = new SimpleSearchByEdge( CpNamingUtils.generateApplicationId( CpNamingUtils.MANAGEMENT_APPLICATION_ID ), edgeType, CpNamingUtils.generateApplicationId( applicationId ), Long.MAX_VALUE, SearchByEdgeType.Order.DESCENDING, Optional.absent() ); return gm.loadEdgeVersions( simpleSearchByEdgeType ); } }
/** * Get the index scope for the edge from the source to the target. The entity being indexed * is the target node */ public static IndexEdge generateScopeFromSource( final Edge edge ) { return new IndexEdgeImpl( edge.getSourceNode(), edge.getType(), SearchEdge.NodeType.TARGET, edge.getTimestamp() ); }
/** * Get the index scope for the edge from the source. The entity being indexed is the source node */ public static IndexEdge generateScopeFromTarget( final Edge edge ) { return new IndexEdgeImpl( edge.getTargetNode(), edge.getType(), SearchEdge.NodeType.SOURCE, edge.getTimestamp() ); }
/** * Create the search edge from the source. The nodes being searched are Target nodes on the edges */ public static SearchEdge createSearchEdgeFromSource( final Edge edge ) { return new SearchEdgeImpl( edge.getSourceNode(), edge.getType(), SearchEdge.NodeType.TARGET ); }
/** * Create the search edge from the target. The nodes being searched are source nodes on the edges */ public static SearchEdge createSearchEdgeFromTarget( final Edge edge ) { return new SearchEdgeImpl( edge.getTargetNode(), edge.getType(), SearchEdge.NodeType.SOURCE ); }
@Test( expected = NullPointerException.class ) public void invalidEdgeTypesWrite() { final GraphManager em = emf.createEdgeManager( scope ); em.writeEdge( null ); }
@Test( expected = NullPointerException.class ) public void invalidEdgeTypesDelete() { final GraphManager em = emf.createEdgeManager( scope ); em.markEdge( null ); }
@Override public Observable<MarkedEdge> loadEdgesToTargetByType( final SearchByIdType search ) { final Observable<MarkedEdge> edges = Observable.create( new ObservableIterator<MarkedEdge>( "loadEdgesToTargetByType" ) { @Override protected Iterator<MarkedEdge> getIterator() { return storageEdgeSerialization.getEdgesToTargetBySourceType( scope, search ); } } ).buffer( graphFig.getScanPageSize() ) .compose( new EdgeBufferFilter( search.filterMarked() ) ); return ObservableTimer.time( edges, loadEdgesToTargetByTypeTimer ); }
@Override public Observable<MarkedEdge> loadEdgesToTarget( final SearchByEdgeType search ) { final Observable<MarkedEdge> edges = Observable.create( new ObservableIterator<MarkedEdge>( "loadEdgesToTarget" ) { @Override protected Iterator<MarkedEdge> getIterator() { return storageEdgeSerialization.getEdgesToTarget( scope, search ); } } ).buffer( graphFig.getScanPageSize() ) .compose( new EdgeBufferFilter( search.filterMarked() ) ); return ObservableTimer.time( edges, loadEdgesToTargetTimer ); }
@Override public Observable<MarkedEdge> loadEdgeVersions( final SearchByEdge searchByEdge ) { final Observable<MarkedEdge> edges = Observable.create( new ObservableIterator<MarkedEdge>( "getEdgeTypesFromSource" ) { @Override protected Iterator<MarkedEdge> getIterator() { return storageEdgeSerialization.getEdgeVersions( scope, searchByEdge ); } } ).buffer( graphFig.getScanPageSize() ) .compose( new EdgeBufferFilter( searchByEdge.filterMarked() ) ); return ObservableTimer.time( edges, loadEdgesVersionsTimer ); }
@Override protected Long createColumn( final MarkedEdge last ) { return last.getTimestamp(); }
/** * Compares edges based on their sourceId, type, targetId and timestamp. It ignores the deleted flag * @param expected * @param asserted */ private void assertEdgeData(final Edge expected, final Edge asserted){ assertEquals("SourceId the same", expected.getSourceNode(), asserted.getSourceNode()); assertEquals("TargetId the same", expected.getTargetNode(), asserted.getTargetNode()); assertEquals("Type the same", expected.getType(), asserted.getType()); assertEquals("Timestamp the same", expected.getTimestamp(), asserted.getTimestamp()); } }
@Override public Observable<MarkedEdge> loadEdgesFromSourceByType( final SearchByIdType search ) { final Observable<MarkedEdge> edges = Observable.create( new ObservableIterator<MarkedEdge>( "loadEdgesFromSourceByType" ) { @Override protected Iterator<MarkedEdge> getIterator() { return storageEdgeSerialization.getEdgesFromSourceByTargetType( scope, search ); } } ).buffer( graphFig.getScanPageSize() ) .compose( new EdgeBufferFilter( search.filterMarked() ) ); return ObservableTimer.time( edges, loadEdgesFromSourceByTypeTimer ); }
@Override public Observable<MarkedEdge> loadEdgesFromSource( final SearchByEdgeType search ) { final Observable<MarkedEdge> edges = Observable.create( new ObservableIterator<MarkedEdge>( "loadEdgesFromSource" ) { @Override protected Iterator<MarkedEdge> getIterator() { return storageEdgeSerialization.getEdgesFromSource( scope, search ); } } ).buffer( graphFig.getScanPageSize() ) .compose( new EdgeBufferFilter( search.filterMarked() ) ); return ObservableTimer.time( edges, loadEdgesFromSourceTimer ); }
@Override public int compare( final MarkedEdge o1, final MarkedEdge o2 ) { return Long.compare( o1.getTimestamp(), o2.getTimestamp() )*-1; } }