Class ItemDeltaFilter


@Experimental public class ItemDeltaFilter extends Object
Filters item deltas according to specified criteria. Currently in `schema` module (not in `prism` one), because I am not sure if it will be midPoint-specific or not. LIMITED FUNCTIONALITY. We are not able to see inside deltas. So, for example, when looking for `activation/administrativeStatus` property, and the whole `activation` container is added, the delta is not shown.
  • Constructor Details

    • ItemDeltaFilter

      public ItemDeltaFilter()
  • Method Details

    • create

      public static ItemDeltaFilter create(Object pathsToInclude, Object pathsToExclude, Boolean includeOperationalItems)
    • matches

      public boolean matches(ItemDelta<?,?> itemDelta)
      Algorithm: . The changed item path is stripped off the container identifiers, e.g. `assignment/[123]/description` becomes `assignment/description`. . The simplified path is compared with pathsToInclude and pathsToExclude. If it matches the former, the change is included. If it matches the latter, the change is excluded. . Otherwise, the last segment of the path is removed, e.g. `assignment/description` becomes `assignment`. The process continues at previous point. . If nothing matches, then .. if there were any pathsToInclude, the item will be excluded, .. if there were no pathsToInclude, the item will be included. . Non-operational items are handled like this: They are excluded, unless includeOperationalItems is `true` _or_ they are explicitly and fully mentioned in pathsToInclude. Limitations: this algorithm does not "see" inside container deltas. They are treated atomically - purely formally according to their path.