Class DefaultFragmentTransformer
- java.lang.Object
-
- 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:
- Configure a List of
ElementTransformerwhich will transform individual elements read. - Configure a List of
FragmentTransformerwhich will take well formed fragments of XML and transform them.
Note that in both
FragmentTransformerandElementTransformerthe order of the configured transformers is the order they are applied. AllElementTransformerare applied beforeFragmentTransformer.If you prefer to scope the application of
ElementTransformerto a particular fragment of XML then instead of configuring them here in the DefaultFragmentTransformer you should instead use anElementTransformingFragmentTransformerwhich 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
Constructors Constructor Description DefaultFragmentTransformer(List<? extends FragmentTransformer> fragmentTransformers, XmlOutputFactory xmlFragmentOutputFactory, XmlEventReaderFactory xmlEventReaderFactory, FragmentTransformationErrorHandler fragmentTransformationErrorHandler, @Nullable com.atlassian.event.api.EventPublisher eventPublisher)DefaultFragmentTransformer(List<ElementTransformer> elementTransformers, List<? extends FragmentTransformer> fragmentTransformers, XmlOutputFactory xmlFragmentOutputFactory, XmlEventReaderFactory xmlEventReaderFactory, FragmentTransformationErrorHandler fragmentTransformationErrorHandler, @Nullable com.atlassian.event.api.EventPublisher eventPublisher)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static DefaultFragmentTransformercreateMigrationAwareFragmentTransformer(List<? extends FragmentTransformer> fragmentTransformers, XmlOutputFactory xmlFragmentOutputFactory, XmlEventReaderFactory xmlEventReaderFactory, FragmentTransformationErrorHandler fragmentTransformationErrorHandler, com.atlassian.event.api.EventPublisher eventPublisher)booleanhandles(StartElement startElementEvent, ConversionContext conversionContext)This fragment converter handles every XHTML element that is not handled by any other converter.Streamabletransform(XMLEventReader reader, FragmentTransformer defaultFragmentTransformer, ConversionContext conversionContext)Transform the XML read from the supplied reader, making use of any configured FragmentTransformers as appropriate.booleanwasMigrationPerformed(ConversionContext conversionContext)Given aConversionContextthat was previously used to perform a migration, determine if that context contains information that indicates whether a "migration" was performed.
-
-
-
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
MigrationAwareFragmentTransformerwhich guarantees that every delegateFragmentTransformeris alsoMigrationAware.
-
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:
transformin interfaceFragmentTransformer- 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:
handlesin interfaceFragmentTransformer
-
wasMigrationPerformed
public boolean wasMigrationPerformed(ConversionContext conversionContext)
Description copied from interface:MigrationAwareGiven aConversionContextthat 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:
wasMigrationPerformedin interfaceMigrationAware- Parameters:
conversionContext- the context used for the migration- Returns:
- true if any of the
MigrationAwareFragmentTransformers think a migration was performed, false otherwise.
-
-