@Override public boolean matches(Object otherEvent) { if (otherEvent instanceof PatientEvent) { PatientEvent otherPatientEvent = (PatientEvent) otherEvent; if (!StringUtils.equals(otherPatientEvent.getEventType(), this.eventType)) { return false; } return this.patient == null || this.patient.getDocument() == null || (otherPatientEvent.getPatient() != null && this.patient.getDocument().equals( otherPatientEvent.getPatient().getDocument())); } return false; }
@Override public void onEvent(final Event event, final Object source, final Object data) { Patient patient = ((PatientEvent) event).getPatient(); if (event instanceof PatientDeletedEvent) { this.indexer.delete(patient); } else if (patient != null) { this.indexer.index(patient); } } }
@Override public void onEvent(Event event, Object source, Object data) { Patient patient = ((PatientEvent) event).getPatient(); if (StringUtils.isBlank(patient.getExternalId())) { return; } String eventType = "update"; if (event instanceof PatientDeletedEvent) { eventType = "delete"; } else if (((XWikiDocument) source).getOriginalDocument().isNew()) { eventType = "create"; } XWikiContext context = (XWikiContext) this.execution.getContext().getProperty("xwikicontext"); JSONObject payload = getPayload(eventType, patient.getExternalId(), context); List<BaseObject> servers = getRegisteredServers(context); if (servers != null && !servers.isEmpty()) { for (BaseObject serverConfiguration : servers) { notifyServer(payload, serverConfiguration, context); } } }
@Override public boolean matches(Object otherEvent) { if (otherEvent instanceof PatientEvent) { PatientEvent otherPatientEvent = (PatientEvent) otherEvent; if (!StringUtils.equals(otherPatientEvent.getEventType(), this.eventType)) { return false; } return this.patient == null || this.patient.getDocumentReference() == null || (otherPatientEvent.getPatient() != null && this.patient.getDocumentReference().equals( otherPatientEvent.getPatient().getDocumentReference())); } return false; }