public Link addLink(String href, String rel, String type, String title, String hreflang, long length) { complete(); FOMFactory fomfactory = (FOMFactory)factory; Link link = fomfactory.newLink(this); link.setHref(href); link.setRel(rel); link.setMimeType(type); link.setTitle(title); link.setHrefLang(hreflang); link.setLength(length); return link; }
@Override protected boolean matchesSafely(Link link, Description mismatchDescription) { if (link == null) { mismatchDescription.appendText("no link"); return false; } if (!matcher.matches(link.getHref().toASCIIString())) { mismatchDescription.appendText("href "); matcher.describeMismatch(link.getHref(), mismatchDescription); return false; } return true; }
public static String getEditUriFromEntry(Entry entry) { String editUri = null; List<Link> editLinks = entry.getLinks("edit"); if (editLinks != null) { for (Link link : editLinks) { // if there is more than one edit link, we should not automatically // assume that it's always going to point to an Atom document // representation. if (link.getMimeType() != null) { if (MimeTypeHelper.isMatch(link.getMimeType().toString(), Constants.ATOM_MEDIA_TYPE)) { editUri = link.getResolvedHref().toString(); break; } } else { // edit link with no type attribute is the right one to use editUri = link.getResolvedHref().toString(); break; } } } return editUri; }
protected Link selectLink(List<Link> links, String type, String hreflang) { for (Link link : links) { MimeType mt = link.getMimeType(); boolean typematch = MimeTypeHelper.isMatch((mt != null) ? mt.toString() : null, type); boolean langmatch = "*".equals(hreflang) || ((hreflang != null) ? hreflang.equals(link.getHrefLang()) : link.getHrefLang() == null); if (typematch && langmatch) return link; } return null; }
private void addFeedSelfLink(Feed feed, final String baseFeedUri, final GetFeedRequest getFeedRequest, final int pageSize, final String searchString) { StringBuilder queryParams = new StringBuilder(); boolean markerIsSet = false; queryParams.append(baseFeedUri).append("?limit=").append(String.valueOf(pageSize)); if(searchString.length() > 0) { queryParams.append("&search=").append(urlEncode(searchString).toString()); } if(getFeedRequest.getPageMarker() != null && getFeedRequest.getPageMarker().length() > 0) { queryParams.append("&marker=").append(getFeedRequest.getPageMarker()); markerIsSet = true; } if(markerIsSet) { queryParams.append("&direction=").append(getFeedRequest.getDirection()); } else { queryParams.append("&direction=backward"); if(queryParams.toString().equalsIgnoreCase(baseFeedUri + "?limit=" + pageSize + "&direction=backward")) { // They are calling the feedhead, just use the base feed uri // This keeps the validator at http://validator.w3.org/ happy queryParams.delete(0, queryParams.toString().length()).append(baseFeedUri); } } feed.addLink(queryParams.toString()).setRel(Link.REL_SELF); }
typeTypeDescendantsLink.setTitle("Type descendants"); typeTypeDescendantsLink.setRel(AtomCMIS.LINK_CMIS_TYPEDESCENDANTS); typeTypeDescendantsLink.setMimeType(AtomCMIS.MEDIATYPE_CMISTREE); typeTypeDescendantsLink.setHref(repoPath + "/typedescendants"); descendantsLink.setTitle("Root folder descendants"); descendantsLink.setRel(AtomCMIS.LINK_CMIS_ROOTDESCENDANTS); descendantsLink.setMimeType(AtomCMIS.MEDIATYPE_CMISTREE); descendantsLink.setHref(repoPath + "/descendants/" + repoInfo.getRootFolderId()); treeLink.setTitle("Root folder tree"); treeLink.setRel(AtomCMIS.LINK_CMIS_FOLDERTREE); treeLink.setMimeType(AtomCMIS.MEDIATYPE_CMISTREE); treeLink.setHref(repoPath + "/foldertree/" + repoInfo.getRootFolderId()); treeLink.setTitle("Changes log"); treeLink.setRel(AtomCMIS.LINK_CMIS_CHANGES); treeLink.setMimeType(AtomCMIS.MEDIATYPE_ATOM_FEED); treeLink.setHref(repoPath + "/changes");
link.setHref(urlManager.getActionableBitstreamUrl(bitstream)); link.setMimeType(contentType); link.setRel("edit-media"); entry.addLink(link);
/** * Adds a first link relation to the feed * * @param feed The feed * @param iri The IRI of the first feed document * @return The newly created Link */ public static Link setFirst(Source feed, String iri) { Link link = feed.getLink("first"); if (link != null) { link.setHref(iri); } else { link = feed.addLink(iri, "first"); } return link; }
/** * Returns the IRI of the last link relation */ public static IRI getLast(Source feed) { Link link = feed.getLink("last"); return (link != null) ? link.getResolvedHref() : null; }
jstream.writeField("href", link.getResolvedHref()); jstream.writeField("rel", link.getRel()); jstream.writeField("title", link.getTitle()); jstream.writeField("type", link.getMimeType()); jstream.writeField("hreflang", link.getHrefLang()); if (link.getLength() > -1) { jstream.writeField("length", link.getLength());
if (link.getRel() == null || "self".equals(link.getRel())) { if (item.getLink() == null) { item.setLink(link.getHref().toString()); } else if ("related".equals(link.getRel())) { item.setRelated(link.getHref().toString()); } else if ("alternate".equals(link.getRel())) { item.setAlternate(link.getHref().toString());
public int compare(Link o1, Link o2) { Lang l1 = new Lang(o1.getHrefLang()); Lang l2 = new Lang(o2.getHrefLang()); return l1.compareTo(l2); } });
@Override protected boolean matchesSafely(Link link, Description mismatchDescription) { if (link == null) { mismatchDescription.appendText("no link"); return false; } if (!matcher.matches(link.getRel())) { mismatchDescription.appendText("rel "); matcher.describeMismatch(link.getRel(), mismatchDescription); return false; } return true; }
private void addFeedSelfLink(Feed feed, final String baseFeedUri, final GetFeedRequest getFeedRequest, final int pageSize, final String searchString) { StringBuilder queryParams = new StringBuilder(); boolean markerIsSet = false; queryParams.append(baseFeedUri).append("?limit=").append(String.valueOf(pageSize)); if (searchString.length() > 0) { queryParams.append("&search=").append(urlEncode(searchString).toString()); } if (getFeedRequest.getPageMarker() != null && getFeedRequest.getPageMarker().length() > 0) { queryParams.append("&marker=").append(getFeedRequest.getPageMarker()); markerIsSet = true; } if (markerIsSet) { queryParams.append("&direction=").append(getFeedRequest.getDirection()); } else { queryParams.append("&direction=backward"); if (queryParams.toString().equalsIgnoreCase(baseFeedUri + "?limit=" + pageSize + "&direction=backward")) { // They are calling the feedhead, just use the base feed uri // This keeps the validator at http://validator.w3.org/ happy queryParams.delete(0, queryParams.toString().length()).append(baseFeedUri); } } feed.addLink(queryParams.toString()).setRel(Link.REL_SELF); }
statusDoc.setHref(url); statusDoc.setMimeType(depositInfo.getDepositStatus() .getMimeType()); statusDoc.setRel(Link.REL_ALTERNATE); statusDoc.setTitle("Processing Status");
/** * Adds a last link relation to the feed * * @param feed The feed * @param iri The IRI of the last feed document * @return The newly created Link */ public static Link setLast(Source feed, String iri) { Link link = feed.getLink("last"); if (link != null) { link.setHref(iri); } else { link = feed.addLink(iri, "last"); } return link; }
/** * Returns the IRI of the previous link relation */ public static IRI getPrevious(Source feed) { Link link = feed.getLink("previous"); return (link != null) ? link.getResolvedHref() : null; }
public static Link selectLink(List<Link> links, String type, String hreflang) { for (Link link : links) { MimeType mt = link.getMimeType(); boolean typematch = MimeTypeHelper.isMatch((mt != null) ? mt.toString() : null, type); boolean langmatch = "*".equals(hreflang) || ((hreflang != null) ? hreflang.equals(link.getHrefLang()) : link.getHrefLang() == null); if (typematch && langmatch) return link; } return null; } }