Class IamGroupValue


  • public class IamGroupValue
    extends java.lang.Object

    Wrapper class for an "open" enum. "Open" enums are those that are expected to evolve (particularly with the addition of enum members over time). If an open enum is used then the appearance of unexpected enum values (say in a response from an updated an API) will not bring about a runtime error thus ensuring that non-updated client versions can continue to work without error.

    Note that instances are immutable and are singletons (an internal thread-safe cache is maintained to ensure that). As a consequence instances created with the same value will satisfy reference equality (via ==).

    This class is intended to emulate an enum (in terms of common usage and with reference equality) but with the ability to carry unknown values. Unfortunately Java does not permit the use of an instance in a switch expression but you can use the asEnum() method (after dealing with the `Optional` appropriately).

    • Method Detail

      • of

        public static IamGroupValue of​(java.lang.String value)
        Returns a IamGroupValue with the given value. For a specific value the returned object will always be a singleton so reference equality is satisfied when the values are the same.
        Parameters:
        value - value to be wrapped as IamGroupValue
      • value

        public java.lang.String value()
      • isKnown

        public boolean isKnown()
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object