Class PersonIdent

  • All Implemented Interfaces:
    Serializable

    public class PersonIdent
    extends Object
    implements Serializable
    A combination of a person identity and time in Git. Git combines Name + email + time + time zone to specify who wrote or committed something.
    See Also:
    Serialized Form
    • Constructor Detail

      • PersonIdent

        public PersonIdent​(Repository repo)
        Creates new PersonIdent from config info in repository, with current time. This new PersonIdent gets the info from the default committer as available from the configuration.
        Parameters:
        repo - a Repository object.
      • PersonIdent

        public PersonIdent​(String aName,
                           String aEmailAddress)
        Construct a new PersonIdent with current time.
        Parameters:
        aName - a String object.
        aEmailAddress - a String object.
      • PersonIdent

        public PersonIdent​(PersonIdent pi,
                           Date when,
                           TimeZone tz)
        Copy a PersonIdent, but alter the clone's time stamp
        Parameters:
        pi - original PersonIdent
        when - local time
        tz - time zone
      • PersonIdent

        public PersonIdent​(PersonIdent pi,
                           Instant aWhen)
        Copy a PersonIdent, but alter the clone's time stamp
        Parameters:
        pi - original PersonIdent
        aWhen - local time as Instant
        Since:
        6.1
      • PersonIdent

        public PersonIdent​(String aName,
                           String aEmailAddress,
                           Date aWhen,
                           TimeZone aTZ)
        Construct a PersonIdent from simple data
        Parameters:
        aName - a String object.
        aEmailAddress - a String object.
        aWhen - local time stamp
        aTZ - time zone
      • PersonIdent

        public PersonIdent​(String aName,
                           String aEmailAddress,
                           Instant aWhen,
                           ZoneId zoneId)
        Construct a PersonIdent from simple data
        Parameters:
        aName - a String object.
        aEmailAddress - a String object.
        aWhen - local time stamp
        zoneId - time zone id
        Since:
        6.1
      • PersonIdent

        public PersonIdent​(PersonIdent pi,
                           long aWhen,
                           int aTZ)
        Copy a PersonIdent, but alter the clone's time stamp
        Parameters:
        pi - original PersonIdent
        aWhen - local time stamp
        aTZ - time zone
      • PersonIdent

        public PersonIdent​(String aName,
                           String aEmailAddress,
                           long aWhen,
                           int aTZ)
        Construct a PersonIdent.

        Whitespace in the name and email is preserved for the lifetime of this object, but are trimmed by toExternalString(). This means that parsing the result of toExternalString() may not return an equivalent instance.

        Parameters:
        aName - a String object.
        aEmailAddress - a String object.
        aWhen - local time stamp
        aTZ - time zone
    • Method Detail

      • getTimeZone

        public static TimeZone getTimeZone​(int tzOffset)
        Get timezone object for the given offset.
        Parameters:
        tzOffset - timezone offset as in getTimeZoneOffset().
        Returns:
        time zone object for the given offset.
        Since:
        4.1
      • appendTimezone

        public static void appendTimezone​(StringBuilder r,
                                          int offset)
        Format a timezone offset.
        Parameters:
        r - string builder to append to.
        offset - timezone offset as in getTimeZoneOffset().
        Since:
        4.1
      • appendSanitized

        public static void appendSanitized​(StringBuilder r,
                                           String str)
        Sanitize the given string for use in an identity and append to output.

        Trims whitespace from both ends and special characters \n < > that interfere with parsing; appends all other characters to the output. Analogous to the C git function strbuf_addstr_without_crud.

        Parameters:
        r - string builder to append to.
        str - input string.
        Since:
        4.4
      • getName

        public String getName()
        Get name of person
        Returns:
        Name of person
      • getEmailAddress

        public String getEmailAddress()
        Get email address of person
        Returns:
        email address of person
      • getWhen

        public Date getWhen()
        Get timestamp
        Returns:
        timestamp
      • getWhenAsInstant

        public Instant getWhenAsInstant()
        Get when attribute as instant
        Returns:
        timestamp
        Since:
        6.1
      • getTimeZone

        public TimeZone getTimeZone()
        Get this person's declared time zone
        Returns:
        this person's declared time zone; null if time zone is unknown.
      • getZoneId

        public ZoneId getZoneId()
        Get the time zone id
        Returns:
        the time zone id
        Since:
        6.1
      • getTimeZoneOffset

        public int getTimeZoneOffset()
        Get this person's declared time zone as minutes east of UTC.
        Returns:
        this person's declared time zone as minutes east of UTC. If the timezone is to the west of UTC it is negative.
      • hashCode

        public int hashCode()

        Hashcode is based only on the email address and timestamp.

        Overrides:
        hashCode in class Object
      • toExternalString

        public String toExternalString()
        Format for Git storage.
        Returns:
        a string in the git author format