001 /** 002 * Copyright 2005-2013 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.rice.kew.notes.service.impl; 017 018 import java.io.File; 019 import java.util.Iterator; 020 import java.util.List; 021 022 import org.kuali.rice.kew.notes.Attachment; 023 import org.kuali.rice.kew.notes.Note; 024 import org.kuali.rice.kew.notes.dao.NoteDAO; 025 import org.kuali.rice.kew.notes.service.AttachmentService; 026 import org.kuali.rice.kew.notes.service.NoteService; 027 028 029 public class NoteServiceImpl implements NoteService { 030 031 private NoteDAO noteDAO; 032 033 private AttachmentService attachmentService; 034 035 public Note getNoteByNoteId(String noteId) { 036 return getNoteDAO().getNoteByNoteId(noteId); 037 } 038 039 public List<Note> getNotesByDocumentId(String documentId) { 040 return getNoteDAO().getNotesByDocumentId(documentId); 041 } 042 043 public void saveNote(Note note) { 044 try { 045 if (! note.getAttachments().isEmpty()){ 046 for (Iterator iter = note.getAttachments().iterator(); iter.hasNext();) { 047 Attachment attachment = (Attachment) iter.next(); 048 if (attachment.getAttachedObject()!= null){ 049 attachmentService.persistAttachedFileAndSetAttachmentBusinessObjectValue(attachment); 050 } 051 } 052 } 053 getNoteDAO().saveNote(note); 054 } catch (Exception e) { 055 throw new RuntimeException(e); 056 } 057 } 058 059 public void deleteNote(Note note) { 060 try { 061 if (note != null && !note.getAttachments().isEmpty()){ 062 for (Iterator iter = note.getAttachments().iterator(); iter.hasNext();) { 063 Attachment attachment = (Attachment) iter.next(); 064 attachmentService.deleteAttachedFile(attachment); 065 } 066 } 067 if (note != null) { 068 getNoteDAO().deleteNote(note); 069 } 070 } catch (Exception e) { 071 throw new RuntimeException("caught exception deleting attachment", e); 072 } 073 } 074 075 public NoteDAO getNoteDAO() { 076 return noteDAO; 077 } 078 079 public void setNoteDAO(NoteDAO noteDAO) { 080 this.noteDAO = noteDAO; 081 } 082 083 public void deleteAttachment(Attachment attachment) { 084 this.noteDAO.deleteAttachment(attachment); 085 try { 086 attachmentService.deleteAttachedFile(attachment); 087 } catch (Exception e) { 088 throw new RuntimeException("caught exception deleting attachment", e); 089 } 090 } 091 092 public File findAttachmentFile(Attachment attachment) { 093 try { 094 return attachmentService.findAttachedFile(attachment); 095 } catch (Exception e) { 096 throw new RuntimeException(e); 097 } 098 099 } 100 101 public Attachment findAttachment(String attachmentId) { 102 return noteDAO.findAttachment(attachmentId); 103 } 104 105 public AttachmentService getAttachmentService() { 106 return attachmentService; 107 } 108 109 public void setAttachmentService(AttachmentService attachmentService) { 110 this.attachmentService = attachmentService; 111 } 112 }