docs: private void initMacroContent() throws CmsException {
  
          I_CmsFormatterBean formatterConfig = OpenCms.getADEManager().getCachedFormatters(
              m_cms.getRequestContext().getCurrentProject().isOnlineProject()).getFormatters().get(
                  m_element.getFormatterId());
          if (formatterConfig instanceof CmsMacroFormatterBean) {
              CmsMacroFormatterBean config = (CmsMacroFormatterBean)formatterConfig;
              m_input = config.getMacroInput();
              m_formatterReferences = config.getReferencedFormatters();
              if (m_element.isInMemoryOnly()) {
                  if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(config.getPlaceholderMacroInput())) {
                      m_input = config.getPlaceholderMacroInput();
                  }
                  if (config.getDefaultContentStructureId() != null) {
                      try {
                          CmsResource defaultContent = m_cms.readResource(
                              ((CmsMacroFormatterBean)formatterConfig).getDefaultContentStructureId());
                          CmsFile defaultFile = m_cms.readFile(defaultContent);
                          m_element = new CmsContainerElementBean(
                              defaultFile,
                              m_element.getFormatterId(),
                              m_element.getIndividualSettings(),
                              true,
                              m_element.editorHash(),
                              m_element.isCreateNew());
                      } catch (CmsException e) {
                          LOG.error("Error reading default content for new resource", e);
                      }
                  }
              }
          } else {
              // only as a fall back, should not be used
              m_formatterReferences = new HashMap<String, CmsUUID>();
              CmsResource macroContent = m_cms.readResource(m_element.getFormatterId());
              CmsXmlContent xmlContent = CmsXmlContentFactory.unmarshal(m_cms, macroContent, m_request);
              m_input = xmlContent.getStringValue(m_cms, CmsFormatterBeanParser.N_MACRO, CmsLocaleManager.MASTER_LOCALE);
              List<I_CmsXmlContentValue> formatters = xmlContent.getValues(
                  CmsFormatterBeanParser.N_FORMATTERS,
                  CmsLocaleManager.MASTER_LOCALE);
              for (I_CmsXmlContentValue formatterValue : formatters) {
                  CmsXmlVfsFileValue file = (CmsXmlVfsFileValue)xmlContent.getValue(
                      formatterValue.getPath() + "/" + CmsFormatterBeanParser.N_FORMATTER,
                      CmsLocaleManager.MASTER_LOCALE);
                  String macroName = xmlContent.getStringValue(
                      m_cms,
                      formatterValue.getPath() + "/" + CmsFormatterBeanParser.N_MACRO_NAME,
                      CmsLocaleManager.MASTER_LOCALE);
                  m_formatterReferences.put(macroName, file.getLink(m_cms).getStructureId());
              }
          }
      }