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)
}
}
}