/** * aggiunge un metadato all'oggetto Event. * * @param key chiave del metadato * @param value valore del metadato * @param event event da salvare */ private void addEventMetadata(final String key, final String value, final Event event) { EventMetadata em = new EventMetadata(); em.setKeyname(key); em.setValue(value); logger.debug("Aggiunta metadato\nKey: " + key + "\nValue: " + value); event.addEventMetadata(em); }
/** * Esegue il process nel caso default. * * @param cas cas * @throws SQLException errore nel salvataggio */ private void processDefaultCas(final JCas cas) throws SQLException { // recupero le annotations presenti nella CAS String eventId = getEventIdAnnotation(cas).getValue(); SystemAnnotation systemAnnotation = getSystemAnnotation(cas); String systemId = systemAnnotation.getSystemId(); String title = getTitleAnnotation(cas).getValue(); // costruisco l'oggetto Hpm Event Event event = new Event(); event.setHpmEventId(eventId); event.setHpmSystemId(systemId); // associa all'oggetto Event i suoi metadati addEventMetadata(event, cas); // aggiunge le proprietà addProperties(event, cas); String actionType = getActionTypeAnnotation(cas).getValue(); if (checkValidAction(actionType)) { Email email = new Email(); email.setAttachmentType(new AttachmentType(1)); addEmailTo(email, cas); addEmailCc(email, cas); addEmailCcn(email, cas); addEmailFrom(email, cas); email.setEmailObject(title); email.setEmailBody(getEmailBody(cas)); event.getAttachments().add(email); addDocuments(event, email, cas); } else { addDocuments(event, null, cas); } HpmDao dao = new HpmDao(); dao.saveEventManager(event); }
/** * aggiunge le proprietà presenti. * * @param event eventoda salvare * @param cas oggetto Cas */ private void addProperties(final Event event, final JCas cas) { AnnotationIndex<Annotation> annIdx = cas.getAnnotationIndex(PropertyAnnotation.type); FSIterator<Annotation> it = annIdx.iterator(); while (it.hasNext()) { PropertyAnnotation annotation = (PropertyAnnotation) it.next(); String key = annotation.getKey(); String value = annotation.getValue(); logger.debug("Aggiunta proprietà\nKey: " + key + "\nValue: " + value); event.getProperties().put(key, value); } }
/** * aggiunge oggetti di tipo Document all'event. Nel caso di Communication associo anche la email * ai documenti. * * @param event oggetto a cui associare i Document * @param email email da salvare * @param cas cas da elaborare */ private void addDocuments(final Event event, final Email email, final JCas cas) { AnnotationIndex<Annotation> aaIdx = cas.getAnnotationIndex(AttachmentAnnotation.type); FSIterator<Annotation> itAa = aaIdx.iterator(); while (itAa.hasNext()) { AttachmentAnnotation aa = (AttachmentAnnotation) itAa.next(); Document document = new Document(); document.setAttachmentType(new AttachmentType(2)); document.setGuid(aa.getUrlAttachment()); document.setHashcode(aa.getHashcode()); document.setAuthor(aa.getAuthor()); document.setTemplate(false); document.setHpmAttachmentId(aa.getId()); document.setName(aa.getAttachmentName()); event.getAttachments().add(document); // associo il documento alla mail (per il legame EMAIL-DOCUMENT) if (email != null) { email.getDocuments().add(document); } } }