use of com.enonic.xp.query.filter.ValueFilter in project xp by enonic.
the class QueryBuilderFactoryTest method createQueryWithFilter.
@Test
public void createQueryWithFilter() throws Exception {
final String expected = load("query_with_queryfilter.json");
final ValueFilter queryFilter = ValueFilter.create().fieldName("myField").addValue(ValueFactory.newString("myValue1")).addValue(ValueFactory.newString("myValue2")).build();
final QueryExpr query = QueryParser.parse("not( myField > 1) ");
final QueryBuilder builtQuery = QueryBuilderFactory.newBuilder().queryExpr(query).addQueryFilter(queryFilter).fieldNameResolver(new SearchQueryFieldNameResolver()).build().create();
final String expectedJson = cleanString(expected);
final String actualJson = cleanString(builtQuery.toString());
assertEquals(expectedJson, actualJson);
}
use of com.enonic.xp.query.filter.ValueFilter in project xp by enonic.
the class AbstractBlobVacuumTaskTest method setUp.
public void setUp() throws Exception {
this.blobStore = new MemoryBlobStore();
this.nodeService = Mockito.mock(NodeService.class);
Mockito.when(nodeService.findVersions(Mockito.any(NodeVersionQuery.class))).thenAnswer((invocation) -> {
final NodeVersionQuery query = invocation.getArgument(0);
final ValueFilter valueFilter = (ValueFilter) query.getQueryFilters().first();
if (valueFilter.getValues().contains(ValueFactory.newString(createBlobKey('a').toString()))) {
return NodeVersionQueryResult.empty(1);
}
return NodeVersionQueryResult.empty(0);
});
}
use of com.enonic.xp.query.filter.ValueFilter in project xp by enonic.
the class ContentQueryNodeQueryTranslator method translate.
public static NodeQuery.Builder translate(final ContentQuery contentQuery) {
final NodeQuery.Builder builder = NodeQuery.create();
final ValueFilter contentCollectionFilter = ValueFilter.create().fieldName(NodeIndexPath.NODE_TYPE.getPath()).addValue(ValueFactory.newString(ContentConstants.CONTENT_NODE_COLLECTION.getName())).build();
builder.query(buildNodeQueryExpr(contentQuery)).from(contentQuery.getFrom()).size(contentQuery.getSize()).addAggregationQueries(contentQuery.getAggregationQueries()).addQueryFilters(contentQuery.getQueryFilters()).addQueryFilter(contentCollectionFilter).highlight(contentQuery.getHighlight());
processContentTypesNames(contentQuery, builder);
processReferenceIds(contentQuery, builder);
return builder;
}
use of com.enonic.xp.query.filter.ValueFilter in project xp by enonic.
the class IssueCommentQueryNodeQueryTranslator method translate.
public static NodeQuery translate(final IssueCommentQuery issueCommentQuery, NodeName parentName) {
final NodeQuery.Builder builder = NodeQuery.create();
builder.parent(NodePath.create(IssueConstants.ISSUE_ROOT_PATH, parentName.toString()).build());
final ValueFilter issueCommentsCollectionFilter = ValueFilter.create().fieldName(NodeIndexPath.NODE_TYPE.getPath()).addValue(ValueFactory.newString(IssueCommentConstants.NODE_COLLECTION.getName())).build();
if (issueCommentQuery.isCount()) {
builder.searchMode(SearchMode.COUNT);
}
builder.from(issueCommentQuery.getFrom()).size(issueCommentQuery.getSize()).addQueryFilter(issueCommentsCollectionFilter);
final PrincipalKey creator = issueCommentQuery.getCreator();
if (creator != null) {
builder.addQueryFilter(ValueFilter.create().fieldName(CREATOR).addValues(creator.toString()).build());
}
builder.setOrderExpressions(issueCommentQuery.getOrder().getOrderExpressions());
return builder.build();
}
use of com.enonic.xp.query.filter.ValueFilter in project xp by enonic.
the class IssueQueryNodeQueryTranslator method translate.
public static NodeQuery translate(final IssueQuery issueQuery) {
final NodeQuery.Builder builder = NodeQuery.create();
final ValueFilter issueCollectionFilter = ValueFilter.create().fieldName(NodeIndexPath.NODE_TYPE.getPath()).addValue(ValueFactory.newString(IssueConstants.ISSUE_NODE_COLLECTION.getName())).build();
if (issueQuery.isCount()) {
builder.searchMode(SearchMode.COUNT);
}
builder.from(issueQuery.getFrom()).size(issueQuery.getSize()).addQueryFilter(issueCollectionFilter);
final PrincipalKey creator = issueQuery.getCreator();
if (creator != null) {
builder.addQueryFilter(ValueFilter.create().fieldName(CREATOR).addValues(creator.toString()).build());
}
final PrincipalKeys approvers = issueQuery.getApprovers();
if (approvers != null && approvers.isNotEmpty()) {
builder.addQueryFilter(ValueFilter.create().fieldName(APPROVERS).addValues(approvers.stream().map(PrincipalKey::toString).collect(toList())).build());
}
final ContentIds items = issueQuery.getItems();
if (items != null && items.isNotEmpty()) {
builder.addQueryFilter(ValueFilter.create().fieldName(PUBLISH_REQUEST_ITEM_ID).addValues(items.stream().map(ContentId::toString).collect(toList())).build());
}
final IssueStatus status = issueQuery.getStatus();
if (status != null) {
builder.addQueryFilter(ValueFilter.create().fieldName(STATUS).addValues(status.toString()).build());
}
final IssueType type = issueQuery.getType();
if (type != null) {
final Filter isOfType = ValueFilter.create().fieldName(TYPE).addValues(type.toString()).build();
if (type == IssueType.STANDARD) {
final Filter notExists = BooleanFilter.create().mustNot(ExistsFilter.create().fieldName(TYPE).build()).build();
final Filter isStandard = BooleanFilter.create().should(isOfType).should(notExists).build();
builder.addQueryFilter(isStandard);
} else {
builder.addQueryFilter(isOfType);
}
}
builder.setOrderExpressions(IssueConstants.DEFAULT_CHILD_ORDER.getOrderExpressions());
return builder.build();
}
Aggregations