Class XhtmlMacroManager
java.lang.Object
com.atlassian.confluence.macro.xhtml.XhtmlMacroManager
- All Implemented Interfaces:
MacroManager
Listens for PluginModuleEnabledEvent
and PluginModuleDisabledEvent
to register Macro
s 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:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetMacroByName
(@NonNull String macroName) Gives theMacro
registered with the given name, or null if there is none registered with the manager.io.atlassian.util.concurrent.LazyReference<Macro>
newLazyMacroReference
(com.atlassian.plugin.ModuleDescriptor<?> moduleDescriptor) Macros are lazy loaded to avoid plugin module ordering problems like CONF-13386.void
pluginModuleDisabled
(com.atlassian.plugin.event.events.PluginModuleDisabledEvent event) void
pluginModuleEnabled
(com.atlassian.plugin.event.events.PluginModuleEnabledEvent event) void
registerMacro
(@NonNull String name, @NonNull Macro macro) Registers a new macro with the given name.void
setPluginEventManager
(com.atlassian.plugin.event.PluginEventManager pluginEventManager) void
unregisterMacro
(@NonNull String name) Unregisters the macro with the given name.static Macro
unwrapMacroProxy
(Macro proxy) Unwraps a macro proxy that is wrapped with aXhtmlMacroManager.ResourceAwareMacroInvocationHandler
.
-
Field Details
-
RESOURCE_PREFIX
- See Also:
-
-
Constructor Details
-
XhtmlMacroManager
public XhtmlMacroManager(com.atlassian.event.api.EventPublisher eventPublisher)
-
-
Method Details
-
getMacroByName
Description copied from interface:MacroManager
Gives theMacro
registered with the given name, or null if there is none registered with the manager.- Specified by:
getMacroByName
in interfaceMacroManager
- Parameters:
macroName
- The macro to get.- Returns:
- The Macro, or null if there is none registered.
-
getMacros
-
registerMacro
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 interfaceMacroManager
- Parameters:
name
- the name to register the macro under. For example, 'code'.macro
- the macro to register
-
unregisterMacro
Description copied from interface:MacroManager
Unregisters the macro with the given name. Does nothing if no such macro is registered.- Specified by:
unregisterMacro
in interfaceMacroManager
- 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) -
newLazyMacroReference
public io.atlassian.util.concurrent.LazyReference<Macro> newLazyMacroReference(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:
newLazyMacroReference
in interfaceMacroManager
- 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
Unwraps a macro proxy that is wrapped with aXhtmlMacroManager.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
XhtmlMacroManager.ResourceAwareMacroInvocationHandler
-