Package dev.cel.common.types
Class EnumType
- java.lang.Object
-
- dev.cel.common.types.CelType
-
- dev.cel.common.types.EnumType
-
@CheckReturnValue public final class EnumType extends CelType
Enum types to support strongly typed enums with lookups by value name and number.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceEnumType.EnumNameResolverFunctional interface for looking up an enum name by its number.static interfaceEnumType.EnumNumberResolverFunctional interface for lookup up an enum number by its local or fully qualified name.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static EnumTypecreate(java.lang.String name, com.google.common.collect.ImmutableMap<java.lang.String,java.lang.Integer> enumNameToNumber)static EnumTypecreate(java.lang.String name, EnumType.EnumNumberResolver enumNumberResolver, EnumType.EnumNameResolver enumNameResolver)java.util.Optional<java.lang.String>findNameByNumber(java.lang.Integer enumNumber)Find an enum name byenumNumber.java.util.Optional<java.lang.Integer>findNumberByName(java.lang.String enumName)Find an enum number byenumName.booleanisAssignableFrom(CelType other)Determine whetherthistype is assignable from theothertype value.CelKindkind()Return the typeCelKind.java.lang.Stringname()Return the type name.-
Methods inherited from class dev.cel.common.types.CelType
parameters, withFreshTypeParamVariables, withParameters
-
-
-
-
Method Detail
-
name
public java.lang.String name()
Description copied from class:CelTypeReturn the type name.For struct types this should be the fully qualified name. Be wary of introducing unqualified type names as they may collide with future CEL type.
-
isAssignableFrom
public boolean isAssignableFrom(CelType other)
Description copied from class:CelTypeDetermine whetherthistype is assignable from theothertype value.Defaults to an equality test.
- Overrides:
isAssignableFromin classCelType
-
findNumberByName
public java.util.Optional<java.lang.Integer> findNumberByName(java.lang.String enumName)
Find an enum number byenumName.
-
findNameByNumber
public java.util.Optional<java.lang.String> findNameByNumber(java.lang.Integer enumNumber)
Find an enum name byenumNumber.
-
create
public static EnumType create(java.lang.String name, com.google.common.collect.ImmutableMap<java.lang.String,java.lang.Integer> enumNameToNumber)
-
create
public static EnumType create(java.lang.String name, EnumType.EnumNumberResolver enumNumberResolver, EnumType.EnumNameResolver enumNameResolver)
-
-