Class AbstractXSLProcessingStage

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent
net.shibboleth.metadata.pipeline.AbstractStage<Element>
net.shibboleth.metadata.dom.AbstractXSLProcessingStage
All Implemented Interfaces:
Stage<Element>, net.shibboleth.shared.component.Component, net.shibboleth.shared.component.DestructableComponent, net.shibboleth.shared.component.IdentifiableComponent, net.shibboleth.shared.component.IdentifiedComponent, net.shibboleth.shared.component.InitializableComponent
Direct Known Subclasses:
MultiOutputXSLTransformationStage, XSLTransformationStage, XSLValidationStage

@ThreadSafe public abstract class AbstractXSLProcessingStage extends AbstractStage<Element>
An abstract stage which applies an XSL transformation to each element in the DOMElementItem collection.

This stage requires the following properties be set prior to initialization:

  • xslResource
  • Field Details

    • LOG

      @Nonnull private static final org.slf4j.Logger LOG
      Class logger.
    • xslResource

      @NonnullAfterInit private Resource xslResource
      Resource that provides the XSL document.
    • xslTemplate

      @NonnullAfterInit private Templates xslTemplate
      XSL template used to transform Elements.

      A single shared Templates object is constructed from the xslResource, transformAttributes, transformFeatures and any uriResolver during initialisation of the stage.

    • transformAttributes

      @Nonnull @NonnullElements @Unmodifiable private Map<String,Object> transformAttributes
      Attributes set on the Transformer used by this stage.
    • transformFeatures

      @Nonnull @NonnullElements @Unmodifiable private Map<String,Boolean> transformFeatures
      Features set on the Transformer used by this stage.
    • transformParameters

      @Nonnull @NonnullElements @Unmodifiable private Map<String,Object> transformParameters
      Collection of named parameters to make available to the transform. If not set, an empty collection.
    • uriResolver

      @Nullable private URIResolver uriResolver
      URIResolver to use in the transformer. Default value: null.
  • Constructor Details

    • AbstractXSLProcessingStage

      public AbstractXSLProcessingStage()
  • Method Details

    • getXSLResource

      @Nullable public final Resource getXSLResource()
      Gets the resource that provides the XSL document.
      Returns:
      resource that provides the XSL document
    • setXSLResource

      public void setXSLResource(@Nonnull Resource resource)
      Sets the resource that provides the XSL document.
      Parameters:
      resource - resource that provides the XSL document
    • getXSLTemplate

      @NonnullAfterInit private Templates getXSLTemplate()
      Get the shared templates object.
      Returns:
      the shared templates object
    • getTransformAttributes

      @Nonnull @NonnullElements @Unmodifiable public final Map<String,Object> getTransformAttributes()
      Gets the unmodifiable collection of attributes used by the XSLT transformer.
      Returns:
      unmodifiable collection of attributes used by the XSLT transformer, never null nor containing null keys
    • setTransformAttributes

      public void setTransformAttributes(@Nonnull @NonnullElements @Unmodifiable Map<String,Object> attributes)
      Sets the collection of attributes used by the XSLT transformer.
      Parameters:
      attributes - collection of attributes used by the XSLT transformer, may be null or contain null keys
    • getTransformFeatures

      @Nonnull @NonnullElements @Unmodifiable public final Map<String,Boolean> getTransformFeatures()
      Gets the unmodifiable collection of features used by the XSLT transformer.
      Returns:
      unmodifiable collection of features used by the XSLT transformer, never null nor containing null keys
    • setTransformFeatures

      public void setTransformFeatures(@Nonnull @NonnullElements @Unmodifiable Map<String,Boolean> features)
      Sets the collection of features used by the XSLT transformer.
      Parameters:
      features - collection of features used by the XSLT transformer, may be null or contain null keys
    • getTransformParameters

      @Nonnull @NonnullElements @Unmodifiable public final Map<String,Object> getTransformParameters()
      Gets the unmodifiable collection of parameters used by the XSLT transformer.
      Returns:
      parameters used by the XSLT transformer, never null nor containing null keys
    • setTransformParameters

      public void setTransformParameters(@Nonnull @NonnullElements @Unmodifiable Map<String,Object> parameters)
      Sets the named parameters for the transform.
      Parameters:
      parameters - parameters for the transform, may be null or contain null keys
    • getURIResolver

      @Nullable public final URIResolver getURIResolver()
      Gets the URIResolver set for this transform, if any.
      Returns:
      the URIResolver, or null
    • setURIResolver

      public void setURIResolver(@Nullable URIResolver resolver)
      Set the URIResolver for this transform, or null to specify none.
      Parameters:
      resolver - the URIResolver to use, or null
    • doExecute

      protected void doExecute(@Nonnull @NonnullElements List<Item<Element>> items) throws StageProcessingException
      Description copied from class: AbstractStage
      Performs the stage processing on the given Item collection.

      The stage is guaranteed to be have been initialized and not destroyed when this is invoked.

      Specified by:
      doExecute in class AbstractStage<Element>
      Parameters:
      items - collection to be processed
      Throws:
      StageProcessingException - thrown if there is an unrecoverable problem when processing the stage
    • executeTransformer

      protected abstract void executeTransformer(@Nonnull Transformer transformer, @Nonnull @NonnullElements Collection<Item<Element>> items) throws StageProcessingException, TransformerConfigurationException
      Executes the XSLT transform on the given collection of Items.
      Parameters:
      transformer - The transform to be applied to each Item. Already has all transformParameters set.
      items - the Items to which the transform should be applied
      Throws:
      StageProcessingException - thrown if there is a problem applying the transform to Items
      TransformerConfigurationException - thrown if there is a problem with the Transform itself
    • doInitialize

      protected void doInitialize() throws net.shibboleth.shared.component.ComponentInitializationException
      Overrides:
      doInitialize in class net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent
      Throws:
      net.shibboleth.shared.component.ComponentInitializationException