Search in sources :

Example 36 with Filter

use of org.hypertrace.core.documentstore.Filter in project entity-service by hypertrace.

the class DocStoreConverter method transformNonListRhsFilterTypes.

private static Filter transformNonListRhsFilterTypes(AttributeFilter filter) {
    try {
        Filter f = new Filter();
        f.setFieldName(filter.getName());
        f.setOp(transform(filter.getOperator()));
        transform(filter.getAttributeValue(), f, isPartOfAttributeMap(f.getFieldName()));
        // Set child filters to empty string
        f.setChildFilters(new Filter[] {});
        return f;
    } catch (IOException ioe) {
        throw new IllegalArgumentException(String.format("transformNonListRhsFilterTypes: Error converting filter for query. Filter:  %s", filter), ioe);
    }
}
Also used : Filter(org.hypertrace.core.documentstore.Filter) AttributeFilter(org.hypertrace.entity.data.service.v1.AttributeFilter) IOException(java.io.IOException)

Example 37 with Filter

use of org.hypertrace.core.documentstore.Filter in project entity-service by hypertrace.

the class DocStoreConverter method transform.

private static Filter transform(AttributeFilter filter) {
    if (filter.hasAttributeValue()) {
        if (isMultiValuedAttribute(filter) && filter.getOperator() == Operator.EQ) {
            return transformToEqFilterWithValueListRhs(filter);
        } else if (isMultiValuedAttribute(filter) && filter.getOperator() == Operator.NEQ) {
            return transformToNeqFilterWithValueListRhs(filter);
        } else if (isMultiValuedAttribute(filter) && filter.getOperator() == Operator.IN) {
            return transformToOrFilterChainForStrArray(filter);
        } else if (isMultiValuedAttribute(filter) && filter.getOperator() == Operator.NOT_IN) {
            return transformToAndFilterChainForStrArray(filter);
        } else {
            return transformNonListRhsFilterTypes(filter);
        }
    } else {
        // AND or OR filter chains
        Filter f = new Filter();
        f.setFieldName(filter.getName());
        f.setOp(transform(filter.getOperator()));
        f.setChildFilters(filter.getChildFilterList().stream().map(DocStoreConverter::transform).collect(Collectors.toList()).toArray(new Filter[] {}));
        return f;
    }
}
Also used : Filter(org.hypertrace.core.documentstore.Filter) AttributeFilter(org.hypertrace.entity.data.service.v1.AttributeFilter)

Example 38 with Filter

use of org.hypertrace.core.documentstore.Filter in project entity-service by hypertrace.

the class DocStoreConverter method createEqFilterForAttributeValue.

private static Filter createEqFilterForAttributeValue(String fieldName, AttributeValue attributeValue) {
    Filter f = new Filter();
    f.setFieldName(fieldName);
    f.setOp(Op.EQ);
    f.setValue(prepareRhsValueForSpecialValueListCase(attributeValue));
    // Set child filters to empty array
    f.setChildFilters(new Filter[] {});
    return f;
}
Also used : Filter(org.hypertrace.core.documentstore.Filter) AttributeFilter(org.hypertrace.entity.data.service.v1.AttributeFilter)

Aggregations

Filter (org.hypertrace.core.documentstore.Filter)38 AttributeFilter (org.hypertrace.entity.data.service.v1.AttributeFilter)20 Test (org.junit.jupiter.api.Test)19 Query (org.hypertrace.entity.data.service.v1.Query)18 ArrayList (java.util.ArrayList)12 Map (java.util.Map)9 Query (org.hypertrace.core.documentstore.Query)9 JSONDocument (org.hypertrace.core.documentstore.JSONDocument)7 Document (org.hypertrace.core.documentstore.Document)6 Collection (org.hypertrace.core.documentstore.Collection)5 MongoCollection (com.mongodb.client.MongoCollection)4 IOException (java.io.IOException)4 List (java.util.List)4 SingleValueKey (org.hypertrace.core.documentstore.SingleValueKey)4 JsonNode (com.fasterxml.jackson.databind.JsonNode)3 GeneratedMessageV3 (com.google.protobuf.GeneratedMessageV3)3 BasicDBObject (com.mongodb.BasicDBObject)3 Collections (java.util.Collections)3 Optional (java.util.Optional)3 Collectors (java.util.stream.Collectors)3