HasNewsletterUnsubscribedPredicate.java 1.74 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  javax.jcr.Node
 *  javax.jcr.Property
 *  javax.jcr.Session
 *  org.apache.commons.collections.Predicate
 *  org.apache.jackrabbit.api.security.user.Authorizable
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 */
package com.day.cq.mcm.core.predicate;

import javax.jcr.Node;
import javax.jcr.Property;
import javax.jcr.Session;
import org.apache.commons.collections.Predicate;
import org.apache.jackrabbit.api.security.user.Authorizable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HasNewsletterUnsubscribedPredicate
implements Predicate {
    private static final Logger log = LoggerFactory.getLogger(HasNewsletterUnsubscribedPredicate.class);
    private Session session = null;
    private static final String PROPERTY_STOP_ALL = "newsletter/stopAll";

    public HasNewsletterUnsubscribedPredicate(Session session) {
        this.session = session;
    }

    public boolean evaluate(Object object) {
        boolean hasUnsubscribed = true;
        if (object instanceof Authorizable) {
            Authorizable authorizable = (Authorizable)object;
            try {
                Node authorizedNode = this.session.getNode(authorizable.getPath());
                if (authorizedNode.hasNode("profile")) {
                    Node profileNode = authorizedNode.getNode("profile");
                    hasUnsubscribed = profileNode.hasProperty("newsletter/stopAll") ? profileNode.getProperty("newsletter/stopAll").getBoolean() : false;
                }
            }
            catch (Exception e) {
                log.warn(e.getMessage(), (Throwable)e);
                hasUnsubscribed = true;
            }
        }
        return hasUnsubscribed;
    }
}