public class XhtmlMacroManager extends Object implements 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).
XhtmlMacroManager
Modifier and Type | Field and Description |
---|---|
static String |
RESOURCE_PREFIX |
Constructor and Description |
---|
XhtmlMacroManager(com.atlassian.event.api.EventPublisher eventPublisher) |
Modifier and Type | Method and Description |
---|---|
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. |
Map<String,Macro> |
getMacros() |
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 . |
public static final String RESOURCE_PREFIX
public XhtmlMacroManager(com.atlassian.event.api.EventPublisher eventPublisher)
public Macro getMacroByName(@Nonnull String macroName)
MacroManager
Macro
registered with the
given name, or null if there is none registered with the manager.getMacroByName
in interface MacroManager
macroName
- The macro to get.public void registerMacro(@Nonnull String name, @Nonnull Macro macro)
MacroManager
registerMacro
in interface MacroManager
name
- the name to register the macro under. For example, 'code'.macro
- the macro to registerpublic void unregisterMacro(@Nonnull String name)
MacroManager
unregisterMacro
in interface MacroManager
name
- the name of the macro to unregister. For example, 'code'.public void pluginModuleEnabled(com.atlassian.plugin.event.events.PluginModuleEnabledEvent event)
public void pluginModuleDisabled(com.atlassian.plugin.event.events.PluginModuleDisabledEvent event)
public com.atlassian.util.concurrent.LazyReference<Macro> createLazyMacroReference(com.atlassian.plugin.ModuleDescriptor<?> moduleDescriptor)
MacroManager
createLazyMacroReference
in interface MacroManager
moduleDescriptor
- describes the macro we are creating a lazy reference to.public void setPluginEventManager(com.atlassian.plugin.event.PluginEventManager pluginEventManager)
public static Macro unwrapMacroProxy(Macro proxy)
ResourceAwareMacroInvocationHandler
.
If the macro is not proxied with this invocation handler then the passed in proxy is returned.
proxy
- The proxy to unwrapResourceAwareMacroInvocationHandler
Copyright © 2003–2017 Atlassian. All rights reserved.