Enum ClosurePrimitive

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<ClosurePrimitive>

    public enum ClosurePrimitive
    extends java.lang.Enum<ClosurePrimitive>
    Enum of primitive functions that the compiler recognizes

    These correspond to the @closurePrimitive tag in code; in order to parse new primitives, add any entry to the list in parsing/ParserConfig.properties, then map it to an enum member in the idToEnum map.

    After typechecking is done, all calls to one of these primitive types should have their FunctionType annotated with the corresponding enum member. This is intended to make identifying these calls more accurate than previous methods of finding primitives by qualified name.

    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static ClosurePrimitive fromStringId​(java.lang.String id)
      Returns the ClosurePrimitive corresponding to the given string id.
      static ClosurePrimitive valueOf​(java.lang.String name)
      Returns the enum constant of this type with the specified name.
      static ClosurePrimitive[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      • Methods inherited from class java.lang.Enum

        clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Method Detail

      • values

        public static ClosurePrimitive[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (ClosurePrimitive c : ClosurePrimitive.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static ClosurePrimitive valueOf​(java.lang.String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (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:
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        java.lang.NullPointerException - if the argument is null
      • fromStringId

        @Nullable
        public static ClosurePrimitive fromStringId​(@Nullable
                                                    java.lang.String id)
        Returns the ClosurePrimitive corresponding to the given string id.

        This is to make reading @closurePrimitive easier in code. Using Enum.valueOf to parse closure primitive identifiers from JSDoc directly would require code like closurePrimitive {ASSERTS_FAIL}; instead we separate the string ids from the enum names.

        Parameters:
        id - a string id that normalized to an enum member, or null
        Returns:
        null if the argument is null, otherwise the corresponding enum member
        Throws:
        java.lang.IllegalArgumentException - if the id is non-null but does not match an enum member