com.atlassian.confluence.content.render.xhtml.storage
Class DefaultContentTransformerFactory

java.lang.Object
  extended by com.atlassian.confluence.content.render.xhtml.storage.DefaultContentTransformerFactory
All Implemented Interfaces:
ContentTransformerFactory

public class DefaultContentTransformerFactory
extends java.lang.Object
implements ContentTransformerFactory

Default implementation of the ContentTransformerFactory, typically used by macro developers to obtain and optionally modify MacroDefinition objects in page of macro body content.

For following code obtains a reference to the last macro on a page with a given name.

    public MacroDefinition getMacroDefinition(ContentEntityObject contentEntityObject, final String macroName)
    {
        final AtomicReference atomicMacroDefinition = new AtomicReference();
        Transformer transformer = contentTransformerFactory.getTransformer(new XhtmlContent.MacroDefinitionUpdater()
        {
            public MacroDefinition update(MacroDefinition macroDefinition)
            {
               if (macroName.equals(macroDefinition.getName()))
               {
                   atomicMacroDefinition.set(macroDefinition);
               }
               return macroDefinition;
            }
        });

        String page = contentEntityObject.getBodyAsString();
        Reader reader = new StringReader(page);

        PageContext pageContext = contentEntityObject.toPageContext();
        ConversionContext conversionContext = new DefaultConversionContext(pageContext);
        try
        {
            transformer.transform(reader, conversionContext);
        }
        catch (XhtmlException e)
        {
            e.printStackTrace();
        }

        return atomicMacroDefinition.get();
    }
 


Constructor Summary
DefaultContentTransformerFactory(Unmarshaller<MacroDefinition> macroDefinitionUnmarshaller, Marshaller<MacroDefinition> macroDefinitionMarshaller, XmlEventReaderFactory xmlEventReaderFactory, XmlOutputFactory xmlOutputFactory, com.atlassian.event.api.EventPublisher eventPublisher)
           
 
Method Summary
 Transformer getTransformer(MacroDefinitionHandler macroDefinitionHandler)
          Returns a Transformer.
 Transformer getTransformer(MacroDefinitionHandler handler, MacroDefinitionMarshallingStrategy strategy)
          Returns a Transformer.
 Transformer getTransformer(MacroDefinitionReplacer macroDefinitionReplacer)
          Returns a Transformer.
 Transformer getTransformer(MacroDefinitionUpdater macroDefinitionUpdater)
          Returns a Transformer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultContentTransformerFactory

public DefaultContentTransformerFactory(Unmarshaller<MacroDefinition> macroDefinitionUnmarshaller,
                                        Marshaller<MacroDefinition> macroDefinitionMarshaller,
                                        XmlEventReaderFactory xmlEventReaderFactory,
                                        XmlOutputFactory xmlOutputFactory,
                                        com.atlassian.event.api.EventPublisher eventPublisher)
Method Detail

getTransformer

public Transformer getTransformer(MacroDefinitionUpdater macroDefinitionUpdater)
Returns a Transformer. The Transformer will read the content (normally in XHTML storage format) to create MacroDefinition objects which will be passed to the macroDefinitionUpdater and the resulting MacroDefinition will then be written back to the same content format.

Specified by:
getTransformer in interface ContentTransformerFactory
Parameters:
macroDefinitionUpdater - that will be called each time a macro is found in the content.
Returns:
a transformer.

getTransformer

public Transformer getTransformer(MacroDefinitionReplacer macroDefinitionReplacer)
Description copied from interface: ContentTransformerFactory
Returns a Transformer.

Specified by:
getTransformer in interface ContentTransformerFactory
Parameters:
macroDefinitionReplacer - that will be called each time a macro is found in the content.
Returns:
a transformer.

getTransformer

public Transformer getTransformer(MacroDefinitionHandler macroDefinitionHandler)
Description copied from interface: ContentTransformerFactory
Returns a Transformer.

Specified by:
getTransformer in interface ContentTransformerFactory
Parameters:
macroDefinitionHandler - that will be called each time a macro is found in the content.
Returns:
a transformer.

getTransformer

public Transformer getTransformer(MacroDefinitionHandler handler,
                                  MacroDefinitionMarshallingStrategy strategy)
Description copied from interface: ContentTransformerFactory
Returns a Transformer.

Specified by:
getTransformer in interface ContentTransformerFactory
Parameters:
handler - that will be called each time a macro is found in the content.
strategy - that determines how each macro's MacroDefinition should be marshalled.
Returns:
a transformer.


Copyright © 2003-2014 Atlassian. All Rights Reserved.