Skip to content

Commit cbc93d8

Browse files
l46kokcopybara-github
authored andcommitted
Internal Changes
PiperOrigin-RevId: 789859483
1 parent 8d99e46 commit cbc93d8

5 files changed

Lines changed: 37 additions & 3 deletions

File tree

bundle/src/main/java/dev/cel/bundle/CelBuilder.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ public interface CelBuilder {
8888
@Deprecated
8989
CelBuilder setContainer(String container);
9090

91+
/** Retrieves the currently configured {@link CelContainer} in the builder. */
92+
CelContainer container();
93+
9194
/**
9295
* Set the {@link CelContainer} to use as the namespace for resolving CEL expression variables and
9396
* functions.

bundle/src/main/java/dev/cel/bundle/CelImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,11 @@ public CelBuilder setContainer(String container) {
195195
return this;
196196
}
197197

198+
@Override
199+
public CelContainer container() {
200+
return compilerBuilder.container();
201+
}
202+
198203
@Override
199204
public CelBuilder setContainer(CelContainer container) {
200205
compilerBuilder.setContainer(container);

compiler/src/main/java/dev/cel/compiler/CelCompilerBuilder.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ public interface CelCompilerBuilder {
8989
@CanIgnoreReturnValue
9090
CelCompilerBuilder setContainer(CelContainer container);
9191

92+
/** Retrieves the currently configured {@link CelContainer} in the builder. */
93+
CelContainer container();
94+
9295
/** Add a variable declaration with a given {@code name} and proto based {@link Type}. */
9396
@CanIgnoreReturnValue
9497
CelCompilerBuilder addVar(String name, Type type);

compiler/src/main/java/dev/cel/compiler/CelCompilerImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,11 @@ public CelCompilerBuilder setContainer(CelContainer container) {
170170
return this;
171171
}
172172

173+
@Override
174+
public CelContainer container() {
175+
return checkerBuilder.container();
176+
}
177+
173178
@Override
174179
public CelCompilerBuilder addVar(String name, Type type) {
175180
return addVar(name, CelProtoTypes.typeToCelType(type));

policy/src/main/java/dev/cel/policy/CelPolicy.java

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@
2323
import com.google.common.collect.ImmutableSet;
2424
import com.google.errorprone.annotations.CanIgnoreReturnValue;
2525
import dev.cel.common.formats.ValueString;
26+
import java.util.ArrayList;
2627
import java.util.Arrays;
28+
import java.util.Collection;
29+
import java.util.List;
2730
import java.util.Map;
2831
import java.util.Optional;
2932

@@ -76,13 +79,23 @@ public abstract static class Builder {
7679

7780
public abstract Builder setMetadata(ImmutableMap<String, Object> value);
7881

79-
abstract ImmutableList.Builder<Import> importsBuilder();
82+
private final ArrayList<Import> importList = new ArrayList<>();
8083

8184
abstract Builder setImports(ImmutableList<Import> value);
8285

86+
public List<Import> imports() {
87+
return importList;
88+
}
89+
8390
@CanIgnoreReturnValue
8491
public Builder addImport(Import value) {
85-
importsBuilder().add(value);
92+
importList.add(value);
93+
return this;
94+
}
95+
96+
@CanIgnoreReturnValue
97+
public Builder addImports(Collection<Import> values) {
98+
importList.addAll(values);
8699
return this;
87100
}
88101

@@ -98,7 +111,12 @@ public Builder putMetadata(Map<String, Object> map) {
98111
return this;
99112
}
100113

101-
public abstract CelPolicy build();
114+
abstract CelPolicy autoBuild();
115+
116+
public CelPolicy build() {
117+
setImports(ImmutableList.copyOf(importList));
118+
return autoBuild();
119+
}
102120
}
103121

104122
/**

0 commit comments

Comments
 (0)