/**
  * Returns the entry modules.
  *
  * <p>
  *
  * @return a list of ModuleImpl elements with the entry modules, an empty list if none.
  */
 public List getModules() {
   if (_modules == null) {
     _modules = new ArrayList();
   }
   if (ModuleUtils.getModule(_modules, DCModule.URI) == null) {
     _modules.add(new DCModuleImpl());
   }
   return _modules;
 }
 protected Item createRSSItem(SyndEntry sEntry) {
   Item item = new Item();
   item.setModules(ModuleUtils.cloneModules(sEntry.getModules()));
   item.setTitle(sEntry.getTitle());
   item.setLink(sEntry.getLink());
   item.setUri(sEntry.getUri());
   if (sEntry.getDescription() != null) {
     Description description = new Description();
     description.setValue(sEntry.getDescription().getValue());
     item.setDescription(description);
   }
   return item;
 }
  protected WireFeed createRealFeed(String type, SyndFeed syndFeed) {
    Channel channel = new Channel(type);
    channel.setModules(ModuleUtils.cloneModules(syndFeed.getModules()));

    channel.setEncoding(syndFeed.getEncoding());

    channel.setTitle(syndFeed.getTitle());
    channel.setLink(syndFeed.getLink());
    channel.setDescription(syndFeed.getDescription());
    SyndImage sImage = syndFeed.getImage();
    if (sImage != null) {
      channel.setImage(createRSSImage(sImage));
    }

    List sEntries = syndFeed.getEntries();
    if (sEntries != null) {
      channel.setItems(createRSSItems(sEntries));
    }
    return channel;
  }
  public void copyInto(WireFeed feed, SyndFeed syndFeed) {
    syndFeed.setModules(ModuleUtils.cloneModules(feed.getModules()));
    if (((List) feed.getForeignMarkup()).size() > 0) {
      syndFeed.setForeignMarkup(feed.getForeignMarkup());
    }
    syndFeed.setEncoding(feed.getEncoding());
    Channel channel = (Channel) feed;
    syndFeed.setTitle(channel.getTitle());
    syndFeed.setLink(channel.getLink());
    syndFeed.setDescription(channel.getDescription());

    Image image = channel.getImage();
    if (image != null) {
      syndFeed.setImage(createSyndImage(image));
    }

    List items = channel.getItems();
    if (items != null) {
      syndFeed.setEntries(createSyndEntries(items));
    }
  }
  protected SyndEntry createSyndEntry(Item item) {
    SyndEntry syndEntry = new SyndEntryImpl();

    syndEntry.setModules(ModuleUtils.cloneModules(item.getModules()));

    if (((List) item.getForeignMarkup()).size() > 0) {
      syndEntry.setForeignMarkup(item.getForeignMarkup());
    }

    syndEntry.setUri(item.getUri());
    syndEntry.setLink(item.getLink());
    syndEntry.setTitle(item.getTitle());
    if (item.getDescription() != null) {
      SyndContent description = new SyndContentImpl();
      description.setValue(item.getDescription().getValue());
      syndEntry.setDescription(description);
    }
    if (item.getAuthor() != null) syndEntry.setAuthor(item.getAuthor());
    if (item.getPubDate() != null) syndEntry.setPublishedDate(item.getPubDate());
    syndEntry.setCategories(item.getCategories());
    return syndEntry;
  }
 /**
  * Returns the module identified by a given URI.
  *
  * <p>
  *
  * @param uri the URI of the ModuleImpl.
  * @return The module with the given URI, <b>null</b> if none.
  */
 public Module getModule(String uri) {
   return ModuleUtils.getModule(getModules(), uri);
 }