code: public static @Nullable
      User get(String idOrFullName, boolean create, @Nonnull Map context) {
          if (idOrFullName == null) {
              return null;
          }
  
          User user = AllUsers.get(idOrFullName);
          if (user != null) {
              return user;
          }
  
          String id = CanonicalIdResolver.resolve(idOrFullName, context);
          return getOrCreateById(id, idOrFullName, create);
      }
docs: Gets the {@link User} object by its id or full name.
  <p>
  In order to resolve the user ID, the method invokes {@link CanonicalIdResolver} extension points.
  Note that it may cause significant performance degradation.
  If you are sure the passed value is a User ID, it is recommended to use {@link #getById(String, boolean)}.
  
  @param create  If true, this method will never return null for valid input
  (by creating a new {@link User} object if none exists.)
  If false, this method will return null if {@link User} object
  with the given name doesn't exist.
  @param context contextual environment this user idOfFullName was retrieved from,
  that can help resolve the user ID
  @return An existing or created user. May be {@code null} if a user does not exist and
  {@code create} is false.