Class NodeProcessingMetadataFilter

All Implemented Interfaces:
Component, DestructableComponent, InitializableComponent, MetadataFilter

public class NodeProcessingMetadataFilter extends AbstractMetadataFilter
An implementation of MetadataFilter which applies a MetadataNodeProcessor to each element node in the metadata document tree. The node processors will be applied in the order of List provided by setNodeProcessors(List). The metadata document tree is traversed depth-first.
  • Field Details

  • Constructor Details

    • NodeProcessingMetadataFilter

      public NodeProcessingMetadataFilter()
      Constructor.
  • Method Details

    • getNodeProcessors

      @Nonnull @Live public List<MetadataNodeProcessor> getNodeProcessors()
      Get the list of metadata node processors.
      Returns:
      the list of metadata node processors
    • setNodeProcessors

      public void setNodeProcessors(@Nonnull List<MetadataNodeProcessor> newProcessors)
      Set the list of metadata node processors.
      Parameters:
      newProcessors - the new list of processors to set.
    • filter

      @Nullable public XMLObject filter(@Nullable XMLObject metadata, @Nonnull MetadataFilterContext context) throws FilterException
      Filters the given metadata, perhaps to remove elements that are not wanted.
      Parameters:
      metadata - the metadata to be filtered.
      context - the metadata filter context
      Returns:
      the filtered XMLObject, which may or may not be the same as the XMLObject instance passed in to the method. Maybe be null, for example if the top-level element was removed by the filter.
      Throws:
      FilterException - thrown if an error occurs during the filtering process
    • processNode

      protected void processNode(@Nonnull XMLObject node) throws FilterException
      Process an individual metadata node.
      Parameters:
      node - the metadata node to process.
      Throws:
      FilterException - if a fatal error is encountered while processing a node