LogMailDropManager.java
01 /*
02  * Copyright (C) 2006  exedio GmbH (www.exedio.com)
03  *
04  * This library is free software; you can redistribute it and/or
05  * modify it under the terms of the GNU Lesser General Public
06  * License as published by the Free Software Foundation; either
07  * version 2.1 of the License, or (at your option) any later version.
08  *
09  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18 package com.exedio.pop3serv.log4j;
19 
20 import com.exedio.pop3serv.Mail;
21 import com.exedio.pop3serv.MailDrop;
22 import com.exedio.pop3serv.MailDropManager;
23 import com.exedio.pop3serv.SingleAccountManager;
24 import java.io.UnsupportedEncodingException;
25 import java.util.ArrayList;
26 import java.util.List;
27 import org.apache.log4j.spi.LoggingEvent;
28 
29 /**
30  * This is the account manager for the {@link MailAppender}.
31  @author ebert
32  */
33 public class LogMailDropManager extends SingleAccountManager
34 {
35   private List<Mail> theMails;
36   
37   public LogMailDropManager(String userName, String password)
38   {
39     super(userName, password);
40     theMails = new ArrayList<Mail>();
41   }
42 
43   protected MailDrop createMailDrop()
44   {
45     return new LogMailDrop(new ArrayList<Mail>(theMails));
46   }
47   
48   protected void remove(LogMail mail)
49   {
50     theMails.remove(mail);
51   }
52   
53   protected void append(String appenderName, LoggingEvent loggingEventthrows UnsupportedEncodingException
54   {
55     theMails.add(new LogMail(this, appenderName, loggingEvent));
56   }  
57 }