Package dev.cel.common
Class CelOverloadDecl
- java.lang.Object
-
- dev.cel.common.CelOverloadDecl
-
@Immutable public abstract class CelOverloadDecl extends java.lang.Object
Abstract representation of a CEL function overload declaration.An overload indicates a function's parameter types and return type, where types are specified via CEL native type representations (See:
CelType
.An overload is declared in either a global function `Ex: f(x, ...)` or a method call style `Ex: x.f(...)`.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CelOverloadDecl.Builder
Builder for configuring theCelOverloadDecl
.
-
Constructor Summary
Constructors Constructor Description CelOverloadDecl()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static Decl.FunctionDecl.Overload
celOverloadToOverload(CelOverloadDecl overload)
Converts aCelOverloadDecl
to a protobuf equivalent formDecl.FunctionDecl.Overload
abstract java.lang.String
doc()
Documentation string for the overload.abstract boolean
isInstanceFunction()
Denotes whether the function is declared in a global function `Ex: f(x, ...)` or a method call style `Ex: x.f(...)`.static CelOverloadDecl.Builder
newBuilder()
Create a new builder to construct aCelOverloadDecl
instancestatic CelOverloadDecl
newGlobalOverload(java.lang.String overloadId, CelType resultType, CelType... paramTypes)
Helper method for declaring a global function overloadstatic CelOverloadDecl
newGlobalOverload(java.lang.String overloadId, CelType resultType, java.util.List<CelType> paramTypes)
Helper method for declaring a global function overloadstatic CelOverloadDecl
newGlobalOverload(java.lang.String overloadId, java.lang.String doc, CelType resultType, CelType... paramTypes)
Helper method for declaring a global function overloadstatic CelOverloadDecl
newGlobalOverload(java.lang.String overloadId, java.lang.String doc, CelType resultType, java.util.List<CelType> paramTypes)
Helper method for declaring a global function overloadstatic CelOverloadDecl
newMemberOverload(java.lang.String overloadId, CelType resultType, CelType... paramTypes)
Helper method for declaring a member function overloadstatic CelOverloadDecl
newMemberOverload(java.lang.String overloadId, CelType resultType, java.util.List<CelType> paramTypes)
Helper method for declaring a member function overloadstatic CelOverloadDecl
newMemberOverload(java.lang.String overloadId, java.lang.String doc, CelType resultType, CelType... paramTypes)
Helper method for declaring a member function overloadstatic CelOverloadDecl
newMemberOverload(java.lang.String overloadId, java.lang.String doc, CelType resultType, java.util.List<CelType> paramTypes)
Helper method for declaring a member function overloadabstract java.lang.String
overloadId()
Required.static CelOverloadDecl
overloadToCelOverload(Decl.FunctionDecl.Overload overload)
abstract com.google.common.collect.ImmutableList<CelType>
parameterTypes()
List of function parameter type values.abstract CelType
resultType()
Required.abstract CelOverloadDecl.Builder
toBuilder()
abstract com.google.common.collect.ImmutableSet<java.lang.String>
typeParameterNames()
The type param names associated with the function declaration.
-
-
-
Method Detail
-
overloadId
public abstract java.lang.String overloadId()
Required. Globally unique overload name.
-
parameterTypes
public abstract com.google.common.collect.ImmutableList<CelType> parameterTypes()
List of function parameter type values.Param types are disjoint after generic type parameters have been replaced with the type `DYN`. Since the `DYN` type is compatible with any other type, this means that if `A` is a type parameter, the function types `int` and `int
` are not disjoint. Likewise, `map ` is not disjoint from `map `. When the
resultType()
of a function is a generic type param, the type param name also appears as the `type` of on at least one params.
-
typeParameterNames
public abstract com.google.common.collect.ImmutableSet<java.lang.String> typeParameterNames()
The type param names associated with the function declaration.
-
resultType
public abstract CelType resultType()
Required. The result type of the function. For example, the operator `string.isEmpty()` would have `result_type` of `CelKind.BOOL`.
-
isInstanceFunction
public abstract boolean isInstanceFunction()
Denotes whether the function is declared in a global function `Ex: f(x, ...)` or a method call style `Ex: x.f(...)`.
-
doc
public abstract java.lang.String doc()
Documentation string for the overload.
-
toBuilder
public abstract CelOverloadDecl.Builder toBuilder()
-
newBuilder
public static CelOverloadDecl.Builder newBuilder()
Create a new builder to construct aCelOverloadDecl
instance
-
newMemberOverload
@CheckReturnValue public static CelOverloadDecl newMemberOverload(java.lang.String overloadId, CelType resultType, CelType... paramTypes)
Helper method for declaring a member function overload
-
newMemberOverload
@CheckReturnValue public static CelOverloadDecl newMemberOverload(java.lang.String overloadId, CelType resultType, java.util.List<CelType> paramTypes)
Helper method for declaring a member function overload
-
newMemberOverload
@CheckReturnValue public static CelOverloadDecl newMemberOverload(java.lang.String overloadId, java.lang.String doc, CelType resultType, CelType... paramTypes)
Helper method for declaring a member function overload
-
newMemberOverload
@CheckReturnValue public static CelOverloadDecl newMemberOverload(java.lang.String overloadId, java.lang.String doc, CelType resultType, java.util.List<CelType> paramTypes)
Helper method for declaring a member function overload
-
newGlobalOverload
@CheckReturnValue public static CelOverloadDecl newGlobalOverload(java.lang.String overloadId, CelType resultType, CelType... paramTypes)
Helper method for declaring a global function overload
-
newGlobalOverload
@CheckReturnValue public static CelOverloadDecl newGlobalOverload(java.lang.String overloadId, CelType resultType, java.util.List<CelType> paramTypes)
Helper method for declaring a global function overload
-
newGlobalOverload
@CheckReturnValue public static CelOverloadDecl newGlobalOverload(java.lang.String overloadId, java.lang.String doc, CelType resultType, CelType... paramTypes)
Helper method for declaring a global function overload
-
newGlobalOverload
@CheckReturnValue public static CelOverloadDecl newGlobalOverload(java.lang.String overloadId, java.lang.String doc, CelType resultType, java.util.List<CelType> paramTypes)
Helper method for declaring a global function overload
-
celOverloadToOverload
public static Decl.FunctionDecl.Overload celOverloadToOverload(CelOverloadDecl overload)
Converts aCelOverloadDecl
to a protobuf equivalent formDecl.FunctionDecl.Overload
-
overloadToCelOverload
public static CelOverloadDecl overloadToCelOverload(Decl.FunctionDecl.Overload overload)
-
-