1bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook/****************************************************************
2bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Licensed to the Apache Software Foundation (ASF) under one   *
3bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * or more contributor license agreements.  See the NOTICE file *
4bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * distributed with this work for additional information        *
5bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * regarding copyright ownership.  The ASF licenses this file   *
6bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * to you under the Apache License, Version 2.0 (the            *
7bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * "License"); you may not use this file except in compliance   *
8bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * with the License.  You may obtain a copy of the License at   *
9bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *                                                              *
10bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *   http://www.apache.org/licenses/LICENSE-2.0                 *
11bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *                                                              *
12bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Unless required by applicable law or agreed to in writing,   *
13bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * software distributed under the License is distributed on an  *
14bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
15bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * KIND, either express or implied.  See the License for the    *
16bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * specific language governing permissions and limitations      *
17bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * under the License.                                           *
18bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook ****************************************************************/
19bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
20bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookpackage org.apache.james.mime4j.field.address;
21bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
22bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook/**
23bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * A Mailbox that has a name/description.
24bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *
25bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *
26bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook */
27bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookpublic class NamedMailbox extends Mailbox {
28bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	private String name;
29bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
30bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	/**
31bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	 * @see Mailbox#Mailbox(String, String)
32bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	 */
33bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	public NamedMailbox(String name, String localPart, String domain) {
34bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook		super(localPart, domain);
35bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook		this.name = name;
36bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	}
37bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
38bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	/**
39bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	 * @see Mailbox#Mailbox(DomainList, String, String)
40bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	 */
41bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	public NamedMailbox(String name, DomainList route, String localPart, String domain) {
42bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook		super(route, localPart, domain);
43bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook		this.name = name;
44bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	}
45bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
46bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	/**
47bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	 * Creates a named mailbox based on an unnamed mailbox.
48bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	 */
49bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	public NamedMailbox(String name, Mailbox baseMailbox) {
50bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook		super(baseMailbox.getRoute(), baseMailbox.getLocalPart(), baseMailbox.getDomain());
51bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook		this.name = name;
52bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	}
53bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
54bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	/**
55bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	 * Returns the name of the mailbox.
56bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	 */
57bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	public String getName() {
58bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook		return this.name;
59bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	}
60bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
61bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	/**
62bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	 * Same features (or problems) as Mailbox.getAddressString(boolean),
63bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	 * only more so.
64bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	 *
65bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	 * @see Mailbox#getAddressString(boolean)
66bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	 */
67bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	@Override
68bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	public String getAddressString(boolean includeRoute) {
69bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook		return (name == null ? "" : name + " ") + super.getAddressString(includeRoute);
70bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook	}
71bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook}
72