com.atlassian.confluence.content.render.xhtml.transformers
Class DefaultFragmentTransformer

java.lang.Object
  extended by com.atlassian.confluence.content.render.xhtml.transformers.DefaultFragmentTransformer
All Implemented Interfaces:
MigrationAware, FragmentTransformer

public class DefaultFragmentTransformer
extends Object
implements FragmentTransformer, MigrationAware

This can be thought of as the top-level Transformer since it includes the behaviour of writing out any events that have no specific handling configured.

There are two ways of causing transformation:

  1. Configure a List of ElementTransformer which will transform individual elements read.
  2. Configure a List of FragmentTransformer which will take well formed fragments of XML and transform them.
These two mechanisms can be combined.

Note that in both FragmentTransformer and ElementTransformer the order of the configured transformers is the order they are applied. All ElementTransformer are applied before FragmentTransformer.

If you prefer to scope the application of ElementTransformer to a particular fragment of XML then instead of configuring them here in the DefaultFragmentTransformer you should instead use an ElementTransformingFragmentTransformer which will scope the Element transformations to a particular fragment of XML.


Nested Class Summary
 
Nested classes/interfaces inherited from interface com.atlassian.confluence.content.render.xhtml.migration.MigrationAware
MigrationAware.MigrationPerformedPredicate
 
Constructor Summary
DefaultFragmentTransformer(List<? extends FragmentTransformer> fragmentTransformers, XmlOutputFactory xmlFragmentOutputFactory, XmlEventReaderFactory xmlEventReaderFactory, FragmentTransformationErrorHandler fragmentTransformationErrorHandler, com.atlassian.event.api.EventPublisher eventPublisher)
           
DefaultFragmentTransformer(List<ElementTransformer> elementTransformers, List<? extends FragmentTransformer> fragmentTransformers, XmlOutputFactory xmlFragmentOutputFactory, XmlEventReaderFactory xmlEventReaderFactory, FragmentTransformationErrorHandler fragmentTransformationErrorHandler, com.atlassian.event.api.EventPublisher eventPublisher)
           
 
Method Summary
static DefaultFragmentTransformer createMigrationAwareFragmentTransformer(List<? extends FragmentTransformer> fragmentTransformers, XmlOutputFactory xmlFragmentOutputFactory, XmlEventReaderFactory xmlEventReaderFactory, FragmentTransformationErrorHandler fragmentTransformationErrorHandler, com.atlassian.event.api.EventPublisher eventPublisher)
           
 boolean handles(StartElement startElementEvent, ConversionContext conversionContext)
          This fragment converter handles every XHTML element that is not handled by any other converter.
 Streamable transform(XMLEventReader reader, FragmentTransformer defaultFragmentTransformer, ConversionContext conversionContext)
          Transform the XML read from the supplied reader, making use of any configured FragmentTransformers as appropriate.
 boolean wasMigrationPerformed(ConversionContext conversionContext)
          Given a ConversionContext that was previously used to perform a migration, determine if that context contains information that indicates whether a "migration" was performed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultFragmentTransformer

public DefaultFragmentTransformer(List<? extends FragmentTransformer> fragmentTransformers,
                                  XmlOutputFactory xmlFragmentOutputFactory,
                                  XmlEventReaderFactory xmlEventReaderFactory,
                                  FragmentTransformationErrorHandler fragmentTransformationErrorHandler,
                                  @Nullable
                                  com.atlassian.event.api.EventPublisher eventPublisher)

DefaultFragmentTransformer

public DefaultFragmentTransformer(List<ElementTransformer> elementTransformers,
                                  List<? extends FragmentTransformer> fragmentTransformers,
                                  XmlOutputFactory xmlFragmentOutputFactory,
                                  XmlEventReaderFactory xmlEventReaderFactory,
                                  FragmentTransformationErrorHandler fragmentTransformationErrorHandler,
                                  @Nullable
                                  com.atlassian.event.api.EventPublisher eventPublisher)
Method Detail

createMigrationAwareFragmentTransformer

public static DefaultFragmentTransformer createMigrationAwareFragmentTransformer(List<? extends FragmentTransformer> fragmentTransformers,
                                                                                 XmlOutputFactory xmlFragmentOutputFactory,
                                                                                 XmlEventReaderFactory xmlEventReaderFactory,
                                                                                 FragmentTransformationErrorHandler fragmentTransformationErrorHandler,
                                                                                 com.atlassian.event.api.EventPublisher eventPublisher)
Returns:
a MigrationAware FragmentTransformer which guarantees that every delegate FragmentTransformer is also MigrationAware.

transform

public Streamable transform(XMLEventReader reader,
                            FragmentTransformer defaultFragmentTransformer,
                            ConversionContext conversionContext)
                     throws XhtmlException
Transform the XML read from the supplied reader, making use of any configured FragmentTransformers as appropriate.

Specified by:
transform in interface FragmentTransformer
Throws:
XhtmlException

handles

public boolean handles(StartElement startElementEvent,
                       ConversionContext conversionContext)
This fragment converter handles every XHTML element that is not handled by any other converter.

Specified by:
handles in interface FragmentTransformer

wasMigrationPerformed

public boolean wasMigrationPerformed(ConversionContext conversionContext)
Description copied from interface: MigrationAware
Given a ConversionContext that was previously used to perform a migration, determine if that context contains information that indicates whether a "migration" was performed. What constitutes a migration is implementation-dependent.

Specified by:
wasMigrationPerformed in interface MigrationAware
Parameters:
conversionContext - the context used for the migration
Returns:
true if any of the MigrationAware FragmentTransformers think a migration was performed, false otherwise.


Copyright © 2003–2015 Atlassian. All rights reserved.