Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions bundle/src/main/java/dev/cel/bundle/CelEnvironment.java
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ public abstract class CelEnvironment {
@AutoValue.Builder
public abstract static class Builder {

public abstract ImmutableSet.Builder<ExtensionConfig> extensionsBuilder();

// For testing only, to empty out the source.
abstract Builder setSource(Optional<Source> source);

Expand All @@ -112,7 +114,18 @@ public abstract static class Builder {

public abstract Builder setContainer(String container);

public abstract Builder setExtensions(ImmutableSet<ExtensionConfig> extensions);
@CanIgnoreReturnValue
public Builder addExtensions(ExtensionConfig... extensions) {
checkNotNull(extensions);
return addExtensions(Arrays.asList(extensions));
}

@CanIgnoreReturnValue
public Builder addExtensions(Iterable<ExtensionConfig> extensions) {
checkNotNull(extensions);
this.extensionsBuilder().addAll(extensions);
return this;
}

@CanIgnoreReturnValue
public Builder setVariables(VariableDecl... variables) {
Expand All @@ -138,7 +151,6 @@ public static Builder newBuilder() {
.setName("")
.setDescription("")
.setContainer("")
.setExtensions(ImmutableSet.of())
.setVariables(ImmutableSet.of())
.setFunctions(ImmutableSet.of());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -475,7 +475,7 @@ private CelEnvironment.Builder parseConfig(ParserContext<Node> ctx, Node node) {
builder.setFunctions(parseFunctions(ctx, valueNode));
break;
case "extensions":
builder.setExtensions(parseExtensions(ctx, valueNode));
builder.addExtensions(parseExtensions(ctx, valueNode));
break;
default:
ctx.reportError(id, "Unknown config tag: " + fieldName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public void extend_allExtensions() throws Exception {
ExtensionConfig.of("sets"),
ExtensionConfig.of("strings"));
CelEnvironment environment =
CelEnvironment.newBuilder().setExtensions(extensionConfigs).build();
CelEnvironment.newBuilder().addExtensions(extensionConfigs).build();

Cel cel = environment.extend(CelFactory.standardCelBuilder().build(), CelOptions.DEFAULT);
CelAbstractSyntaxTree ast =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ public void environment_setExtensions() throws Exception {
.isEqualTo(
CelEnvironment.newBuilder()
.setSource(environment.source().get())
.setExtensions(
.addExtensions(
ImmutableSet.of(
ExtensionConfig.of("bindings"),
ExtensionConfig.of("encoders"),
Expand All @@ -125,7 +125,7 @@ public void environment_setExtensionVersionToLatest() throws Exception {
.isEqualTo(
CelEnvironment.newBuilder()
.setSource(environment.source().get())
.setExtensions(ImmutableSet.of(ExtensionConfig.of("bindings", Integer.MAX_VALUE)))
.addExtensions(ImmutableSet.of(ExtensionConfig.of("bindings", Integer.MAX_VALUE)))
.build());
assertThat(environment.extend(CEL_WITH_MESSAGE_TYPES, CelOptions.DEFAULT)).isNotNull();
}
Expand Down Expand Up @@ -675,7 +675,7 @@ private enum EnvironmentYamlResourceTestCase {
CelEnvironment.newBuilder()
.setName("extended-env")
.setContainer("cel.expr")
.setExtensions(
.addExtensions(
ImmutableSet.of(
ExtensionConfig.of("optional", 2),
ExtensionConfig.of("math", Integer.MAX_VALUE)))
Expand Down