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