InsertScriptTag.java

package sk.iway.iwcm.tags;

import java.io.IOException;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.BodyTagSupport;

//import sk.iway.iwcm.Logger;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.components.insertScript.InsertScriptBean;
import sk.iway.iwcm.components.insertScript.InsertScriptDB;
import sk.iway.iwcm.doc.DocDB;
import sk.iway.iwcm.doc.DocDetails;

public class InsertScriptTag extends BodyTagSupport {

	private static final long serialVersionUID = -1;
	private String position = null;

	@Override
	public int doStartTag() throws JspTagException
	{
		try
		{
			StringBuilder outPut = new StringBuilder();
			HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
			int docId = Tools.getDocId(request);
			DocDetails docDetails = DocDB.getInstance().getBasicDocDetails(docId, false);
			int groupId = -1;
			if(docDetails != null)
			{
				groupId = docDetails.getGroupId();
			}
			if(Tools.isNotEmpty(position) && groupId != -1)
			{
				Date now = new Date(Tools.getNow());
				List<InsertScriptBean> listInsertScript = InsertScriptDB.getInstance().filter(null, "^"+position+"$", null, docId, groupId, now, now);

				for (InsertScriptBean isb : listInsertScript) {
					//Logger.debug(InsertScriptTag.class,"listInsertScript.size(): {}", listInsertScript.size());
					if (!Tools.canSetCookie(isb.getCookieClass(), request.getCookies())) {
						//Logger.debug(this,"continue: "+listInsertScript.get(i).getCookieClass());
						continue;
					}
					if (outPut.length()>0) outPut.append("\n");
					outPut.append(isb.getScriptBody());
				}

			}
			if(outPut.length() > 0)
				pageContext.getOut().write(outPut.toString());

		}
		catch (IOException e)
		{
			throw new JspTagException("InsertScriptTag: " +	e.getMessage());
		}
		return EVAL_PAGE;
	}


	public String getPosition() {
		return position;
	}

	public void setPosition(String position) {
		this.position = position;
	}
}