EliziumNet/Loopz

Create prototype iterator functionality

Opened this issue · 1 comments

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.

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