Skip to content

Commit 2bd6d04

Browse files
replace AstFilterFieldPath with string directly (#99)
1 parent 0d01b01 commit 2bd6d04

File tree

10 files changed

+18
-82
lines changed

10 files changed

+18
-82
lines changed

src/main/java/com/mongodb/hibernate/internal/translate/AbstractMqlTranslator.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@
6161
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstComparisonFilterOperator;
6262
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstFieldOperationFilter;
6363
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstFilter;
64-
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstFilterFieldPath;
6564
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstLogicalFilter;
6665
import java.io.IOException;
6766
import java.io.StringWriter;
@@ -333,8 +332,7 @@ private AstFilter getKeyFilter(AbstractRestrictedTableMutation<? extends Mutatio
333332
assertTrue(tableMutation.getNumberOfKeyBindings() == 1);
334333
var keyBinding = tableMutation.getKeyBindings().get(0);
335334

336-
var astFilterFieldPath =
337-
new AstFilterFieldPath(keyBinding.getColumnReference().getColumnExpression());
335+
var astFilterFieldPath = keyBinding.getColumnReference().getColumnExpression();
338336
var fieldValue = acceptAndYield(keyBinding.getValueExpression(), FIELD_VALUE);
339337
return new AstFieldOperationFilter(astFilterFieldPath, new AstComparisonFilterOperation(EQ, fieldValue));
340338
}
@@ -429,7 +427,7 @@ public void visitRelationalPredicate(ComparisonPredicate comparisonPredicate) {
429427
var astComparisonFilterOperator = getAstComparisonFilterOperator(operator);
430428

431429
var astFilterOperation = new AstComparisonFilterOperation(astComparisonFilterOperator, comparisonValue);
432-
var filter = new AstFieldOperationFilter(new AstFilterFieldPath(fieldPath), astFilterOperation);
430+
var filter = new AstFieldOperationFilter(fieldPath, astFilterOperation);
433431
astVisitorValueHolder.yield(FILTER, filter);
434432
}
435433

@@ -508,7 +506,7 @@ public void visitBooleanExpressionPredicate(BooleanExpressionPredicate booleanEx
508506
var fieldPath = acceptAndYield(booleanExpressionPredicate.getExpression(), FIELD_PATH);
509507
var astFilterOperation =
510508
new AstComparisonFilterOperation(EQ, booleanExpressionPredicate.isNegated() ? FALSE : TRUE);
511-
var filter = new AstFieldOperationFilter(new AstFilterFieldPath(fieldPath), astFilterOperation);
509+
var filter = new AstFieldOperationFilter(fieldPath, astFilterOperation);
512510
astVisitorValueHolder.yield(FILTER, filter);
513511
}
514512

src/main/java/com/mongodb/hibernate/internal/translate/mongoast/filter/AstFieldOperationFilter.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,12 @@
1818

1919
import org.bson.BsonWriter;
2020

21-
public record AstFieldOperationFilter(AstFilterFieldPath fieldPath, AstFilterOperation filterOperation)
22-
implements AstFilter {
21+
public record AstFieldOperationFilter(String fieldPath, AstFilterOperation filterOperation) implements AstFilter {
2322
@Override
2423
public void render(BsonWriter writer) {
2524
writer.writeStartDocument();
2625
{
27-
fieldPath.render(writer);
26+
writer.writeName(fieldPath);
2827
filterOperation.render(writer);
2928
}
3029
writer.writeEndDocument();

src/main/java/com/mongodb/hibernate/internal/translate/mongoast/filter/AstFilterFieldPath.java

Lines changed: 0 additions & 27 deletions
This file was deleted.

src/test/java/com/mongodb/hibernate/internal/translate/mongoast/command/AstDeleteCommandTests.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import com.mongodb.hibernate.internal.translate.mongoast.AstLiteralValue;
2323
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstComparisonFilterOperation;
2424
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstFieldOperationFilter;
25-
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstFilterFieldPath;
2625
import org.bson.BsonString;
2726
import org.junit.jupiter.api.Test;
2827

@@ -33,8 +32,7 @@ void testRendering() {
3332

3433
var collection = "books";
3534
var filter = new AstFieldOperationFilter(
36-
new AstFilterFieldPath("isbn"),
37-
new AstComparisonFilterOperation(EQ, new AstLiteralValue(new BsonString("978-3-16-148410-0"))));
35+
"isbn", new AstComparisonFilterOperation(EQ, new AstLiteralValue(new BsonString("978-3-16-148410-0"))));
3836

3937
var deleteCommand = new AstDeleteCommand(collection, filter);
4038

src/test/java/com/mongodb/hibernate/internal/translate/mongoast/command/AstUpdateCommandTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstComparisonFilterOperator;
2525
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstFieldOperationFilter;
2626
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstFilter;
27-
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstFilterFieldPath;
2827
import java.util.List;
2928
import org.bson.BsonInt64;
3029
import org.bson.BsonString;
@@ -41,7 +40,7 @@ void testRendering() {
4140

4241
final AstFilter filter;
4342
filter = new AstFieldOperationFilter(
44-
new AstFilterFieldPath("_id"),
43+
"_id",
4544
new AstComparisonFilterOperation(
4645
AstComparisonFilterOperator.EQ, new AstLiteralValue(new BsonInt64(12345L))));
4746

src/test/java/com/mongodb/hibernate/internal/translate/mongoast/command/aggregate/AstAggregateCommandTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstComparisonFilterOperation;
2323
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstComparisonFilterOperator;
2424
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstFieldOperationFilter;
25-
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstFilterFieldPath;
2625
import java.util.List;
2726
import org.bson.BsonInt32;
2827
import org.junit.jupiter.api.Test;
@@ -32,7 +31,7 @@ class AstAggregateCommandTests {
3231
@Test
3332
void testRendering() {
3433
var matchStage = new AstMatchStage(new AstFieldOperationFilter(
35-
new AstFilterFieldPath("_id"),
34+
"_id",
3635
new AstComparisonFilterOperation(
3736
AstComparisonFilterOperator.EQ, new AstLiteralValue(new BsonInt32(1)))));
3837
var projectStage = new AstProjectStage(List.of(new AstProjectStageIncludeSpecification("title")));

src/test/java/com/mongodb/hibernate/internal/translate/mongoast/command/aggregate/AstMatchStageTests.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import com.mongodb.hibernate.internal.translate.mongoast.AstLiteralValue;
2323
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstComparisonFilterOperation;
2424
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstFieldOperationFilter;
25-
import com.mongodb.hibernate.internal.translate.mongoast.filter.AstFilterFieldPath;
2625
import org.bson.BsonString;
2726
import org.junit.jupiter.api.Test;
2827

@@ -31,8 +30,7 @@ class AstMatchStageTests {
3130
@Test
3231
void testRendering() {
3332
var astFilter = new AstFieldOperationFilter(
34-
new AstFilterFieldPath("title"),
35-
new AstComparisonFilterOperation(EQ, new AstLiteralValue(new BsonString("Jane Eyre"))));
33+
"title", new AstComparisonFilterOperation(EQ, new AstLiteralValue(new BsonString("Jane Eyre"))));
3634
var astMatchStage = new AstMatchStage(astFilter);
3735

3836
var expectedJson = """

src/test/java/com/mongodb/hibernate/internal/translate/mongoast/filter/AstFieldOperationFilterTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818

1919
import static com.mongodb.hibernate.internal.translate.mongoast.AstNodeAssertions.assertRender;
2020
import static com.mongodb.hibernate.internal.translate.mongoast.filter.AstComparisonFilterOperator.EQ;
21-
import static com.mongodb.hibernate.internal.translate.mongoast.filter.FilterTestUtils.createFieldOperationFilter;
2221

22+
import com.mongodb.hibernate.internal.translate.mongoast.AstLiteralValue;
2323
import org.bson.BsonInt32;
2424
import org.junit.jupiter.api.Test;
2525

@@ -28,7 +28,8 @@ class AstFieldOperationFilterTests {
2828
@Test
2929
void testRendering() {
3030

31-
var astFieldOperationFilter = createFieldOperationFilter("fieldName", EQ, new BsonInt32(1));
31+
var astFieldOperationFilter = new AstFieldOperationFilter(
32+
"fieldName", new AstComparisonFilterOperation(EQ, new AstLiteralValue(new BsonInt32(1))));
3233

3334
var expectedJson = """
3435
{"fieldName": {"$eq": 1}}\

src/test/java/com/mongodb/hibernate/internal/translate/mongoast/filter/AstLogicalFilterTests.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818

1919
import static com.mongodb.hibernate.internal.translate.mongoast.AstNodeAssertions.assertRender;
2020
import static com.mongodb.hibernate.internal.translate.mongoast.filter.AstComparisonFilterOperator.EQ;
21-
import static com.mongodb.hibernate.internal.translate.mongoast.filter.FilterTestUtils.createFieldOperationFilter;
2221

22+
import com.mongodb.hibernate.internal.translate.mongoast.AstLiteralValue;
2323
import java.util.List;
2424
import org.bson.BsonInt32;
2525
import org.bson.BsonString;
@@ -33,8 +33,11 @@ void testRendering(AstLogicalFilterOperator operator) {
3333
var astLogicalFilter = new AstLogicalFilter(
3434
operator,
3535
List.of(
36-
createFieldOperationFilter("field1", EQ, new BsonInt32(1)),
37-
createFieldOperationFilter("field2", EQ, new BsonString("1"))));
36+
new AstFieldOperationFilter(
37+
"field1", new AstComparisonFilterOperation(EQ, new AstLiteralValue(new BsonInt32(1)))),
38+
new AstFieldOperationFilter(
39+
"field2",
40+
new AstComparisonFilterOperation(EQ, new AstLiteralValue(new BsonString("1"))))));
3841

3942
var expectedJson =
4043
"""

src/test/java/com/mongodb/hibernate/internal/translate/mongoast/filter/FilterTestUtils.java

Lines changed: 0 additions & 32 deletions
This file was deleted.

0 commit comments

Comments
 (0)