Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/sonalb/net/http/cookie/CookieUtils.java


1   /*
2    * -*- mode: java; c-basic-indent: 4; indent-tabs-mode: nil -*-
3    * :indentSize=4:noTabs=true:tabSize=4:indentOnTab=true:indentOnEnter=true:mode=java:
4    * ex: set tabstop=4 expandtab:
5    *
6    * MrPostman - webmail <-> email gateway
7    * Copyright (C) 2002-2003 MrPostman Development Group
8    * Projectpage: http://mrbook.org/mrpostman/
9    *
10   *
11   * This program is free software; you can redistribute it and/or modify
12   * it under the terms of the GNU General Public License as published by
13   * the Free Software Foundation; either version 2 of the License, or
14   * (at your option) any later version.
15   *
16   * This program is distributed in the hope that it will be useful,
17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19   * GNU General Public License for more details.
20   * In particular, this implies that users are responsible for
21   * using MrPostman after reading the terms and conditions given
22   * by their web-mail provider.
23   *
24   * You should have received a copy of the GNU General Public License
25   * Named LICENSE in the base directory of this distribution,
26   * if not, write to the Free Software
27   * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28   */
29  
30  package com.sonalb.net.http.cookie;
31  
32  import java.net.URL;
33  
34  import java.util.Iterator;
35  
36  
37  /**
38  
39   * Provides utility functions for internal consumption.
40  
41   * @author    Sonal Bansal
42  
43   */
44  public final class CookieUtils {
45      public static final String CVSID = "$Id: CookieUtils.java,v 1.5 2003/02/09 23:38:11 lbruand Exp $";
46  
47      /**
48  
49       * Picks out the <code>Cookie</code>s in a <code>CookieJar</code> that are eligible
50  
51       * to be sent with a request to a particular <code>URL</code>.
52  
53       * @param cj the CookieJar holding the Cookies
54  
55       * @param cp the CookieParser which determines whether each Cookie can be sent with given URL
56  
57       * @param url the URL for which Cookies have to be picked out
58  
59       * @param bRespectExpires whether the lifetime of the Cookies should be taken into consideration
60  
61       * @return the CookieJar with eligible Cookies; always non-null
62  
63       */
64      public static CookieJar getCookiesForURL(CookieJar cj, CookieParser cp, URL url, boolean bRespectExpires) {
65          if ((url == null) || (cj == null) || (cp == null)) {
66              throw new IllegalArgumentException("Null Argument.");
67          }
68  
69          if (cj.isEmpty()) {
70              return (cj);
71          }
72  
73          Iterator i = cj.iterator();
74  
75          CookieJar jar = new CookieJar();
76  
77          Cookie c;
78  
79          while (i.hasNext()) {
80              c = (Cookie) i.next();
81  
82              if (cp.sendCookieWithURL(c, url, bRespectExpires)) {
83                  jar.add(c);
84              }
85          }
86  
87          return (jar);
88      }
89  }