Search in sources :

Example 6 with Filter

use of org.identityconnectors.framework.common.objects.filter.Filter in project syncope by apache.

the class ConnectorFacadeProxy method filteredReconciliation.

@Transactional
@Override
public void filteredReconciliation(final ObjectClass objectClass, final ReconFilterBuilder filterBuilder, final SyncResultsHandler handler, final OperationOptions options) {
    Filter filter = null;
    OperationOptions actualOptions = options;
    if (filterBuilder != null) {
        filter = filterBuilder.build();
        actualOptions = filterBuilder.build(actualOptions);
    }
    search(objectClass, filter, object -> handler.handle(new SyncDeltaBuilder().setObject(object).setUid(object.getUid()).setDeltaType(SyncDeltaType.CREATE_OR_UPDATE).setToken(new SyncToken("")).build()), actualOptions);
}
Also used : OperationOptions(org.identityconnectors.framework.common.objects.OperationOptions) SyncDeltaBuilder(org.identityconnectors.framework.common.objects.SyncDeltaBuilder) SyncToken(org.identityconnectors.framework.common.objects.SyncToken) Filter(org.identityconnectors.framework.common.objects.filter.Filter) Transactional(org.springframework.transaction.annotation.Transactional)

Example 7 with Filter

use of org.identityconnectors.framework.common.objects.filter.Filter in project CzechIdMng by bcvsolutions.

the class ConnIdIcConvertUtil method convertIcFilter.

