Enum Class Pronoun

java.lang.Object
java.lang.Enum<Pronoun>
com.github.yellowstonegames.text.Pronoun
All Implemented Interfaces:
Serializable, Comparable<Pronoun>, Constable

public enum Pronoun extends Enum<Pronoun>
Properties of nouns needed to correctly conjugate those nouns and refer to them with pronouns, such as genders. Includes parts of speech, which only are concerned with whether they refer to a singular noun or a plural noun, and genders for when a gendered pronoun is needed. This provides substantial support for uncommon cases regarding gender and pronoun preferences. That said, gender and pronoun preference can be incredibly hard to handle. The simplest cases are for first- and second-person pronouns; here we have "I/me/my/myself" for FIRST_PERSON_SINGULAR, "you/you/your/yourself" for SECOND_PERSON_SINGULAR, "we/us/our/ourselves" for FIRST_PERSON_PLURAL, and "you/you/your/yourselves" for SECOND_PERSON_PLURAL; there are more pronouns this can produce, but they aren't listed here. Third-person pronouns are considerably more challenging because English sporadically considers gender as part of conjugation, but doesn't provide a universally-acceptable set of gendered pronouns.
This at least tries to provide pronoun handling for the common cases, such as "you" not needing a gendered pronoun at all (it uses SECOND_PERSON_SINGULAR), and supports male, female, genderless (using "it" and related forms; preferred especially for things that aren't alive, and in most cases not recommended for people), "unspecified" (using "they" in place of "he" or "she"; preferred in some cases when describing someone with a non-specific gender or an unknown gender) pronouns, and group for when a group of individuals, regardless of gender or genders, is referred to with a single pronoun. As mentioned, this has support for some uncommon situations, like additional gender (as in, a gender that is in addition to male and female but that is not genderless, which has a clear use case when describing non-human species, and a more delicate use for humans who use non-binary gender pronouns; hopefully "xe" will be acceptable), and finally a "special case" pronoun that is unpronounceable and, if given special processing, can be used as a replacement target for customized pronouns. For the additional gender, the non-binary gendered pronouns are modified from the male pronouns by replacing 'h' with 'x' (he becomes xe, his becomes xis). The "special case" pronouns replace the 'h' in the male pronouns with 'qvq', except for in one case. Where, if the female pronoun were used, it would be "hers", but the male pronoun in that case would be "his", changing the male pronoun would lead to a difficult-to-replace case because "his" is also used in the case where the female pronoun is the usefully distinct "her". Here, the "special case" gender diverges from what it usually does, and uses "qvqims" in place of "his" or "hers". The "special case" pronouns should be replaced before being displayed, since they look like gibberish or a glitch and so are probably confusing out of context.
The documentation for each constant starts with what "@I @am @my own boss@ss." would produce if that constant is given as a userTrait to Messaging.transform(CharSequence, String, Pronoun). Each constant also has a section at the end for the terms that are most-commonly changed by the Pronoun, like "name" for "@name" and "myself" for "@myself", with the section below that containing the terms those change to with that Pronoun. For instance, with SECOND_PERSON_SINGULAR, "@mine" changes to "yours".
  • Enum Constant Details

    • FIRST_PERSON_SINGULAR

      public static final Pronoun FIRST_PERSON_SINGULAR
      As in, "I am my own boss." Doesn't reference gender.
      name/name_s/i/me/my/mine/myself
      I/my/I/me/my/mine/myself "^i hurr^$$$" becomes "I hurry". Does not pluralize.
    • SECOND_PERSON_SINGULAR

      public static final Pronoun SECOND_PERSON_SINGULAR
      As in, "You are your own boss." Doesn't reference gender.
      name/name_s/i/me/my/mine/myself
      you/your/you/you/your/yours/yourself "^i hurr^$$$" becomes "you hurry". Does not pluralize.
    • FIRST_PERSON_PLURAL

      public static final Pronoun FIRST_PERSON_PLURAL
      As in, "We are our own bosses." Doesn't reference gender, and applies to groups.
      name/name_s/i/me/my/mine/myself
      we/our/we/us/our/ours/ourselves "^i hurr^$$$" becomes "we hurry". Pluralizes.
    • SECOND_PERSON_PLURAL

      public static final Pronoun SECOND_PERSON_PLURAL
      As in, "You are your own bosses." Doesn't reference gender, and applies to groups.
      name/name_s/i/me/my/mine/myself
      you/your/you/you/your/yours/yourselves "^i hurr^$$$" becomes "you hurry". Pluralizes.
    • NO_GENDER

      public static final Pronoun NO_GENDER
      Inanimate objects or beings without gender, as in "It is its own boss."
      name/name_s/i/me/my/mine/myself
      Name/Name's/it/it/its/its/itself "^i hurr^$$$" becomes "it hurries". Does not pluralize.
    • MALE_GENDER

      public static final Pronoun MALE_GENDER
      Male pronoun preference, as in "He is his own boss."
      name/name_s/i/me/my/mine/myself
      Name/Name's/he/he/his/his/himself "^i hurr^$$$" becomes "he hurries". Does not pluralize.
    • FEMALE_GENDER

      public static final Pronoun FEMALE_GENDER
      Female pronoun preference, as in "She is her own boss."
      name/name_s/i/me/my/mine/myself
      Name/Name's/she/she/her/hers/herself "^i hurr^$$$" becomes "she hurries". Does not pluralize.
    • UNSPECIFIED_GENDER

      public static final Pronoun UNSPECIFIED_GENDER
      "Singular they" pronoun preference or to be used when preference is unknown, as in "They are their own boss."
      name/name_s/i/me/my/mine/myself
      Name/Name's/they/them/their/theirs/themself "^i hurr^$$$" becomes "they hurry". Does not pluralize.
    • ADDITIONAL_GENDER

      public static final Pronoun ADDITIONAL_GENDER
      Third-gender pronoun preference, potentially relevant for cultures with non-binary gender terms. As in, "Xe is xis own boss."
      name/name_s/i/me/my/mine/myself
      Name/Name's/xe/xim/xis/xis/ximself "^i hurr^$$$" becomes "xe hurries". Does not pluralize.
    • SPECIAL_CASE_GENDER

      public static final Pronoun SPECIAL_CASE_GENDER
      Unpronounceable words that can be processed specially for more complex cases of pronoun preference. As in, "Qvqe is qvqis own boss."
      name/name_s/i/me/my/mine/myself
      Name/Name's/qvqe/qvqim/qvqis/qvqims/qvqimself "^i hurr^$$$" becomes "qvqe hurries". Does not pluralize.
    • GROUP

      public static final Pronoun GROUP
      Any third-person plural, as in "They are their own bosses." Not to be confused with UNSPECIFIED_GENDER, which is for singular beings, but usually uses "they" in the same way (not always).
      name/name_s/i/me/my/mine/myself
      Name/Name's/they/them/their/theirs/themselves "^i hurr^$$$" becomes "they hurry". Pluralizes.
  • Field Details

    • ALL

      public static final Pronoun[] ALL
      The cached result of values(), so you can avoid repeatedly allocating Pronoun[] objects. DO NOT MODIFY THIS ARRAY.
  • Method Details

    • values

      public static Pronoun[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static Pronoun valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • nameText

      public String nameText(String term)
    • name_sText

      public String name_sText(String term)
    • iText

      public String iText()
    • meText

      public String meText()
    • myText

      public String myText()
    • mineText

      public String mineText()
    • myselfText

      public String myselfText()
    • sText

      public String sText()
    • ssText

      public String ssText()
    • sssText

      public String sssText()
    • usiText

      public String usiText()
    • fvesText

      public String fvesText()
    • $Text

      public String $Text()
    • $$Text

      public String $$Text()
    • $$$Text

      public String $$$Text()
    • directText

      public String directText(String term)