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 }