@SuppressWarnings("unchecked") @JsonSerialize(include = Inclusion.NON_NULL) public <E extends Entity> List<E> getList() { List<Entity> l = getEntities(); return ( List<E> ) l; }
public void addEntities( Results results){ if(entities == null){ //init(); entities = new ArrayList<>(); level = Level.CORE_PROPERTIES; } if( results.getEntities().size() > 0){ entities.addAll(results.getEntities()); } }
@Override public Iterator<Entity> iterator() { List<Entity> l = getEntities(); if ( l != null ) { return l.iterator(); } return ( new ArrayList<Entity>( 0 ) ).iterator(); }
@JsonSerialize(include = Inclusion.NON_NULL) public Map<UUID, Entity> getEntitiesMap() { if ( entitiesMap != null ) { return entitiesMap; } if ( getEntities() != null ) { entitiesMap = new LinkedHashMap<UUID, Entity>(); for ( Entity entity : getEntities() ) { entitiesMap.put( entity.getUuid(), entity ); } } return entitiesMap; }
public void importEntities( ServiceRequest request, Results results ) throws Exception { Timer.Context timer = entitiesGetTimer.time(); try { List<Entity> entities = results.getEntities(); if (entities != null) { importEntitiesParallel(request, results); } }finally { timer.stop(); } }
public void updateEntities( ServiceRequest request, Results results, ServicePayload payload ) throws Exception { List<Entity> entities = results.getEntities(); if ( entities != null ) { for ( Entity entity : entities ) { updateEntity( request, entity, payload ); } } }
public void writeEntities( ServiceRequest request, Results results ) throws Exception { List<Entity> entities = results.getEntities(); if ( entities != null ) { for ( Entity entity : entities ) { writeEntity( request, entity ); } } }
private Import getImportEntity(final EntityManager rootEm, final FileImport fileImport) { try { Results importJobResults = rootEm.getSourceEntities(fileImport, IMPORT_FILE_INCLUDES_CONNECTION, null, Level.ALL_PROPERTIES); List<Entity> importEntities = importJobResults.getEntities(); final Import importEntity = (Import) importEntities.get(0).toTypedEntity(); return importEntity; } catch (Exception e) { throw new RuntimeException("Unable to import entity"); } }
public List<Entity> getEntitiesByType( String type ) { if ( entitiesByType != null ) { return entitiesByType.get( type ); } getEntities(); if ( entities == null ) { return null; } List<Entity> l = null; entitiesByType = new LinkedHashMap<String, List<Entity>>(); for ( Entity entity : entities ) { l = entitiesByType.get( entity.getType() ); if ( l == null ) { l = new ArrayList<Entity>(); entitiesByType.put( entity.getType(), l ); } l.add( entity ); } return l; }
public Results findForProperty( String propertyName, Object propertyValue, int count ) { if ( propertyValue == null ) { return new Results(); } List<Entity> l = getEntities(); if ( l == null ) { return new Results(); } List<Entity> found = new ArrayList<Entity>(); for ( Entity e : l ) { if ( propertyValue.equals( e.getProperty( propertyName ) ) ) { found.add( e ); if ( ( count > 0 ) && ( found.size() == count ) ) { break; } } } return Results.fromEntities(found); }
public void mergeEntitiesWithMetadata() { if ( metadataMerged ) { return; } if ( metadata == null ) { return; } metadataMerged = true; getEntities(); if ( entities != null ) { for ( Entity entity : entities ) { entity.clearMetadata(); Map<String, Object> entityMetadata = metadata.get( entity.getUuid() ); if ( entityMetadata != null ) { entity.mergeMetadata( entityMetadata ); } } } }
@Override public List<UserInfo> getAdminUsersForOrganization( UUID organizationId ) throws Exception { if ( organizationId == null ) { return null; } List<UserInfo> users = new ArrayList<>(); EntityManager em = emf.getEntityManager(smf.getManagementAppId()); Results results = em.getCollection(new SimpleEntityRef(Group.ENTITY_TYPE, organizationId), "users", null, 10000, Level.ALL_PROPERTIES, false); for ( Entity entity : results.getEntities() ) { users.add( getUserInfo( smf.getManagementAppId(), entity ) ); } return users; }
@Override public Boolean call(Entity user) { boolean removed = false; try { if(!user.getUuid().equals(owner.getUuid())) { //skip current user Results devicesResults = em.getCollection(user, "devices", null, 100, Query.Level.REFS, false); List<Entity> userDevices = devicesResults.getEntities(); for (EntityRef userDevice : userDevices) { if(userDevice.getUuid().equals(deviceRef.getUuid())) { //only remove the current device from user em.removeFromCollection(user, "devices", userDevice); // TODO: may want to actually remove the device // em.delete(userDevice); } } em.removeFromCollection(deviceRef, "users", user); removed = true; } } catch (Exception e) { logger.error("Failed to delete connection " + user.toString(), e); } return removed; } }).toBlocking().lastOrDefault(null);
@Override public List<OrganizationInfo> getOrganizations( UUID startResult, int count ) throws Exception { // still need the bimap to search for existing BiMap<UUID, String> organizations = HashBiMap.create(); EntityManager em = emf.getEntityManager(smf.getManagementAppId()); Results results = em.getCollection(em.getApplicationRef(), Schema.COLLECTION_GROUPS, startResult, count, Level.ALL_PROPERTIES, false); List<OrganizationInfo> orgs = new ArrayList<>( results.size() ); OrganizationInfo orgInfo; for ( Entity entity : results.getEntities() ) { String path = ( String ) entity.getProperty( PROPERTY_PATH ); if ( organizations.containsValue( path ) ) { path += "DUPLICATE"; } orgInfo = new OrganizationInfo( entity.getUuid(), path ); orgs.add( orgInfo ); organizations.put( entity.getUuid(), path ); } return orgs; }
@Test public void testKeywordsOrQuery() throws Exception { logger.debug( "testKeywordsOrQuery" ); EntityManager em = app.getEntityManager(); assertNotNull( em ); Map<String, Object> properties = new LinkedHashMap<String, Object>(); properties.put( "title", "Galactians 2" ); properties.put( "keywords", "Hot, Space Invaders, Classic" ); em.create( "game", properties ); properties = new LinkedHashMap<String, Object>(); properties.put( "title", "Bunnies Extreme" ); properties.put( "keywords", "Hot, New" ); em.create( "game", properties ); properties = new LinkedHashMap<String, Object>(); properties.put( "title", "Hot Shots" ); properties.put("keywords", "Action, New"); em.create( "game", properties ); app.waitForQueueDrainAndRefreshIndex(); Query query = Query.fromQL( "select * where keywords contains 'hot' or title contains 'hot'" ); Results r = em.searchCollection( em.getApplicationRef(), "games", query ); logger.info(JsonUtils.mapToFormattedJsonString(r.getEntities())); assertEquals( 3, r.size() ); }
@Test public void groupNameSearch() throws Exception { logger.debug( "groupNameSearch" ); EntityManager em = app.getEntityManager(); assertNotNull( em ); String groupName = "groupName" + UUIDUtils.newTimeUUID(); Map<String, Object> properties = new LinkedHashMap<String, Object>(); properties.put( "title", "testTitle" ); properties.put( "path", "testPath" ); properties.put( "name", groupName ); Entity group = em.create( "group", properties ); assertNotNull( group ); app.waitForQueueDrainAndRefreshIndex(); // EntityRef final Query query = Query.fromQL( "name = '" + groupName + "'" ); Results r = em.searchCollection( em.getApplicationRef(), "groups", query ); assertTrue( r.size() > 0 ); Entity returned = r.getEntities().get( 0 ); assertEquals( group.getUuid(), returned.getUuid() ); }
@Test public void userLastNameSearch() throws Exception { logger.debug( "userLastNameSearch" ); EntityManager em = app.getEntityManager(); assertNotNull( em ); String lastName = "lastName" + UUIDUtils.newTimeUUID(); Map<String, Object> properties = new LinkedHashMap<String, Object>(); properties.put( "username", "edanuff" ); properties.put( "email", "ed@anuff.com" ); properties.put( "lastname", lastName ); Entity user = em.create( "user", properties ); assertNotNull( user ); app.waitForQueueDrainAndRefreshIndex(); // EntityRef final Query query = Query.fromQL( "lastname = '" + lastName + "'" ); Results r = em.searchCollection( em.getApplicationRef(), "users", query ); assertTrue( r.size() > 0 ); Entity returned = r.getEntities().get( 0 ); assertEquals( user.getUuid(), returned.getUuid() ); }
@Test public void groupTitleSearch() throws Exception { logger.debug( "groupTitleSearch" ); EntityManager em = app.getEntityManager(); assertNotNull( em ); String titleName = "groupName" + UUIDUtils.newTimeUUID(); Map<String, Object> properties = new LinkedHashMap<String, Object>(); properties.put( "title", titleName ); properties.put( "path", "testPath" ); properties.put( "name", "testName" ); Entity group = em.create( "group", properties ); assertNotNull( group ); app.waitForQueueDrainAndRefreshIndex(); // EntityRef final Query query = Query.fromQL( "title = '" + titleName + "'" ); Results r = em.searchCollection( em.getApplicationRef(), "groups", query ); assertTrue( r.size() > 0 ); Entity returned = r.getEntities().get( 0 ); assertEquals( group.getUuid(), returned.getUuid() ); }
@Test public void userMiddleNameSearch() throws Exception { logger.debug( "userMiddleNameSearch" ); EntityManager em = app.getEntityManager(); assertNotNull( em ); String middleName = "middleName" + UUIDUtils.newTimeUUID(); Map<String, Object> properties = new LinkedHashMap<String, Object>(); properties.put( "username", "edanuff" ); properties.put( "email", "ed@anuff.com" ); properties.put( "middlename", middleName ); Entity user = em.create( "user", properties ); assertNotNull( user ); app.waitForQueueDrainAndRefreshIndex(); // EntityRef final Query query = Query.fromQL( "middlename = '" + middleName + "'" ); Results r = em.searchCollection( em.getApplicationRef(), "users", query ); assertTrue( r.size() > 0 ); Entity returned = r.getEntities().get( 0 ); assertEquals( user.getUuid(), returned.getUuid() ); }
@Test public void testFilteringOfDuplicateEdges() throws Exception { logger.info( "EntityManagerIT.testFilteringOfDuplicateEdges" ); EntityManager em = app.getEntityManager(); Map<String, Object> properties = new LinkedHashMap<String, Object>(); properties.put( "name", "fluffy1" ); Entity entity = em.create( "fluffy", properties ); EntityRef appRef = new SimpleEntityRef("application", app.getId()); EntityRef entityRef = new SimpleEntityRef(entity.getType(), entity.getUuid()); assertNotNull( entity ); // create duplicate edges em.addToCollection(appRef, "fluffies", entityRef); em.addToCollection(appRef, "fluffies", entityRef); //app.waitForQueueDrainAndRefreshIndex(); Results results = em.getCollection(appRef, "fluffies", null, 10, Level.ALL_PROPERTIES, true); // we should be filtering duplicate edges so only assert 1 result back and not the # of edges assertEquals(1, results.getEntities().size()); }