com.atlassian.confluence.macro.xhtml
Class XhtmlMacroManager

java.lang.Object
  extended by com.atlassian.confluence.macro.xhtml.XhtmlMacroManager
All Implemented Interfaces:
MacroManager

public class XhtmlMacroManager
extends Object
implements MacroManager

Listens for PluginModuleEnabledEvent and PluginModuleDisabledEvent to register Macros with itself.

All macros will be wrapped in a LazyLoadingMacroWrapper and will have their resource path set if they are ResourceAware. If they are not ResourceAware then they will be wrapped in a dynamic proxy that does implement the interface (and the path will be set).

Since:
4.0
See Also:
XhtmlMacroManager

Field Summary
static String RESOURCE_PREFIX
           
 
Constructor Summary
XhtmlMacroManager(com.atlassian.event.api.EventPublisher eventPublisher)
           
 
Method Summary
 com.atlassian.util.concurrent.LazyReference<Macro> createLazyMacroReference(com.atlassian.plugin.ModuleDescriptor<?> moduleDescriptor)
          Macros are lazy loaded to avoid plugin module ordering problems like CONF-13386.
 Macro getMacroByName(String macroName)
          Gives the Macro registered with the given name, or null if there is none registered with the manager.
 void pluginModuleDisabled(com.atlassian.plugin.event.events.PluginModuleDisabledEvent event)
           
 void pluginModuleEnabled(com.atlassian.plugin.event.events.PluginModuleEnabledEvent event)
           
 void registerMacro(String name, Macro macro)
          Registers a new macro with the given name.
 void setPluginEventManager(com.atlassian.plugin.event.PluginEventManager pluginEventManager)
           
 void unregisterMacro(String name)
          Unregisters the macro with the given name.
static Macro unwrapMacroProxy(Macro proxy)
          Unwraps a macro proxy that is wrapped with a ResourceAwareMacroInvocationHandler.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RESOURCE_PREFIX

public static final String RESOURCE_PREFIX
See Also:
Constant Field Values
Constructor Detail

XhtmlMacroManager

public XhtmlMacroManager(com.atlassian.event.api.EventPublisher eventPublisher)
Method Detail

getMacroByName

public Macro getMacroByName(@NotNull
                            String macroName)
Description copied from interface: MacroManager
Gives the Macro registered with the given name, or null if there is none registered with the manager.

Specified by:
getMacroByName in interface MacroManager
Parameters:
macroName - The macro to get.
Returns:
The Macro, or null if there is none registered.

registerMacro

public void registerMacro(@NotNull
                          String name,
                          @NotNull
                          Macro macro)
Description copied from interface: MacroManager
Registers a new macro with the given name. If a macro already exists with that name, it is replaced by the new macro.

Specified by:
registerMacro in interface MacroManager
Parameters:
name - the name to register the macro under. For example, 'code'.
macro - the macro to register

unregisterMacro

public void unregisterMacro(@NotNull
                            String name)
Description copied from interface: MacroManager
Unregisters the macro with the given name. Does nothing if no such macro is registered.

Specified by:
unregisterMacro in interface MacroManager
Parameters:
name - the name of the macro to unregister. For example, 'code'.

pluginModuleEnabled

public void pluginModuleEnabled(com.atlassian.plugin.event.events.PluginModuleEnabledEvent event)

pluginModuleDisabled

public void pluginModuleDisabled(com.atlassian.plugin.event.events.PluginModuleDisabledEvent event)

createLazyMacroReference

public com.atlassian.util.concurrent.LazyReference<Macro> createLazyMacroReference(com.atlassian.plugin.ModuleDescriptor<?> moduleDescriptor)
Description copied from interface: MacroManager
Macros are lazy loaded to avoid plugin module ordering problems like CONF-13386.

Specified by:
createLazyMacroReference in interface MacroManager
Parameters:
moduleDescriptor - describes the macro we are creating a lazy reference to.
Returns:
a LazyReference to a macro as described by the supplied ModuleDescriptor

setPluginEventManager

public void setPluginEventManager(com.atlassian.plugin.event.PluginEventManager pluginEventManager)

unwrapMacroProxy

public static Macro unwrapMacroProxy(Macro proxy)
Unwraps a macro proxy that is wrapped with a ResourceAwareMacroInvocationHandler. If the macro is not proxied with this invocation handler then the passed in proxy is returned.

Parameters:
proxy - The proxy to unwrap
Returns:
The proxied instance if it is using the ResourceAwareMacroInvocationHandler


Copyright © 2003-2013 Atlassian. All Rights Reserved.