public static Filter convertIcFilter(IcFilter filter) {
    if (filter == null) {
        return null;
    }
    if (filter instanceof IcAndFilter) {
        List<IcFilter> subFilters = (List<IcFilter>) ((IcAndFilter) filter).getFilters();
        LinkedList<Filter> subFiltersConnId = new LinkedList<>();
        if (!subFilters.isEmpty()) {
            subFilters.forEach(subFilter -> {
                subFiltersConnId.add(ConnIdIcConvertUtil.convertIcFilter(subFilter));
            });
        }
        return new AndFilter(subFiltersConnId);
    }
    if (filter instanceof IcOrFilter) {
        List<IcFilter> subFilters = (List<IcFilter>) ((IcOrFilter) filter).getFilters();
        LinkedList<Filter> subFiltersConnId = new LinkedList<>();
        if (!subFilters.isEmpty()) {
            subFilters.forEach(subFilter -> {
                subFiltersConnId.add(ConnIdIcConvertUtil.convertIcFilter(subFilter));
            });
        }
        return new OrFilter(subFiltersConnId);
    }
    if (filter instanceof IcNotFilter) {
        return new NotFilter(ConnIdIcConvertUtil.convertIcFilter(((IcNotFilter) filter).getFilter()));
    }
    if (filter instanceof IcAttributeFilter) {
        Attribute attr = ConnIdIcConvertUtil.convertIcAttribute(((IcAttributeFilter) filter).getAttribute());
        if (filter instanceof IcEqualsFilter) {
            return new EqualsFilter(attr);
        }
        if (filter instanceof IcContainsFilter) {
            return new ContainsFilter(attr);
        }
        if (filter instanceof IcEndsWithFilter) {
            return new EndsWithFilter(attr);
        }
        if (filter instanceof IcContainsAllValuesFilter) {
            return new ContainsAllValuesFilter(attr);
        }
        if (filter instanceof IcStartsWithFilter) {
            return new StartsWithFilter(attr);
        }
        if (filter instanceof IcGreaterThanFilter) {
            return new GreaterThanFilter(attr);
        }
        if (filter instanceof IcLessThanFilter) {
            return new LessThanFilter(attr);
        }
    }
    return null;
}
Also used : IcEnabledAttribute(eu.bcvsolutions.idm.ic.api.IcEnabledAttribute) IcPasswordAttribute(eu.bcvsolutions.idm.ic.api.IcPasswordAttribute) Attribute(org.identityconnectors.framework.common.objects.Attribute) IcUidAttribute(eu.bcvsolutions.idm.ic.api.IcUidAttribute) IcLoginAttribute(eu.bcvsolutions.idm.ic.api.IcLoginAttribute) IcAttribute(eu.bcvsolutions.idm.ic.api.IcAttribute) IcContainsFilter(eu.bcvsolutions.idm.ic.filter.impl.IcContainsFilter) ContainsFilter(org.identityconnectors.framework.common.objects.filter.ContainsFilter) IcAndFilter(eu.bcvsolutions.idm.ic.filter.impl.IcAndFilter) IcNotFilter(eu.bcvsolutions.idm.ic.filter.impl.IcNotFilter) IcOrFilter(eu.bcvsolutions.idm.ic.filter.impl.IcOrFilter) IcStartsWithFilter(eu.bcvsolutions.idm.ic.filter.impl.IcStartsWithFilter) IcContainsFilter(eu.bcvsolutions.idm.ic.filter.impl.IcContainsFilter) IcLessThanFilter(eu.bcvsolutions.idm.ic.filter.impl.IcLessThanFilter) List(java.util.List) ArrayList(java.util.ArrayList) LinkedList(java.util.LinkedList) EqualsFilter(org.identityconnectors.framework.common.objects.filter.EqualsFilter) IcEqualsFilter(eu.bcvsolutions.idm.ic.filter.impl.IcEqualsFilter) IcAttributeFilter(eu.bcvsolutions.idm.ic.filter.impl.IcAttributeFilter) IcEqualsFilter(eu.bcvsolutions.idm.ic.filter.impl.IcEqualsFilter) IcContainsAllValuesFilter(eu.bcvsolutions.idm.ic.filter.impl.IcContainsAllValuesFilter) IcOrFilter(eu.bcvsolutions.idm.ic.filter.impl.IcOrFilter) OrFilter(org.identityconnectors.framework.common.objects.filter.OrFilter) IcEndsWithFilter(eu.bcvsolutions.idm.ic.filter.impl.IcEndsWithFilter) EndsWithFilter(org.identityconnectors.framework.common.objects.filter.EndsWithFilter) LinkedList(java.util.LinkedList) IcAndFilter(eu.bcvsolutions.idm.ic.filter.impl.IcAndFilter) AndFilter(org.identityconnectors.framework.common.objects.filter.AndFilter) IcLessThanFilter(eu.bcvsolutions.idm.ic.filter.impl.IcLessThanFilter) LessThanFilter(org.identityconnectors.framework.common.objects.filter.LessThanFilter) IcContainsFilter(eu.bcvsolutions.idm.ic.filter.impl.IcContainsFilter) IcNotFilter(eu.bcvsolutions.idm.ic.filter.impl.IcNotFilter) Filter(org.identityconnectors.framework.common.objects.filter.Filter) IcStartsWithFilter(eu.bcvsolutions.idm.ic.filter.impl.IcStartsWithFilter) ContainsAllValuesFilter(org.identityconnectors.framework.common.objects.filter.ContainsAllValuesFilter) IcFilter(eu.bcvsolutions.idm.ic.filter.api.IcFilter) NotFilter(org.identityconnectors.framework.common.objects.filter.NotFilter) IcEndsWithFilter(eu.bcvsolutions.idm.ic.filter.impl.IcEndsWithFilter) IcAttributeFilter(eu.bcvsolutions.idm.ic.filter.impl.IcAttributeFilter) EqualsFilter(org.identityconnectors.framework.common.objects.filter.EqualsFilter) EndsWithFilter(org.identityconnectors.framework.common.objects.filter.EndsWithFilter) StartsWithFilter(org.identityconnectors.framework.common.objects.filter.StartsWithFilter) IcLessThanFilter(eu.bcvsolutions.idm.ic.filter.impl.IcLessThanFilter) IcEqualsFilter(eu.bcvsolutions.idm.ic.filter.impl.IcEqualsFilter) LessThanFilter(org.identityconnectors.framework.common.objects.filter.LessThanFilter) IcOrFilter(eu.bcvsolutions.idm.ic.filter.impl.IcOrFilter) IcAndFilter(eu.bcvsolutions.idm.ic.filter.impl.IcAndFilter) IcContainsAllValuesFilter(eu.bcvsolutions.idm.ic.filter.impl.IcContainsAllValuesFilter) AndFilter(org.identityconnectors.framework.common.objects.filter.AndFilter) ContainsFilter(org.identityconnectors.framework.common.objects.filter.ContainsFilter) GreaterThanFilter(org.identityconnectors.framework.common.objects.filter.GreaterThanFilter) IcGreaterThanFilter(eu.bcvsolutions.idm.ic.filter.impl.IcGreaterThanFilter) OrFilter(org.identityconnectors.framework.common.objects.filter.OrFilter) IcGreaterThanFilter(eu.bcvsolutions.idm.ic.filter.impl.IcGreaterThanFilter) IcStartsWithFilter(eu.bcvsolutions.idm.ic.filter.impl.IcStartsWithFilter) StartsWithFilter(org.identityconnectors.framework.common.objects.filter.StartsWithFilter) IcNotFilter(eu.bcvsolutions.idm.ic.filter.impl.IcNotFilter) NotFilter(org.identityconnectors.framework.common.objects.filter.NotFilter) GreaterThanFilter(org.identityconnectors.framework.common.objects.filter.GreaterThanFilter) IcGreaterThanFilter(eu.bcvsolutions.idm.ic.filter.impl.IcGreaterThanFilter) ContainsAllValuesFilter(org.identityconnectors.framework.common.objects.filter.ContainsAllValuesFilter) IcContainsAllValuesFilter(eu.bcvsolutions.idm.ic.filter.impl.IcContainsAllValuesFilter) IcEndsWithFilter(eu.bcvsolutions.idm.ic.filter.impl.IcEndsWithFilter) IcFilter(eu.bcvsolutions.idm.ic.filter.api.IcFilter)

