FileDocCategorySizeDatePackage
AddressList.javaAPI DocAndroid 1.5 API4368Wed May 06 22:42:46 BST 2009org.apache.james.mime4j.field.address

AddressList

public class AddressList extends Object
An immutable, random-access list of Address objects.

Fields Summary
private ArrayList
addresses
Constructors Summary
public AddressList(ArrayList addresses, boolean dontCopy)

param
addresses An ArrayList that contains only Address objects.
param
dontCopy true iff it is not possible for the addresses ArrayList to be modified by someone else.

		if (addresses != null)
			this.addresses = (dontCopy ? addresses : (ArrayList) addresses.clone());
		else
			this.addresses = new ArrayList(0);
	
Methods Summary
public MailboxListflatten()
Returns a flat list of all mailboxes represented in this address list. Use this if you don't care about grouping.

		// in the common case, all addresses are mailboxes
		boolean groupDetected = false;
		for (int i = 0; i < size(); i++) {
			if (!(get(i) instanceof Mailbox)) {
				groupDetected = true;
				break;
			}
		}
		
		if (!groupDetected)
			return new MailboxList(addresses, true);
		
		ArrayList results = new ArrayList();
		for (int i = 0; i < size(); i++) {
			Address addr = get(i);
			addr.addMailboxesTo(results);
		}
		
		// copy-on-construct this time, because subclasses
		// could have held onto a reference to the results
		return new MailboxList(results, false);
	
public Addressget(int index)
Gets an address.

		if (0 > index || size() <= index)
			throw new IndexOutOfBoundsException();
		return (Address) addresses.get(index);
	
public static voidmain(java.lang.String[] args)
Test console.

		java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
		while (true) {
			try {
				System.out.print("> ");
				String line = reader.readLine();
				if (line.length() == 0 || line.toLowerCase().equals("exit") || line.toLowerCase().equals("quit")) {
					System.out.println("Goodbye.");
					return;
				}
				AddressList list = parse(line);
				list.print();
			}
			catch(Exception e) {
				e.printStackTrace();
				Thread.sleep(300);
			}
		}
	
public static org.apache.james.mime4j.field.address.AddressListparse(java.lang.String rawAddressList)
Parse the address list string, such as the value of a From, To, Cc, Bcc, Sender, or Reply-To header. The string MUST be unfolded already.

		AddressListParser parser = new AddressListParser(new StringReader(rawAddressList));
		return Builder.getInstance().buildAddressList(parser.parse());
	
public voidprint()
Dumps a representation of this address list to stdout, for debugging purposes.

		for (int i = 0; i < size(); i++) {
			Address addr = get(i);
			System.out.println(addr.toString());
		}
	
public intsize()
The number of elements in this list.

		return addresses.size();