/** Existing agents are detected based on email address as well as URI key. */ @Override public Agent getExistingRecord(RequestContext request) throws ResponseContextException { // Try super method first Agent existingAgent = super.getExistingRecord(request); if (existingAgent != null) { return existingAgent; } // If not, it's time for some Agent-specific searching Entry entry = getEntryFromRequest(request); for (Link link : entry.getLinks(Constants.REL_MBOX)) { InternetAddress emailAddress = getAdapterInputHelper().getEmailFromHref(link.getHref()); existingAgent = getAgentWithEmail(emailAddress); if (existingAgent != null) { return existingAgent; } } return null; }
private static IRI getEditUri(Entry entry) throws Exception { IRI editUri = null; List<Link> editLinks = entry.getLinks("edit"); 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 (link.getMimeType().match("application/atom+xml")) { editUri = link.getResolvedHref(); break; } } else { // assume that an edit link with no type attribute is the right one to use editUri = link.getResolvedHref(); break; } } return editUri; }