Example 8 with Filter

use of org.identityconnectors.framework.common.objects.filter.Filter in project CzechIdMng by bcvsolutions.

the class ConnIdIcConnectorService method search.

@Override
public void search(IcConnectorInstance connectorInstance, IcConnectorConfiguration connectorConfiguration, IcObjectClass objectClass, IcFilter filter, IcResultsHandler handler) {
    Assert.notNull(connectorInstance, "Connector instance is required.");
    Assert.notNull(connectorInstance.getConnectorKey(), "Connector key is required.");
    Assert.notNull(connectorConfiguration, "Configuration is required.");
    Assert.notNull(objectClass, "Object class is required.");
    Assert.notNull(handler, "Handler is required.");
    LOG.debug("Start search for connector {} and objectClass {} and filter {} - ConnId", connectorInstance.getConnectorKey().toString(), objectClass.getDisplayName(), filter);
    ConnectorFacade conn = facadeFactory.getConnectorFacade(connectorInstance, connectorConfiguration);
    ObjectClass objectClassConnId = ConnIdIcConvertUtil.convertIcObjectClass(objectClass);
    if (objectClassConnId == null) {
        objectClassConnId = ObjectClass.ACCOUNT;
    }
    final SearchResultsHandler handlerConnId = new SearchResultsHandler() {

        @Override
        public boolean handle(ConnectorObject connectorObject) {
            return handler.handle(ConnIdIcConvertUtil.convertConnIdConnectorObject(connectorObject));
        }

        @Override
        public void handleResult(SearchResult result) {
            // VS TODO: For all my tests was search result Null and this method (handle result) was not called!
            LOG.debug("SearchResul was returned (pagination): cookie: {}  --- remaining paged results: {}", result.getPagedResultsCookie(), result.getRemainingPagedResults());
        }
    };
    Filter filterConnId = ConnIdIcConvertUtil.convertIcFilter(filter);
    this.pageSearch(conn, objectClassConnId, filterConnId, handlerConnId, new OperationOptions(connectorConfiguration.getSystemOperationOptions()));
}
Also used : OperationOptions(org.identityconnectors.framework.common.objects.OperationOptions) IcObjectClass(eu.bcvsolutions.idm.ic.api.IcObjectClass) ObjectClass(org.identityconnectors.framework.common.objects.ObjectClass) Filter(org.identityconnectors.framework.common.objects.filter.Filter) IcFilter(eu.bcvsolutions.idm.ic.filter.api.IcFilter) ConnectorObject(org.identityconnectors.framework.common.objects.ConnectorObject) IcConnectorObject(eu.bcvsolutions.idm.ic.api.IcConnectorObject) IcConnectorFacade(eu.bcvsolutions.idm.ic.service.api.IcConnectorFacade) ConnectorFacade(org.identityconnectors.framework.api.ConnectorFacade) SearchResult(org.identityconnectors.framework.common.objects.SearchResult) SearchResultsHandler(org.identityconnectors.framework.spi.SearchResultsHandler)

Example 9 with Filter

use of org.identityconnectors.framework.common.objects.filter.Filter in project midpoint by Evolveum.

the class ConnectorInstanceConnIdImpl method convertFilterToIcf.

Filter convertFilterToIcf(ObjectQuery query, ResourceObjectDefinition objectDefinition) throws SchemaException {
    ObjectFilter prismFilter = query != null ? query.getFilter() : null;
    if (prismFilter != null) {
        LOGGER.trace("Start to convert filter: {}", prismFilter.debugDumpLazily());
        FilterInterpreter interpreter = new FilterInterpreter(objectDefinition);
        Filter connIdFilter = interpreter.interpret(prismFilter, connIdNameMapper);
        LOGGER.trace("ConnId filter: {}", lazy(() -> ConnIdUtil.dump(connIdFilter)));
        return connIdFilter;
    } else {
        return null;
    }
}
Also used : Filter(org.identityconnectors.framework.common.objects.filter.Filter) ObjectFilter(com.evolveum.midpoint.prism.query.ObjectFilter) ObjectFilter(com.evolveum.midpoint.prism.query.ObjectFilter) FilterInterpreter(com.evolveum.midpoint.provisioning.ucf.impl.connid.query.FilterInterpreter)

