/** * Metodo per il process della Cas generata con l'upload del documenti in 'Nuovo pattern'. * * @param cas cas da analizzare * @throws SQLException eccezione durante l'estrazione dei dati */ private void processPatternAttachmentCas(final JCas cas) throws SQLException { HpmDao dao = new HpmDao(); // il valore della property è l'hpmPatternId String kpeopleTagPattern = getKpeopleTagPattern(cas); // recupero e salvo su db gli attachments associati alla creazione pattern List<Document> docs = new ArrayList<Document>(); // recupero l'email dell'utente che ha generato il pattern String email = getUserAuthorAnnotation(cas).getEmail(); 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.setTemplate(false); document.setHpmAttachmentId(aa.getId()); document.setName(aa.getAttachmentName()); docs.add(document); } docs = dao.savePatternDocument(docs, email, kpeopleTagPattern); }
/** * factory per l'oggetto Document. * * @param rs resultset * @return istanza dell'oggetto Document * @throws SQLException label colonne non valido */ public static Document createDocument(final ResultSet rs) throws SQLException { Document document = new Document(); document.setAuthor(rs.getString("AUTHOR")); document.setTemplate(rs.getBoolean("IS_TEMPLATE")); document.setDocumentType(rs.getBoolean("ID_DOCUMENT_TYPE")); document.setIdAttachment(rs.getInt("ID_ATTACHMENT")); document.setGuid(rs.getString("GUID")); document.setHashcode(rs.getString("HASHCODE")); return document; }
/** * 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); } } }