ExportDatDB.java

package sk.iway.iwcm.components.export;

import java.util.List;

import javax.persistence.Query;
import javax.servlet.http.HttpServletRequest;

import org.eclipse.persistence.expressions.Expression;
import org.eclipse.persistence.expressions.ExpressionBuilder;
import org.eclipse.persistence.jpa.JpaEntityManager;
import org.eclipse.persistence.queries.ReadAllQuery;

import net.sourceforge.stripes.action.ActionBeanContext;
import sk.iway.iwcm.Logger;
import sk.iway.iwcm.PathFilter;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.database.JpaDB;
import sk.iway.iwcm.system.jpa.JpaTools;

/**
 * ExportDatDB.java
 *
 * DAO class for manipulating with ExportDatBean
 *
 * Ticket: Export dat (#16902)
 *
 * @Title webjet7
 * @ExportDat Interway s.r.o. (www.interway.sk)
 * @Copyright Interway s.r.o. (c) 2001-2010
 * @author $Author: mkolejak $
 * @version $Revision: 1.3 $
 * @created Date: 05.11.2014 13:48:16
 * @modified $Date: 2004/08/16 06:26:11 $
 */
public class ExportDatDB extends JpaDB<ExportDatBean>
{
	private static ExportDatDB INSTANCE = new ExportDatDB(); //NOSONAR

	public static ExportDatDB getInstance()
	{
		return INSTANCE;
	}

	public ExportDatDB()
	{
		super(ExportDatBean.class);
	}

	public List<ExportDatBean> findByExportDatId(int exportDatId)
	{
		return JpaTools.findByMatchingProperty(ExportDatBean.class, "exportDatId", exportDatId);
	}

	public static ExportDatBean getExportDatById(int id)
	{
		return new JpaDB<ExportDatBean>(ExportDatBean.class).getById(id);
	}

	public static boolean saveExportDat(ExportDatBean exportDat)
	{
		return new JpaDB<ExportDatBean>(ExportDatBean.class).save(exportDat);
	}

	public static boolean deleteExportDat(int id)
	{
		return JpaTools.delete(ExportDatBean.class, id);
	}

	public static List<ExportDatBean> getAllExportDat()
	{
		return JpaTools.getAll(ExportDatBean.class);
	}

	public ExportDatBean findFirstExportByUrlAddress(String urlAddress)
	{
		return JpaTools.findFirstByMatchingProperty(ExportDatBean.class, "urlAddress", urlAddress);
	}

	public List<ExportDatBean> findExportByUrlAddress(String urlAddress)
	{
		return JpaTools.findByMatchingProperty(ExportDatBean.class, "urlAddress", urlAddress);
	}

	public List<ExportDatBean> findExportByUrlAddressAndFormatAndGroupIds(String urlAddress, String format, String groupIds)
	{
		Logger.debug(this, "method findExportDatByStateAndCity()");
		JpaEntityManager em = JpaTools.getEclipseLinkEntityManager();
		List<ExportDatBean> results = null;
		try
		{
			ExpressionBuilder builder = new ExpressionBuilder();
			ReadAllQuery dbQuery = new ReadAllQuery(ExportDatBean.class, builder);
			Expression expr2 = null;
			if (Tools.isNotEmpty(urlAddress))
			{
				Expression expr = builder.get("urlAddress").containsSubstring(urlAddress);
				expr2 = JpaDB.and(expr2, expr);
			}
			if (Tools.isNotEmpty(format))
			{
				Expression expr = builder.get("format").containsSubstring(format);
				expr2 = JpaDB.and(expr2, expr);
			}
			if (Tools.isNotEmpty(groupIds))
			{
				Expression expr = builder.get("groupIds").containsSubstring(groupIds);
				expr2 = JpaDB.and(expr2, expr);
			}
			if (expr2 != null)
				dbQuery.setSelectionCriteria(expr2);
			Logger.debug(this, "method findExportByUrlAddressAndFormatAndGroupIds() q: " + dbQuery.toString());
			Query query = em.createQuery(dbQuery);
			results = JpaDB.getResultList(query);
			Logger.debug(this, "method findExportByUrlAddressAndFormatAndGroupIds() results: " + results.toString());
		}
		catch (Exception e)
		{
			sk.iway.iwcm.Logger.error(e);
		}
		finally
		{
			em.close();
		}
		return results;
	}

	public String getActualUrlAddress(ActionBeanContext context)
	{
		HttpServletRequest request = context.getRequest();
		String urlAddress = PathFilter.getOrigPath(request);
		return urlAddress;
	}
}