Example 10 with Filter

use of org.identityconnectors.framework.common.objects.filter.Filter in project midpoint by Evolveum.

the class LogicalOperation method interpret.

@Override
public <T> Filter interpret(ObjectFilter objectFilter, ConnIdNameMapper icfNameMapper) throws SchemaException {
    if (objectFilter instanceof NotFilter) {
        NotFilter not = (NotFilter) objectFilter;
        if (not.getFilter() == null) {
            LOGGER.debug("Not filter does not contain any condition. Skipping processing not filter.");
            return null;
        }
        Filter f = getInterpreter().interpret(not.getFilter(), icfNameMapper);
        return FilterBuilder.not(f);
    } else {
        NaryLogicalFilter nAry = (NaryLogicalFilter) objectFilter;
        List<? extends ObjectFilter> conditions = nAry.getConditions();
        if (conditions == null || conditions.isEmpty()) {
            LOGGER.debug("No conditions specified for logical filter. Skipping processing logical filter.");
            return null;
        }
        if (conditions.size() < 2) {
            LOGGER.debug("Logical filter contains only one condition. Skipping processing logical filter and process simple operation of type {}.", conditions.get(0).getClass().getSimpleName());
            return getInterpreter().interpret(conditions.get(0), icfNameMapper);
        }
        List<Filter> filters = new ArrayList<>();
        for (ObjectFilter objFilter : nAry.getConditions()) {
            Filter f = getInterpreter().interpret(objFilter, icfNameMapper);
            filters.add(f);
        }
        Filter nAryFilter = null;
        if (filters.size() >= 2) {
            if (nAry instanceof AndFilter) {
                nAryFilter = interpretAnd(filters.get(0), filters.subList(1, filters.size()));
            } else if (nAry instanceof OrFilter) {
                nAryFilter = interpretOr(filters.get(0), filters.subList(1, filters.size()));
            }
        }
        return nAryFilter;
    }
}
Also used : NaryLogicalFilter(com.evolveum.midpoint.prism.query.NaryLogicalFilter) AndFilter(com.evolveum.midpoint.prism.query.AndFilter) NaryLogicalFilter(com.evolveum.midpoint.prism.query.NaryLogicalFilter) Filter(org.identityconnectors.framework.common.objects.filter.Filter) AndFilter(com.evolveum.midpoint.prism.query.AndFilter) ObjectFilter(com.evolveum.midpoint.prism.query.ObjectFilter) NotFilter(com.evolveum.midpoint.prism.query.NotFilter) OrFilter(com.evolveum.midpoint.prism.query.OrFilter) NotFilter(com.evolveum.midpoint.prism.query.NotFilter) ArrayList(java.util.ArrayList) ObjectFilter(com.evolveum.midpoint.prism.query.ObjectFilter) OrFilter(com.evolveum.midpoint.prism.query.OrFilter)

Aggregations

Filter (org.identityconnectors.framework.common.objects.filter.Filter)10 OperationOptions (org.identityconnectors.framework.common.objects.OperationOptions)4 ObjectFilter (com.evolveum.midpoint.prism.query.ObjectFilter)3 AsynchronousOperationResult (com.evolveum.midpoint.schema.result.AsynchronousOperationResult)3 OperationResult (com.evolveum.midpoint.schema.result.OperationResult)3 Holder (com.evolveum.midpoint.util.Holder)3 ConnectorObject (org.identityconnectors.framework.common.objects.ConnectorObject)3 ObjectClass (org.identityconnectors.framework.common.objects.ObjectClass)3 SearchResult (org.identityconnectors.framework.common.objects.SearchResult)3 GenericFrameworkException (com.evolveum.midpoint.provisioning.ucf.api.GenericFrameworkException)2 FilterInterpreter (com.evolveum.midpoint.provisioning.ucf.impl.connid.query.FilterInterpreter)2 CommunicationException (com.evolveum.midpoint.util.exception.CommunicationException)2 SchemaException (com.evolveum.midpoint.util.exception.SchemaException)2 SystemException (com.evolveum.midpoint.util.exception.SystemException)2 IcFilter (eu.bcvsolutions.idm.ic.filter.api.IcFilter)2 ArrayList (java.util.ArrayList)2 GuardedString (org.identityconnectors.common.security.GuardedString)2 ItemPath (com.evolveum.midpoint.prism.path.ItemPath)1 AndFilter (com.evolveum.midpoint.prism.query.AndFilter)1 NaryLogicalFilter (com.evolveum.midpoint.prism.query.NaryLogicalFilter)1