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