Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create prototype iterator functionality #185

Open
plastikfan opened this issue Apr 1, 2022 · 1 comment
Open

Create prototype iterator functionality #185

plastikfan opened this issue Apr 1, 2022 · 1 comment
Assignees
Labels
feature New feature or request

Comments

@plastikfan
Copy link
Collaborator

plastikfan commented Apr 1, 2022

The code proposed came out of the prototype work done with the yank command defined in Utopia, with improved class hierarchy.

Key features:

  • Kerberus class: is the filter guardian wrapping up anything to do with filtering to be used with the iterator functions
  • CoreFilter class hierarchy: consists of the base class: CoreFilter, RegexFilter and FlobFilter
  • FilterDriver: is a wrapper around the CoreFilter and consists of the base class FilterDriver, UnaryFilter designed for single filter scenarios and CompoundFilter for mult-filter scenarios, such as filtering on leaf/child nodes
  • For compound filters, we need to be able apply mutiple filters with all or any semantics. This is achieved with the CompoundHandler class hierarchy, constisting of AllCompoundHandler and AnyCompoundHandler classes
  • FilterNode represents the directory presented to Invoke-TraverseDirectory client, ie the client side script block/context. Contains extra information about the directory and a subject that further contains information about the directory segments
  • FilterStrategy defines the semantics behind the filter scope, eg what is a child node, and what is a leaf node

The CoreFilter can be applied to any part of the directory path and this is denoted by its scope value.

@plastikfan plastikfan added the feature New feature or request label Apr 1, 2022
@plastikfan plastikfan self-assigned this Apr 1, 2022
@plastikfan
Copy link
Collaborator Author

The commit: 6482cea fixes this issue, the commit references the wrong issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant