Wed, 31 Dec 2014 07:22:50 +0100
Correct previous dual key logic pending first delivery installment.
1 /*
2 * ====================================================================
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 * ====================================================================
20 *
21 * This software consists of voluntary contributions made by many
22 * individuals on behalf of the Apache Software Foundation. For more
23 * information on the Apache Software Foundation, please see
24 * <http://www.apache.org/>.
25 *
26 */
27 package ch.boye.httpclientandroidlib.cookie;
29 import java.util.Locale;
31 import ch.boye.httpclientandroidlib.annotation.Immutable;
33 /**
34 * CookieOrigin class encapsulates details of an origin server that
35 * are relevant when parsing, validating or matching HTTP cookies.
36 *
37 * @since 4.0
38 */
39 @Immutable
40 public final class CookieOrigin {
42 private final String host;
43 private final int port;
44 private final String path;
45 private final boolean secure;
47 public CookieOrigin(final String host, int port, final String path, boolean secure) {
48 super();
49 if (host == null) {
50 throw new IllegalArgumentException(
51 "Host of origin may not be null");
52 }
53 if (host.trim().length() == 0) {
54 throw new IllegalArgumentException(
55 "Host of origin may not be blank");
56 }
57 if (port < 0) {
58 throw new IllegalArgumentException("Invalid port: " + port);
59 }
60 if (path == null) {
61 throw new IllegalArgumentException(
62 "Path of origin may not be null.");
63 }
64 this.host = host.toLowerCase(Locale.ENGLISH);
65 this.port = port;
66 if (path.trim().length() != 0) {
67 this.path = path;
68 } else {
69 this.path = "/";
70 }
71 this.secure = secure;
72 }
74 public String getHost() {
75 return this.host;
76 }
78 public String getPath() {
79 return this.path;
80 }
82 public int getPort() {
83 return this.port;
84 }
86 public boolean isSecure() {
87 return this.secure;
88 }
90 @Override
91 public String toString() {
92 StringBuilder buffer = new StringBuilder();
93 buffer.append('[');
94 if (this.secure) {
95 buffer.append("(secure)");
96 }
97 buffer.append(this.host);
98 buffer.append(':');
99 buffer.append(Integer.toString(this.port));
100 buffer.append(this.path);
101 buffer.append(']');
102 return buffer.toString();
103 }
105 }