use of com.enonic.xp.query.filter.BooleanFilter in project xp by enonic.
the class JsonToFilterMapperTest method array_on_root.
@Test
public void array_on_root() throws Exception {
final List<Map<String, Object>> existsFilters = new ArrayList<>();
existsFilters.add(createExistsFilter());
existsFilters.add(createExistsFilter());
existsFilters.add(createExistsFilter());
final Filters filters = com.enonic.xp.lib.common.JsonToFilterMapper.create(existsFilters);
assertTrue(filters.get(0) instanceof BooleanFilter);
final ImmutableSet<Filter> mustFilters = ((BooleanFilter) filters.get(0)).getMust();
assertEquals(3, mustFilters.size());
}
use of com.enonic.xp.query.filter.BooleanFilter in project xp by enonic.
the class JsonToFilterMapperTest method boolean_filter.
@SuppressWarnings("unchecked")
@Test
public void boolean_filter() throws Exception {
Map<String, Object> filter = new HashMap<>();
final Map<String, Object> boolFilter = new HashMap<>();
boolFilter.put("must", List.of(createExistsFilter(), createExistsFilter()));
boolFilter.put("mustNot", List.of(createExistsFilter()));
boolFilter.put("should", List.of(createExistsFilter(), createExistsFilter(), createExistsFilter()));
filter.put("boolean", boolFilter);
final Filters filters = com.enonic.xp.lib.common.JsonToFilterMapper.create(filter);
assertTrue(filters.get(0) instanceof BooleanFilter);
final BooleanFilter booleanFilter = (BooleanFilter) filters.get(0);
final ImmutableSet<Filter> mustFilters = booleanFilter.getMust();
assertEquals(2, mustFilters.size());
assertTrue(mustFilters.iterator().next() instanceof ExistsFilter);
assertTrue(mustFilters.iterator().next() instanceof ExistsFilter);
final ImmutableSet<Filter> mustNotFilters = booleanFilter.getMustNot();
assertEquals(1, mustNotFilters.size());
final ImmutableSet<Filter> shouldFilters = booleanFilter.getShould();
assertEquals(3, shouldFilters.size());
}
use of com.enonic.xp.query.filter.BooleanFilter in project xp by enonic.
the class AbstractContentCommand method createFilters.
protected Filters createFilters() {
if (shouldFilterScheduledPublished()) {
final BooleanFilter notPendingFilter = BooleanFilter.create().mustNot(RangeFilter.create().fieldName(ContentIndexPath.PUBLISH_FROM.getPath()).from(ValueFactory.newDateTime(Instant.now())).build()).build();
final BooleanFilter notExpiredFilter = BooleanFilter.create().mustNot(RangeFilter.create().fieldName(ContentIndexPath.PUBLISH_TO.getPath()).to(ValueFactory.newDateTime(Instant.now())).build()).build();
return Filters.from(notPendingFilter, notExpiredFilter);
}
return Filters.from();
}
use of com.enonic.xp.query.filter.BooleanFilter in project xp by enonic.
the class MultiRepoSearchSourceAdaptorTest method multiple_repos.
@Test
public void multiple_repos() throws Exception {
final ESSource source = MultiRepoSearchSourceAdaptor.adapt(MultiRepoSearchSource.create().add(SingleRepoSearchSource.create().repositoryId(RepositoryId.from("repo1")).branch(Branch.from("branch1")).acl(PrincipalKeys.from(PrincipalKey.ofAnonymous())).build()).add(SingleRepoSearchSource.create().repositoryId(RepositoryId.from("repo2")).branch(Branch.from("branch2")).acl(PrincipalKeys.from(PrincipalKey.ofAnonymous())).build()).build());
assertTrue(source.getIndexNames().containsAll(Arrays.asList("search-repo1", "search-repo2")));
assertTrue(source.getIndexTypes().containsAll(Arrays.asList("branch1", "branch2")));
final Filters filters = source.getFilters();
assertEquals(1, filters.getSize());
final Filter allFilters = filters.get(0);
assert (allFilters instanceof BooleanFilter);
final ImmutableSet<Filter> shouldFilters = ((BooleanFilter) allFilters).getMust();
assertEquals(2, shouldFilters.size());
}
use of com.enonic.xp.query.filter.BooleanFilter in project xp by enonic.
the class SetPublishInfoCommand method findNodesWithoutPublishFirstAndFrom.
private NodeIds findNodesWithoutPublishFirstAndFrom(final NodeIds nodesToPush) {
if (nodesToPush.isEmpty()) {
return NodeIds.empty();
}
final BooleanFilter containPublishFirstAndFromFilter = BooleanFilter.create().must(ExistsFilter.create().fieldName(ContentIndexPath.PUBLISH_FIRST.getPath()).build()).must(ExistsFilter.create().fieldName(ContentIndexPath.PUBLISH_FROM.getPath()).build()).build();
final NodeQuery query = NodeQuery.create().addQueryFilter(BooleanFilter.create().mustNot(containPublishFirstAndFromFilter).must(IdFilter.create().fieldName(ContentIndexPath.ID.getPath()).values(nodesToPush).build()).build()).size(NodeQuery.ALL_RESULTS_SIZE_FLAG).build();
final FindNodesByQueryResult result = this.nodeService.findByQuery(query);
return result.getNodeIds();
}
Aggregations