001 /**
002 * Copyright 2005-2012 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 }