com.atlassian.confluence.macro.xhtml
Class UserMacroLibraryMacroManager

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

public class UserMacroLibraryMacroManager
extends Object
implements MacroManager

An Xhtml MacroManager implementation that delegates to an encapsulated UserMacroLibrary. Therefore this MacroManager is aware of UI created User Macros only. User macros via plugins are a different proposition.

This manager is a read only facade onto the UserMacroLibrary and therefore any attempts to call registerMacro(String, Macro) or unregisterMacro(String) will result in an UnsupportedOperationException being thrown.

Since:
4.0
See Also:
UserMacroLibrary

Constructor Summary
UserMacroLibraryMacroManager(UserMacroLibrary userMacroLibrary)
           
 
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 registerMacro(String name, Macro macro)
          Registers a new macro with the given name.
 void unregisterMacro(String name)
          Unregisters the macro with the given name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UserMacroLibraryMacroManager

public UserMacroLibraryMacroManager(UserMacroLibrary userMacroLibrary)
Method Detail

getMacroByName

public Macro getMacroByName(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(String name,
                          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
Throws:
UnsupportedOperationException

unregisterMacro

public void unregisterMacro(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'.
Throws:
UnsupportedOperationException

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
Throws:
UnsupportedOperationException


Copyright © 2003-2012 Atlassian. All Rights Reserved.