Class OpaqueType


  • @CheckReturnValue
    @Immutable
    public abstract class OpaqueType
    extends CelType
    An opaque type's properties may only be accessed via function calls associated with the type.

    Apart from protobuf messages, opaque types are the preferred extension mechanism for introducing first-order types into CEL.

    • Constructor Detail

      • OpaqueType

        public OpaqueType()
    • Method Detail

      • kind

        public abstract CelKind kind()
        Description copied from class: CelType
        Return the type CelKind.
        Specified by:
        kind in class CelType
      • name

        public abstract java.lang.String name()
        Description copied from class: CelType
        Return 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.

        Specified by:
        name in class CelType
      • parameters

        public abstract com.google.common.collect.ImmutableList<CelType> parameters()
        Description copied from class: CelType
        Return the type parameters. e.g. a map's key and value CelType.
        Overrides:
        parameters in class CelType
      • withParameters

        public CelType withParameters​(com.google.common.collect.ImmutableList<CelType> parameters)
        Description copied from class: CelType
        Instantiate a new copy of this type with alternative parameters.

        If the CelType does not have any parameters, then the return value defaults to the original type instance.

        Overrides:
        withParameters in class CelType
      • create

        public static OpaqueType create​(java.lang.String typeName,
                                        CelType... parameters)
      • create

        public static OpaqueType create​(java.lang.String typeName,
                                        com.google.common.collect.ImmutableList<CelType> parameters)