public void compose(IXMLWriter writer, AtomFeed feed, boolean htmlPretty) throws Exception { this.htmlPretty = htmlPretty; xml = writer; xml.setDefaultNamespace(ATOM_NS); xml.open(ATOM_NS, "feed"); if (feed.getTitle() != null) xml.element(ATOM_NS, "title", feed.getTitle()); if (feed.getId() != null) xml.element(ATOM_NS, "id", feed.getId()); for (String n : feed.getLinks().keySet()) { xml.attribute("href", feed.getLinks().get(n)); xml.attribute("rel", n); xml.element(ATOM_NS, "link", null); } if (feed.getTotalResults() != null) { xml.setDefaultNamespace("http://purl.org/atompub/tombstones/1.0"); xml.element("totalResults", feed.getTotalResults().toString()); xml.setDefaultNamespace(ATOM_NS); } if (feed.getUpdated() != null) xml.element(ATOM_NS, "updated", feed.getUpdated().toString()); if (feed.getAuthorName() != null || feed.getAuthorUri() != null) { xml.open(ATOM_NS, "author"); if (feed.getAuthorName() != null) xml.element(ATOM_NS, "name", feed.getAuthorName()); if (feed.getAuthorUri() != null) xml.element(ATOM_NS, "uri", feed.getAuthorUri()); xml.close(ATOM_NS, "author"); } for (AtomCategory cat : feed.getTags()) { xml.attribute("scheme", cat.getScheme()); xml.attribute("term", cat.getTerm()); if (!Utilities.noString(cat.getLabel())) xml.attribute("label", cat.getLabel()); xml.element("category", null); } for (AtomEntry<? extends Resource> e : feed.getEntryList()) composeEntry(e); xml.close(ATOM_NS, "feed"); }
public void compose(IXMLWriter writer, List<AtomCategory> tags, boolean htmlPretty) throws Exception { this.htmlPretty = htmlPretty; xml = writer; xml.setDefaultNamespace(FHIR_NS); xml.open(FHIR_NS, "taglist"); for (AtomCategory cat : tags) { xml.attribute("scheme", cat.getScheme()); xml.attribute("term", cat.getTerm()); if (!Utilities.noString(cat.getLabel())) xml.attribute("label", cat.getLabel()); xml.element("category", null); } xml.close(FHIR_NS, "taglist"); }
private <T extends Resource> void composeEntry(AtomEntry<T> entry) throws Exception { AtomEntry<T> e = entry; if (entry.isDeleted()) { xml.setDefaultNamespace("http://purl.org/atompub/tombstones/1.0"); xml.attribute("ref", entry.getId()); xml.attribute("when", entry.getUpdated().toString()); xml.open("deleted-entry"); for (String name : entry.getLinks().keySet()) { xml.attribute("href", entry.getLinks().get(name)); xml.attribute("rel", name); xml.element("link", null); } // if (entry.getoriginalId <> "") then // begin // xml.open("source"); // xml.element("id", entry.originalId); // xml.close("source"); // end; if (entry.getAuthorUri() != null || entry.getAuthorName() != null) { xml.open("by"); if (entry.getAuthorName() != null) xml.element("name", entry.getAuthorName()); if (entry.getAuthorUri() != null) xml.element("uri", entry.getAuthorUri()); xml.close("by"); } xml.close("deleted-entry"); xml.setDefaultNamespace(ATOM_NS); } else { xml.setDefaultNamespace(ATOM_NS); xml.open("entry"); if (e.getTitle() != null) xml.element(ATOM_NS, "title", e.getTitle()); if (e.getId() != null) xml.element(ATOM_NS, "id", e.getId()); for (String n : e.getLinks().keySet()) { xml.attribute("href", e.getLinks().get(n)); xml.attribute("rel", n); xml.element(ATOM_NS, "link", null); } if (e.getUpdated() != null) xml.element(ATOM_NS, "updated", e.getUpdated().toString()); if (entry.getAuthorUri() != null || entry.getAuthorName() != null) { xml.open("author"); if (entry.getAuthorName() != null) xml.element("name", entry.getAuthorName()); if (entry.getAuthorUri() != null) xml.element("uri", entry.getAuthorUri()); xml.close("author"); } for (AtomCategory cat : entry.getTags()) { xml.attribute("scheme", cat.getScheme()); xml.attribute("term", cat.getTerm()); if (!Utilities.noString(cat.getLabel())) xml.attribute("label", cat.getLabel()); xml.element("category", null); } if (e.getPublished() != null) xml.element(ATOM_NS, "published", e.getPublished().toString()); xml.attribute("type", "text/xml"); xml.open(ATOM_NS, "content"); xml.setDefaultNamespace(FHIR_NS); if (entry.getResource() instanceof Binary) composeBinary("Binary", (Binary) entry.getResource()); else composeResource(entry.getResource()); xml.setDefaultNamespace(ATOM_NS); xml.close(ATOM_NS, "content"); if (e.getSummary() != null) { xml.attribute("type", "xhtml"); xml.open(ATOM_NS, "summary"); xml.namespace(XhtmlComposer.XHTML_NS, null); boolean oldPretty = xml.isPretty(); xml.setPretty(htmlPretty); new XhtmlComposer().compose(xml, e.getSummary()); xml.setPretty(oldPretty); xml.close(ATOM_NS, "summary"); } xml.close("entry"); } }
private boolean hasTag(String scheme, String term) { for (AtomCategory tag : getTags()) { if (scheme.equals(tag.getScheme()) && term.equals(tag.getTerm())) return true; } return false; }