Class UserMacroLibraryMacroManager

java.lang.Object
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:
  • Constructor Details

    • UserMacroLibraryMacroManager

      public UserMacroLibraryMacroManager(UserMacroLibrary userMacroLibrary)
  • Method Details

    • 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
    • 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 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