Subversion Repositories bacoAlunos

Rev

Rev 1945 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.web.tags;

import org.apache.log4j.Logger;
import org.apache.struts.util.RequestUtils;
import pt.estgp.estgweb.domain.ClearanceRuled;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.web.UserSessionProxy;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;

public class NotClearOperationTag extends BodyTagSupport
{

    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(NotClearOperationTag.class);
    private 1.5.0/docs/api/java/lang/String.html">String name;
    private 1.5.0/docs/api/java/lang/String.html">String property;
    private 1.5.0/docs/api/java/lang/String.html">String op;


    public 1.5.0/docs/api/java/lang/String.html">String getName() {
        return name;
    }

    public void setName(1.5.0/docs/api/java/lang/String.html">String name) {
        this.name = name;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getProperty() {
        return property;
    }

    public void setProperty(1.5.0/docs/api/java/lang/String.html">String property) {
        this.property = property;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getOp() {
        return op;
    }

    public void setOp(1.5.0/docs/api/java/lang/String.html">String op) {
        this.op = op;
    }

    boolean go = false;

    public int doStartTag() throws JspException
    {
        go = go();
        if (go)
        {
            return EVAL_BODY_TAG;
        }
        else
            return SKIP_BODY;
    }

    public boolean go() throws JspException
    {
        UserSessionImpl userSession = (UserSessionImpl) UserSessionProxy.loadUserSessionFromRequest((HttpServletRequest) pageContext.getRequest());
        ClearanceRuled ruledObj = (ClearanceRuled) RequestUtils.lookup(pageContext, name, property, null);

        1.5.0/docs/api/java/lang/String.html">String[] ops = op.split(",");
        for(1.5.0/docs/api/java/lang/String.html">String opSub: ops)
        {
            if(ruledObj.isClear(userSession,opSub))
            {
                return false;
            }
        }
        return  true;
    }

    public int doEndTag() throws JspException
    {
        if (go)
        {
            1.5.0/docs/api/java/lang/String.html">String toPage = bodyContent.getString().trim();
            JspWriter writer = pageContext.getOut();
            try
            {
                writer.write(toPage);
            }
            catch (1.5.0/docs/api/java/lang/Exception.html">Exception e)
            {
                logger.error(e, e);
                throw new JspException(e);
            }
        }
        // Continue processing this page
        return EVAL_PAGE;
    }


}