Package jenkins.model

Class IdStrategy.CaseSensitiveEmailAddress

All Implemented Interfaces:
ExtensionPoint, Describable<IdStrategy>, Serializable, Comparator<String>
Enclosing class:
IdStrategy

public static class IdStrategy.CaseSensitiveEmailAddress extends IdStrategy.CaseSensitive implements Serializable
A case sensitive email address IdStrategy. Providing this implementation among the set of default implementations as given the history of misunderstanding in the Jenkins code base around ID case sensitivity, if not provided people will get this wrong.

Note: Not all email addresses are case sensitive. It is knowledge that belongs to the server that holds the mailbox. Most sane system administrators do not configure their accounts using case sensitive mailboxes but the RFC does allow them the option to configure that way. Domain names are always case insensitive per RFC.

See Also:
  • Constructor Details

    • CaseSensitiveEmailAddress

      @DataBoundConstructor public CaseSensitiveEmailAddress()
  • Method Details

    • equals

      public boolean equals(@NonNull String id1, @NonNull String id2)
      Description copied from class: IdStrategy
      Compare two IDs and return true IFF the two ids are the same. Normally we expect that this should be the same as IdStrategy.compare(String, String) being equal to 0, however there may be a specific reason for going beyond that, such as sorting id's case insensitively while treating them as case sensitive. Subclasses may want to override this naïve implementation that calls compare(id1, id2) == 0 for a more performant implementation.
      Overrides:
      equals in class IdStrategy.CaseSensitive
      Parameters:
      id1 - the first id.
      id2 - the second id.
      Returns:
      true if and only if the two ids are the same.
    • keyFor

      @NonNull public String keyFor(@NonNull String id)
      Description copied from class: IdStrategy
      Converts an ID into a key for use in a Java Map or similar. This controls uniqueness of ids and how multiple different ids may map to the same id. For example, all different capitalizations of "Foo" may map to the same value "foo".
      Overrides:
      keyFor in class IdStrategy
      Parameters:
      id - the id.
      Returns:
      the key.
    • compare

      public int compare(@NonNull String id1, @NonNull String id2)
      Description copied from class: IdStrategy
      Compare two IDs and return their sorting order. If IdStrategy.equals(String, String) is true then this must return 0 but IdStrategy.compare(String, String) returning 0 need not imply that IdStrategy.equals(String, String) is true.
      Specified by:
      compare in interface Comparator<String>
      Overrides:
      compare in class IdStrategy.CaseSensitive
      Parameters:
      id1 - the first id.
      id2 - the second id.
      Returns:
      the sorting order of the two IDs.