Class Transformer

  • All Implemented Interfaces:
    Uniform

    public class Transformer
    extends Filter
    Filter that can transform XML representations by applying an XSLT transform sheet. It uses the org.restlet.representation.TransformRepresentation to actually transform the XML entities.

    Concurrency note: instances of this class or its subclasses can be invoked by several threads at the same time and therefore must be thread-safe. You should be especially careful when storing state in member variables.
    • Field Detail

      • MODE_REQUEST

        public static final int MODE_REQUEST
        Mode that transforms request entities before their handling by the attached Restlet.
        See Also:
        Constant Field Values
      • MODE_RESPONSE

        public static final int MODE_RESPONSE
        Mode that transforms response entities after their handling by the attached Restlet.
        See Also:
        Constant Field Values
      • mode

        private volatile int mode
        The transformation mode.
      • resultCharacterSet

        private volatile CharacterSet resultCharacterSet
        The character set of the result representation. The default value is null.
      • resultEncodings

        private volatile java.util.List<Encoding> resultEncodings
        The encodings of the result representation.
      • resultLanguages

        private volatile java.util.List<Language> resultLanguages
        The languages of the result representation.
      • resultMediaType

        private volatile MediaType resultMediaType
        The media type of the result representation. MediaType.APPLICATION_XML by default.
      • transformSheet

        private volatile Representation transformSheet
        The XSLT transform sheet to apply to message entities.
    • Constructor Detail

      • Transformer

        public Transformer​(int mode,
                           Representation transformSheet)
        Constructor.
        Parameters:
        mode - The transformation mode.
        transformSheet - The XSLT transform sheet to apply to message entities.
    • Method Detail

      • afterHandle

        protected void afterHandle​(Request request,
                                   Response response)
        Description copied from class: Filter
        Allows filtering after processing by the next Restlet. Does nothing by default.
        Overrides:
        afterHandle in class Filter
        Parameters:
        request - The request to handle.
        response - The response to update.
      • canTransform

        protected boolean canTransform​(Representation representation)
        Indicates if the filter can transform the given message entity. By default, it always returns true.
        Parameters:
        representation - The entity representation to test.
        Returns:
        True if the transformation can be applied.
      • getMode

        public int getMode()
        Returns the transformation mode. See MODE_* constants.
        Returns:
        The transformation mode.
      • getResultCharacterSet

        public CharacterSet getResultCharacterSet()
        Returns the character set of the result representation. The default value is null.
        Returns:
        The character set of the result representation.
      • getResultEncodings

        public java.util.List<Encoding> getResultEncodings()
        Returns the modifiable list of encodings of the result representation.
        Returns:
        The encoding of the result representation.
      • getResultLanguages

        public java.util.List<Language> getResultLanguages()
        Returns the modifiable list of languages of the result representation.
        Returns:
        The language of the result representation.
      • getResultMediaType

        public MediaType getResultMediaType()
        Returns the media type of the result representation. The default value is MediaType.APPLICATION_XML.
        Returns:
        The media type of the result representation.
      • getTransformSheet

        public Representation getTransformSheet()
        Returns the XSLT transform sheet to apply to message entities.
        Returns:
        The XSLT transform sheet to apply to message entities.
      • setMode

        public void setMode​(int mode)
        Sets the transformation mode. See MODE_* constants.
        Parameters:
        mode - The transformation mode.
      • setResultCharacterSet

        public void setResultCharacterSet​(CharacterSet resultCharacterSet)
        Sets the character set of the result representation.
        Parameters:
        resultCharacterSet - The character set of the result representation.
      • setResultEncodings

        public void setResultEncodings​(java.util.List<Encoding> resultEncodings)
        Sets the encodings of the result representation.
        Parameters:
        resultEncodings - The encodings of the result representation.
      • setResultLanguages

        public void setResultLanguages​(java.util.List<Language> resultLanguages)
        Sets the languages of the result representation.
        Parameters:
        resultLanguages - The languages of the result representation.
      • setResultMediaType

        public void setResultMediaType​(MediaType resultMediaType)
        Sets the media type of the result representation.
        Parameters:
        resultMediaType - The media type of the result representation.
      • setTransformSheet

        public void setTransformSheet​(Representation transformSheet)
        Sets the XSLT transform sheet to apply to message entities.
        Parameters:
        transformSheet - The XSLT transform sheet to apply to message entities.
      • transform

        public Representation transform​(Representation source)
        Transforms a source XML representation by applying an XSLT transform sheet to it.
        Parameters:
        source - The source XML representation.
        Returns:
        The generated result representation.