Skip to content

Commit

Permalink
Merge branch 'feature/30-implement-contains-for-mongo' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
Marthym committed Jun 26, 2024
2 parents 39ae9ce + da84cd2 commit 84761d2
Show file tree
Hide file tree
Showing 9 changed files with 474 additions and 200 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
package fr.ght1pc9kc.juery.basic.filter;

import fr.ght1pc9kc.juery.api.Criteria;
import fr.ght1pc9kc.juery.api.filter.*;
import fr.ght1pc9kc.juery.api.filter.AndOperation;
import fr.ght1pc9kc.juery.api.filter.ContainsOperation;
import fr.ght1pc9kc.juery.api.filter.CriteriaVisitor;
import fr.ght1pc9kc.juery.api.filter.CriterionValue;
import fr.ght1pc9kc.juery.api.filter.EndWithOperation;
import fr.ght1pc9kc.juery.api.filter.EqualOperation;
import fr.ght1pc9kc.juery.api.filter.GreaterThanEqualsOperation;
import fr.ght1pc9kc.juery.api.filter.GreaterThanOperation;
import fr.ght1pc9kc.juery.api.filter.InOperation;
import fr.ght1pc9kc.juery.api.filter.LowerThanEqualsOperation;
import fr.ght1pc9kc.juery.api.filter.LowerThanOperation;
import fr.ght1pc9kc.juery.api.filter.NoCriterion;
import fr.ght1pc9kc.juery.api.filter.NotOperation;
import fr.ght1pc9kc.juery.api.filter.OrOperation;
import fr.ght1pc9kc.juery.api.filter.StartWithOperation;

/**
* The Visitor do only <b>nothing</b>. Extend it to apply some modifications on
Expand All @@ -15,17 +29,22 @@ public Criteria visitNoCriteria(NoCriterion none) {

@Override
public Criteria visitAnd(AndOperation operation) {
return operation;
return Criteria.and(operation.andCriteria().stream()
.map(c -> c.accept(this))
.toArray(Criteria[]::new));
}

@Override
public Criteria visitNot(NotOperation operation) {
return operation;
Criteria accepted = operation.negative().accept(this);
return (accepted == operation.negative()) ? operation : Criteria.not(accepted);
}

@Override
public Criteria visitOr(OrOperation operation) {
return operation;
return Criteria.or(operation.orCriteria().stream()
.map(c -> c.accept(this))
.toArray(Criteria[]::new));
}

@Override
Expand Down
4 changes: 4 additions & 0 deletions juery-mongo/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-core</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package fr.ght1pc9kc.juery.mongo;

import lombok.experimental.UtilityClass;

/**
* <p>Options allowed to the {@link fr.ght1pc9kc.juery.mongo.filter.MongoFilterVisitor}</p>
*
* <ul>
* <li><strong>DEFAULT_OPTIONS</strong>: Cover the most frequent usage, {@link MongoFilterOptions#USE_DEFAULT_VALUES}</li>
* <li><strong>USE_DEFAULT_VALUES</strong>: If the property name is not found un the mapping, use it as mongo field name</li>
* </ul>
*/
@UtilityClass
public class MongoFilterOptions {
public static final int NONE = 0;
public static final int DEFAULT_OPTIONS = 1;
public static final int USE_DEFAULT_VALUES = 1;
}

This file was deleted.

Loading

0 comments on commit 84761d2

Please sign in to comment.