} else if (element instanceof Source) {
jstream.startObject();
writeLanguageFields(element, jstream);
if (!isSameAsParentBase(element))
jstream.writeField("xml:base", element.getResolvedBaseUri());
Source source = (Source)element;
jstream.writeField("id", source.getId());
writeElement("title", source.getTitleElement(),jstream);
writeElement("subtitle", source.getSubtitleElement(),jstream);
writeElement("rights", source.getRightsElement(),jstream);
jstream.writeField("updated", source.getUpdated());
writeElement("generator", source.getGenerator(),jstream);
if (source.getIconElement() != null)
jstream.writeField("icon", source.getIconElement().getResolvedValue());
if (source.getLogoElement() != null)
jstream.writeField("logo", source.getLogoElement().getResolvedValue());
writeList("authors",source.getAuthors(),jstream);
writeList("contributors",source.getContributors(),jstream);
writeList("links",source.getLinks(),jstream);
writeList("categories",source.getCategories(),jstream);
if (FeedPagingHelper.isComplete(source))
jstream.writeField("complete",true);
if (FeedPagingHelper.isArchive(source))
jstream.writeField("archive",true);
if (source instanceof Feed) {