You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "bdemers (via GitHub)" <gi...@apache.org> on 2023/01/25 21:04:08 UTC

[GitHub] [directory-scimple] bdemers commented on pull request #240: Allow for InMemoryScimFilterMatcher to traverse maps

bdemers commented on PR #240:
URL: https://github.com/apache/directory-scimple/pull/240#issuecomment-1404220949

   @erant10 I was rebasing https://github.com/erant10/directory-scimple/pull/2 (still needs some cleanup), but it had me thinking. We are traversing two different objects, the `sourceAsMap` and the `items` in collections. The individual items are used when testing the filter, but all of the mutations happen against the `sourceAsMap`. This also means we need to convert to and from the ScimResource for each patch operation (granted, this isn't a big deal with a low number of patches per request).  But with this change, I think we could convert a map (`sourceAsMap`), apply each patch operation, and then convert back to the ScimResource.
   
   This PR tweaks `InMemoryScimFilterMatcher` to allow traversal over maps (in addition to ScimResources).
   It's not perfect , but in my local branch of `patch_phase1`, I changed a few lines to use the new method, something like:
   
   ```diff
   -      Collection<Object> items = attribute.getAccessor().get(source);
   -      Predicate<Object> pred = FilterExpressions.inMemory(valuePathExpression.getAttributeExpression(), schema);
   +
   +      Collection<Map<String, Object>> items = (Collection<Map<String, Object>>) sourceAsMap.get(attributeReference.getAttributeName());
   +      Predicate<Object> pred = FilterExpressions.inMemoryMap(valuePathExpression.getAttributeExpression(), schema);
   ```
   
   Thoughts?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
For additional commands, e-mail: dev-help@directory.apache.org