1 17 18 package org.apache.james.mailrepository; 19 20 import org.apache.avalon.cornerstone.services.store.StreamRepository; 21 import org.apache.james.core.MimeMessageSource; 22 23 import java.io.IOException ; 24 import java.io.InputStream ; 25 26 public class MimeMessageAvalonSource extends MimeMessageSource { 27 28 30 33 StreamRepository sr = null; 34 35 38 String repositoryName = null; 39 40 44 String key = null; 45 46 private long size = -1; 47 48 public MimeMessageAvalonSource(StreamRepository sr, String repositoryName, String key) { 49 this.sr = sr; 50 this.repositoryName = repositoryName; 51 this.key = key; 52 } 53 54 61 public String getSourceId() { 62 StringBuffer sourceIdBuffer = 63 new StringBuffer (128) 64 .append(repositoryName) 65 .append("/") 66 .append(key); 67 return sourceIdBuffer.toString(); 68 } 69 70 public InputStream getInputStream() throws IOException { 71 return sr.get(key); 72 } 73 74 public long getMessageSize() throws IOException { 75 if (size == -1) { 76 if (sr instanceof org.apache.james.mailrepository.filepair.File_Persistent_Stream_Repository) { 77 size = ((org.apache.james.mailrepository.filepair.File_Persistent_Stream_Repository) sr).getSize(key); 78 } else size = super.getMessageSize(); 79 } 80 return size; 81 } 82 } 83 | Popular Tags |