KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > james > transport > matchers > RelayLimit


1 /***********************************************************************
2  * Copyright (c) 2000-2004 The Apache Software Foundation. *
3  * All rights reserved. *
4  * ------------------------------------------------------------------- *
5  * Licensed under the Apache License, Version 2.0 (the "License"); you *
6  * may not use this file except in compliance with the License. You *
7  * may obtain a copy of the License at: *
8  * *
9  * http://www.apache.org/licenses/LICENSE-2.0 *
10  * *
11  * Unless required by applicable law or agreed to in writing, software *
12  * distributed under the License is distributed on an "AS IS" BASIS, *
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or *
14  * implied. See the License for the specific language governing *
15  * permissions and limitations under the License. *
16  ***********************************************************************/

17
18 package org.apache.james.transport.matchers;
19
20 import org.apache.james.util.RFC2822Headers;
21 import org.apache.mailet.GenericMatcher;
22 import org.apache.mailet.Mail;
23
24 import javax.mail.Header JavaDoc;
25 import javax.mail.internet.MimeMessage JavaDoc;
26 import java.util.Collection JavaDoc;
27 import java.util.Enumeration JavaDoc;
28
29 /**
30  *
31  * @version 1.0.0, 1/5/2000
32  */

33
34 public class RelayLimit extends GenericMatcher {
35     int limit = 30;
36
37     public void init() {
38         limit = Integer.parseInt(getCondition());
39     }
40
41     public Collection JavaDoc match(Mail mail) throws javax.mail.MessagingException JavaDoc {
42         MimeMessage JavaDoc mm = mail.getMessage();
43         int count = 0;
44         for (Enumeration JavaDoc e = mm.getAllHeaders(); e.hasMoreElements();) {
45             Header JavaDoc hdr = (Header JavaDoc)e.nextElement();
46             if (hdr.getName().equals(RFC2822Headers.RECEIVED)) {
47                 count++;
48             }
49         }
50         if (count >= limit) {
51             return mail.getRecipients();
52         } else {
53             return null;
54         }
55     }
56 }
57
Popular Tags