Skip to content

Commit 8e5040d

Browse files
l46kokcopybara-github
authored andcommitted
Implement type() standard function, integrate in planner
PiperOrigin-RevId: 869950575
1 parent 1916266 commit 8e5040d

File tree

17 files changed

+418
-76
lines changed

17 files changed

+418
-76
lines changed

common/src/main/java/dev/cel/common/types/BUILD.bazel

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,10 +193,26 @@ java_library(
193193
deps = [
194194
":type_providers",
195195
":types",
196+
"@maven//:com_google_errorprone_error_prone_annotations",
196197
"@maven//:com_google_guava_guava",
197198
],
198199
)
199200

201+
cel_android_library(
202+
name = "default_type_provider_android",
203+
srcs = [
204+
"DefaultTypeProvider.java",
205+
],
206+
tags = [
207+
],
208+
deps = [
209+
":type_providers_android",
210+
":types_android",
211+
"@maven//:com_google_errorprone_error_prone_annotations",
212+
"@maven_android//:com_google_guava_guava",
213+
],
214+
)
215+
200216
cel_android_library(
201217
name = "cel_types_android",
202218
srcs = ["CelTypes.java"],

common/src/main/java/dev/cel/common/types/DefaultTypeProvider.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@
1616

1717
import com.google.common.collect.ImmutableCollection;
1818
import com.google.common.collect.ImmutableMap;
19+
import com.google.errorprone.annotations.Immutable;
1920
import java.util.Optional;
2021

2122
/** {@code DefaultTypeProvider} is a registry of common CEL types. */
23+
@Immutable
2224
public class DefaultTypeProvider implements CelTypeProvider {
2325

2426
private static final DefaultTypeProvider INSTANCE = new DefaultTypeProvider();
@@ -43,6 +45,7 @@ private DefaultTypeProvider() {
4345
typeMapBuilder.putAll(SimpleType.TYPE_MAP);
4446
typeMapBuilder.put("list", ListType.create(SimpleType.DYN));
4547
typeMapBuilder.put("map", MapType.create(SimpleType.DYN, SimpleType.DYN));
48+
typeMapBuilder.put("type", TypeType.create(SimpleType.DYN));
4649
typeMapBuilder.put(
4750
"optional_type",
4851
// TODO: Move to CelOptionalLibrary and register it on demand

common/types/BUILD.bazel

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,8 @@ cel_android_library(
8181
name = "cel_proto_types_android",
8282
exports = ["//common/src/main/java/dev/cel/common/types:cel_proto_types_android"],
8383
)
84+
85+
cel_android_library(
86+
name = "default_type_provider_android",
87+
exports = ["//common/src/main/java/dev/cel/common/types:default_type_provider_android"],
88+
)

runtime/BUILD.bazel

Lines changed: 71 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,31 @@ package(
99
java_library(
1010
name = "runtime",
1111
exports = [
12+
":descriptor_message_provider",
1213
":evaluation_exception",
14+
":function_overload",
1315
":late_function_binding",
1416
":metadata",
17+
":runtime_factory",
18+
":runtime_legacy_impl",
19+
":variable_resolver",
1520
"//runtime/src/main/java/dev/cel/runtime",
16-
"//runtime/src/main/java/dev/cel/runtime:descriptor_message_provider",
17-
"//runtime/src/main/java/dev/cel/runtime:function_overload",
1821
"//runtime/src/main/java/dev/cel/runtime:runtime_type_provider",
19-
"//runtime/src/main/java/dev/cel/runtime:variable_resolver",
22+
],
23+
)
24+
25+
java_library(
26+
name = "runtime_factory",
27+
exports = [
28+
"//runtime/src/main/java/dev/cel/runtime:runtime_factory",
29+
],
30+
)
31+
32+
java_library(
33+
name = "runtime_legacy_impl",
34+
visibility = ["//:internal"],
35+
exports = [
36+
"//runtime/src/main/java/dev/cel/runtime:runtime_legacy_impl",
2037
],
2138
)
2239

@@ -28,6 +45,14 @@ java_library(
2845
],
2946
)
3047

48+
cel_android_library(
49+
name = "dispatcher_android",
50+
visibility = ["//:internal"],
51+
exports = [
52+
"//runtime/src/main/java/dev/cel/runtime:dispatcher_android",
53+
],
54+
)
55+
3156
java_library(
3257
name = "standard_functions",
3358
exports = [
@@ -43,6 +68,14 @@ java_library(
4368
],
4469
)
4570

71+
cel_android_library(
72+
name = "activation_android",
73+
visibility = ["//:internal"],
74+
exports = [
75+
"//runtime/src/main/java/dev/cel/runtime:activation_android",
76+
],
77+
)
78+
4679
java_library(
4780
name = "proto_message_activation_factory",
4881
visibility = ["//:internal"],
@@ -79,6 +112,7 @@ cel_android_library(
79112

80113
java_library(
81114
name = "evaluation_exception_builder",
115+
# used_by_android
82116
exports = ["//runtime/src/main/java/dev/cel/runtime:evaluation_exception_builder"],
83117
)
84118

@@ -112,6 +146,12 @@ java_library(
112146
exports = ["//runtime/src/main/java/dev/cel/runtime:interpretable"],
113147
)
114148

149+
cel_android_library(
150+
name = "interpretable_android",
151+
visibility = ["//:internal"],
152+
exports = ["//runtime/src/main/java/dev/cel/runtime:interpretable_android"],
153+
)
154+
115155
java_library(
116156
name = "runtime_helpers",
117157
visibility = ["//:internal"],
@@ -154,6 +194,18 @@ java_library(
154194
exports = ["//runtime/src/main/java/dev/cel/runtime:type_resolver"],
155195
)
156196

197+
cel_android_library(
198+
name = "type_resolver_android",
199+
visibility = ["//:internal"],
200+
exports = ["//runtime/src/main/java/dev/cel/runtime:type_resolver_android"],
201+
)
202+
203+
java_library(
204+
name = "descriptor_type_resolver",
205+
visibility = ["//:internal"],
206+
exports = ["//runtime/src/main/java/dev/cel/runtime:descriptor_type_resolver"],
207+
)
208+
157209
java_library(
158210
name = "unknown_attributes",
159211
exports = ["//runtime/src/main/java/dev/cel/runtime:unknown_attributes"],
@@ -253,23 +305,35 @@ cel_android_library(
253305

254306
java_library(
255307
name = "metadata",
308+
# used_by_android
256309
visibility = ["//:internal"],
257310
exports = ["//runtime/src/main/java/dev/cel/runtime:metadata"],
258311
)
259312

313+
java_library(
314+
name = "variable_resolver",
315+
# used_by_android
316+
exports = ["//runtime/src/main/java/dev/cel/runtime:variable_resolver"],
317+
)
318+
260319
java_library(
261320
name = "concatenated_list_view",
321+
# used_by_android
262322
visibility = ["//:internal"],
263323
exports = [
264324
"//runtime/src/main/java/dev/cel/runtime:concatenated_list_view",
265325
],
266326
)
267327

268328
java_library(
269-
name = "variable_resolver",
270-
exports = [
271-
"//runtime/src/main/java/dev/cel/runtime:variable_resolver",
272-
],
329+
name = "function_overload",
330+
exports = ["//runtime/src/main/java/dev/cel/runtime:function_overload"],
331+
)
332+
333+
java_library(
334+
name = "descriptor_message_provider",
335+
visibility = ["//:internal"],
336+
exports = ["//runtime/src/main/java/dev/cel/runtime:descriptor_message_provider"],
273337
)
274338

275339
java_library(

0 commit comments

Comments
 (0)