Package mireka.filter.local.table

Source Code of mireka.filter.local.table.PostmasterAliasMapper

package mireka.filter.local.table;

import java.text.ParseException;

import mireka.address.MailAddressFactory;
import mireka.address.Recipient;
import mireka.destination.AliasDestination;
import mireka.destination.Destination;

/**
* PostmasterAliasMapper is a convenience class used in configuration files to
* assign a Postmaster alias. It maps the global postmaster and the local domain
* postmaster addresses to an {@link AliasDestination}.
*/
public class PostmasterAliasMapper implements RecipientDestinationMapper {
    private LocalPostmaster localPostmasterSpecification;
    private AliasDestination destination;

    @Override
    public Destination lookup(Recipient recipient) {
        return localPostmasterSpecification.isSatisfiedBy(recipient) ? destination
                : null;
    }

    /**
     * @category GETSET
     */
    public void setLocalDomains(RemotePartSpecification localDomains) {
        localPostmasterSpecification = new LocalPostmaster();
        localPostmasterSpecification.setLocalDomains(localDomains);
    }

    /**
     * @category GETSET
     */
    public void setCanonical(String mailbox) {
        destination = new AliasDestination();
        try {
            destination.setRecipient(new MailAddressFactory()
                    .createRecipient(mailbox));
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
    }
}
TOP

Related Classes of mireka.filter.local.table.PostmasterAliasMapper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.