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
2 changes: 0 additions & 2 deletions optimizer/src/main/java/dev/cel/optimizer/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,12 @@ java_library(
srcs = [
"CelOptimizer.java",
"CelOptimizerBuilder.java",
"CelOptimizerOptions.java",
],
tags = [
],
deps = [
":ast_optimizer",
":optimization_exception",
"//:auto_value",
"//common:cel_ast",
"@maven//:com_google_errorprone_error_prone_annotations",
],
Expand Down
32 changes: 3 additions & 29 deletions optimizer/src/main/java/dev/cel/optimizer/CelOptimizerFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,48 +25,22 @@
/** Factory class for constructing an {@link CelOptimizer} instance. */
public final class CelOptimizerFactory {

private static final CelOptimizerOptions DEFAULT_OPTIMIZER_OPTIONS =
CelOptimizerOptions.newBuilder().build();

/** Create a new builder for constructing a {@link CelOptimizer} instance. */
public static CelOptimizerBuilder standardCelOptimizerBuilder(Cel cel) {
return standardCelOptimizerBuilder(cel, DEFAULT_OPTIMIZER_OPTIONS);
}

/** Create a new builder for constructing a {@link CelOptimizer} instance with custom options. */
public static CelOptimizerBuilder standardCelOptimizerBuilder(
Cel cel, CelOptimizerOptions optimizerOptions) {
return CelOptimizerImpl.newBuilder(cel, optimizerOptions);
return CelOptimizerImpl.newBuilder(cel);
}

/** Create a new builder for constructing a {@link CelOptimizer} instance. */
public static CelOptimizerBuilder standardCelOptimizerBuilder(
CelCompiler celCompiler, CelRuntime celRuntime) {
return standardCelOptimizerBuilder(celCompiler, celRuntime, DEFAULT_OPTIMIZER_OPTIONS);
}

/** Create a new builder for constructing a {@link CelOptimizer} instance with custom options. */
public static CelOptimizerBuilder standardCelOptimizerBuilder(
CelCompiler celCompiler, CelRuntime celRuntime, CelOptimizerOptions optimizerOptions) {
return standardCelOptimizerBuilder(
CelFactory.combine(celCompiler, celRuntime), optimizerOptions);
return standardCelOptimizerBuilder(CelFactory.combine(celCompiler, celRuntime));
}

/** Create a new builder for constructing a {@link CelOptimizer} instance. */
public static CelOptimizerBuilder standardCelOptimizerBuilder(
CelParser celParser, CelChecker celChecker, CelRuntime celRuntime) {
return standardCelOptimizerBuilder(
celParser, celChecker, celRuntime, DEFAULT_OPTIMIZER_OPTIONS);
}

/** Create a new builder for constructing a {@link CelOptimizer} instance with custom options. */
public static CelOptimizerBuilder standardCelOptimizerBuilder(
CelParser celParser,
CelChecker celChecker,
CelRuntime celRuntime,
CelOptimizerOptions optimizerOptions) {
return standardCelOptimizerBuilder(
CelCompilerFactory.combine(celParser, celChecker), celRuntime, optimizerOptions);
CelCompilerFactory.combine(celParser, celChecker), celRuntime);
}

private CelOptimizerFactory() {}
Expand Down
22 changes: 5 additions & 17 deletions optimizer/src/main/java/dev/cel/optimizer/CelOptimizerImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,10 @@
final class CelOptimizerImpl implements CelOptimizer {
private final Cel cel;
private final ImmutableSet<CelAstOptimizer> astOptimizers;
private final CelOptimizerOptions optimizerOptions;

CelOptimizerImpl(
Cel cel, ImmutableSet<CelAstOptimizer> astOptimizers, CelOptimizerOptions optimizerOptions) {
CelOptimizerImpl(Cel cel, ImmutableSet<CelAstOptimizer> astOptimizers) {
this.cel = cel;
this.astOptimizers = astOptimizers;
this.optimizerOptions = optimizerOptions;
}

@Override
Expand All @@ -61,9 +58,7 @@ public CelAbstractSyntaxTree optimize(CelAbstractSyntaxTree ast) throws CelOptim
.build();
}
optimizedAst = celOptimizerEnv.check(result.optimizedAst()).getAst();
if (optimizerOptions.enableAstValidation()) {
assertAstIdCorrectness(optimizedAst);
}
assertAstIdCorrectness(optimizedAst);
}
} catch (CelValidationException e) {
throw new CelOptimizationException(
Expand Down Expand Up @@ -130,23 +125,16 @@ private static void assertAstIdCorrectness(CelAbstractSyntaxTree ast) {

/** Create a new builder for constructing a {@link CelOptimizer} instance. */
static CelOptimizerImpl.Builder newBuilder(Cel cel) {
return newBuilder(cel, CelOptimizerOptions.newBuilder().build());
}

/** Create a new builder for constructing a {@link CelOptimizer} instance with custom options. */
static CelOptimizerImpl.Builder newBuilder(Cel cel, CelOptimizerOptions optimizerOptions) {
return new CelOptimizerImpl.Builder(cel, optimizerOptions);
return new CelOptimizerImpl.Builder(cel);
}

/** Builder class for {@link CelOptimizerImpl}. */
static final class Builder implements CelOptimizerBuilder {
private final Cel cel;
private final CelOptimizerOptions optimizerOptions;
private final ImmutableSet.Builder<CelAstOptimizer> astOptimizers;

private Builder(Cel cel, CelOptimizerOptions optimizerOptions) {
private Builder(Cel cel) {
this.cel = cel;
this.optimizerOptions = checkNotNull(optimizerOptions);
this.astOptimizers = ImmutableSet.builder();
}

Expand All @@ -165,7 +153,7 @@ public CelOptimizerBuilder addAstOptimizers(Iterable<CelAstOptimizer> astOptimiz

@Override
public CelOptimizer build() {
return new CelOptimizerImpl(cel, astOptimizers.build(), optimizerOptions);
return new CelOptimizerImpl(cel, astOptimizers.build());
}
}
}
51 changes: 0 additions & 51 deletions optimizer/src/main/java/dev/cel/optimizer/CelOptimizerOptions.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -39,19 +39,6 @@ public void standardCelOptimizerBuilder_withParserCheckerAndRuntime() {
assertThat(builder.build()).isNotNull();
}

@Test
public void standardCelOptimizerBuilder_withParserCheckerRuntimeAndOptions() {
CelOptimizerBuilder builder =
CelOptimizerFactory.standardCelOptimizerBuilder(
CelParserFactory.standardCelParserBuilder().build(),
CelCompilerFactory.standardCelCheckerBuilder().build(),
CelRuntimeFactory.standardCelRuntimeBuilder().build(),
CelOptimizerOptions.newBuilder().enableAstValidation(true).build());

assertThat(builder).isNotNull();
assertThat(builder.build()).isNotNull();
}

@Test
public void standardCelOptimizerBuilder_withCompilerAndRuntime() {
CelOptimizerBuilder builder =
Expand All @@ -63,18 +50,6 @@ public void standardCelOptimizerBuilder_withCompilerAndRuntime() {
assertThat(builder.build()).isNotNull();
}

@Test
public void standardCelOptimizerBuilder_withCompilerRuntimeAndOptions() {
CelOptimizerBuilder builder =
CelOptimizerFactory.standardCelOptimizerBuilder(
CelCompilerFactory.standardCelCompilerBuilder().build(),
CelRuntimeFactory.standardCelRuntimeBuilder().build(),
CelOptimizerOptions.newBuilder().enableAstValidation(true).build());

assertThat(builder).isNotNull();
assertThat(builder.build()).isNotNull();
}

@Test
public void standardCelOptimizerBuilder_withCel() {
CelOptimizerBuilder builder =
Expand All @@ -83,15 +58,4 @@ public void standardCelOptimizerBuilder_withCel() {
assertThat(builder).isNotNull();
assertThat(builder.build()).isNotNull();
}

@Test
public void standardCelOptimizerBuilder_withCelAndOptions() {
CelOptimizerBuilder builder =
CelOptimizerFactory.standardCelOptimizerBuilder(
CelFactory.standardCelBuilder().build(),
CelOptimizerOptions.newBuilder().enableAstValidation(true).build());

assertThat(builder).isNotNull();
assertThat(builder.build()).isNotNull();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,7 @@ public void optimizedAst_failsToTypeCheck_throwsException() {
@Test
public void optimize_duplicateExprId_throwsException() {
CelOptimizer celOptimizer =
CelOptimizerImpl.newBuilder(
CEL, CelOptimizerOptions.newBuilder().enableAstValidation(true).build())
CelOptimizerImpl.newBuilder(CEL)
.addAstOptimizers(
(navigableAst, cel) ->
OptimizationResult.create(
Expand Down Expand Up @@ -174,8 +173,7 @@ public void optimize_duplicateExprId_throwsException() {
@Test
public void optimize_macroCallRootIdNonZero_throwsException() {
CelOptimizer celOptimizer =
CelOptimizerImpl.newBuilder(
CEL, CelOptimizerOptions.newBuilder().enableAstValidation(true).build())
CelOptimizerImpl.newBuilder(CEL)
.addAstOptimizers(
(navigableAst, cel) ->
OptimizationResult.create(
Expand Down Expand Up @@ -206,8 +204,7 @@ public void optimize_macroCallRootIdNonZero_throwsException() {
@Test
public void optimize_macroCallKindMismatch_throwsException() {
CelOptimizer celOptimizer =
CelOptimizerImpl.newBuilder(
CEL, CelOptimizerOptions.newBuilder().enableAstValidation(true).build())
CelOptimizerImpl.newBuilder(CEL)
.addAstOptimizers(
(navigableAst, cel) ->
OptimizationResult.create(
Expand Down Expand Up @@ -242,8 +239,7 @@ public void optimize_macroCallComprehensionKindNotSetMismatch_throwsException()
long compId = astWithComprehension.getExpr().id();

CelOptimizer celOptimizer =
CelOptimizerImpl.newBuilder(
CEL, CelOptimizerOptions.newBuilder().enableAstValidation(true).build())
CelOptimizerImpl.newBuilder(CEL)
.addAstOptimizers(
(navigableAst, cel) ->
OptimizationResult.create(
Expand Down
Loading