Class User


  • public final class User
    extends Object
    A simple class to keep a list of user names. Instead of storing user names as strings with every OSM primitive, we store a reference to an user object, and make sure that for each username there is only one user object.
    Since:
    227
    • Constructor Detail

      • User

        private User​(long uid,
                     String name)
        Private constructor, only called from get method.
        Parameters:
        uid - user id
        name - user name
    • Method Detail

      • createLocalUser

        public static User createLocalUser​(String name)
        Creates a local user with the given name
        Parameters:
        name - the name
        Returns:
        a new local user with the given name
      • createOsmUser

        public static User createOsmUser​(long uid,
                                         String name)
        Creates a user known to the OSM server
        Parameters:
        uid - the user id
        name - the name
        Returns:
        a new OSM user with the given name and uid
      • clearUserMap

        public static void clearUserMap()
        clears the static map of user ids to user objects
      • getById

        public static User getById​(long uid)
        Returns the user with user id uid or null if this user doesn't exist
        Parameters:
        uid - the user id
        Returns:
        the user; null, if there is no user with this id
      • getByName

        public static List<UsergetByName​(String name)
        Returns the list of users with name name or the empty list if no such users exist
        Parameters:
        name - the user name
        Returns:
        the list of users with name name or the empty list if no such users exist
      • getAnonymous

        public static User getAnonymous()
        Replies the anonymous user
        Returns:
        The anonymous user
      • getNames

        public List<StringgetNames()
        Returns the list of user names
        Returns:
        list of names
      • addName

        public void addName​(String name)
        Adds a user name to the list if it is not there, yet.
        Parameters:
        name - User name
        Throws:
        NullPointerException - if name is null
      • setPreferredName

        public void setPreferredName​(String name)
        Sets the preferred user name, i.e., the one that will be returned when calling getName(). Rationale: A user can change its name multiple times and after reading various (outdated w.r.t. user name) data files it is unclear which is the up-to-date user name.
        Parameters:
        name - the preferred user name to set
        Throws:
        NullPointerException - if name is null
      • hasName

        public boolean hasName​(String name)
        Returns true if the name is in the names list
        Parameters:
        name - User name
        Returns:
        true if the name is in the names list
      • getId

        public long getId()
        Replies the user id. If this user is known to the OSM server the positive user id from the server is replied. Otherwise, a negative local value is replied. A negative local is only unique during an editing session. It is lost when the application is closed and there is no guarantee that a negative local user id is always bound to a user with the same name.
        Returns:
        the user id
      • isOsmUser

        public boolean isOsmUser()
        Determines if this user is known to OSM
        Returns:
        true if this user is known to OSM, false otherwise
      • isLocalUser

        public boolean isLocalUser()
        Determines if this user is local
        Returns:
        true if this user is local, false otherwise