Class UserDirectory

java.lang.Object
com.iizix.server.push.engine.store.UserDirectory

public final class UserDirectory extends Object
The Destination field's lookup: user names and e-mail addresses, case-insensitive, with the * wildcard, resolved to user IDs against IZS.USERS.

Push does not model identity (ruling 2). This class names a user only by UserInfoBase.id and reads the columns that exist for the lookup: user_name_lower and email. The SQL is LIKE ... ESCAPE '!' with LOWER() on the e-mail, both SQL-92, portable between Derby and PostgreSQL.

Author:
Christopher Mindus
  • Constructor Details

    • UserDirectory

      public UserDirectory(ConnectionSource connections)
      Constructor.
      Parameters:
      connections - The connection source.
  • Method Details

    • resolve

      public List<UserDirectory.UserRef> resolve(List<String> destinations) throws SQLException
      Resolves destinations to users.
      Parameters:
      destinations - User names or e-mail addresses, case-insensitive, * matching any run of characters; a lone * matches every user.
      Returns:
      The users, each once, in user-ID order per destination.
      Throws:
      SQLException - For SQL errors.
    • byName

      public UserDirectory.UserRef byName(String userName) throws SQLException
      Finds one user by exact user name, case-insensitive.
      Parameters:
      userName - The user name.
      Returns:
      The user, or null.
      Throws:
      SQLException - For SQL errors.