Skip to content

Commit 6571f0d

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

File tree

5 files changed

+38
-3
lines changed

5 files changed

+38
-3
lines changed

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: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@
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.Collections;
30+
import java.util.List;
2731
import java.util.Map;
2832
import java.util.Optional;
2933

@@ -76,13 +80,23 @@ public abstract static class Builder {
7680

7781
public abstract Builder setMetadata(ImmutableMap<String, Object> value);
7882

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

8185
abstract Builder setImports(ImmutableList<Import> value);
8286

87+
public List<Import> imports() {
88+
return Collections.unmodifiableList(importList);
89+
}
90+
8391
@CanIgnoreReturnValue
8492
public Builder addImport(Import value) {
85-
importsBuilder().add(value);
93+
importList.add(value);
94+
return this;
95+
}
96+
97+
@CanIgnoreReturnValue
98+
public Builder addImports(Collection<Import> values) {
99+
importList.addAll(values);
86100
return this;
87101
}
88102

@@ -98,7 +112,12 @@ public Builder putMetadata(Map<String, Object> map) {
98112
return this;
99113
}
100114

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

104123
/**

0 commit comments

Comments
 (0)