Package mireka.filter.local.table

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

package mireka.filter.local.table;

import mireka.address.Recipient;
import mireka.address.RemotePart;
import mireka.address.RemotePartContainingRecipient;

/**
* LocalRemoteCombinedRecipientSpecification combines a
* {@link LocalPartSpecification} with a {@link RemotePart} value, both must
* match to satisfy this specification.
*/
public class LocalRemoteCombinedRecipientSpecification implements
        RecipientSpecification {
    private LocalPartSpecification localPartSpecification;
    private RemotePart remotePart;

    public LocalRemoteCombinedRecipientSpecification(
            LocalPartSpecification localPartSpecification, RemotePart remotePart) {
        this.localPartSpecification = localPartSpecification;
        this.remotePart = remotePart;
    }

    @Override
    public boolean isSatisfiedBy(Recipient recipient) {
        if (!localPartSpecification.isSatisfiedBy(recipient.localPart()))
            return false;
        if (!(recipient instanceof RemotePartContainingRecipient))
            return false;
        RemotePart recipientRemotePart =
                ((RemotePartContainingRecipient) recipient).getMailbox()
                        .getRemotePart();
        return remotePart.equals(recipientRemotePart);
    }

}
TOP

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

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.