Class PredicateFilter

  • All Implemented Interfaces:
    MetadataFilter

    public class PredicateFilter
    extends Object
    implements MetadataFilter
    A filter that removes any EntityDescriptor that does or does not match a Predicate, thus an include or exclude policy.

    If an EntitiesDescriptor does not contain any children after filtering it may, optionally, be removed as well. If the root element of the metadata document is an @link EntitiesDescriptor}, it will never be removed, regardless of of whether it still has children.

    • Field Detail

      • log

        @Nonnull
        private final org.slf4j.Logger log
        Class logger.
      • direction

        @Nonnull
        private final PredicateFilter.Direction direction
        Whether matching means to include or exclude an entity.
      • removeEmptyEntitiesDescriptors

        private boolean removeEmptyEntitiesDescriptors
        Whether to keep entities descriptors that contain no entity descriptors; default value: true.
    • Constructor Detail

      • PredicateFilter

        public PredicateFilter​(@Nonnull
                               PredicateFilter.Direction dir,
                               @Nonnull
                               Predicate<EntityDescriptor> theCondition)
        Constructor.
        Parameters:
        dir - whether to apply an include or an exclude policy
        theCondition - the predicate to apply to determine inclusion or exclusion
    • Method Detail

      • getDirection

        @Nonnull
        public PredicateFilter.Direction getDirection()
        Get the direction of filtering.
        Returns:
        filtering direction
      • getCondition

        @Nonnull
        public Predicate<EntityDescriptor> getCondition()
        Get the predicate to be applied.
        Returns:
        the predicate to be applied
      • getRemoveEmptyEntitiesDescriptors

        public boolean getRemoveEmptyEntitiesDescriptors()
        Get whether to remove an entities descriptor if it does not contain any entity descriptor or entities descriptors.
        Returns:
        whether to remove an entities descriptor if it does not contain any entity descriptor or entities descriptors
      • setRemoveEmptyEntitiesDescriptors

        public void setRemoveEmptyEntitiesDescriptors​(boolean remove)
        Set whether to remove an entities descriptor if it does not contain any entity descriptor or entities descriptors.
        Parameters:
        remove - whether to remove an entities descriptor if it does not contain any entity descriptor or entities descriptors
      • filterEntitiesDescriptor

        protected void filterEntitiesDescriptor​(@Nonnull
                                                EntitiesDescriptor descriptor)
        Filters entities descriptor.
        Parameters:
        descriptor - entities descriptor to filter