/* * $Id: IShopExportBusiness.java,v 1.10 2004/05/24 14:56:57 palli Exp $ * * Copyright (C) 2002 Idega hf. All Rights Reserved. * * This software is the proprietary information of Idega hf. * Use is subject to license terms. * */ package is.idega.idegaweb.intershop.business; import is.idega.idegaweb.intershop.data.IShopTemplate; import java.io.ByteArrayInputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.util.Properties; import com.idega.idegaweb.IWApplicationContext; import com.strengur.idegaweb.intershop.business.IShopXMLDesc; /** * @author <a href="mail:palli@idega.is">Pall Helgason</a> * @version 1.0 */ public class IShopExportBusiness { private static IShopExportBusiness _instance = null; private IShopExportBusiness() { } public static IShopExportBusiness getInstance() { if (_instance == null) _instance = new IShopExportBusiness(); return(_instance); } public boolean exportPage(IShopTemplate page, Properties dbProps, String html, IWApplicationContext iwac, String resetCacheURL) { try { IShopXMLDesc desc = new IShopXMLDesc(iwac); if (!desc.hasModifyPermissions(page.getIShopClass())) return(false); String driver = dbProps.getProperty("drivers"); String url = dbProps.getProperty("default.url"); String dbname = dbProps.getProperty("default.dbname"); String user = dbProps.getProperty("default.user"); String passwd = dbProps.getProperty("default.password"); if (driver == null || url == null || dbname == null || user == null || passwd == null) return false; Class.forName(driver).newInstance(); Connection conn = DriverManager.getConnection(url,user,passwd); StringBuffer sql = new StringBuffer("update "); sql.append(dbname); sql.append(".."); sql.append(IShopTemplate.ISHOP_TABLE_TEMPLATES); sql.append(" set "); sql.append("content"); sql.append(" = "); sql.append("?"); sql.append(", "); sql.append("bytecode"); sql.append(" = NULL where "); sql.append(is.idega.idegaweb.intershop.data.IShopTemplateBeanBMPBean.getIShopClassColumnName()); sql.append(" = '"); sql.append(page.getIShopClass()); sql.append("' and "); sql.append(is.idega.idegaweb.intershop.data.IShopTemplateBeanBMPBean.getIShopIDColumnName()); sql.append(" = '"); sql.append(page.getIShopID()); sql.append("' and "); sql.append(is.idega.idegaweb.intershop.data.IShopTemplateBeanBMPBean.getIShopLanguageNrColumnName()); sql.append(" = "); sql.append(page.getIShopLanguageNr()); PreparedStatement stmt = conn.prepareStatement(sql.toString()); ByteArrayInputStream stream = new ByteArrayInputStream(html.getBytes()); stmt.setAsciiStream(1,stream,stream.available()); stmt.execute(); stmt.close(); conn.close(); if (resetCacheURL != null) com.idega.util.FileUtil.getStringFromURL(resetCacheURL); } catch(Exception e) { e.printStackTrace(); return false; } return true; } public boolean createPage(IShopTemplate page, Properties dbProps) { try { String driver = dbProps.getProperty("drivers"); String url = dbProps.getProperty("default.url"); String dbname = dbProps.getProperty("default.dbname"); String user = dbProps.getProperty("default.user"); String passwd = dbProps.getProperty("default.password"); if (driver == null || url == null || dbname == null || user == null || passwd == null) return false; Class.forName(driver).newInstance(); Connection conn = DriverManager.getConnection(url,user,passwd); StringBuffer sql = new StringBuffer("insert into "); sql.append(dbname); sql.append(".."); sql.append(IShopTemplate.ISHOP_TABLE_TEMPLATES); sql.append(" ("); sql.append(is.idega.idegaweb.intershop.data.IShopTemplateBeanBMPBean.getIShopClassColumnName()); sql.append(", "); sql.append(is.idega.idegaweb.intershop.data.IShopTemplateBeanBMPBean.getIShopIDColumnName()); sql.append(", "); sql.append(is.idega.idegaweb.intershop.data.IShopTemplateBeanBMPBean.getIShopLanguageNrColumnName()); sql.append(") values('"); sql.append(page.getIShopClass()); sql.append("', '"); sql.append(page.getIShopID()); sql.append("', "); sql.append(page.getIShopLanguageNr()); sql.append(")"); Statement stmt = conn.createStatement(); int res = stmt.executeUpdate(sql.toString()); sql = new StringBuffer("insert into "); sql.append(dbname); sql.append(".."); sql.append(IShopTemplate.ISHOP_TABLE_TEMPLATEDESC); sql.append(" ("); sql.append(is.idega.idegaweb.intershop.data.IShopTemplateBeanBMPBean.getIShopClassColumnName()); sql.append(", "); sql.append(is.idega.idegaweb.intershop.data.IShopTemplateBeanBMPBean.getIShopIDColumnName()); sql.append(", "); sql.append(is.idega.idegaweb.intershop.data.IShopTemplateBeanBMPBean.getIShopNameColumnName()); sql.append(", "); sql.append(is.idega.idegaweb.intershop.data.IShopTemplateBeanBMPBean.getIShopDescriptionColumnName()); sql.append(") values('"); sql.append(page.getIShopClass()); sql.append("', '"); sql.append(page.getIShopID()); sql.append("', '"); sql.append(page.getIShopName()); sql.append("', '"); sql.append(page.getIShopDescription()); sql.append("')"); stmt = conn.createStatement(); int res2 = stmt.executeUpdate(sql.toString()); stmt.close(); conn.close(); } catch(Exception e) { e.printStackTrace(); return false; } return true; } public String getMaxIdForUT(Properties dbProps) { try { String driver = dbProps.getProperty("drivers"); String url = dbProps.getProperty("default.url"); String dbname = dbProps.getProperty("default.dbname"); String user = dbProps.getProperty("default.user"); String passwd = dbProps.getProperty("default.password"); if (driver == null || url == null || dbname == null || user == null || passwd == null) return null; Class.forName(driver).newInstance(); Connection conn = DriverManager.getConnection(url,user,passwd); StringBuffer sql = new StringBuffer("select max("); sql.append(is.idega.idegaweb.intershop.data.IShopTemplateBeanBMPBean.getIShopIDColumnName()); sql.append(") from "); sql.append(dbname); sql.append(".."); sql.append(IShopTemplate.ISHOP_TABLE_TEMPLATES); sql.append(" where "); sql.append(is.idega.idegaweb.intershop.data.IShopTemplateBeanBMPBean.getIShopClassColumnName()); sql.append(" = 'UT'"); Statement stmt = conn.createStatement(); ResultSet res = stmt.executeQuery(sql.toString()); String ret = null; if (res.next()) ret = res.getString(1); res.close(); stmt.close(); conn.close(); return ret; } catch(Exception e) { e.printStackTrace(); return null; } } }