@Override protected Results createResults( final ResultsPage resultsPage ) { if(logger.isTraceEnabled()){ logger.trace("Creating Id results from resultsPage"); } final List<Id> ids = resultsPage.getEntityList(); List<UUID> uuids = ids.stream().map(id -> id.getUuid()).collect(Collectors.toList()); final Results results = Results.fromIdList(uuids); return results; }
public static Results fromIdList( List<UUID> l, String type ) { if ( type == null ) { return fromIdList( l ); } List<EntityRef> refs = new ArrayList<EntityRef>(); for ( UUID u : l ) { refs.add( ref( type, u ) ); } Results r = new Results(); r.setRefs(refs); return r; }
return this; return Results.fromIdList( ids.subList( i, ids.size() ) );
@Override public Results getSourceEntities( String connType, String fromEntityType, Level level, int count ) throws Exception { // looking for edges to the head entity String edgeType = CpNamingUtils.getEdgeTypeFromConnectionType( connType ); Map<EntityRef, Set<String>> containers = getContainers( count, edgeType, fromEntityType ); if ( Level.REFS.equals( level ) ) { List<EntityRef> refList = new ArrayList<EntityRef>( containers.keySet() ); return Results.fromRefList( refList ); } if ( Level.IDS.equals( level ) ) { // TODO: someday this should return a list of Core Persistence Ids List<UUID> idList = new ArrayList<UUID>(); for ( EntityRef ref : containers.keySet() ) { idList.add( ref.getUuid() ); } return Results.fromIdList( idList ); } List<Entity> entities = new ArrayList<Entity>(); for ( EntityRef ref : containers.keySet() ) { Entity entity = em.get( ref ); if (logger.isTraceEnabled()) { logger.trace(" Found connecting entity: " + entity.getProperties()); } entities.add( entity ); } return Results.fromEntities( entities ); }
public void distribute( EntityRef group, EntityRef user, Entity activity ) throws Exception { if ( activity == null ) { return; } em.addToCollection( user, "feed", activity ); Results r1 = em.getCollection( group, "users", null, 10000, Level.IDS, false ); if ( ( r1 == null ) || ( r1.isEmpty() ) ) { return; } Results r2 = em.getSourceEntities(new SimpleEntityRef(user.getType(), user.getUuid()), "following", User.ENTITY_TYPE, Level.IDS); if ( ( r2 == null ) || ( r2.isEmpty() ) ) { return; } r1.and( r2 ); List<EntityRef> refs = Results.fromIdList( r1.getIds(), User.ENTITY_TYPE ).getRefs(); if ( refs != null ) { em.addToCollections( refs, "feed", activity ); } } }