/** * @return The stream name */ public Date getDate() { return event.getDate(); }
/** * @return The page of the event */ public String getPage() { return event.getPage(); }
/** * @return The type of the event */ public String getType() { return event.getType(); }
result.setApplication(e.getApplication()); result.setBody(e.getBody()); result.setDate(e.getDate()); result.setDocument(new DocumentReference(this.resolver.resolve(e.getPage(), EntityType.DOCUMENT))); result.setId(e.getEventId()); result.setDocumentTitle(e.getParam1()); if (StringUtils.isNotEmpty(e.getParam2())) { if (StringUtils.endsWith(e.getType(), "Attachment")) { result.setRelatedEntity(this.explicitResolver.resolve(e.getParam2(), EntityType.ATTACHMENT, result.getDocument())); } else if (StringUtils.endsWith(e.getType(), "Comment") || StringUtils.endsWith(e.getType(), "Annotation")) { result.setRelatedEntity(this.explicitResolver.resolve(e.getParam2(), EntityType.OBJECT, result.getDocument())); if (e.getPriority() > 0) { int priority = e.getPriority() / 10 - 1; if (priority >= 0 && priority < Event.Importance.values().length) { result.setImportance(Event.Importance.values()[priority]); result.setGroupId(e.getRequestId()); result.setStream(e.getStream()); result.setTitle(e.getTitle()); result.setType(e.getType()); if (StringUtils.isNotBlank(e.getUrl())) { try { result.setUrl(new URL(e.getUrl())); } catch (MalformedURLException ex) {
/** * Set fields in the given event object. * * @param event the event to prepare * @param doc document which fired the event * @param context the XWiki context */ private void prepareEvent(ActivityEvent event, XWikiDocument doc, XWikiContext context) { if (event.getUser() == null) { event.setUser(context.getUser()); } if (event.getWiki() == null) { event.setWiki(context.getDatabase()); } if (event.getApplication() == null) { event.setApplication("xwiki"); } if (event.getDate() == null) { event.setDate(context.getWiki().getCurrentDate()); } if (event.getEventId() == null) { event.setEventId(generateEventId(event, context)); } if (event.getRequestId() == null) { event.setRequestId((String) context.get(REQUEST_ID_CONTEXT_KEY)); } setEventDocumentRelatedInformation(event, doc, context); }
@Override public WatchListEvent convert(ActivityEvent from, Object... parameters) { DocumentReference documentReference = new DocumentReference(resolver.resolve(from.getPage(), EntityType.DOCUMENT, new WikiReference(from.getWiki()))); String type = from.getType(); DocumentReference userReference = null; // Watch out for unregistered user events since they have a null user. if (from.getUser() != null) { userReference = new DocumentReference(resolver.resolve(from.getUser(), EntityType.DOCUMENT, new WikiReference(from.getWiki()))); } return new WatchListEvent(documentReference, type, userReference, from.getVersion(), from.getDate()); } }
/** * {@inheritDoc} */ public SyndEntry getFeedEntry(ActivityEvent event, String suffix, XWikiContext context) { SyndEntry entry = new SyndEntryImpl(); String user = event.getUser(); String displayUser = context.getWiki().getUserName(user, null, false, context); entry.setAuthor(displayUser); event.setTitle(event.getTitle() + ".rss.title" + suffix); entry.setTitle(event.getDisplayTitle(context)); event.setBody(event.getBody() + ".rss.body" + suffix); SyndContentImpl sc = new SyndContentImpl(); sc.setValue(event.getDisplayBody(context)); sc.setType("text/html"); entry.setDescription(sc); String url; try { url = (new URL(context.getURL(), event.getUrl())).toString(); } catch (MalformedURLException e) { url = event.getUrl(); } entry.setLink(url); entry.setPublishedDate(event.getDate()); entry.setUpdatedDate(event.getDate()); return entry; }
/** * Generate event ID for the given ID. Note that this method does not perform the set of the ID in the event object. * * @param event event to generate the ID for * @param context the XWiki context * @return the generated ID */ private String generateEventId(ActivityEvent event, XWikiContext context) { String keySeparator = EVENT_ID_ELEMENTS_SEPARATOR; String wikiSpaceSeparator = ":"; String key = event.getStream() + keySeparator + event.getApplication() + keySeparator + event.getWiki() + wikiSpaceSeparator + event.getPage() + keySeparator + event.getType(); long hash = key.hashCode(); if (hash < 0) { hash = -hash; } String id = "" + hash + keySeparator + event.getDate().getTime() + keySeparator + RandomStringUtils.randomAlphanumeric(8); if (context.get(REQUEST_ID_CONTEXT_KEY) == null) { context.put(REQUEST_ID_CONTEXT_KEY, id); } return id; }
/** * Set fields related to the document which fired the event in the given event object. * * @param event the event to prepare * @param doc document which fired the event * @param context the XWiki context */ private void setEventDocumentRelatedInformation(ActivityEvent event, XWikiDocument doc, XWikiContext context) { if (doc != null) { if (event.getStream() == null) { event.setStream(getStreamName(doc.getSpace(), context)); } if (event.getSpace() == null) { event.setSpace(doc.getSpace()); } if (event.getPage() == null) { event.setPage(doc.getFullName()); } if (event.getUrl() == null) { // Protection against NPEs, events can happen before the URL factory gets created. if (context.getURLFactory() != null) { event.setUrl(doc.getURL("view", context)); } } } }
/** * @return The wiki name in which the event was created */ public String getWiki() { return event.getWiki(); }
/** * @return The wiki name of the user creating the event */ public String getUser() { return event.getUser(); }
/** * @return The document version on the event */ public String getVersion() { return event.getVersion(); }
/** * @return the event body in displayable format */ public String getDisplayBody() { return event.getDisplayBody(context); }
/** * @return the event date in displayable format */ public String getDisplayDate() { return event.getDisplayDate(context); }
/** * @return The application name */ public String getApplication() { return event.getApplication(); }
/** * @return The Body of the event */ public String getBody() { return event.getBody(); }