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
453 changes: 212 additions & 241 deletions runtime/src/main/java/dev/cel/runtime/CelStandardFunctions.java

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -156,16 +156,16 @@ public enum AddOverload implements CelStandardOverload {
(celOptions, runtimeEquality) ->
CelFunctionBinding.from("add_list", List.class, List.class, RuntimeHelpers::concat));

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

AddOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
AddOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,17 @@ public enum BoolOverload implements CelStandardOverload {
}
}));

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;
;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

BoolOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
BoolOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,17 +61,17 @@ public enum BytesOverload implements CelStandardOverload {
}),
;

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;
;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

BytesOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
BytesOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,9 @@
* overload.
*/
@Immutable
@FunctionalInterface
public interface CelStandardOverload {

/** Constructs a new {@link CelFunctionBinding} for this CEL standard overload. */
CelFunctionBinding newFunctionBinding(CelOptions celOptions, RuntimeEquality runtimeEquality);

/** TODO: To be removed in the upcoming CL */
@FunctionalInterface
@Immutable
interface FunctionBindingCreator {
CelFunctionBinding create(CelOptions celOptions, RuntimeEquality runtimeEquality);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,16 @@ public enum ContainsOverload implements CelStandardOverload {
"contains_string", String.class, String.class, String::contains)),
;

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

ContainsOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
ContainsOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,16 +76,16 @@ public enum DivideOverload implements CelStandardOverload {
(Long x, Long y) -> RuntimeHelpers.uint64Divide(x, y, celOptions));
}
});
private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

DivideOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
DivideOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,16 +73,16 @@ public enum DoubleOverload implements CelStandardOverload {
}),
;

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

DoubleOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
DoubleOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,16 +74,16 @@ public enum DurationOverload implements CelStandardOverload {
})),
;

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

DurationOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
DurationOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,16 +43,16 @@ public enum DynOverload implements CelStandardOverload {
(celOptions, runtimeEquality) ->
CelFunctionBinding.from("to_dyn", Object.class, (Object arg) -> arg));

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

DynOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
DynOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,17 @@ public enum EndsWithOverload implements CelStandardOverload {
"ends_with_string", String.class, String.class, String::endsWith)),
;

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;
;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

EndsWithOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
EndsWithOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,16 @@ public enum EqualsOverload implements CelStandardOverload {
"equals", Object.class, Object.class, runtimeEquality::objectEquals)),
;

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

EqualsOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
EqualsOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,16 +75,16 @@ public enum GetDateOverload implements CelStandardOverload {
}),
;

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

GetDateOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
GetDateOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,16 +76,16 @@ public enum GetDayOfMonthOverload implements CelStandardOverload {
}
}),
;
private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

GetDayOfMonthOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
GetDayOfMonthOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,16 +92,16 @@ public enum GetDayOfWeekOverload implements CelStandardOverload {
});
}
});
private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

GetDayOfWeekOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
GetDayOfWeekOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,16 +77,16 @@ public enum GetDayOfYearOverload implements CelStandardOverload {
}),
;

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

GetDayOfYearOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
GetDayOfYearOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,16 +76,16 @@ public enum GetFullYearOverload implements CelStandardOverload {
}),
;

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

GetFullYearOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
GetFullYearOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,16 +87,16 @@ public enum GetHoursOverload implements CelStandardOverload {
}),
;

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

GetHoursOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
GetHoursOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,16 +98,16 @@ public enum GetMillisecondsOverload implements CelStandardOverload {
}
});

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

GetMillisecondsOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
GetMillisecondsOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,16 +88,16 @@ public enum GetMinutesOverload implements CelStandardOverload {
}),
;

private final FunctionBindingCreator bindingCreator;
private final CelStandardOverload standardOverload;

@Override
public CelFunctionBinding newFunctionBinding(
CelOptions celOptions, RuntimeEquality runtimeEquality) {
return bindingCreator.create(celOptions, runtimeEquality);
return standardOverload.newFunctionBinding(celOptions, runtimeEquality);
}

GetMinutesOverload(FunctionBindingCreator bindingCreator) {
this.bindingCreator = bindingCreator;
GetMinutesOverload(CelStandardOverload standardOverload) {
this.standardOverload = standardOverload;
}
}

Expand Down
Loading