Package org.jbpm.jsf.identity.action

Source Code of org.jbpm.jsf.identity.action.DeleteMembershipActionListener

package org.jbpm.jsf.identity.action;

import java.util.Iterator;
import java.util.Set;
import org.jbpm.identity.Membership;
import org.jbpm.identity.User;
import org.jbpm.identity.hibernate.IdentitySession;
import org.jbpm.jsf.JbpmActionListener;
import org.jbpm.jsf.JbpmJsfContext;

import javax.el.ELContext;
import javax.el.ValueExpression;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

/**
*
*/
public final class DeleteMembershipActionListener implements JbpmActionListener {
    private final ValueExpression userExpression;
    private final ValueExpression membershipIdExpression;


    public DeleteMembershipActionListener(final ValueExpression userExpression, final ValueExpression membershipIdExpression) {
        this.userExpression = userExpression;
        this.membershipIdExpression = membershipIdExpression;
    }

    public String getName() {
        return "deleteMembership";
    }

    @SuppressWarnings ({"unchecked"})
    public void handleAction(JbpmJsfContext context, ActionEvent event) {
        try {
            final FacesContext facesContext = FacesContext.getCurrentInstance();
            final ELContext elContext = facesContext.getELContext();
            final User user = (User) userExpression.getValue(elContext);
            final long membershipId = ((Long)membershipIdExpression.getValue(elContext)).longValue();
            final Set<Membership> membershipSet = (Set<Membership>) user.getMemberships();
            final Iterator<Membership> it = membershipSet.iterator();
            while (it.hasNext()) {
                Membership membership = it.next();
                if (membership.getId() == membershipId) {
                    it.remove();
                    context.getJbpmContext().getSession().delete(membership);
                    break;
                }
            }
            context.addSuccessMessage("Successfully deleted membership");
        } catch (Exception ex) {
            context.setError("Failed to delete membership", ex);
        }
    }
}
TOP

Related Classes of org.jbpm.jsf.identity.action.DeleteMembershipActionListener

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.