Enum Class ConversionCategory
- All Implemented Interfaces:
Serializable
,Comparable<ConversionCategory>
,Constable
Elements of this enumeration are used in a
Format
annotation to indicate the valid
types that may be passed as a format parameter. For example:
The annotation indicates that the format string requires any Object as the first parameter (@Format({GENERAL, INT}) String f = "String '%s' has length %d"; String.format(f, "Example", 7);
GENERAL
) and an integer as the second parameter (INT
).- See Also:
- See the Checker Framework Manual:
- Format String Checker
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
Enum Constant Summary
Enum ConstantDescriptionUse if the parameter is of a basic types which represent Unicode characters: char, Character, byte, Byte, short, and Short.Use if the parameter is both a char and an int.Use if the parameter is a floating-point type: float, Float, double, Double, and BigDecimal.Use if the parameter can be of any type.Use if the parameter is an integral type: byte, Byte, short, Short, int and Integer, long, Long, and BigInteger.Use if the parameter is both an int and a time.Use if no object of any type can be passed as parameter.Use if the parameter is a type which is capable of encoding a date or time: long, Long, Calendar, and Date.Use if a parameter is not used by the formatter. -
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic ConversionCategory
fromConversionChar
(char c) Converts a conversion character to a category.static ConversionCategory
Returns the intersection of two categories.boolean
isAssignableFrom
(Class<?> argType) Returns true ifargType
can be an argument used by this format specifier.static boolean
toString()
Returns a pretty printedConversionCategory
.static ConversionCategory
Returns the union of two categories.static ConversionCategory
Returns the enum constant of this class with the specified name.static ConversionCategory[]
values()
Returns an array containing the constants of this enum class, in the order they are declared.
-
Enum Constant Details
-
GENERAL
Use if the parameter can be of any type. Applicable for conversions b, B, h, H, s, S. -
CHAR
Use if the parameter is of a basic types which represent Unicode characters: char, Character, byte, Byte, short, and Short. This conversion may also be applied to the types int and Integer when Character.isValidCodePoint(int) returns true. Applicable for conversions c, C. -
INT
Use if the parameter is an integral type: byte, Byte, short, Short, int and Integer, long, Long, and BigInteger. Applicable for conversions d, o, x, X. -
FLOAT
Use if the parameter is a floating-point type: float, Float, double, Double, and BigDecimal. Applicable for conversions e, E, f, g, G, a, A. -
TIME
Use if the parameter is a type which is capable of encoding a date or time: long, Long, Calendar, and Date. Applicable for conversions t, T. -
CHAR_AND_INT
Use if the parameter is both a char and an int.In a format string, multiple conversions may be applied to the same parameter. This is seldom needed, but the following is an example of such use:
format("Test %1$c %1$d", (int)42);
In this example, the first parameter is interpreted as both a character and an int, therefore the parameter must be compatible with both conversion, and can therefore neither be char nor long. This intersection of conversions is called CHAR_AND_INT.One other conversion intersection is interesting, namely the intersection of INT and TIME, resulting in INT_AND_TIME.
All other intersection either lead to an already existing type, or NULL, in which case it is illegal to pass object's of any type as parameter.
-
INT_AND_TIME
Use if the parameter is both an int and a time.- See Also:
-
NULL
Use if no object of any type can be passed as parameter. In this case, the only legal value is null. This is seldomly needed, and indicates an error in most cases. For example:format("Test %1$f %1$d", null);
Only null can be legally passed, passing a value such as 4 or 4.2 would lead to an exception. -
UNUSED
Use if a parameter is not used by the formatter. This is seldomly needed, and indicates an error in most cases. For example:format("Test %1$s %3$s", "a","unused","b");
Only the first "a" and third "b" parameters are used, the second "unused" parameter is ignored.
-
-
Field Details
-
types
The argument types. Null means every type. -
chars
The format specifier characters. Null means users cannot specify it directly.
-
-
Method Details
-
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
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 nameNullPointerException
- if the argument is null
-
fromConversionChar
Converts a conversion character to a category. For example:ConversionCategory.fromConversionChar('d') == ConversionCategory.INT
- Parameters:
c
- a conversion character- Returns:
- the category for the given conversion character
-
isSubsetOf
-
intersect
Returns the intersection of two categories. This is seldomly needed.ConversionCategory.intersect(INT, TIME) == INT_AND_TIME;
- Parameters:
a
- a categoryb
- a category- Returns:
- the intersection of the two categories (their greatest lower bound)
-
union
Returns the union of two categories. This is seldomly needed.ConversionCategory.union(INT, TIME) == GENERAL;
- Parameters:
a
- a categoryb
- a category- Returns:
- the union of the two categories (their least upper bound)
-
isAssignableFrom
Returns true ifargType
can be an argument used by this format specifier.- Parameters:
argType
- an argument type- Returns:
- true if
argType
can be an argument used by this format specifier
-
toString
Returns a pretty printedConversionCategory
.- Overrides:
toString
in classEnum<ConversionCategory>
-