com.sun.syndication.io.impl

## Class BaseWireFeedGenerator

- java.lang.Object
- - com.sun.syndication.io.impl.BaseWireFeedGenerator

All Implemented Interfaces:
  WireFeedGenerator

Direct Known Subclasses:
  Atom03Generator, Atom10Generator, RSS090Generator

    public abstract class BaseWireFeedGenerator
    extends java.lang.Object
    implements WireFeedGenerator

### Constructor Summary

Constructors
`protected` `BaseWireFeedGenerator(java.lang.String type)`

### Method Summary

Methods
`protected void` `generateFeedModules(java.util.List modules, org.jdom.Element feed)`
`protected void` `generateForeignMarkup(org.jdom.Element e, java.util.List foreignMarkup)`
`void` `generateItemModules(java.util.List modules, org.jdom.Element item)`
`protected void` `generateModuleNamespaceDefs(org.jdom.Element root)`
`void` `generatePersonModules(java.util.List modules, org.jdom.Element person)`
`java.lang.String` `getType()` Returns the type of feed the generator creates.
`protected static void` `purgeUnusedNamespaceDeclarations(org.jdom.Element root)` Purging unused declarations is less optimal, performance-wise, than never adding them in the first place.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface com.sun.syndication.io.WireFeedGenerator

`generate`

### Constructor Detail

#### BaseWireFeedGenerator

    protected BaseWireFeedGenerator(java.lang.String type)

### Method Detail

#### getType

    public java.lang.String getType()

Description copied from interface: `WireFeedGenerator`
Returns the type of feed the generator creates.

Specified by:
  `getType` in interface `WireFeedGenerator`
Returns:
  the type of feed the generator creates.
See Also:
  `for details on the format of this string.

  `

#### generateModuleNamespaceDefs

    protected void generateModuleNamespaceDefs(org.jdom.Element root)

#### generateFeedModules

    protected void generateFeedModules(java.util.List modules,
                           org.jdom.Element feed)

#### generateItemModules

    public void generateItemModules(java.util.List modules,
                           org.jdom.Element item)

#### generatePersonModules

    public void generatePersonModules(java.util.List modules,
                             org.jdom.Element person)

#### generateForeignMarkup

    protected void generateForeignMarkup(org.jdom.Element e,
                             java.util.List foreignMarkup)

#### purgeUnusedNamespaceDeclarations

    protected static void purgeUnusedNamespaceDeclarations(org.jdom.Element root)

Purging unused declarations is less optimal, performance-wise, than never adding them in the first place. So, we should still ask the ROME guys to fix their code (not adding dozens of unnecessary module declarations). Having said that: purging them here, before XML generation, is more efficient than parsing and re-molding the XML after ROME generates it.

Note that the calling app could still add declarations/modules to the Feed tree after this. Which is fine. But those modules are then responsible for crawling to the root of the tree, at generate() time, to make sure their namespace declarations are present.