override def getNamespaces: util.Set[_] = Set()

in common/app/common/ShowcaseRSSModules.scala [149:236]


  override def getNamespaces: util.Set[_] = Set(NS, RssAtomModuleGenerator.NS).asJava

  override def generate(module: Module, element: Element): Unit = {
    module match {
      case gModule: GModule =>
        gModule.getPanel.foreach { panel =>
          val panelElement = new org.jdom.Element("panel", NS)
          panelElement.setAttribute(new Attribute("type", panel.`type`))
          panelElement.addContent(panel.content)
          element.addContent(panelElement)
        }
        gModule.getPanelTitle.foreach { panelTitle =>
          val panelTitleElement = new org.jdom.Element("panel_title", NS)
          panelTitleElement.addContent(panelTitle)
          element.addContent(panelTitleElement)
        }
        gModule.getOverline.foreach { overline =>
          val overlineElement = new org.jdom.Element("overline", NS)
          overlineElement.addContent(overline)
          element.addContent(overlineElement)
        }

        // Article group element needs article group and role
        for {
          articleGroup <- gModule.getArticleGroup
        } yield {
          val articleGroupElement = new org.jdom.Element("article_group", NS)
          articleGroupElement.setAttribute("role", articleGroup.role)

          articleGroup.articles.foreach { article =>
            // Slightly regrettable but limited duplication with the main rss entry generation
            val articleElement = new Element("item")

            val guidElement = new Element("guid")
            guidElement.addContent(article.guid)
            articleElement.addContent(guidElement)

            val titleElement = new Element("title")
            titleElement.addContent(article.title)
            articleElement.addContent(titleElement)

            val linkElement = new Element("link")
            linkElement.addContent(article.link)
            articleElement.addContent(linkElement)

            article.author.foreach { author =>
              val authorElement = new Element("author")
              authorElement.addContent(author)
              articleElement.addContent(authorElement)
            }
            article.overline.foreach { overline =>
              val overlineElement = new Element("overline", NS)
              overlineElement.addContent(overline)
              articleElement.addContent(overlineElement)
            }

            article.mediaContent.foreach { mediaContent =>
              val mediaModule = new MediaEntryModuleImpl()
              mediaModule.setMediaContents(Seq(mediaContent).toArray)
              mediaModule.setMetadata(new Metadata())
              mediaModuleGenerator.generate(mediaModule, articleElement)
            }

            // Published and updated dates
            val pubDateElement = new Element("pubDate")
            pubDateElement.addContent(DateParser.formatRFC822(article.published.toDate))
            articleElement.addContent(pubDateElement)

            val rssAtomModule = new RssAtomModule()
            rssAtomModule.setUpdated(Some(article.updated))
            rssAtomModuleGenerator.generate(rssAtomModule, articleElement)

            articleGroupElement.addContent(articleElement)
          }
          element.addContent(articleGroupElement)
        }

        gModule.getBulletList.foreach { bulletList =>
          val bulletListElement = new org.jdom.Element("bullet_list", NS)
          bulletList.listItems.foreach { listItem =>
            val listItemElement = new org.jdom.Element("list_item", NS)
            listItemElement.addContent(listItem.text)
            bulletListElement.addContent(listItemElement)
          }
          element.addContent(bulletListElement)
        }
    }
  }