diff --git a/bundle/src/main/java/dev/cel/bundle/CelImpl.java b/bundle/src/main/java/dev/cel/bundle/CelImpl.java index 6a0f63589..20086b114 100644 --- a/bundle/src/main/java/dev/cel/bundle/CelImpl.java +++ b/bundle/src/main/java/dev/cel/bundle/CelImpl.java @@ -112,7 +112,7 @@ static CelImpl combine(CelCompiler compiler, CelRuntime runtime) { * *

By default, {@link CelOptions#DEFAULT} are enabled, as is the CEL standard environment. */ - static Builder newBuilder(CelParserBuilder parserBuilder, CelCheckerBuilder checkerBuilder) { + static CelBuilder newBuilder(CelParserBuilder parserBuilder, CelCheckerBuilder checkerBuilder) { return new CelImpl.Builder(parserBuilder, checkerBuilder); } @@ -128,20 +128,20 @@ private Builder(CelParserBuilder parserBuilder, CelCheckerBuilder checkerBuilder } @Override - public Builder setOptions(CelOptions options) { + public CelBuilder setOptions(CelOptions options) { compilerBuilder.setOptions(options); runtimeBuilder.setOptions(options); return this; } @Override - public Builder setStandardMacros(CelStandardMacro... macros) { + public CelBuilder setStandardMacros(CelStandardMacro... macros) { compilerBuilder.setStandardMacros(macros); return this; } @Override - public Builder setStandardMacros(Iterable macros) { + public CelBuilder setStandardMacros(Iterable macros) { compilerBuilder.setStandardMacros(macros); return this; } @@ -160,103 +160,103 @@ public CelBuilder addMacros(Iterable macros) { } @Override - public Builder setContainer(String container) { + public CelBuilder setContainer(String container) { compilerBuilder.setContainer(container); return this; } @Override - public Builder addVar(String name, Type type) { + public CelBuilder addVar(String name, Type type) { compilerBuilder.addVar(name, type); return this; } @Override - public Builder addVar(String name, CelType type) { + public CelBuilder addVar(String name, CelType type) { compilerBuilder.addVar(name, type); return this; } @Override - public Builder addDeclarations(Decl... declarations) { + public CelBuilder addDeclarations(Decl... declarations) { compilerBuilder.addDeclarations(declarations); return this; } @Override - public Builder addDeclarations(Iterable declarations) { + public CelBuilder addDeclarations(Iterable declarations) { compilerBuilder.addDeclarations(declarations); return this; } @Override - public Builder addFunctionDeclarations(CelFunctionDecl... celFunctionDecls) { + public CelBuilder addFunctionDeclarations(CelFunctionDecl... celFunctionDecls) { compilerBuilder.addFunctionDeclarations(celFunctionDecls); return this; } @Override - public Builder addFunctionDeclarations(Iterable celFunctionDecls) { + public CelBuilder addFunctionDeclarations(Iterable celFunctionDecls) { compilerBuilder.addFunctionDeclarations(celFunctionDecls); return this; } @Override - public Builder addVarDeclarations(CelVarDecl... celVarDecls) { + public CelBuilder addVarDeclarations(CelVarDecl... celVarDecls) { compilerBuilder.addVarDeclarations(celVarDecls); return this; } @Override - public Builder addVarDeclarations(Iterable celVarDecls) { + public CelBuilder addVarDeclarations(Iterable celVarDecls) { compilerBuilder.addVarDeclarations(celVarDecls); return this; } @Override - public Builder addProtoTypeMasks(ProtoTypeMask... typeMasks) { + public CelBuilder addProtoTypeMasks(ProtoTypeMask... typeMasks) { compilerBuilder.addProtoTypeMasks(typeMasks); return this; } @Override - public Builder addProtoTypeMasks(Iterable typeMasks) { + public CelBuilder addProtoTypeMasks(Iterable typeMasks) { compilerBuilder.addProtoTypeMasks(typeMasks); return this; } @Override - public Builder addFunctionBindings(CelRuntime.CelFunctionBinding... bindings) { + public CelBuilder addFunctionBindings(CelRuntime.CelFunctionBinding... bindings) { runtimeBuilder.addFunctionBindings(bindings); return this; } @Override - public Builder addFunctionBindings(Iterable bindings) { + public CelBuilder addFunctionBindings(Iterable bindings) { runtimeBuilder.addFunctionBindings(bindings); return this; } @Override - public Builder setResultType(CelType resultType) { + public CelBuilder setResultType(CelType resultType) { checkNotNull(resultType); return setProtoResultType(CelTypes.celTypeToType(resultType)); } @Override - public Builder setProtoResultType(Type resultType) { + public CelBuilder setProtoResultType(Type resultType) { compilerBuilder.setProtoResultType(resultType); return this; } @Override - public Builder setTypeFactory(Function typeFactory) { + public CelBuilder setTypeFactory(Function typeFactory) { runtimeBuilder.setTypeFactory(typeFactory); return this; } @Override - public Builder setValueProvider(CelValueProvider celValueProvider) { + public CelBuilder setValueProvider(CelValueProvider celValueProvider) { runtimeBuilder.setValueProvider(celValueProvider); return this; } @@ -269,41 +269,41 @@ public Builder setTypeProvider(TypeProvider typeProvider) { } @Override - public Builder setTypeProvider(CelTypeProvider celTypeProvider) { + public CelBuilder setTypeProvider(CelTypeProvider celTypeProvider) { compilerBuilder.setTypeProvider(celTypeProvider); return this; } @Override - public Builder addMessageTypes(Descriptor... descriptors) { + public CelBuilder addMessageTypes(Descriptor... descriptors) { compilerBuilder.addMessageTypes(descriptors); runtimeBuilder.addMessageTypes(descriptors); return this; } @Override - public Builder addMessageTypes(Iterable descriptors) { + public CelBuilder addMessageTypes(Iterable descriptors) { compilerBuilder.addMessageTypes(descriptors); runtimeBuilder.addMessageTypes(descriptors); return this; } @Override - public Builder addFileTypes(FileDescriptor... fileDescriptors) { + public CelBuilder addFileTypes(FileDescriptor... fileDescriptors) { compilerBuilder.addFileTypes(fileDescriptors); runtimeBuilder.addFileTypes(fileDescriptors); return this; } @Override - public Builder addFileTypes(Iterable fileDescriptors) { + public CelBuilder addFileTypes(Iterable fileDescriptors) { compilerBuilder.addFileTypes(fileDescriptors); runtimeBuilder.addFileTypes(fileDescriptors); return this; } @Override - public Builder addFileTypes(FileDescriptorSet fileDescriptorSet) { + public CelBuilder addFileTypes(FileDescriptorSet fileDescriptorSet) { // Note: The convert method here constructs unique instances of FileDescriptors, so we convert // it here in advance and pass it down to compiler/runtime to avoid creating additional // instances. @@ -315,33 +315,33 @@ public Builder addFileTypes(FileDescriptorSet fileDescriptorSet) { } @Override - public Builder setStandardEnvironmentEnabled(boolean value) { + public CelBuilder setStandardEnvironmentEnabled(boolean value) { compilerBuilder.setStandardEnvironmentEnabled(value); runtimeBuilder.setStandardEnvironmentEnabled(value); return this; } @Override - public Builder addCompilerLibraries(CelCompilerLibrary... libraries) { + public CelBuilder addCompilerLibraries(CelCompilerLibrary... libraries) { checkNotNull(libraries); return this.addCompilerLibraries(Arrays.asList(libraries)); } @Override - public Builder addCompilerLibraries(Iterable libraries) { + public CelBuilder addCompilerLibraries(Iterable libraries) { checkNotNull(libraries); compilerBuilder.addLibraries(libraries); return this; } @Override - public Builder addRuntimeLibraries(CelRuntimeLibrary... libraries) { + public CelBuilder addRuntimeLibraries(CelRuntimeLibrary... libraries) { checkNotNull(libraries); return this.addRuntimeLibraries(Arrays.asList(libraries)); } @Override - public Builder addRuntimeLibraries(Iterable libraries) { + public CelBuilder addRuntimeLibraries(Iterable libraries) { checkNotNull(libraries); runtimeBuilder.addLibraries(libraries); return this; diff --git a/checker/src/main/java/dev/cel/checker/CelCheckerLegacyImpl.java b/checker/src/main/java/dev/cel/checker/CelCheckerLegacyImpl.java index 0ae4757e1..ccc9c2955 100644 --- a/checker/src/main/java/dev/cel/checker/CelCheckerLegacyImpl.java +++ b/checker/src/main/java/dev/cel/checker/CelCheckerLegacyImpl.java @@ -125,7 +125,7 @@ private Env getEnv(Errors errors) { } /** Create a new builder to construct a {@code CelChecker} instance. */ - public static Builder newBuilder() { + public static CelCheckerBuilder newBuilder() { return new Builder(); } @@ -145,35 +145,27 @@ public static final class Builder implements CelCheckerBuilder { private CelTypeProvider celTypeProvider; private boolean standardEnvironmentEnabled; - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder setOptions(CelOptions celOptions) { + public CelCheckerBuilder setOptions(CelOptions celOptions) { this.celOptions = checkNotNull(celOptions); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder setContainer(String container) { + public CelCheckerBuilder setContainer(String container) { checkNotNull(container); this.container = container; return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addDeclarations(Decl... declarations) { + public CelCheckerBuilder addDeclarations(Decl... declarations) { checkNotNull(declarations); return addDeclarations(Arrays.asList(declarations)); } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addDeclarations(Iterable declarations) { + public CelCheckerBuilder addDeclarations(Iterable declarations) { checkNotNull(declarations); for (Decl decl : declarations) { switch (decl.getDeclKindCase()) { @@ -207,35 +199,28 @@ public Builder addDeclarations(Iterable declarations) { return this; } - /** {@inheritDoc} */ @Override @CanIgnoreReturnValue - public Builder addFunctionDeclarations(CelFunctionDecl... celFunctionDecls) { + public CelCheckerBuilder addFunctionDeclarations(CelFunctionDecl... celFunctionDecls) { checkNotNull(celFunctionDecls); return addFunctionDeclarations(Arrays.asList(celFunctionDecls)); } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addFunctionDeclarations(Iterable celFunctionDecls) { + public CelCheckerBuilder addFunctionDeclarations(Iterable celFunctionDecls) { checkNotNull(celFunctionDecls); this.functionDeclarations.addAll(celFunctionDecls); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addVarDeclarations(CelVarDecl... celVarDecls) { + public CelCheckerBuilder addVarDeclarations(CelVarDecl... celVarDecls) { checkNotNull(celVarDecls); return addVarDeclarations(Arrays.asList(celVarDecls)); } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addVarDeclarations(Iterable celVarDecls) { + public CelCheckerBuilder addVarDeclarations(Iterable celVarDecls) { checkNotNull(celVarDecls); for (CelVarDecl celVarDecl : celVarDecls) { this.identDeclarations.add( @@ -244,122 +229,93 @@ public Builder addVarDeclarations(Iterable celVarDecls) { return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addProtoTypeMasks(ProtoTypeMask... typeMasks) { + public CelCheckerBuilder addProtoTypeMasks(ProtoTypeMask... typeMasks) { checkNotNull(typeMasks); return addProtoTypeMasks(Arrays.asList(typeMasks)); } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addProtoTypeMasks(Iterable typeMasks) { + public CelCheckerBuilder addProtoTypeMasks(Iterable typeMasks) { checkNotNull(typeMasks); protoTypeMasks.addAll(typeMasks); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder setResultType(CelType resultType) { + public CelCheckerBuilder setResultType(CelType resultType) { checkNotNull(resultType); this.expectedResultType = resultType; return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder setProtoResultType(Type resultType) { + public CelCheckerBuilder setProtoResultType(Type resultType) { checkNotNull(resultType); return setResultType(CelTypes.typeToCelType(resultType)); } - /** {@inheritDoc} */ - @CanIgnoreReturnValue @Override @Deprecated - public Builder setTypeProvider(TypeProvider typeProvider) { + public CelCheckerBuilder setTypeProvider(TypeProvider typeProvider) { this.customTypeProvider = typeProvider; return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder setTypeProvider(CelTypeProvider celTypeProvider) { + public CelCheckerBuilder setTypeProvider(CelTypeProvider celTypeProvider) { this.celTypeProvider = celTypeProvider; return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addMessageTypes(Descriptor... descriptors) { + public CelCheckerBuilder addMessageTypes(Descriptor... descriptors) { return addMessageTypes(Arrays.asList(checkNotNull(descriptors))); } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addMessageTypes(Iterable descriptors) { + public CelCheckerBuilder addMessageTypes(Iterable descriptors) { this.messageTypes.addAll(checkNotNull(descriptors)); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addFileTypes(FileDescriptor... fileDescriptors) { + public CelCheckerBuilder addFileTypes(FileDescriptor... fileDescriptors) { return addFileTypes(Arrays.asList(checkNotNull(fileDescriptors))); } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addFileTypes(Iterable fileDescriptors) { + public CelCheckerBuilder addFileTypes(Iterable fileDescriptors) { this.fileTypes.addAll(checkNotNull(fileDescriptors)); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addFileTypes(FileDescriptorSet fileDescriptorSet) { + public CelCheckerBuilder addFileTypes(FileDescriptorSet fileDescriptorSet) { checkNotNull(fileDescriptorSet); return addFileTypes( CelDescriptorUtil.getFileDescriptorsFromFileDescriptorSet(fileDescriptorSet)); } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder setStandardEnvironmentEnabled(boolean value) { + public CelCheckerBuilder setStandardEnvironmentEnabled(boolean value) { standardEnvironmentEnabled = value; return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addLibraries(CelCheckerLibrary... libraries) { + public CelCheckerBuilder addLibraries(CelCheckerLibrary... libraries) { checkNotNull(libraries); return this.addLibraries(Arrays.asList(libraries)); } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addLibraries(Iterable libraries) { + public CelCheckerBuilder addLibraries(Iterable libraries) { checkNotNull(libraries); this.celCheckerLibraries.addAll(libraries); return this; } - /** {@inheritDoc} */ @Override @CheckReturnValue public CelCheckerLegacyImpl build() { diff --git a/compiler/src/main/java/dev/cel/compiler/CelCompilerImpl.java b/compiler/src/main/java/dev/cel/compiler/CelCompilerImpl.java index 9eb70841b..5a99054a6 100644 --- a/compiler/src/main/java/dev/cel/compiler/CelCompilerImpl.java +++ b/compiler/src/main/java/dev/cel/compiler/CelCompilerImpl.java @@ -18,7 +18,6 @@ import dev.cel.expr.Decl; import dev.cel.expr.Type; -import com.google.errorprone.annotations.CanIgnoreReturnValue; import com.google.errorprone.annotations.CheckReturnValue; import com.google.errorprone.annotations.Immutable; import com.google.protobuf.DescriptorProtos.FileDescriptorSet; @@ -92,7 +91,7 @@ static CelCompilerImpl combine(CelParser parser, CelChecker checker) { * *

By default, {@link CelOptions#DEFAULT} are enabled, as is the CEL standard environment. */ - public static Builder newBuilder( + public static CelCompilerBuilder newBuilder( CelParserBuilder parserBuilder, CelCheckerBuilder checkerBuilder) { return new Builder(parserBuilder, checkerBuilder); } @@ -102,230 +101,177 @@ public static final class Builder implements CelCompilerBuilder { private final CelParserBuilder parserBuilder; private final CelCheckerBuilder checkerBuilder; - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder setOptions(CelOptions options) { + public CelCompilerBuilder setOptions(CelOptions options) { parserBuilder.setOptions(options); checkerBuilder.setOptions(options); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder setStandardMacros(CelStandardMacro... macros) { + public CelCompilerBuilder setStandardMacros(CelStandardMacro... macros) { parserBuilder.setStandardMacros(macros); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder setStandardMacros(Iterable macros) { + public CelCompilerBuilder setStandardMacros(Iterable macros) { parserBuilder.setStandardMacros(macros); return this; } @Override - public Builder addMacros(CelMacro... macros) { + public CelCompilerBuilder addMacros(CelMacro... macros) { checkNotNull(macros); return addMacros(Arrays.asList(macros)); } @Override - public Builder addMacros(Iterable macros) { + public CelCompilerBuilder addMacros(Iterable macros) { checkNotNull(macros); parserBuilder.addMacros(macros); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder setContainer(String container) { + public CelCompilerBuilder setContainer(String container) { checkerBuilder.setContainer(container); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addVar(String name, Type type) { + public CelCompilerBuilder addVar(String name, Type type) { return addVar(name, CelTypes.typeToCelType(type)); } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addVar(String name, CelType type) { + public CelCompilerBuilder addVar(String name, CelType type) { return addVarDeclarations(CelVarDecl.newVarDeclaration(name, type)); } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addDeclarations(Decl... declarations) { + public CelCompilerBuilder addDeclarations(Decl... declarations) { checkerBuilder.addDeclarations(declarations); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addDeclarations(Iterable declarations) { + public CelCompilerBuilder addDeclarations(Iterable declarations) { checkerBuilder.addDeclarations(declarations); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addFunctionDeclarations(CelFunctionDecl... celFunctionDecls) { + public CelCompilerBuilder addFunctionDeclarations(CelFunctionDecl... celFunctionDecls) { checkerBuilder.addFunctionDeclarations(celFunctionDecls); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addFunctionDeclarations(Iterable celFunctionDecls) { + public CelCompilerBuilder addFunctionDeclarations(Iterable celFunctionDecls) { checkerBuilder.addFunctionDeclarations(celFunctionDecls); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addVarDeclarations(CelVarDecl... celVarDecls) { + public CelCompilerBuilder addVarDeclarations(CelVarDecl... celVarDecls) { checkerBuilder.addVarDeclarations(celVarDecls); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addVarDeclarations(Iterable celVarDecls) { + public CelCompilerBuilder addVarDeclarations(Iterable celVarDecls) { checkerBuilder.addVarDeclarations(celVarDecls); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addProtoTypeMasks(ProtoTypeMask... typeMasks) { + public CelCompilerBuilder addProtoTypeMasks(ProtoTypeMask... typeMasks) { checkerBuilder.addProtoTypeMasks(typeMasks); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addProtoTypeMasks(Iterable typeMasks) { + public CelCompilerBuilder addProtoTypeMasks(Iterable typeMasks) { checkerBuilder.addProtoTypeMasks(typeMasks); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder setResultType(CelType resultType) { + public CelCompilerBuilder setResultType(CelType resultType) { checkNotNull(resultType); return setProtoResultType(CelTypes.celTypeToType(resultType)); } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder setProtoResultType(Type resultType) { + public CelCompilerBuilder setProtoResultType(Type resultType) { checkerBuilder.setProtoResultType(resultType); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue @Deprecated - public Builder setTypeProvider(TypeProvider typeProvider) { + public CelCompilerBuilder setTypeProvider(TypeProvider typeProvider) { checkerBuilder.setTypeProvider(typeProvider); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder setTypeProvider(CelTypeProvider celTypeProvider) { + public CelCompilerBuilder setTypeProvider(CelTypeProvider celTypeProvider) { checkerBuilder.setTypeProvider(celTypeProvider); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addMessageTypes(Descriptor... descriptors) { + public CelCompilerBuilder addMessageTypes(Descriptor... descriptors) { checkerBuilder.addMessageTypes(descriptors); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addMessageTypes(Iterable descriptors) { + public CelCompilerBuilder addMessageTypes(Iterable descriptors) { checkerBuilder.addMessageTypes(descriptors); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addFileTypes(FileDescriptor... fileDescriptors) { + public CelCompilerBuilder addFileTypes(FileDescriptor... fileDescriptors) { checkerBuilder.addFileTypes(fileDescriptors); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addFileTypes(Iterable fileDescriptors) { + public CelCompilerBuilder addFileTypes(Iterable fileDescriptors) { checkerBuilder.addFileTypes(fileDescriptors); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addFileTypes(FileDescriptorSet fileDescriptorSet) { + public CelCompilerBuilder addFileTypes(FileDescriptorSet fileDescriptorSet) { checkerBuilder.addFileTypes(fileDescriptorSet); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder setStandardEnvironmentEnabled(boolean value) { + public CelCompilerBuilder setStandardEnvironmentEnabled(boolean value) { checkerBuilder.setStandardEnvironmentEnabled(value); return this; } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addLibraries(CelCompilerLibrary... libraries) { + public CelCompilerBuilder addLibraries(CelCompilerLibrary... libraries) { checkNotNull(libraries); return this.addLibraries(Arrays.asList(libraries)); } - /** {@inheritDoc} */ @Override - @CanIgnoreReturnValue - public Builder addLibraries(Iterable libraries) { + public CelCompilerBuilder addLibraries(Iterable libraries) { checkNotNull(libraries); parserBuilder.addLibraries(libraries); checkerBuilder.addLibraries(libraries); return this; } - /** {@inheritDoc} */ @Override @CheckReturnValue public CelCompilerImpl build() { diff --git a/parser/src/main/java/dev/cel/parser/CelParserImpl.java b/parser/src/main/java/dev/cel/parser/CelParserImpl.java index 7363f544f..5d9944397 100644 --- a/parser/src/main/java/dev/cel/parser/CelParserImpl.java +++ b/parser/src/main/java/dev/cel/parser/CelParserImpl.java @@ -19,7 +19,6 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; -import com.google.errorprone.annotations.CanIgnoreReturnValue; import com.google.errorprone.annotations.CheckReturnValue; import com.google.errorprone.annotations.Immutable; import dev.cel.common.CelOptions; @@ -52,7 +51,7 @@ public final class CelParserImpl implements CelParser { private final CelOptions options; /** Creates a new {@link Builder}. */ - public static Builder newBuilder() { + public static CelParserBuilder newBuilder() { return new Builder().setOptions(CelOptions.DEFAULT); } @@ -84,15 +83,13 @@ public static final class Builder implements CelParserBuilder { private CelOptions options; @Override - @CanIgnoreReturnValue - public Builder setStandardMacros(CelStandardMacro... macros) { + public CelParserBuilder setStandardMacros(CelStandardMacro... macros) { checkNotNull(macros); return setStandardMacros(Arrays.asList(macros)); } @Override - @CanIgnoreReturnValue - public Builder setStandardMacros(Iterable macros) { + public CelParserBuilder setStandardMacros(Iterable macros) { checkNotNull(macros); this.standardMacros.clear(); Iterables.addAll(this.standardMacros, macros); @@ -100,15 +97,13 @@ public Builder setStandardMacros(Iterable macros) { } @Override - @CanIgnoreReturnValue - public Builder addMacros(CelMacro... macros) { + public CelParserBuilder addMacros(CelMacro... macros) { checkNotNull(macros); return addMacros(Arrays.asList(macros)); } @Override - @CanIgnoreReturnValue - public Builder addMacros(Iterable macros) { + public CelParserBuilder addMacros(Iterable macros) { checkNotNull(macros); for (CelMacro m : macros) { CelMacro macro = checkNotNull(m); @@ -118,22 +113,19 @@ public Builder addMacros(Iterable macros) { } @Override - @CanIgnoreReturnValue - public Builder addLibraries(CelParserLibrary... libraries) { + public CelParserBuilder addLibraries(CelParserLibrary... libraries) { checkNotNull(libraries); return this.addLibraries(Arrays.asList(libraries)); } @Override - @CanIgnoreReturnValue - public Builder addLibraries(Iterable libraries) { + public CelParserBuilder addLibraries(Iterable libraries) { checkNotNull(libraries); this.celParserLibraries.addAll(libraries); return this; } @Override - @CanIgnoreReturnValue public Builder setOptions(CelOptions options) { this.options = checkNotNull(options); return this; diff --git a/parser/src/test/java/dev/cel/parser/CelParserImplTest.java b/parser/src/test/java/dev/cel/parser/CelParserImplTest.java index c0d5f03bb..8a9f1439e 100644 --- a/parser/src/test/java/dev/cel/parser/CelParserImplTest.java +++ b/parser/src/test/java/dev/cel/parser/CelParserImplTest.java @@ -39,7 +39,8 @@ public final class CelParserImplTest { @Test public void build_withMacros_containsAllMacros() { - CelParserImpl parser = CelParserImpl.newBuilder().addMacros(CelMacro.STANDARD_MACROS).build(); + CelParserImpl parser = + (CelParserImpl) CelParserImpl.newBuilder().addMacros(CelMacro.STANDARD_MACROS).build(); assertThat(parser.findMacro("has:1:false")).hasValue(CelMacro.HAS); assertThat(parser.findMacro("all:2:true")).hasValue(CelMacro.ALL); assertThat(parser.findMacro("exists:2:true")).hasValue(CelMacro.EXISTS); @@ -52,7 +53,8 @@ public void build_withMacros_containsAllMacros() { @Test public void build_withStandardMacros_containsAllMacros() { CelParserImpl parser = - CelParserImpl.newBuilder().setStandardMacros(CelStandardMacro.STANDARD_MACROS).build(); + (CelParserImpl) + CelParserImpl.newBuilder().setStandardMacros(CelStandardMacro.STANDARD_MACROS).build(); assertThat(parser.findMacro("has:1:false")).hasValue(CelMacro.HAS); assertThat(parser.findMacro("all:2:true")).hasValue(CelMacro.ALL); assertThat(parser.findMacro("exists:2:true")).hasValue(CelMacro.EXISTS); @@ -68,10 +70,11 @@ public void build_withStandardMacrosAndCustomMacros_containsAllMacros() { CelMacro.newReceiverMacro( "customMacro", 1, (a, b, c) -> Optional.of(CelExpr.newBuilder().build())); CelParserImpl parser = - CelParserImpl.newBuilder() - .setStandardMacros(CelStandardMacro.STANDARD_MACROS) - .addMacros(customMacro) - .build(); + (CelParserImpl) + CelParserImpl.newBuilder() + .setStandardMacros(CelStandardMacro.STANDARD_MACROS) + .addMacros(customMacro) + .build(); assertThat(parser.findMacro("has:1:false")).hasValue(CelMacro.HAS); assertThat(parser.findMacro("all:2:true")).hasValue(CelMacro.ALL); @@ -85,24 +88,26 @@ public void build_withStandardMacrosAndCustomMacros_containsAllMacros() { @Test public void build_withMacro_containsMacro() { - CelParserImpl parser = CelParserImpl.newBuilder().addMacros(CelMacro.HAS).build(); + CelParserImpl parser = + (CelParserImpl) CelParserImpl.newBuilder().addMacros(CelMacro.HAS).build(); assertThat(parser.findMacro("has:1:false")).hasValue(CelMacro.HAS); } @Test public void build_withStandardMacro_containsMacro() { CelParserImpl parser = - CelParserImpl.newBuilder().setStandardMacros(CelStandardMacro.HAS).build(); + (CelParserImpl) CelParserImpl.newBuilder().setStandardMacros(CelStandardMacro.HAS).build(); assertThat(parser.findMacro("has:1:false")).hasValue(CelMacro.HAS); } @Test public void build_withStandardMacro_secondCallReplaces() { CelParserImpl parser = - CelParserImpl.newBuilder() - .setStandardMacros(CelStandardMacro.HAS, CelStandardMacro.ALL) - .setStandardMacros(CelStandardMacro.HAS) - .build(); + (CelParserImpl) + CelParserImpl.newBuilder() + .setStandardMacros(CelStandardMacro.HAS, CelStandardMacro.ALL) + .setStandardMacros(CelStandardMacro.HAS) + .build(); assertThat(parser.findMacro("has:1:false")).hasValue(CelMacro.HAS); assertThat(parser.findMacro("all:2:true")).isEmpty(); @@ -124,24 +129,26 @@ public void build_standardMacroKeyConflictsWithCustomMacro_throws() { @Test public void build_containsNoMacros() { - CelParserImpl parser = CelParserImpl.newBuilder().build(); + CelParserImpl parser = (CelParserImpl) CelParserImpl.newBuilder().build(); assertThat(parser.findMacro("has:1:false")).isEmpty(); } @Test public void setParserLibrary_success() { CelParserImpl parser = - CelParserImpl.newBuilder() - .addLibraries( - new CelParserLibrary() { - @Override - public void setParserOptions(CelParserBuilder parserBuilder) { - parserBuilder.addMacros( - CelMacro.newReceiverVarArgMacro( - "dummyMacro", (a, b, c) -> Optional.of(CelExpr.newBuilder().build()))); - } - }) - .build(); + (CelParserImpl) + CelParserImpl.newBuilder() + .addLibraries( + new CelParserLibrary() { + @Override + public void setParserOptions(CelParserBuilder parserBuilder) { + parserBuilder.addMacros( + CelMacro.newReceiverVarArgMacro( + "dummyMacro", + (a, b, c) -> Optional.of(CelExpr.newBuilder().build()))); + } + }) + .build(); assertThat(parser.findMacro("dummyMacro:*:true")).isPresent(); } @@ -149,9 +156,10 @@ public void setParserOptions(CelParserBuilder parserBuilder) { @Test public void parse_throwsWhenExpressionSizeCodePointLimitExceeded() { CelParserImpl parser = - CelParserImpl.newBuilder() - .setOptions(CelOptions.newBuilder().maxExpressionCodePointSize(2).build()) - .build(); + (CelParserImpl) + CelParserImpl.newBuilder() + .setOptions(CelOptions.newBuilder().maxExpressionCodePointSize(2).build()) + .build(); CelValidationResult parseResult = parser.parse(CelSource.newBuilder("foo").build()); CelValidationException exception = assertThrows(CelValidationException.class, parseResult::getAst); @@ -205,7 +213,7 @@ private enum MaxParseRecursionDepthTestCase { public void parse_largeExprHitsMaxRecursionLimit_throws( @TestParameter MaxParseRecursionDepthTestCase testCase) { int maxParseRecursionLimit = MaxParseRecursionDepthTestCase.MAX_RECURSION_LIMIT; - CelParserImpl parser = + CelParser parser = CelParserImpl.newBuilder() .setOptions( CelOptions.newBuilder().maxParseRecursionDepth(maxParseRecursionLimit).build()) @@ -231,7 +239,7 @@ public void parse_exprUnderMaxRecursionLimit_doesNotThrow( @TestParameter MaxParseRecursionDepthTestCase testCase) throws CelValidationException { int maxParseRecursionLimit = MaxParseRecursionDepthTestCase.MAX_RECURSION_LIMIT + 1; - CelParserImpl parser = + CelParser parser = CelParserImpl.newBuilder() .setOptions( CelOptions.newBuilder().maxParseRecursionDepth(maxParseRecursionLimit).build()) @@ -248,7 +256,7 @@ public void parse_exprUnderMaxRecursionLimit_doesNotThrow( @TestParameters("{expression: 'A.exists_one(a?b, c)'}") @TestParameters("{expression: 'A.filter(a?b, c)'}") public void parse_macroArgumentContainsSyntaxError_throws(String expression) { - CelParserImpl parser = CelParserImpl.newBuilder().addMacros(CelMacro.STANDARD_MACROS).build(); + CelParser parser = CelParserImpl.newBuilder().addMacros(CelMacro.STANDARD_MACROS).build(); CelValidationResult parseResult = parser.parse(expression); diff --git a/parser/src/test/java/dev/cel/parser/CelParserParameterizedTest.java b/parser/src/test/java/dev/cel/parser/CelParserParameterizedTest.java index 0be178057..599a5478c 100644 --- a/parser/src/test/java/dev/cel/parser/CelParserParameterizedTest.java +++ b/parser/src/test/java/dev/cel/parser/CelParserParameterizedTest.java @@ -239,7 +239,7 @@ public void parser_errors() { runTest(PARSER, "{"); runTest(PARSER, "t{>C}"); - CelParserImpl parserWithoutOptionalSupport = + CelParser parserWithoutOptionalSupport = CelParserImpl.newBuilder() .setOptions(CelOptions.current().enableOptionalSyntax(false).build()) .build(); diff --git a/parser/src/test/java/dev/cel/parser/CelUnparserImplTest.java b/parser/src/test/java/dev/cel/parser/CelUnparserImplTest.java index 4c212ed89..d17cdf9a0 100644 --- a/parser/src/test/java/dev/cel/parser/CelUnparserImplTest.java +++ b/parser/src/test/java/dev/cel/parser/CelUnparserImplTest.java @@ -37,7 +37,7 @@ @RunWith(TestParameterInjector.class) public final class CelUnparserImplTest { - private final CelParserImpl parser = + private final CelParser parser = CelParserImpl.newBuilder() .setOptions(CelOptions.newBuilder().populateMacroCalls(true).build()) .addLibraries(CelOptionalLibrary.INSTANCE) @@ -246,7 +246,7 @@ public void unparse_fails( @Test public void unparse_comprehensionWithoutMacroCallTracking_presenceTestSucceeds() throws Exception { - CelParserImpl parser = + CelParser parser = CelParserImpl.newBuilder() .setOptions(CelOptions.newBuilder().populateMacroCalls(false).build()) .addMacros(CelMacro.STANDARD_MACROS) @@ -258,7 +258,7 @@ public void unparse_comprehensionWithoutMacroCallTracking_presenceTestSucceeds() @Test public void unparse_comprehensionWithoutMacroCallTracking_throwsException() throws Exception { - CelParserImpl parser = + CelParser parser = CelParserImpl.newBuilder() .setOptions(CelOptions.newBuilder().populateMacroCalls(false).build()) .addMacros(CelMacro.STANDARD_MACROS) diff --git a/runtime/src/main/java/dev/cel/runtime/CelRuntimeLegacyImpl.java b/runtime/src/main/java/dev/cel/runtime/CelRuntimeLegacyImpl.java index a98ed056f..5f8f3f259 100644 --- a/runtime/src/main/java/dev/cel/runtime/CelRuntimeLegacyImpl.java +++ b/runtime/src/main/java/dev/cel/runtime/CelRuntimeLegacyImpl.java @@ -67,7 +67,7 @@ public CelRuntime.Program createProgram(CelAbstractSyntaxTree ast) { } /** Create a new builder for constructing a {@code CelRuntime} instance. */ - public static Builder newBuilder() { + public static CelRuntimeBuilder newBuilder() { return new Builder(); } @@ -87,96 +87,82 @@ public static final class Builder implements CelRuntimeBuilder { private CelValueProvider celValueProvider; @Override - @CanIgnoreReturnValue - public Builder setOptions(CelOptions options) { + public CelRuntimeBuilder setOptions(CelOptions options) { this.options = options; return this; } @Override - @CanIgnoreReturnValue - public Builder addFunctionBindings(CelFunctionBinding... bindings) { + public CelRuntimeBuilder addFunctionBindings(CelFunctionBinding... bindings) { return addFunctionBindings(Arrays.asList(bindings)); } @Override - @CanIgnoreReturnValue - public Builder addFunctionBindings(Iterable bindings) { + public CelRuntimeBuilder addFunctionBindings(Iterable bindings) { bindings.forEach(o -> functionBindings.put(o.getOverloadId(), o)); return this; } @Override - @CanIgnoreReturnValue - public Builder addMessageTypes(Descriptor... descriptors) { + public CelRuntimeBuilder addMessageTypes(Descriptor... descriptors) { return addMessageTypes(Arrays.asList(descriptors)); } @Override - @CanIgnoreReturnValue - public Builder addMessageTypes(Iterable descriptors) { + public CelRuntimeBuilder addMessageTypes(Iterable descriptors) { return addFileTypes(CelDescriptorUtil.getFileDescriptorsForDescriptors(descriptors)); } @Override - @CanIgnoreReturnValue - public Builder addFileTypes(FileDescriptor... fileDescriptors) { + public CelRuntimeBuilder addFileTypes(FileDescriptor... fileDescriptors) { return addFileTypes(Arrays.asList(fileDescriptors)); } @Override - @CanIgnoreReturnValue - public Builder addFileTypes(Iterable fileDescriptors) { + public CelRuntimeBuilder addFileTypes(Iterable fileDescriptors) { this.fileTypes.addAll(checkNotNull(fileDescriptors)); return this; } @Override - @CanIgnoreReturnValue - public Builder addFileTypes(FileDescriptorSet fileDescriptorSet) { + public CelRuntimeBuilder addFileTypes(FileDescriptorSet fileDescriptorSet) { return addFileTypes( CelDescriptorUtil.getFileDescriptorsFromFileDescriptorSet(fileDescriptorSet)); } @Override - @CanIgnoreReturnValue - public Builder setTypeFactory(Function typeFactory) { + public CelRuntimeBuilder setTypeFactory(Function typeFactory) { this.customTypeFactory = typeFactory; return this; } @Override - @CanIgnoreReturnValue public CelRuntimeBuilder setValueProvider(CelValueProvider celValueProvider) { this.celValueProvider = celValueProvider; return this; } @Override - @CanIgnoreReturnValue - public Builder setStandardEnvironmentEnabled(boolean value) { + public CelRuntimeBuilder setStandardEnvironmentEnabled(boolean value) { standardEnvironmentEnabled = value; return this; } @Override - @CanIgnoreReturnValue - public Builder addLibraries(CelRuntimeLibrary... libraries) { + public CelRuntimeBuilder addLibraries(CelRuntimeLibrary... libraries) { checkNotNull(libraries); return this.addLibraries(Arrays.asList(libraries)); } @Override - @CanIgnoreReturnValue - public Builder addLibraries(Iterable libraries) { + public CelRuntimeBuilder addLibraries(Iterable libraries) { checkNotNull(libraries); this.celRuntimeLibraries.addAll(libraries); return this; } @Override - @CanIgnoreReturnValue - public Builder setExtensionRegistry(ExtensionRegistry extensionRegistry) { + public CelRuntimeBuilder setExtensionRegistry(ExtensionRegistry extensionRegistry) { checkNotNull(extensionRegistry); this.extensionRegistry = extensionRegistry.getUnmodifiable(); return this; @@ -184,7 +170,6 @@ public Builder setExtensionRegistry(ExtensionRegistry extensionRegistry) { /** Build a new {@code CelRuntimeLegacyImpl} instance from the builder config. */ @Override - @CanIgnoreReturnValue public CelRuntimeLegacyImpl build() { // Add libraries, such as extensions celRuntimeLibraries.build().forEach(celLibrary -> celLibrary.setRuntimeOptions(this));