public static Query fromName( String name ) { Query q = new Query(); q.addIdentifier( Identifier.fromName( name ) ); return q; }
@Override public void visit( DirectOperand op ) { List<Literal> idList = op.getDirectIds(); Set<Identifier> idSet = new HashSet<>(); for (Literal literal : idList) { Identifier identifier = null; if (literal instanceof IdLiteral) { String name = ((IdLiteral)literal).getValue(); identifier = Identifier.fromName(name); } else if (literal instanceof UUIDLiteral) { UUID uuid = ((UUIDLiteral)literal).getValue(); identifier = Identifier.fromUUID(uuid); } // should only allow IdLiteral or UUIDLiteral, ignore if other if (identifier != null) { // ignore if already seen if (!idSet.contains(identifier)) { directIdList.add(identifier); idSet.add(identifier); } } } }
@Override public UserInfo getAdminUserByUsername( String username ) throws Exception { if ( username == null ) { return null; } return getUserInfo(smf.getManagementAppId(), getUserEntityByIdentifier(smf.getManagementAppId(), Identifier.fromName(username))); }
@Test public void nameIdentifierTest() throws Exception { logger.debug( "nameIdentifierTest" ); EntityManager em = app.getEntityManager(); assertNotNull( em ); Map<String, Object> properties = new LinkedHashMap<String, Object>(); properties.put( "keywords", "blah,test,game" ); properties.put( "title", "Solitaire" ); properties.put( "name", "test" ); Entity game1 = em.create( "games", properties ); assertNotNull( game1 ); //we create 2 entities, otherwise this test will pass when it shouldn't properties.put( "name", "test2" ); Entity game2 = em.create( "game", properties ); assertNotNull( game2 ); app.waitForQueueDrainAndRefreshIndex(); // overlap Query query = new Query(); query.addIdentifier( Identifier.fromName( "test" ) ); Results r = em.searchCollection( em.getApplicationRef(), "games", query ); assertEquals( "We should only get 1 result", 1, r.size() ); assertNull( "No cursor should be present", r.getCursor() ); assertEquals( "Saved entity returned", game1, r.getEntity() ); }