Class DelegatingReadOnlyMacroManager

java.lang.Object
com.atlassian.confluence.macro.xhtml.DelegatingReadOnlyMacroManager
All Implemented Interfaces:
MacroManager

public class DelegatingReadOnlyMacroManager extends Object implements MacroManager

A Macro Manager which looks for named macros in an ordered manner through a list of delegate MacroManager's it maintains.

This MacroManager is read only and therefore the registerMacro(String, Macro) and unregisterMacro(String) calls are not supported.

  • Constructor Details

    • DelegatingReadOnlyMacroManager

      public DelegatingReadOnlyMacroManager(List<MacroManager> delegateMacroManagers)
  • 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